HyperLogLog(はいぱーろぐろぐ)
最終更新:2026/4/27
HyperLogLogは、大規模なデータストリームにおけるユニーク要素の数を近似的に推定するための確率的アルゴリズムである。
別名・同義語 HLLカーディナリティ推定
ポイント
HyperLogLogは、正確なカウントよりもメモリ効率を優先する場合に有効であり、特にビッグデータ分析で利用される。
HyperLogLogとは
HyperLogLogは、集合内のユニークな要素数(カーディナリティ)を効率的に推定するためのアルゴリズムです。従来のユニークカウントは、要素数が増加するにつれてメモリ使用量が増大するという課題がありましたが、HyperLogLogは固定サイズのメモリで大規模なデータセットに対応できます。
原理
HyperLogLogは、ハッシュ関数とビット列の最大末尾ゼロの数を活用します。データストリーム内の各要素をハッシュ化し、そのハッシュ値の末尾に連続するゼロの数をカウントします。これらの最大末尾ゼロの数の統計的な性質を利用することで、ユニーク要素数を推定します。
特徴
- メモリ効率: データセットのサイズに比例したメモリを必要とせず、固定サイズのメモリで処理可能です。
- 高速性: 計算が比較的単純であり、高速にユニーク要素数を推定できます。
- 近似性: 正確なカウントではなく、近似的な推定値を提供します。推定精度は、使用するメモリ量によって調整可能です。
- スケーラビリティ: 大規模なデータストリームに対応できます。