入門
改善
HNSW大きなメモリオーバーヘッドは、メモリフットプリントの有意な減少に基づいて検索アルゴリズムを符号化するベクトル量子化をデータセットを圧縮することができます。結合量子化符号化HNSW二改良された方法。
- スカラー量子化、符号化ベクトルを使用してHNSWSQアルゴリズム
- アルゴリズムをコーディングベクトル量子化の生成物を用いてHNSWPQ
大容量メモリのオーバーヘッドの理由HNSW
- あなたは、設定されたデータのすべての要素を格納する必要があります
- 各レイヤ内のノード間の接続関係を格納する必要が
量子化の製品
PQ製品の定量化
量子化コードブックを確立し、コーディング
N * 128
データセットセグメンテーションが得られ、ベクトルの各部分空間の次元が32である、4つの部分空間に分割されていますN * 4 * 32
。各フィールド(部分空間)が同じ有するN
ベクター、これらN
のベクターは、256のベースのクラスタリング・センターは、4つのフィールドのように総与える4 * 256
クラスセンター。全ての各部分空間N
ベクトルはクラスタ中心ベクトル256はそう部分空間内のいずれかのサブベクトルに、256とすることができるだけ8をコードクラスタ中心の部分空間を表す使用することができます符号化はサブベクトルが中心で表されるクラスに属する符号化することができます。
どのようにコーディングサンプルをコード化するには?
符号化対象のサンプルについては、同一のセグメント化、及びその後一つずつそれぞれのサブ空間に最も近いクラスタ中心間距離を見つけるために、その後、クラスIDの中心は、それらを表現するために、符号化すべきサンプルの符号化を完了することであろう。
コードワード検索アルゴリズム
k個のベクトルからの最近のクエリにクエリベクトルの場合、キーは、クエリベクトルとデータセットからのサンプルを計算することです。暴力は、クエリベクトルとすべてのサンプルからのデータセットを計算し、その後、並べ替え、最寄りのサンプルが返さトップ@ kを選択する方法です。PQ産物をコードデータセット量子化後、プロセスは次のようになります。
クエリベクトルセグメンテーション、同じデータセットモードセグメンテーションのセグメンテーションは、それぞれの部分空間におけるクラスタ中心間距離256にクエリのベクトルの各サブベクトル、それによって計算される4 * 256
距離マトリックス。サンプルベクトルからクエリがによって(別々に計算せず)を得ることができます。
比如该样本的编码是(124, 56, 132, 222),在4 * 256
的距离矩阵中依次找出(查表)查询向量的相应子向量到编码为124(第一个子空间),编码为56(第二个子空间),编码为132(第三个子空间),编码为222(第四个子空间)的类中心的距离,将这4个距离相加的和作为该样本(编码是(124, 56, 132, 222))到查询向量的距离。
PQ乘积量化能够加速索引的原理
- 将全样本的距离计算,转化为到子空间类中心的距离计算(加快查询)
- 对特征进行编码后,可以用一个相对比较短的编码来表示样本(降低内存消耗)
- 存储时只需存储类中心的向量值(计算距离时只需要它们 ) 大专栏 量化编码的分层可通航小世界图(HNSW)笔记ul>
- 对原始向量量化编码建立码本存储在内存中
- 新插入的结点作为查询结点,得到其能达到的最大层(指数衰减概率分布)
- 选邻居时,计算某结点与查询向量的距离应为PQ的距离计算
- 原HNSW算法直接在原始向量上构建,而HNSWPQ算法需要先对原始向量进行量化编码建立码本在此基础上再逐个插入结点构建(增加了一步)
- 原HNSW算法计算距离时是直接计算,而HNSWPQ算法采用PQ距离计算方法(计算速度快)
注:暴力搜索的距离计算的次数随样本数目N
成线性增长,对于上面的例子,PQ乘积量化只需4 * 256
次距离计算。
HNSWPQ算法
与原始的HNSW算法相比,不再需要在内存中保持原始向量。将HNSW算法作为索引算法,采用PQ算法进行向量编码,由于使用PQ算法对原始向量编码,需要将HNSW算法插入过程中与近邻点距离的计算相应地修改为PQ的距离计算。
HNSWPQ的构建过程
与原HNSW算法相比,主要有两方面的不同:
HNSWSQ算法
各ディメンションを量子化ベクトルのスカラ量子化(SQ)は、HNSWSQアルゴリズムは、最大値と最小値の量子化方法を使用します。第一次元ベクトルのために$ I $は、$得る寸法の最大値Vmaxに表示され、[I] $トレーニングサンプルセットと最小値Vmin $ [i]は$、次にベクトルの$ VEC {A} $ I $ $最初の寸法によって定量値:
ここで、$ i = 1、...、N $、1つのバイトを仮定し、各ディメンションをコード量子化の符号化の格納された値、さらにに処理されます。
どこで:
HNSWSQ距離計算アルゴリズムは、まず、挿入ノードで符号化されたベクトル化を復号し、クエリベクトルと復号されたベクトルからの距離を計算します。
量子化されたパフォーマンス分析
HNSWPQアルゴリズムの性能分析
HNSWは、元のアルゴリズムと比較して、1人の正解率@同じクエリ時間リコールでHNSWPQアルゴリズムは倍の時間がかかる索引付けされ、ほぼ半分のメモリフットプリントHNSWアルゴリズム(主ノードの接続関係)はるかに低いHNSW主な原因は、コード化されています。
PQサブ量子化器(部分空間)の増加に伴って、量子化誤差を低減するため、各アルゴリズムの1つの精度@徐々に増加を思い出してください。
HNSWSQアルゴリズムの性能分析
のみ29.5%のHNSWアルゴリズム、むしろ両方の性能のGIST-1MデータセットHNSWSQ8メモリオーバーヘッドが、データセットにHNSWSQ8 HNSW 45より性能等価インデキシング非常に時間がかかり、低いメモリフットプリントの両方を、1MのSIFT %。
リファレンス
[1]李Qiuzhen、Baixing江、李Lixia、王は[J]コンピュータ工学と科学、2019,41(04)、層状航行小さな世界地図のアルゴリズムをコーディング量子化を受賞しました:.. 618-625
[2]元ヨンジュン、画像検索:シリアANNへの検索、http://yongyuan.name/blog/ann-search.html、2019年7月30日。