説明

ベクトル検索装置、ベクトル検索方法、プログラムおよびプログラムを記録した記録媒体

【課題】検索キーベクトルにマッチする検索対象ベクトルを特定する場合、検索対象ベクトルの数が多くても、検索処理時間が短いベクトル検索装置を提供することを目的とする。
【解決手段】各座標毎に、特定の桁数の文字列が対応している近似値の集合である近似値集合が付随している近似値集合情報と、検索対象ベクトルを入力とし、上記検索対象ベクトルの各座標の値に対し、上記座標に対応する上記近似値集合における最も差の小さい近似値を求め、上記近似値の対応する文字列を、全座標にわたって連結することにより、上記検索対象ベクトルに対応する文字列である検索対象文字列を生成し、上記検索対象文字列をキーとして、対応する上記検索対象ベクトルとともに検索インデックスに格納する検索対象文字列生成手段とを有することを特徴とするベクトル検索装置である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、検索対象と検索キーがベクトルである場合に、高速に検索対象ベクトルを検索するベクトル検索装置、ベクトル検索方法、プログラムおよびプログラムを記録した記録媒体に関する。
【背景技術】
【0002】
ベクトル検索の手法として、ベクトルの長さを1に正規化した上で、ベクトル間の関連度をベクトルの内積として算出する方法がある(たとえば、非特許文献1参照)。
【0003】
この他に、ベクトル間の関連度をユークリッド距離として算出することが一般的に行われている。
【0004】
このようにして算出した関連度の大きい順に、検索結果を提示する。
【非特許文献1】熊本睦、島田茂夫、加藤恒昭著「概念ベースの情報検索への適用―概念ベースを用いた検索の特性評価―」情報処理学会研究報告、Vol.SIG-ICS 115、pp.9-16、1999.
【発明の開示】
【発明が解決しようとする課題】
【0005】
検索キーベクトルにマッチする検索対象ベクトルを特定するにあたり、ベクトルの各座標は実数なので、上記従来手法のように、内積やユークリッド距離のような数値演算により、ベクトル間の関連度を算出している。このやり方では、全検索対象ベクトルとの関連度を算出する必要がある。
【0006】
検索対象ベクトルの数が極めて多い場合、全検索対象ベクトルとの関連度算出は時間がかかり、検索処理時間がかかるという問題があった。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明におけるベクトル検索装置は、
各座標毎に、特定の桁数の文字列が対応している近似値の集合である近似値集合が付随している近似値集合情報と、
検索対象ベクトルを入力とし、上記検索対象ベクトルの各座標の値に対し、上記座標に対応する上記近似値集合における最も差の小さい近似値を求め、上記近似値の対応する文字列を、全座標にわたって連結することにより、上記検索対象ベクトルに対応する文字列である検索対象文字列を生成し、上記検索対象文字列をキーとして、対応する上記検索対象ベクトルとともに検索インデックスに格納する検索対象文字列生成手段とを有する。
【0008】
また、検索キーベクトルを入力とし、上記検索キーベクトルの各座標の値に対し、上記座標に対応する上記近似値集合における最も差の小さい近似値を求め、上記近似値の対応する文字列を、全座標にわたって連結することにより、上記検索キーベクトルに対応する文字列である検索キー文字列を生成する検索キー文字列生成手段と、
上記検索キー文字列と、上記検索インデックス中の検索対象文字列とを文字列照合し、一致する検索対象文字列に対応付けられている検索対象ベクトルの集合を取得する文字列照合手段とをさらに併せ持つ。
【0009】
また、上記検索キーベクトルと、上記文字列照合手段で取得した検索対象ベクトルの集合の中の各検索対象ベクトルとの関連度を計算する関連度算出手段をさらに併せ持つ。
【発明の効果】
【0010】
検索対象ベクトルを検索対象文字列に変換し検索インデックスに格納し、検索キーベクトルを検索キー文字列に変換し、検索キー文字列と検索対象文字列とを文字列照合するので、検索キー文字列と一致する検索対象文字列に対応付けられている検索対象ベクトルの集合を即座に取得することができる。検索キーベクトルと近い検索対象ベクトルの集合を正確に取得はできず、近似的に近い検索対象ベクトルの集合を取得するが、全ての検索対象ベクトルとの関連度を計算する必要がないため、検索処理にかかる時間が問題とならなくなる。
【0011】
また、取得した検索対象ベクトルに対して関連度を算出するので、この関連度を利用して、ある閾値以上の関連度を持つ検索対象ベクトルを表示したり、関連度の大きい順に検索対象ベクトルをランキング表示したりできる。取得した検索対象ベクトルは少数なので、大幅に短い時間で、このような検索結果を表示することが可能となる。
【発明を実施するための最良の形態】
【0012】
発明を実施するための最良の形態は、以下の実施例である。
【実施例1】
【0013】
以下、図面とともに本発明の実施例を説明する。
【0014】
図1は、本発明の実施例におけるベクトル検索装置の構成例を示す。
【0015】
ベクトル検索装置は、各座標毎に、特定の桁数の文字列が対応している近似値の集合である近似値集合が付随している近似値集合情報を持つ。
【0016】
ここで、各座標毎の近似値集合とは、たとえば、0から0.01の倍数だけ間隔の空いた数列
{…,−0.03,−0.02,−0.01,0.00,0.01,0.02,0.03,…} …(1)
や、0から0.05の倍数だけ間隔の空いた数列
{…,−0.15,−0.10,−0.05,0.00,0.05,0.10,0.15,…} …(2)
が挙げられる。
【0017】
各近似値には、座標毎に定まる桁数の文字列が対応し、異なる近似値には異なる文字列が対応するようにする。たとえば、数列(1)、(2)の近似値には、プラスマイナスの符号と小数点以下第一位と第二位を並べた3桁の文字列とする。これにより、数列(1)、(2)中の各近似値に対応する文字列の列は、それぞれ(1)’、(2)’のようになる。
{…,−03,−02,−01,+00,+01,+02,+03,…} …(1)’
{…,−15,−10,−05,+00,+05,+10,+15,…} …(2)’
もちろん、全ての座標について、同じ近似値集合をとってもよい。
【0018】
この近似値集合情報は、それに関して定義した情報を、ファイルやメモリ、プログラムのコード中等に保持しているものとする。
【0019】
検索対象文字列生成手段11は、検索対象ベクトルを入力とし、上記検索対象ベクトルの各座標の値に対し、上記座標に対応する上記近似値集合における最も差の小さい近似値を求め、上記近似値の対応する文字列を、全座標にわたって連結することにより、上記検索対象ベクトルに対応する文字列である検索対象文字列を生成し、上記検索対象文字列をキーとして、対応する上記検索対象ベクトルとともに検索インデックス15に格納する。
【0020】
以下では、いずれの座標も、近似値とその対応文字列として(1)、(1)’をとっているものとして説明をする。
【0021】
検索対象となるベクトルは、一定次元数の、各座標値が一般に実数のベクトルである。検索対象ベクトルは、一般に複数個ある。図2のv〜vは、3次元の検索対象ベクトルの例である。
【0022】
各検索対象ベクトルに対し、以下の処理を行う。
【0023】
上記検索対象ベクトルの各座標の値に対し、上記座標に対応する上記近似値集合における最も差の小さい近似値を求める。たとえば、vについては、座標1は0.5234…なので、最も差の小さい近似値は0.52となる。このようにして、vから導出される各座標値が近似値のベクトルは、
(0.52,−0.40,0.81) …(3)
となる。
【0024】
次に、導出した各近似値の対応する文字列を、全座標にわたって連結する。(3)からは、
+52−40+81 …(4)
という文字列が得られる。このようにして得られた文字列を上記検索対象ベクトルに対応する検索対象文字列とする。
【0025】
各座標毎に、対応する文字列の桁数は定まっているので、各座標が、連結された文字列の何桁目から何桁目までに相当するかは一意に定まる。したがって、連結された文字列に対して、元の近似値ベクトルも一意に定まる。したがって、導出した連結文字列が同一である検索対象ベクトルや検索キーベクトルは、同一の近似値ベクトルを導出し、互いに近い関係にある。
【0026】
検索対象文字列をキーとして、対応する検索対象ベクトルとともに検索インデックス15に格納する。検索インデックスのキーは、たとえば、ハッシュとして実装する。この例では、(4)を検索キーとして、それに対応する検索対象ベクトルとしてvを対応付ける。
【0027】
複数の検索対象ベクトルから同一の検索対象文字列が生成された場合は、上記検索対象文字列に、生成源となった検索対象ベクトルの全てを対応付ける。図3は、図2の検索対象ベクトルをもとに生成された検索インデックスである。v、v、vから(4)が生成されたので、(4)には、v、v、vが対応付けられている。
【0028】
検索キー文字列生成手段12は、検索キーベクトルを入力とし、上記検索キーベクトルの各座標の値に対し、上記座標に対応する上記近似値集合における最も差の小さい近似値を求め、上記近似値の対応する文字列を、全座標にわたって連結することにより、上記検索キーベクトルに対応する文字列である検索キー文字列を生成する。
【0029】
検索キーとなるベクトルは、検索対象ベクトルと同一次元数の、各座標値が一般に実数のベクトルである。図4のqは、検索キーベクトルの例である。
【0030】
検索キー文字列生成手段12の処理は、検索対象文字列生成手段11における文字列生成と同じである。図4のqから導出される各座標値が近似値のベクトルは(3)となり、(3)から検索キー文字列として(4)が得られる。
【0031】
検索キー文字列生成手段12をなくし、検索キー文字列生成手段12の処理を、検索対象文字列生成手段11における文字列生成処理で行うという構成にすることも可能である。
【0032】
文字列照合手段13は、上記検索キー文字列と、上記検索インデックス15中の検索対象文字列とを文字列照合し、一致する検索対象文字列に対応付けられている検索対象ベクトルの集合を取得する。
【0033】
検索キー文字列としての(4)は、検索インデックス中の検索対象文字列の(4)と一致するので、対応する検索対象ベクトルv、v、vが得られる。
【0034】
関連度算出手段14は、上記検索キーベクトルと、上記文字列照合手段13で取得した検索対象ベクトルの集合の中の各検索対象ベクトルとの関連度を計算する。この関連度を利用して、ある閾値以上の関連度を持つ検索対象ベクトルを表示したり、関連度の大きい順に検索対象ベクトルをランキング表示したりすることも可能である。
【0035】
図4のqと、取得した検索対象ベクトルv、v、vそれぞれとの関連度を、たとえば、両ベクトル間のユークリッド距離として算出する。図5は、距離の小さい順に、検索対象ベクトルを対応する距離値とともに表示したものである。
【0036】
つまり、上記実施例は、各座標毎に、特定の桁数の文字列が対応している近似値の集合である近似値集合が付随している近似値集合情報と、検索対象ベクトルを入力とし、上記検索対象ベクトルの各座標の値に対し、上記座標に対応する上記近似値集合における最も差の小さい近似値を求め、上記近似値の対応する文字列を、全座標にわたって連結することにより、上記検索対象ベクトルに対応する文字列である検索対象文字列を生成し、上記検索対象文字列をキーとして、対応する上記検索対象ベクトルとともに検索インデックスに格納する検索対象文字列生成手段とを有することを特徴とするベクトル検索装置の例である。
【0037】
この場合、検索キーベクトルを入力とし、上記検索キーベクトルの各座標の値に対し、上記座標に対応する上記近似値集合における最も差の小さい近似値を求め、上記近似値の対応する文字列を、全座標にわたって連結することにより、上記検索キーベクトルに対応する文字列である検索キー文字列を生成する検索キー文字列生成手段と、上記検索キー文字列と、上記検索インデックス中の検索対象文字列とを文字列照合し、一致する検索対象文字列に対応付けられている検索対象ベクトルの集合を取得する文字列照合手段とを有する。
【0038】
また、上記検索対象文字列生成手段が、検索キーベクトルを入力とし、上記検索キーベクトルの各座標の値に対し、上記座標に対応する上記近似値集合における最も差の小さい近似値を求め、上記近似値の対応する文字列を、全座標にわたって連結することにより、上記検索キーベクトルに対応する文字列である検索キー文字列を生成し、上記検索キー文字列と、上記検索インデックス中の検索対象文字列とを文字列照合し、一致する検索対象文字列に対応付けられている検索対象ベクトルの集合を取得する文字列照合手段を有する。
【0039】
さらに、上記検索キーベクトルと、上記文字列照合手段で取得した検索対象ベクトルの集合の中の各検索対象ベクトルとの関連度を計算する関連度算出手段を有する。
【0040】
また、上記実施例を方法の発明として把握することができる。つまり、上記実施例は、各座標毎に、特定の桁数の文字列が対応している近似値の集合である近似値集合が付随している近似値集合情報と、検索対象文字列生成手段が、検索対象ベクトルを入力とし、上記検索対象ベクトルの各座標の値に対し、上記座標に対応する上記近似値集合における最も差の小さい近似値を求め、上記近似値の対応する文字列を、全座標にわたって連結することにより、上記検索対象ベクトルに対応する文字列である検索対象文字列を生成し、上記検索対象文字列をキーとして、対応する上記検索対象ベクトルとともに検索インデックスに格納する検索対象文字列生成工程とを有することを特徴とするベクトル検索方法の例である。
【0041】
この場合、検索キー文字列生成手段が、検索キーベクトルを入力とし、上記検索キーベクトルの各座標の値に対し、上記座標に対応する上記近似値集合における最も差の小さい近似値を求め、上記近似値の対応する文字列を、全座標にわたって連結することにより、上記検索キーベクトルに対応する文字列である検索キー文字列を生成し、記憶装置に記憶する検索キー文字列生成工程と、文字列照合手段が、上記検索キー文字列と、上記検索インデックス中の検索対象文字列とを文字列照合し、一致する検索対象文字列に対応付けられている検索対象ベクトルの集合を取得し、記憶装置に記憶する文字列照合工程とを有する。
【0042】
また、上記検索対象文字列生成手段が、検索キーベクトルを入力とし、上記検索キーベクトルの各座標の値に対し、上記座標に対応する上記近似値集合における最も差の小さい近似値を求め、上記近似値の対応する文字列を、全座標にわたって連結することにより、上記検索キーベクトルに対応する文字列である検索キー文字列を生成し、記憶装置に記憶し、文字列照合手段が、上記検索キー文字列と、上記検索インデックス中の検索対象文字列とを文字列照合し、一致する検索対象文字列に対応付けられている検索対象ベクトルの集合を取得し、記憶装置に記憶する文字列照合工程を有する。
【0043】
さらに、上記検索キーベクトルと、上記文字列照合手段で取得した検索対象ベクトルの集合の中の各検索対象ベクトルとの関連度を、関連度算出手段が計算し、記憶装置に記憶する関連度算出工程を有する。
【0044】
また、上記ベクトル検索装置を構成する上記各手段としてコンピュータを機能させるプログラムを想定することができる。この場合、上記の実施の形態における処理をプログラムとして構築し、上記プログラムを通信回線または記憶媒体からインストールし、CPU等の手段で実施することが可能である。
【0045】
しかも、上記プログラムをコンピュータ読取可能な記録媒体に記録するようにしてもよい。この場合、CD、DVD、ハードディスク、光ディスク、光磁気ディスク、半導体メモリ等の記録媒体に記録するようにしてもよい。
【0046】
また、本発明は、上記実施の形態に限定されることなく、特許請求の範囲内において種々変更・応答が可能である。
【産業上の利用可能性】
【0047】
本発明は、ベクトルを使用する文書検索技術や画像検索技術に適用可能である。
【図面の簡単な説明】
【0048】
【図1】本発明の実施例におけるベクトル検索装置100の構成例を示す。
【図2】3次元の検索対象ベクトルの例を示す図である。
【図3】図2の検索対象ベクトルをもとに生成された検索インデックス15の例を示す図である。
【図4】検索キーベクトルの例を示す図である。
【図5】距離の小さい順に、検索対象ベクトルを対応する距離値とともに表示したものである。
【符号の説明】
【0049】
100…ベクトル検索装置、
11…検索対象文字列生成手段、
12…検索キー文字列生成手段、
13…文字列照合手段、
14…関連度算出手段、
15…検索インデックス。

【特許請求の範囲】
【請求項1】
各座標毎に、特定の桁数の文字列が対応している近似値の集合である近似値集合が付随している近似値集合情報と、
検索対象ベクトルを入力とし、上記検索対象ベクトルの各座標の値に対し、上記座標に対応する上記近似値集合における最も差の小さい近似値を求め、上記近似値の対応する文字列を、全座標にわたって連結することにより、上記検索対象ベクトルに対応する文字列である検索対象文字列を生成し、上記検索対象文字列をキーとして、対応する上記検索対象ベクトルとともに検索インデックスに格納する検索対象文字列生成手段とを有することを特徴とするベクトル検索装置。
【請求項2】
請求項1において、
検索キーベクトルを入力とし、上記検索キーベクトルの各座標の値に対し、上記座標に対応する上記近似値集合における最も差の小さい近似値を求め、上記近似値の対応する文字列を、全座標にわたって連結することにより、上記検索キーベクトルに対応する文字列である検索キー文字列を生成する検索キー文字列生成手段と、
上記検索キー文字列と、上記検索インデックス中の検索対象文字列とを文字列照合し、一致する検索対象文字列に対応付けられている検索対象ベクトルの集合を取得する文字列照合手段とを有することを特徴とするベクトル検索装置。
【請求項3】
請求項1において、
上記検索対象文字列生成手段が、検索キーベクトルを入力とし、上記検索キーベクトルの各座標の値に対し、上記座標に対応する上記近似値集合における最も差の小さい近似値を求め、上記近似値の対応する文字列を、全座標にわたって連結することにより、上記検索キーベクトルに対応する文字列である検索キー文字列を生成し、
上記検索キー文字列と、上記検索インデックス中の検索対象文字列とを文字列照合し、一致する検索対象文字列に対応付けられている検索対象ベクトルの集合を取得する文字列照合手段を有することを特徴とするベクトル検索装置。
【請求項4】
請求項2または請求項3において、
上記検索キーベクトルと、上記文字列照合手段で取得した検索対象ベクトルの集合の中の各検索対象ベクトルとの関連度を計算する関連度算出手段を有することを特徴とするベクトル検索装置。
【請求項5】
各座標毎に、特定の桁数の文字列が対応している近似値の集合である近似値集合が付随している近似値集合情報と、
検索対象文字列生成手段が、検索対象ベクトルを入力とし、上記検索対象ベクトルの各座標の値に対し、上記座標に対応する上記近似値集合における最も差の小さい近似値を求め、上記近似値の対応する文字列を、全座標にわたって連結することにより、上記検索対象ベクトルに対応する文字列である検索対象文字列を生成し、上記検索対象文字列をキーとして、対応する上記検索対象ベクトルとともに検索インデックスに格納する検索対象文字列生成工程とを有することを特徴とするベクトル検索方法。
【請求項6】
請求項5において、
検索キー文字列生成手段が、検索キーベクトルを入力とし、上記検索キーベクトルの各座標の値に対し、上記座標に対応する上記近似値集合における最も差の小さい近似値を求め、上記近似値の対応する文字列を、全座標にわたって連結することにより、上記検索キーベクトルに対応する文字列である検索キー文字列を生成し、記憶装置に記憶する検索キー文字列生成工程と、
文字列照合手段が、上記検索キー文字列と、上記検索インデックス中の検索対象文字列とを文字列照合し、一致する検索対象文字列に対応付けられている検索対象ベクトルの集合を取得し、記憶装置に記憶する文字列照合工程とを有することを特徴とするベクトル検索方法。
【請求項7】
請求項5において、
上記検索対象文字列生成手段が、検索キーベクトルを入力とし、上記検索キーベクトルの各座標の値に対し、上記座標に対応する上記近似値集合における最も差の小さい近似値を求め、上記近似値の対応する文字列を、全座標にわたって連結することにより、上記検索キーベクトルに対応する文字列である検索キー文字列を生成し、記憶装置に記憶し、
文字列照合手段が、上記検索キー文字列と、上記検索インデックス中の検索対象文字列とを文字列照合し、一致する検索対象文字列に対応付けられている検索対象ベクトルの集合を取得し、記憶装置に記憶する文字列照合工程を有することを特徴とするベクトル検索方法。
【請求項8】
請求項6または請求項7において、
上記検索キーベクトルと、上記文字列照合手段で取得した検索対象ベクトルの集合の中の各検索対象ベクトルとの関連度を、関連度算出手段が計算し、記憶装置に記憶する関連度算出工程を有することを特徴とするベクトル検索方法。
【請求項9】
請求項1〜請求項4のいずれか1項に記載のベクトル検索装置を構成する各手段としてコンピュータを機能させるプログラム。
【請求項10】
請求項9記載のプログラムを記録したコンピュータ読取可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate