(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-01-11
(45)【発行日】2022-01-24
(54)【発明の名称】ベクトル量子化の混合に基づく符号化方法及びこれを用いた最近傍探索(NNS)方法
(51)【国際特許分類】
G06F 16/901 20190101AFI20220117BHJP
G06F 16/9032 20190101ALI20220117BHJP
G06F 17/16 20060101ALI20220117BHJP
【FI】
G06F16/901
G06F16/9032
G06F17/16 Z
(21)【出願番号】P 2019554379
(86)(22)【出願日】2017-06-20
(86)【国際出願番号】 KR2017006450
(87)【国際公開番号】W WO2018182093
(87)【国際公開日】2018-10-04
【審査請求日】2020-03-11
(31)【優先権主張番号】10-2017-0041017
(32)【優先日】2017-03-30
(33)【優先権主張国・地域又は機関】KR
【新規性喪失の例外の表示】特許法第30条第2項適用 ウェブサイトの掲載年月日:平成29年1月30日、ウェブサイトのアドレス:https://arxiv.org/abs/1701.08475
(73)【特許権者】
【識別番号】517415573
【氏名又は名称】オ-ディーディー コンセプツ インク.
(74)【代理人】
【識別番号】100095407
【氏名又は名称】木村 満
(74)【代理人】
【識別番号】100132883
【氏名又は名称】森川 泰司
(74)【代理人】
【識別番号】100148633
【氏名又は名称】桜田 圭
(74)【代理人】
【識別番号】100147924
【氏名又は名称】美恵 英樹
(72)【発明者】
【氏名】ヂャオ、ワンレイ
(72)【発明者】
【氏名】ムン、サンファン
【審査官】三橋 竜太郎
(56)【参考文献】
【文献】特許第5637939(JP,B2)
【文献】特開2009-020769(JP,A)
【文献】特開2002-163272(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06F 17/16
(57)【特許請求の範囲】
【請求項1】
候補データセットからクエリの最近傍を検索するための候補ベクトルの符号化方法であって、
入力ベクトル(この時、最初の入力ベクトルは前記候補ベクトル)を正規化して方向ベクトル及びベクトルエネルギーを取得する正規化段階と、
前記方向ベクトルを量子化してコードワード及び残差ベクトルを取得する量子化段階と、
前記残差ベクトルを前記入力ベクトルとして、前記正規化段階及び前記量子化段階を予め設定された符号化次数だけ反復する段階と、
前記反復による
前記符号化次数を予め設定された基準に沿って低次数と高次数とに分類し、前記低次数の入力ベクトルに対応する一つ以上のコードワード及び
前記高次数の入力ベクトルに対応する一つ以上のベクトルのエネルギーを用いて前記候補ベクトルを符号化する段階と、
を含むベクトル符号化方法。
【請求項2】
前記量子化段階は、前記方向ベクトルの次数に対応するコードブックで前記方向ベクトルに最近接したワードを前記コードワードとして返還する段階を含む、請求項1に記載のベクトル符号化方法。
【請求項3】
前記符号化する段階は、
前記符号化次数を予め設定された基準によって低次数と高次数とに分類する段階と、
前記低次数の入力ベクトルに対応するコードワードを用いて逆リストのインデクシングキーを生成する段階と、
前記高次数の入力ベクトルに対応するコードワード及び低次数の入力ベクトルに対応するベクトルエネルギーを用いてRNQコードを生成する段階とを含み、
符号化された候補ベクトルは、前記インデクシングキーと前記RNQコードとの組合せであり、前記符号化次数は、前記低次数と前記高次数との和である、
請求項1に記載のベクトル符号化方法。
【請求項4】
前記RNQコードは、前記逆リストにおいて前記インデクシングキーに対応する連結リストに保存され、前記連結リストの各項目は、候補ベクトルの識別情報及びRNQコードを含むことを特徴とする、請求項3に記載のベクトル符号化方法。
【請求項5】
前記符号化次数を分類する段階は、前記候補データセットのサイズが大きくなるほど、前記低次数に分類される値のサイズを増加させる段階をさらに含む、請求項3に記載のベクトル符号化方法。
【請求項6】
前記符号化次数を4、前記低次数iを2、前記高次数jを2に設定した場合、前記候補ベクトルは下記の式のように近似化され、
【数1】
前記インデクシングキーは、前記
【数2】
に対応するC
1及び前記
【数3】
に対応するC
2を用いて次のように生成され、
インデクシングキー:C
1C
2
前記RNQコードは、前記e
0に対応するh
0及び前記e
1に対応するh
1及び前記
【数4】
に対応するC
3及び前記
【数5】
に対応するC
4を用いて次のように生成される、請求項3に記載のベクトル符号化方法。
RNQコード:C
3h
0C
4h
1
【数6】
:第1次コードブック(V
1)で残差ベクトルの方向ベクトルとの最近接コードワード
【数7】
:第2次コードブック(V
2)で残差ベクトルの方向ベクトルとの最近接コードワード
【数8】
:第3次コードブック(V
3)で残差ベクトルの方向ベクトルとの最近接コードワード
【数9】
:第4次コードブック(V
4)で残差ベクトルの方向ベクトルとの最近接コードワード
e
0:第3残差ベクトルのエネルギー(スカラー値)
e
1:第4残差ベクトルのエネルギー(スカラー値)
p
1:
【数10】
残差方向ベクトルの投影
p
2:
【数11】
残差方向ベクトルの投影
【請求項7】
請求項1~6のいずれかに記載の方法を実行させるためにコンピュータ読取り可能媒体に格納されたベクトル符号化応用プログラム。
【請求項8】
候補データセットからクエリの最近傍を検索する方法であって、
前記クエリを正規化及び量子化して取得した一つ以上のコードワードを含む逆リストのインデクシングキーと前記クエリ間の距離を計算する段階と、
前記計算された距離を昇順に整列し、整列された距離が上位の特定百分位数以内である逆リストを候補連結リストに設定する段階と、
前記候補連結リストに含まれた候補ベクトルと前記クエリ間の距離を計算して前記最近傍を取得する段階と、
を含む最近傍探索方法。
【請求項9】
前記距離を計算する段階は、
1次コードブックに含まれる第1コードワード
【数12】
及び2次コードブックに含まれる第2コードワード
【数13】
の合成ベクトル
【数14】
と前記クエリq間の距離dを計算する段階を含む、請求項8に記載の最近傍探索方法。
【請求項10】
前記距離を計算する段階は、前記距離dの計算が次の式によってなされることを特徴とする、請求項9に記載の最近傍探索方法。
【数15】
q:クエリベクトル
q
t
:クエリベクトルの残差
I:逆リストのインデクシングキー
【請求項11】
前記距離を計算する段階は、
前記クエリと第1コードワード間の距離を計算して昇順に整列する段階と、
前記クエリと第2コードワード間の距離を計算して昇順に整列する段階と、
前記整列された距離が上位の特定百分位数以内である第1コードワード及び第2コードワードを用いて前記合成ベクトルIとクエリq間の距離を計算する段階と、
を含む、請求項10に記載の最近傍探索方法。
【請求項12】
前記最近傍を取得する段階は、前記候補ベクトルvと前記クエリq間の距離を下記の式を用いて計算する段階を含む、請求項8に記載の最近傍探索方法。
【数16】
q:クエリベクトル
q
t
:クエリベクトルの残差
v:候補ベクトル
v
t
:候補ベクトルの残差
I:逆リストのインデクシングキー
【数17】
:第1次コードブック(V
1
)で残差ベクトルの方向ベクトルとの最近接コードワード
【数18】
:第2次コードブック(V
2
)で残差ベクトルの方向ベクトルとの最近接コードワード
【数19】
:第3次コードブック(V
3
)で残差ベクトルの方向ベクトルとの最近接コードワード
【数20】
:第4次コードブック(V
4
)で残差ベクトルの方向ベクトルとの最近接コードワード
e
0
:第3残差ベクトルのエネルギー(スカラー値)
e
1
:第4残差ベクトルのエネルギー(スカラー値)
p
1
:
【数21】
残差方向ベクトルの投影
p
2
:
【数22】
残差方向ベクトルの投影
【請求項13】
請求項8~12のいずれかに記載の方法を実行させるためにコンピュータ読取り可能媒体に格納された最近傍探索応用プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報検索、マルチメディア検索に関し、より詳細には、ベクトル量子化の混合に基づく符号化方法及びこれを用いた最近傍探索(NNS)方法に関する。
【背景技術】
【0002】
最近傍探索(NNS)方法は、多くのコンピュータ分野で重点的に研究されている方法であり、これは、データベース、機械学習、コンピュータ起動、及び情報検索のような広範囲な分野で基礎的な役割を果たす。最近傍探索(NNS)問題は、次のように簡単に定義することができる。クエリq∈RD及びクエリと同じ次元の候補ベクトルn個が与えられた時、最近傍探索(NNS)問題は特定メトリック(一般に、l1-距離、又はl2-距離)によって空間的に最も近いクエリに対するサンプルを返さなければならない。
【0003】
最近傍は、全候補セットを線形スキャン(探索)することによって識別することができるが、線形探索の時間複雑度はO(n・D)である。線形探索の時間複雑度は次元及びデータセットの規模のいずれにも線形的に増加するが、次元及びデータの両方とも増加する場合、時間複雑度は実際に2次的に増加する。したがって、実時間検索は高次元、大規模、高密度ベクトル空間ではほぼ不可能である。このような場合、K-Dツリー、R-ツリー、及びLSH(Locality Sensitive Hashing)などの大部分の伝統的な方法では満足すべき結果が得られない。
【0004】
ここ数年でベクトル量子化に基づく方法が、簡単な計算、遥かに低い空間複雑度、及び高次元データにおける良好な結果によって益々大衆化しつつある。代表的な方法には、積量子化器(Product Quantizer;PQ)、加算量子化器(Additive Quantizer;AQ)、及び結合量子化器(Combined Quantizer;CQ)がある。
【0005】
PQは高次元ベクトルを複数のセグメントに分解する。各セグメント(サブ-ベクトル)は該当のサブ-空間で訓練された量子化器によって量子化される。最後に、原ベクトルはそれらのサブ-空間量子化器から一連の最近接コードワードの連結によって近似化される。クエリと候補ベクトルとの間の距離は、クエリとサブ-空間における最近接コードワードとの間の距離によって近似化される。
【0006】
PQとは違い、AQ及びCQはベクトルをセグメントに分けない。両方とも同一次元にある複数の要素ベクトルの和でベクトルを示す。このような要素ベクトルは、一連の事前訓練されたコードブックの中から選択される(最大で一つのベクトルが一つのコードブックから選択される。)
【0007】
PQと類似に、クエリと候補ベクトルとの間の距離は、クエリと選択された要素ベクトルとの間の距離の和によって近似化され、これは、ルックアップテーブルを確認して効率的に計算することができる。
【0008】
量子化接近法には2つの長所がある。一つは、候補ベクトルが圧縮(一般的にメモリー消費が1桁だけ減少)されて迅速な検索を支援するために全参照セットをメモリーにロードできるという点である。もう一つは、クエリと全候補との間の距離の計算は、クエリとコードブックコードワードとの間の距離の計算によって近似化されるときに非常に効率的であるという点である。
【0009】
しかし、このような量子化に基づく方法においてはインデクシングされるべきデータに暗示的仮定が与えられなければならない。計算費用の問題のためごく限られた数のコードワードしか量子化に使用されず、量子化は、広いエネルギースペクトルにわたっている全てのベクトルの正確な近似値を求めることができない。
【0010】
例えば、与えられたベクトル[0.1,0.03,---]1×128及び[55,122,---]1×128のベクトル長は非常に異なる。大きいエネルギー差のため、既存の方法では上のいずれか一方のベクトルしか近似できず、他方のベクトルは近似できなくなる。結果的に、AQ、CQ及びPQに対して、エネルギー分布が広い範囲にわたっている一般的な場合には、低い近似誤差を達成することがほぼ困難である。しかも、AQ、CQ及びPQのような現在の圧縮方式は、ベクトル符号化イシューだけを言及している。これら方法のいずれか一つで最近傍探索(NNS)を行うとき、クエリと符号化された候補との比較は不回避であり、このような方法を大規模の検索作業に拡張することは難しい。
【発明の概要】
【発明が解決しようとする課題】
【0011】
本発明は、前述した問題を解決するためのものであり、エネルギー値の範囲が非常に大きいデータセットを効果的に近似し、より高い精密度が得られる符号化方法を提供することを目的とする。
【0012】
また、本発明は、逆リストのインデックスを構築できる符号化方法を提供することを他の目的とする。
【0013】
また、本発明は、ベクトル量子化のための符号化訓練及び量子化過程を簡素化し、高い符号化正確性が得られる符号化方法を提供することを他の目的とする。
【0014】
また、本発明は、クエリと候補ベクトルとの距離の計算を簡素化し、検索速度を改善できる最近傍探索方法を提供することをさらに他の目的とする。
【課題を解決するための手段】
【0015】
このような目的を達成するための本発明は、候補データセットからクエリの最近傍を検索するための候補ベクトルの符号化方法であって、入力ベクトル(この時、最初の入力ベクトルは前記候補ベクトル)を正規化して方向ベクトル及びベクトルエネルギーを取得する正規化段階、前記方向ベクトルを量子化してコードワード及び残差ベクトルを取得する量子化段階、前記残差ベクトルを前記入力ベクトルとして、前記正規化段階及び前記量子化段階を、予め設定された符号化次数だけ反復する段階、及び前記反復による一つ以上のコードワード及び一つ以上のベクトルのエネルギーを用いて前記候補ベクトルを符号化する段階を含むことを特徴とする。
【0016】
また、本発明は、候補データセットからクエリの最近傍を検索する方法であって、前記クエリを正規化及び量子化して取得した一つ以上のコードワードを含む逆リストのインデクシングキーと前記クエリ間の距離を計算する段階、前記計算された距離を昇順に整列し、整列された距離が上位の特定百分位数以内である逆リストを候補連結リストに設定する段階、及び前記候補連結リストに含まれた候補ベクトルと前記クエリ間の距離を計算して前記最近傍を取得する段階を含むことを特徴とする。
【発明の効果】
【0017】
前述したような本発明によれば、エネルギー値の範囲が非常に大きいデータセットを効果的に近似し、より高い精密度を得ることができる。
【0018】
また、本発明によれば、逆リストのインデックスを構築することができる。
【0019】
また、本発明によれば、ベクトル量子化のための符号化訓練及び量子化過程を簡素化し、高い符号化正確性を得ることができる。
【0020】
また、本発明によれば、クエリと候補ベクトルとの距離の計算を簡素化し、検索速度を改善することができる。
【図面の簡単な説明】
【0021】
【
図1】本発明の一実施例による最近傍探索方法を概略的に説明するための順序図である。
【
図2】本発明の一実施例による正規化ベクトル量子化を説明するための図である。
【
図3】本発明の一実施例による再帰的近似化を説明するための図である。
【
図4】本発明の一実施例によるベクトル量子化の混合に基づく符号化結果をHKMと比較するための図である。
【
図5】ベクトル量子化の混合に基づくベクトル符号化方法を説明するための順序図である。
【
図6】本発明の一実施例によるベクトル符号化方法を説明するための図である。
【
図7】SIFT1M及びGIST1Mデータセットにおいて本発明の一実施例によるベクトル量子化の混合に基づく符号化による結果をIVFPQ、IVFRVQ、IMIの結果と対比するための図である。
【
図8】本発明の一実施例によるベクトル量子化の混合に基づく符号化を用いた最近傍探索方法を説明するための順序図である。
【発明を実施するための形態】
【0022】
前述した目的、特徴及び長所が添付図面を参照して詳細に後述され、これに基づいて、本発明の属する技術分野における通常の知識を有する者にとって本発明の技術的思想が容易に実施可能であろう。本発明の説明において、本発明に関連している公知技術の具体的な説明が本発明の要旨を余分に曖昧にし得ると判断される場合には詳細な説明を省略する。
【0023】
図面中、同一の参照符号は同一又は類似の構成要素を表し、明細書及び特許請求の範囲に記載された全ての組み合わせは、任意の方式で組み合わせることができる。そして、特に規定しない限り、単数と記載したものは一つ以上を含むことができ、単数表現に対する言及は複数表現をも含み得ると理解されるべきである。
【0024】
前述した問題を解決するために、本発明は、残差ベクトル量子化(Residual Vector Quantization;RVQ)に基づく方法を提案している。本発明は、2つの側面、符号化及びインデクシング段階の両方において最近傍探索(NNS)の問題を解決することを目的とする。
【0025】
RVQは、前段階のベクトル量子化から得た残差ベクトルを再帰量子化して原ベクトルに接近する方法である。試験結果によれば、簡単な訓練で簡単なRVQを行う場合にも、複雑な訓練が要求されるAQ、CQ及びSQと略同一の結果が得られるという事実がわかった。
【0026】
また、本発明は従来のRVQを改善して、ベクトルのエネルギーが広い範囲にわたってインデクシングされた場合にも適用可能である。
【0027】
本発明の一実施例による再帰正規化されたベクトル量子化(Recursive Normalized Vector Quantization;以下、‘RNQ’という。)方法は、ベクトルと残差ベクトルを量子化する前に正規化を行い、ベクトルの方向及びエネルギーを得た後に、ベクトルの方向及びエネルギーをそれぞれ量子化(符号化)する。
【0028】
本発明に係る速い最近傍探索(NNS)方法は、RVQ及びRNQを混合した符号化方式を利用している。具体的に、相対的に低い次数の残差ベクトルはRVQによって符号化される。残りの相対的に高い次数の残差ベクトルはRNQで符号化される。このデザインは、RVQの低い次数の符号化効率性及びRNQの低い符号化誤差という両方の長所を有する。オンライン検索において低い次数のRVQコードは逆リスト(inverted list)のインデクシングキーとして結合される。
【0029】
本発明は、区別されるインデクシングキー値を生成して最近傍探索(NNS)の速度を上げるためにRVQコードブック設定(符号化設定)に対する包括的な研究を行った結果に関する。
【0030】
各次数のコードブックサイズを慎重に構成すると符号化誤りが非常に減少する。本発明は、精巧な加重値体系よりも重要である。本発明の内容と関連して、我々は小さいコードブックの多重次数(multiple orders)から反転されたキー(inverted key)を作ることが、大きいコードブックの単一次数(single order)からキーを作ることに比べてより有利であることを発見した。前者は顕著に低い量子化費用と符号化誤差につながるためである。また、このような多次元キー生成方式(multi-order key generation scheme)を用いて兆(trillion)単位レベルの検索作業に拡張することが非常に便利であることが明らかになった。
【0031】
ツリー分割接近法の主な短所は、多いメモリーを要求するという点である。一方では、速い比較を支援するために全候補ベクトルがメモリーにロードされるが、他方では、インデクシングに用いられるツリーノードが相当な量の追加メモリーを占める。全般的にメモリー消費が参照セットのサイズよりも大きい。
【0032】
ツリー分割接近法とは別に、最近傍探索(NNS)に局所性鋭敏型ハッシュ(LSH)を適用しようとするいくつかの試みがあった。一般に、検索段階には2つの段階がある。段階1は、クエリと同一又は類似のハッシュキーを共有する候補を収集し、段階2は、最近傍を探すためにクエリと全ての選択された候補とをいちいち比較する。局所性鋭敏型ハッシュ(LSH)は、大量の最近傍を要求するアプリケーションに適する。また、段階2において速い比較を支援するために全参照セットをメモリーにロードしなければならず、多くのメモリーが消費される。
【0033】
ここ数年、NNSの問題はベクトル量子化によって扱われた。積量子化器を適用する技術は、数十年間解けずにいた問題を解決する新しい方法を提示した。
【0034】
本発明に係るクエリの最近傍探索は、大略的に、
図1に示すように、候補ベクトルをベクトル量子化(RVQ及びRNQ)の混合に基づく符号化によって圧縮し(S10)、圧縮された候補ベクトルを用いてクエリの最近傍を検索(S20)することを含むことができる。また、段階20において、圧縮された候補ベクトルとクエリとの間の距離はコードワードとクエリとの間の距離によって近似化され得る。
【0035】
以下では、
図2~
図7を参照して、本発明の一実施例による段階10におけるベクトル量子化の混合に基づく符号化について説明し、これを用いた最近傍探索方法について、
図8を参照してより詳しく説明する。
【0036】
ベクトル量子化の混合に基づく符号化を説明するために、本明細書では、まず、残差ベクトル量子化(RVQ)を検討し、次に、残差ベクトルが各段階で量子化される前に正規化されるRVQの変形(RNQ)を提示する。さらに、圧縮されないクエリとRVQ及びRNQで圧縮された候補ベクトル間の距離の計算方法が提示される。
【0037】
A.残差ベクトル量子化(RVQ)
複数のベクトルの合成によってベクトルを近似化するアイデアは、“2段階残差ベクトル量子化”の設計に遡ることができる。この方法において、入力ベクトルは量子化器によって符号化され、それの残差(量子誤差)は他の量子化器によって順次に符号化される。この手法は、以前の量子化段階で残された残差ベクトルが再帰的に量子化される複数の次数(段階)に拡張された。
【0038】
候補ベクトル(以下、ベクトルという。)をv∈RD、一連のコードブックをV1,V2,...Vkとすれば、ベクトルvはこのようなコードブックのコードワード構成によって近似化される。特に、1コードワードは1段階のコードブックの中から選択される。この再帰的量子化がk番目の段階まで反復されると、ベクトルvは次の式1のように近似化される。
【0039】
【0040】
式1において、段階mにおけるV
mは、m-1段階で収集された残差
【数2】
で訓練されたものである。
【0041】
いくつかの手法がRVQの量子化誤差を減少させるために提案された。C.F.Barnes,S.A.Rizvi,and N.M.Nasrabadi,“Advances in residual vector quantization:a review.,”IEEE Transactions on Image Processing,vol.5,no.2,pp.226262,1996.と特定される文献(以下、先行文献1)、及びW.-Y.Chan and A.Gersho,“Enhanced multistage vector quantization with constrained storage,” in Twenty-Fourth Asilomar Conference on Signals,System and Computing,pp.659663,Nov.1990.と特定される文献(以下、先行文献2)によれば、多重段階のコードブックはこれらを共同で訓練することによって最適化された。
【0042】
本発明の一実施例において、我々はRVQの単純実施だけを考慮し、各段階におけるコードブックは、以前段階で収集した残差から独立して訓練されたものである。先行文献1及び先行文献2で提案された共同最適化は、性能をより強化させることができる。
【0043】
単純であるが、RVQはAQ及びCQのような最近の構成的圧縮接近法に比べて長所がある。RVQの方法では、ベクトルのエネルギーは個別の量子化器に無作為に分配される。AQ、CQ又はPQとは違い、RVQは、低い段階の量子化器においてより多い原ベクトルのエネルギーを維持する。
【0044】
RVQは実際に原ベクトルに対して粗密(coarse-to-fine)圧縮を形成する。言い換えると、相対的に低い段階のコードは相対的に高い段階のコードよりも多い情報を伝達する。結果的に、下位段階のコードは逆ファイル(inverted files)を生成するインデクシングキーとして使用するのに特に適合するので、速いANN検索を可能にする。
【0045】
一方、これらのコードは、他の逆リストにベクトルがバラバラに分布するように空間を最大限に分割することができる。他方では、インデクシングキーの長さは最小限に抑えられ、逆ファイル構造の規模を可能な限り小さくさせる。
【0046】
B.再帰的正規化ベクトル量子化(RNQ)
一つの量子化段階で使用可能なコードワードの数が制限されているため、各段階における残余空間が正しく量子化されないことがある。これは残差のエネルギーが広い範囲にわたっている時に特にそうである。この問題を解決するために、本発明の一実施例によれば、量子化に提供する前に残差ベクトルをl2-正規化することが好ましい。言い換えると、ベクトルのエネルギーとその単位長ベクトルは別々に量子化されるので、量子化が容易となる。
【0047】
ベクトルv∈R
Dとすれば、
【数3】
であり、
【数4】
はベクトルのエネルギーを維持する。AQ、PQ、及びCQとは違い、ベクトルのエネルギーe
0と正規化されたベクトル(すなわち、方向ベクトル)
【数5】
は個別に符号化されるだろう。eがスカラー値であるので、eは、符号化及びインデクシングが容易である。
【0048】
以下では単位長ベクトル
【数6】
をどのように符号化するかについて重点的に説明する。
【0049】
既に訓練されたコードブック
【数7】
であり、
【数8】
である。量子化関数Q(x,V)は、ベクトルxのためのコードブックVから最近傍を返還する。したがって、ベクトルuは次の式2のように表される。
【0050】
【0051】
【数10】
であり、
【数11】
がベクトルQ(u
0,V
1)に直交(orthogonal)する残差ベクトルである場合、
【数12】
であることを考慮すれば、上記の式2を式3のように整理することができる。
【0052】
【0053】
図2は、(a)はベクトルu
0、
【数14】
、
【数15】
及びそれらの関係を2次元空間に示すものである。残差ベクトル
【数16】
は同一の方式でさらに近似化され得る。
【数17】
であることを考慮して、e
1が
【数18】
のエネルギーを維持し、u
1がl
2-正規化ベクトルである場合、u
1は次の式4のように近似化される。
【0054】
【0055】
【数20】
が他のコードブックV
2でu
1に最近接したコードワードである場合、u
0は次の式5のように表される。
【0056】
【0057】
同様に、符号化プロセスを式6のようにさらに高い次元に拡張させることは非常に自然である。
【0058】
【0059】
4次数で近似化を止めた場合、次の式7を得ることができた。
【0060】
【0061】
このベクトルu
0の近似は
【数24】
と表示される。式7でp
iとe
iはベクトルu
i-1とコードワードw
i間のコサインとサインである。結果的に、それらは結合される。そのいずれか一方が知られると、他方が固定されるという意味であり、これは符号化便宜性を提供する。符号化において装置はp
iシリーズとe
iシリーズのいずれか一方でのみスカラー量子化を行えばいい。
【0062】
式7において、p
iとe
iはいずれも[0,1]の範囲内にあるため、m番目の次数に維持される実際エネルギーは
【数25】
であり、これは、以前次数に維持されたエネルギーよりも大きくない。したがって、RNQの多重次数(multiple orders)はベクトル空間に対して粗密(coarse-to-fine)分割を形成するRVQに類似している。
【0063】
図3は、1次数から4次数までの近似を示す図である。原ベクトルvは
【数26】
と表現される。
【0064】
全般的に、本発明の一実施例による符号化とRVQとの主な差異点は、本発明がコードブックコードワードに代えて、コードブックコードワードに投影してベクトルを近似化するという点である。
【0065】
従来の構成接近法と比較すれば、本発明は、エネルギーを符号化するための余分のビットを必要とする。しかし、これは多量のメモリーを消費しない。本発明の一実施例による実験結果によれば、一般に、各次数のエネルギーを符号化するのには4ビットで十分である。
【0066】
n次量子化器でベクトルを近似化するためにはn個のコードブックが必要である。このようなコードブックは、以前段階で正規化された残差を収集して訓練される。
【0067】
各次数における訓練にはk-平均法(k-means)クラスタリングを用いることができる。k-平均法クラスタリング後にはクラスタリングの中心は単位長にl2-正規化され、符号化コードワードとして使用され得る。
【0068】
前述した新しい符合化方法を再帰的正規化ベクトル量子化(RNQ)という。
【0069】
C.RNQとRVQとの混合に基づく符号化
RNQの場合、符号化誤りはRVQに比べて非常に小さいが、各次数に4ビットがさらに必要である。一般に、速いNNSのために、RNQ/RVQコードの初めの2つの次数で逆インデクシングキーを生成する。結果的に、逆変換されたキーはRVQよりも8ビット長くなる。インデクシングキーがRVQよりも明確であるが、キースペースキーのボリュームは、ベクトル空間を不要に低い密度に分けるRVQに比べて256倍さらに大きい。この理由から、速いNNSにおいて本発明に係る装置は、与えられたベクトルに対する混合符号化を選好する。一般に、RVQは符号化の初めの2つの次数に用いられ、インデクシングキーを生成するために用いられる。
【0070】
2次数RVQで残った残差はRNQでさらに符号化される。結果的に、ベクトルは4次数に近似され、近似値は次の式8の通りである。
【0071】
【0072】
混合符号化方法は、
図5及び
図6に示す通りであり、前述したA~Cを含むベクトルの符号化方法を、
図5を参照して整理すると次の通りである。
【0073】
まず、入力ベクトル
【数28】
を正規化すれば、スカラー値を有するベクトルエネルギー
【数29】
と方向ベクトル
【数30】
を取得することができる(S100)。
【0074】
次に、方向ベクトルを量子化して(S200)、m次コードワードとm次残差ベクトルを取得することができる(S300)。段階200は、前述したB.再帰的ベクトル量子化において説明した通りである。
【0075】
例えば、最初に候補ベクトルvを入力すると、正規化によって方向ベクトルu
0を取得し、方向ベクトルを量子化してコードワード
【数31】
と残差ベクトル
【数32】
を取得することができる。
【0076】
量子化関数は方向ベクトルが入力されると、当該方向ベクトルに対応するコードブックに含まれたコードワードのうち、前記方向ベクトルの最近傍(コードワード)を返還する。量子化段階で残される量子誤差を残差ベクトルといい、これは、上述した式2で
【数33】
に該当する。残差ベクトルは量子化関数が返還するコードワードに直交するものであり得る。参考として、本発明では残差ベクトルを複数の次数で再帰的に量子化し、本明細書では反復される全次数を符号化次数と命名し、符号化次数nは近似化設定によって変わり得る。
【0077】
次の段階で、現在次数mが符号化次数nよりも小さい場合(S400)、次数mはm+1と1次数増加し、m次残差ベクトルは段階100~段階300で正規化及び量子化過程を経る。したがって、符号化次数nだけ段階100~段階300は反復され、本発明の一実施例によるRNQにはn個のコードブックが要求され、RNQによってn個のコードワードを取得することができる。
【0078】
段階600は、段階100~段階300の反復実行による一つ以上のコードワード及び一つ以上のベクトルのエネルギーを用いて候補ベクトルを符号化することができる。
【0079】
図6を用いて段階600についてより詳しく述べる。
図6は、インデクシング及び符号化の便宜性を向上させるRVQ及びRNQの混合符号化フレームワークである。説明の明確性のために
図6にはそれぞれに対して4個の符号化次数だけを表示した。高いNNS品質を達成するために、より高い次数に拡張されてもよい。
図6でh
jは一つの次数のエネルギーに対するスカラー量子化値である。
【0080】
まず、符号化次数の数nは、予め設定された基準によって低次数iと高次数jに分類できる。すなわち、n=i+jであり、このうち、jは具体的な問題によって決定され、検索すべき候補データセットが大きい場合、iの値が大きくなり得る。その理由は、低次数iが逆インデクシング構造のインデックスに活用されるためであり、iの値が大きいほど生成されたインデックス値も多くなり、インデクシング可能なデータ数も大きくなる。これは、可能な限りデータセットを散らして、毎度、最近傍クエリで少数の候補ベクトルだけをアクセスするためである。
【0081】
次に、低次数の入力ベクトルに対応するコードワードを用いて逆リストのインデクシングキーを生成することができる。例えば、n=4、i=2、j=2である
図5の例示において、候補ベクトルは式7のように近似化できるが、低次数は、i=2であるので、1次、2次を意味し、よって、低次数の入力ベクトルに対応するコードワードは
【数34】
と
【数35】
である。すなわち、インデクシングキーは、
【数36】
と
【数37】
を組み合わせてC
1C
2に設定することができる。
【0082】
ここで、
【数38】
は第1次コードブック(V
1)で正規化された候補ベクトルと最近接したコードワードであり、
【数39】
は第2次コードブック(V
2)で残差ベクトルと最近接したコードワードを意味する。
【0083】
次に、高次数の入力ベクトルに対応するコードワード及び低次数の入力ベクトルに対応するベクトルエネルギーを用いてRNQコードを生成することができる。上記の例示において、j=2なので、高次数は3次、4次を意味し、よって、RNQコードの生成にはコードワード
【数40】
と
【数41】
を用いることができる。
【数42】
は第3次コードブック(V
3)で残差ベクトルの方向ベクトルとの最近接コードワード、
【数43】
は第4次コードブック(V
4)で残差ベクトルの方向ベクトルとの最近接コードワードを意味する。また、ベクトルエネルギー値を用いることができるが、e
0は候補ベクトルのエネルギー(スカラー値)であって、第3残差ベクトルのエネルギー(スカラー値)でよく、e
1は第4残差ベクトルのエネルギー(スカラー値)でよい。
【0084】
p
1とp
2は、B.で前述したように、
【数44】
,
【数45】
でよく、これはそれぞれ3次、4次方向ベクトルの最近接コードワードへの投影(projection)であり得る。すなわち、p
1とp
2は、
【数46】
と
【数47】
の残差方向ベクトルの投影であり得る。
【0085】
上述したスカラー量子化値と高次数のベクトル量子化値とを組み合わせてRNQコード(符号化コード)を生成でき、
図6の例示によれば、RNQコードはC
3h
0C
4h
1であり得る。
【0086】
すなわち、候補ベクトルはインデクシングキーと前記RNQコードとの組合せであるC1C2C3h0C4h1と符号化できる。上述したように、C1、C2は残差ベクトルを量子化した後のコードであり、この2つのコードは逆リストのインデクシングキー値として合わせられる。残ったコードであるC3h0C4h1は、逆リストの該当のインデクシングキー値に対応する連結リストに保存され、連結リストの各項目には候補ベクトルの識別情報及びRNQコードが保存され得る。例えば、n=4の上の実施例において、連結リストの各候補項目は<ID,C3h0C4h1>であり得る。
【0087】
図7に示すように、大部分の配置状況においてベクトル量子化混合(MXQ)のリコール率が最も高く、特にGISTIMデータセットにおいて他の方法に比べて優れていた。IVFRVQとMXQの符号化は類似であるが、MXQの結果はIVFRVQに比べて優れており、これは、残存ベクトルの方向及びエネルギーを個別に符号化することが、RVQに比べて効果的であるという事実を示している。
【0088】
IVFPQに対応する方法は、H.Jegou等が提案した方法である(Product quantization for neighbor search,in:IEEE transactions on pattern analysis and machine intelligence,2011,33(1):117-128)。
【0089】
IVFRVQに対応する方法は、Y.Chen等が提案した方法である(Approximate nearest neighbor search by residual vector quantization,in:Sensors,vol.10,pp.11259-11273,2010.)。
【0090】
IMIに対応する方法は、A.Babenko等が提案した方法である(The inverted multi-index,in:Computer Vision and Pattern Recognition(CVPR)、2012 IEEE,2012:3069-3076.)。
【0091】
最近傍探索方法
図8を参照して、等級剪定に基づくオンライン検索戦略について説明する。候補データセットからクエリqの最近傍を検索するために、段階1000において逆リストのインデックスキーとクエリとの間の距離を計算する。このとき、インデックスキー値IをC
1とC
2とに分割できる。C
1とC
2は第1次コードブックのベクトル(第1コードワード
【数48】
)及び第2次コードブックのベクトル(第2コードワード
【数49】
)のそれぞれに対応し、クエリqとI間の距離を計算することは、クエリq及び合成ベクトル
【数50】
間の距離を計算することに転換することができる。
【0092】
例えば、qと合成ベクトルI間の距離は、下記の式のように表現できる。
【0093】
【0094】
計算速度を上げる段階
上記の式9において、計算速度を上げるために、クエリqと第1コードワード
【数52】
の距離をまず計算することができる(式9のterm1)。これによって、クエリq及び1次数の各符号化コード間の距離を得ることができ、距離はサイズによって整列され得る。後ろにある95%の1次符号化コードに対応するインデックス項目は無視してもよく、残り5%の1次符号化コードに対して続けてクエリq及び2次符号化コードから得られた合成ベクトルIとの距離を計算することができる。同様の方法により、クエリq及び全ての2次符号化コード間の距離を計算した後、インデックス項目を距離によって整列し、後ろにある90%のインデックス項目を無視することができる。すなわち、逆リストのうち、上位の特定百分位数以内の連結リストだけを考慮して検索することができる。このような方式は、i>2の場合へと拡張できる。
【0095】
式9において、
【数53】
、
【数54】
、
【数55】
は、あらかじめ計算でき、次にリストを照会すれば式9による計算が速く行われ得る。これは、
図8の段階2000において距離を昇順に整列し、整列された距離が既に設定された上位百分位数以内である逆リストを候補連結リストに設定することに対応する。
【0096】
次に、候補連結リストに含まれた候補ベクトルvとクエリq間の距離を計算して最近傍を取得することができる(S3000)。
【0097】
段階3000において候補ベクトルvとクエリq間の距離の計算は、下記の式10によって行うことができ、したがって、ベクトル量子化の混合に基づく符号化方法で符号化された候補ベクトルvとクエリq間の距離を取得することによって、クエリqの最近傍ベクトルを取得することができる。
【0098】
【0099】
本発明に係るベクトル量子化混合に基づく符号化方法は、既存の量子化方法と比較すれば、前の2つの次数はRVQ符号化を使用し、後ろ2つの次数は残差ベクトルのエネルギーと方向ベクトルをそれぞれ符号化する。したがって、本発明によれば、逆リストのインデックスを構築可能である他、エネルギー値の範囲が非常に大きいデータセットもより効果的に近似することができ、より高い精密度を得ることができる。
【0100】
また、本発明の等級剪定による最近傍探索戦略によれば、クエリポイントと距離計算が必要な候補項目の数が効果的に減少し、検索過程を加速化することができる。
【0101】
本発明は、既存の他の量子化方法と比較した時、当該方法の符号化訓練及び量子化過程がいずれも既存方法に比べて簡単であり、比較的優れた符号化正確性も得ることができる。
【0102】
本明細書で説明される方法は、一つ以上のプロセッサによって実行される一つ以上のコンピュータプログラムによって具現することができる。コンピュータプログラムは非一時的な類型のコンピュータ読取り可能媒体に格納されるプロセッサ実行可能命令を含む。コンピュータプログラムはまた、格納されたデータを含むことができる。非一時的な類型のコンピュータ読取り可能媒体(non-transitory tangible computer readable medium)の非限定的な例は、不揮発性メモリーシステム、磁気格納所及び光学格納所である。
【0103】
(付記)
(付記1)
候補データセットからクエリの最近傍を検索するための候補ベクトルの符号化方法であって、
入力ベクトル(この時、最初の入力ベクトルは前記候補ベクトル)を正規化して方向ベクトル及びベクトルエネルギーを取得する正規化段階と、
前記方向ベクトルを量子化してコードワード及び残差ベクトルを取得する量子化段階と、
前記残差ベクトルを前記入力ベクトルとして、前記正規化段階及び前記量子化段階を予め設定された符号化次数だけ反復する段階と、
前記反復による一つ以上のコードワード及び一つ以上のベクトルのエネルギーを用いて前記候補ベクトルを符号化する段階と、
を含むベクトル符号化方法。
【0104】
(付記2)
前記量子化段階は、前記方向ベクトルの次数に対応するコードブックで前記方向ベクトルに最近接したワードを前記コードワードとして返還する段階を含む、付記1に記載のベクトル符号化方法。
【0105】
(付記3)
前記符号化する段階は、
前記符号化次数を予め設定された基準によって低次数と高次数とに分類する段階と、
前記低次数の入力ベクトルに対応するコードワードを用いて逆リストのインデクシングキーを生成する段階と、
前記高次数の入力ベクトルに対応するコードワード及び低次数の入力ベクトルに対応するベクトルエネルギーを用いてRNQコードを生成する段階とを含み、
符号化された候補ベクトルは、前記インデクシングキーと前記RNQコードとの組合せであり、前記符号化次数は、前記低次数と前記高次数との和である、
付記1に記載のベクトル符号化方法。
【0106】
(付記4)
前記RNQコードは、前記逆リストにおいて前記インデクシングキーに対応する連結リストに保存され、前記連結リストの各項目は、候補ベクトルの識別情報及びRNQコードを含むことを特徴とする、付記3に記載のベクトル符号化方法。
【0107】
(付記5)
前記符号化次数を分類する段階は、前記候補データセットのサイズが大きくなるほど、前記低次数に分類される値のサイズを増加させる段階をさらに含む、付記3に記載のベクトル符号化方法。
【0108】
(付記6)
前記符号化次数を4、前記低次数iを2、前記高次数jを2に設定した場合、前記候補ベクトルは下記の式のように近似化され、
【数57】
前記インデクシングキーは、前記
【数58】
に対応するC
1及び前記
【数59】
に対応するC
2を用いて次のように生成され、
インデクシングキー:C
1C
2
前記RNQコードは、前記e
0に対応するh
0及び前記e
1に対応するh
1及び前記
【数60】
に対応するC
3及び前記
【数61】
に対応するC
4を用いて次のように生成される、付記3に記載のベクトル符号化方法。
RNQコード:C
3h
0C
4h
1
【数62】
:第1次コードブック(V
1)で残差ベクトルの方向ベクトルとの最近接コードワード
【数63】
:第2次コードブック(V
2)で残差ベクトルの方向ベクトルとの最近接コードワード
【数64】
:第3次コードブック(V
3)で残差ベクトルの方向ベクトルとの最近接コードワード
【数65】
:第4次コードブック(V
4)で残差ベクトルの方向ベクトルとの最近接コードワード
e
0:第3残差ベクトルのエネルギー(スカラー値)
e
1:第4残差ベクトルのエネルギー(スカラー値)
p
1:
【数66】
残差方向ベクトルの投影
p
2:
【数67】
残差方向ベクトルの投影
【0109】
(付記7)
付記1~6のいずれかに記載の方法を実行させるためにコンピュータ読取り可能媒体に格納されたベクトル符号化応用プログラム。
【0110】
(付記8)
候補データセットからクエリの最近傍を検索する方法であって、
前記クエリを正規化及び量子化して取得した一つ以上のコードワードを含む逆リストのインデクシングキーと前記クエリ間の距離を計算する段階と、
前記計算された距離を昇順に整列し、整列された距離が上位の特定百分位数以内である逆リストを候補連結リストに設定する段階と、
前記候補連結リストに含まれた候補ベクトルと前記クエリ間の距離を計算して前記最近傍を取得する段階と、
を含む最近傍探索方法。
【0111】
(付記9)
前記距離を計算する段階は、
1次コードブックに含まれる第1コードワード
【数68】
及び2次コードブックに含まれる第2コードワード
【数69】
の合成ベクトル
【数70】
と前記クエリq間の距離dを計算する段階を含む、付記8に記載の最近傍探索方法。
【0112】
(付記10)
前記距離を計算する段階は、前記距離dの計算が次の式によってなされることを特徴とする、付記9に記載の最近傍探索方法。
【数71】
【0113】
(付記11)
前記距離を計算する段階は、
前記クエリと第1コードワード間の距離を計算して昇順に整列する段階と、
前記クエリと第2コードワード間の距離を計算して昇順に整列する段階と、
前記整列された距離が上位の特定百分位数以内である第1コードワード及び第2コードワードを用いて前記合成ベクトルIとクエリq間の距離を計算する段階と、
を含む、付記10に記載の最近傍探索方法。
【0114】
(付記12)
前記最近傍を取得する段階は、前記候補ベクトルvと前記クエリq間の距離を下記の式を用いて計算する段階を含む、付記8に記載の最近傍探索方法。
【数72】
【0115】
(付記13)
付記8~12のいずれかに記載の方法を実行させるためにコンピュータ読取り可能媒体に格納された最近傍探索応用プログラム。