IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 東芝メモリ株式会社の特許一覧

特開2024-98428情報処理装置、情報処理システム、及び情報処理方法
<>
  • 特開-情報処理装置、情報処理システム、及び情報処理方法 図1
  • 特開-情報処理装置、情報処理システム、及び情報処理方法 図2
  • 特開-情報処理装置、情報処理システム、及び情報処理方法 図3
  • 特開-情報処理装置、情報処理システム、及び情報処理方法 図4
  • 特開-情報処理装置、情報処理システム、及び情報処理方法 図5
  • 特開-情報処理装置、情報処理システム、及び情報処理方法 図6
  • 特開-情報処理装置、情報処理システム、及び情報処理方法 図7
  • 特開-情報処理装置、情報処理システム、及び情報処理方法 図8
  • 特開-情報処理装置、情報処理システム、及び情報処理方法 図9
  • 特開-情報処理装置、情報処理システム、及び情報処理方法 図10
  • 特開-情報処理装置、情報処理システム、及び情報処理方法 図11
  • 特開-情報処理装置、情報処理システム、及び情報処理方法 図12
  • 特開-情報処理装置、情報処理システム、及び情報処理方法 図13
  • 特開-情報処理装置、情報処理システム、及び情報処理方法 図14
  • 特開-情報処理装置、情報処理システム、及び情報処理方法 図15
  • 特開-情報処理装置、情報処理システム、及び情報処理方法 図16
  • 特開-情報処理装置、情報処理システム、及び情報処理方法 図17
  • 特開-情報処理装置、情報処理システム、及び情報処理方法 図18
  • 特開-情報処理装置、情報処理システム、及び情報処理方法 図19
  • 特開-情報処理装置、情報処理システム、及び情報処理方法 図20
  • 特開-情報処理装置、情報処理システム、及び情報処理方法 図21
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024098428
(43)【公開日】2024-07-23
(54)【発明の名称】情報処理装置、情報処理システム、及び情報処理方法
(51)【国際特許分類】
   G06F 16/901 20190101AFI20240716BHJP
【FI】
G06F16/901
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023001950
(22)【出願日】2023-01-10
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】石山 清志
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA10
5B175KA07
(57)【要約】      (修正有)
【課題】検索精度の低下を抑制し、かつ、レイテンシを下げるための情報処理装置、システム及び方法を提供する。
【解決手段】情報処理システム1において、情報処理装置10は、クエリを受信すると、複数の代表ベクトルの夫々とクエリとの距離に基づいて、ストレージ装置からメモリに転送する複数の選択ポスティングリストを決定するポスティングリスト決定部103、ストレージ装置20に選択ポスティングリストの転送を要求し、選択ポスティングリストを受信する度に、受信した選択ポスティングリストに含まれた複数のベクトルの夫々とクエリとの距離を計算するポスティングリスト受信部104、計算の結果に基づいて転送中止条件が満たされたか否かを判定し、転送中止条件が満たされた場合に、後続の選択ポスティングリストの受信を中止する中止処理部105及び計算の結果に基づいて近傍ベクトルを決定し外部へ出力する近傍ベクトル決定部106を備える。
【選択図】図7
【特許請求の範囲】
【請求項1】
各々が複数のベクトルを格納する複数のポスティングリストを記憶するように構成されたストレージ装置を利用して、前記複数のポスティングリストにそれぞれ関連付けられた複数の代表ベクトルに基づいて、クエリに対する回答を出力するように構成された情報処理装置であって、
前記ストレージ装置と異なるメモリと、
前記ストレージ装置及び前記メモリを制御するように構成されたプロセッサと、を備え、
前記プロセッサは、前記クエリを受信すると、
前記複数の代表ベクトルのそれぞれと前記クエリとの距離に基づいて、前記複数のポスティングリストのうち前記ストレージ装置から前記メモリに転送する対象である複数の選択ポスティングリストを決定し、
前記ストレージ装置に少なくとも1つの選択ポスティングリストの転送要求を送信し、
選択ポスティングリストを受信する度に、受信した選択ポスティングリストに含まれた複数のベクトルのそれぞれと前記クエリとの距離を計算し、
前記計算の結果に基づいて転送中止条件が満たされたか否かを判定し、
前記転送中止条件が満たされなかった場合に、後続の選択ポスティングリストの受信を継続し、
前記転送中止条件が満たされた場合に、前記後続の選択ポスティングリストの受信を中止し、
前記受信を中止した後に、受信済みの選択ポスティングリストに含まれた少なくとも1つのベクトルを前記回答として出力する、
情報処理装置。
【請求項2】
前記少なくとも1つの選択ポスティングリストの転送要求は、前記複数の選択ポスティングリストのうち少なくとも1つを対象とし、
前記プロセッサは、前記転送中止条件が満たされた場合に、前記ストレージ装置に対して前記後続の選択ポスティングリストの転送中止を指示する、
請求項1に記載の情報処理装置。
【請求項3】
前記プロセッサは、
前記複数の選択ポスティングリストを複数のグループに分類し、
前記少なくとも1つの選択ポスティングリストの転送要求と、前記転送中止条件が満たされたか否かの判定とのそれぞれを、グループ単位で実行し、
前記転送中止条件が満たされなかった場合に、前記ストレージ装置に対して次のグループの選択ポスティングリストの転送要求を送信し、
前記転送中止条件が満たされた場合に、前記ストレージ装置に対する前記次のグループの選択ポスティングリストの転送要求の送信を中止し、
前記転送要求の送信を中止した後に、受信済みの選択ポスティングリストに含まれた少なくとも1つのベクトルを前記回答として出力する、
請求項1に記載の情報処理装置。
【請求項4】
前記転送中止条件は、前記受信済みの選択ポスティングリストに含まれたベクトルの総数が、第1の閾値を超えたか否かを含む、
請求項1に記載の情報処理装置。
【請求項5】
前記転送中止条件は、前記受信済みの選択ポスティングリストに含まれた複数のベクトルのそれぞれと前記クエリとの最短距離が、第2の閾値よりも小さいか否かを含む、
請求項1に記載の情報処理装置。
【請求項6】
前記プロセッサは、選択ポスティングリストを受信する度に、受信した選択ポスティングリスト含まれた複数のベクトルの統計情報を計算し、
前記転送中止条件は、前記受信済みの選択ポスティングリストに含まれた複数のベクトルのそれぞれと前記クエリとの最短距離と、前記統計情報の計算結果との関係性に基づいて設定される、
請求項1に記載の情報処理装置。
【請求項7】
前記転送中止条件は、前記受信済みの選択ポスティングリストに含まれた複数のベクトルのそれぞれと前記クエリとの最短距離が、前記受信済みの選択ポスティングリストに含まれた前記複数のベクトルのそれぞれと前記クエリとの距離の平均から所定の範囲内であるか否かである、
請求項6に記載の情報処理装置。
【請求項8】
前記代表ベクトルは、関連付けられたポスティングリストに含まれた複数のベクトルの重心に対応する、
請求項1に記載の情報処理装置。
【請求項9】
請求項1に記載の情報処理装置と、
前記ストレージ装置と、を備える、
情報処理システム。
【請求項10】
各々が複数のベクトルを格納する複数のポスティングリストを記憶するように構成されたストレージ装置を利用して、前記複数のポスティングリストにそれぞれ関連付けられた複数の代表ベクトルに基づいて、クエリに対する回答を出力する情報処理方法であって、
前記クエリを受信することと、
前記複数のポスティングリストにそれぞれ関連付けられた複数の代表ベクトルのそれぞれと前記クエリとの距離に基づいて、前記複数のポスティングリストのうち前記ストレージ装置からメモリに転送する対象である複数の選択ポスティングリストを決定することと、
前記ストレージ装置に少なくとも1つの選択ポスティングリストの転送要求を送信することと、
選択ポスティングリストが受信される度に、受信された選択ポスティングリスト含まれた複数のベクトルのそれぞれと前記クエリとの距離を計算することと、
前記計算の結果に基づいて転送中止条件が満たされたか否かを判定することと、
前記転送中止条件が満たされなかった場合に、後続の選択ポスティングリストの受信を継続することと、
前記転送中止条件が満たされた場合に、前記後続の選択ポスティングリストの受信を中止することと、
前記受信を中止した後に、受信済みの選択ポスティングリストに含まれた少なくとも1つのベクトルを前記回答として出力することと、
を備える、情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
実施形態は、情報処理装置、情報処理システム、及び情報処理方法に関する。
【背景技術】
【0002】
非構造化データから所望のデータを検索する技術の一種として、近似最近傍探索と呼ばれる技術が知られている。近似最近傍探索は、検索データをメモリ上に置き、クエリに近いベクトルを検索する手法である。近似最近傍探索は、クエリに対する厳密な近傍点を求めず、クエリと近傍点の候補との間の距離の近似計算を実行する。また、検索データ量の増加やメモリコストの増大に伴い、検索データの一部が、メモリよりも大容量のストレージ装置に格納された状態で実行される近似最近傍探索の手法が提案されている。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Qi Chen,外7名,“SPANN:Highly-efficient Billion-scale Approximate Nearest Neighbor Serch”,[Online],令和3年12月8日,NeurIPS2021,[令和4年12月26日検索],インターネット<URL:https://www.microsoft.com/en-us/research/uploads/prod/2021/11/SPANN_finalversion1.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0004】
検索精度の低下を抑制し且つレイテンシを下げることが可能な情報処理装置、情報処理システム、及び情報処理方法を提供すること。
【課題を解決するための手段】
【0005】
実施形態の情報処理装置は、各々が複数のベクトルを格納する複数のポスティングリストを記憶するように構成されたストレージ装置を利用して、複数のポスティングリストにそれぞれ関連付けられた複数の代表ベクトルに基づいて、クエリに対する回答を出力するように構成される。情報処理装置は、ストレージ装置と異なるメモリと、ストレージ装置及びメモリを制御するように構成されたプロセッサと、を含む。プロセッサは、クエリを受信すると、複数の代表ベクトルのそれぞれとクエリとの距離に基づいて、複数のポスティングリストのうちストレージ装置からメモリに転送する対象である複数の選択ポスティングリストを決定し、ストレージ装置に少なくとも1つの選択ポスティングリストの転送要求を送信する。プロセッサは、選択ポスティングリストを受信する度に、受信した選択ポスティングリスト含まれた複数のベクトルのそれぞれとクエリとの距離を計算する。プロセッサは、計算の結果に基づいて転送中止条件が満たされたか否かを判定し、転送中止条件が満たされなかった場合に、後続の選択ポスティングリストの受信を継続し、転送中止条件が満たされた場合に、後続の選択ポスティングリストの受信を中止し、受信を中止した後に、受信済みの選択ポスティングリストに含まれた少なくとも1つのベクトルを前記回答として出力する。
【図面の簡単な説明】
【0006】
図1】ストレージ装置の使用を前提とした近似最近傍探索の概要を示す概略図。
図2】ストレージ装置の使用を前提とした近似最近傍探索の一例を示す模式図。
図3】ストレージ装置の使用を前提とした近似最近傍探索の処理シーケンスの一例を示すシーケンス図。
図4】第1実施形態に係る情報処理システムの構成の一例を示すブロック図。
図5】第1実施形態に係る情報処理システムが備える情報処理装置のハードウェア構成の一例を示すブロック図。
図6】第1実施形態に係る情報処理システムが備えるストレージ装置のハードウェア構成の一例を示すブロック図。
図7】第1実施形態に係る情報処理システムの機能構成の一例を示すブロック図。
図8】第1実施形態に係る情報処理システムにおける探索動作の一例を示すフローチャート。
図9】第1実施形態に係る情報処理システムの探索動作において受信したポスティングリスト数と距離との関係性の一例を示すグラフ。
図10】第1実施形態に係る情報処理システムにおける探索動作の処理シーケンスの一例を示すシーケンス図。
図11】第2実施形態に係る情報処理システムの機能構成の一例を示すブロック図。
図12】第2実施形態に係る情報処理システムにおける探索動作の一例を示すフローチャート。
図13】第2実施形態に係る情報処理システムにおける探索動作の処理シーケンスの一例を示すシーケンス図。
図14】第3実施形態に係る情報処理システムの機能構成の一例を示すブロック図。
図15】第3実施形態に係る情報処理システムにおける探索動作の一例を示すフローチャート。
図16】第4実施形態に係る情報処理システムの機能構成の一例を示すブロック図。
図17】第4実施形態に係る情報処理システムにおける探索動作の一例を示すフローチャート。
図18】第5実施形態に係る情報処理システムの機能構成の一例を示すブロック図。
図19】第5実施形態に係る情報処理システムにおける探索動作の一例を示すフローチャート。
図20】第5実施形態に係る情報処理システムの探索動作におけるポスティングリスト受信時の距離の分布の第1例を示す分布図。
図21】第5実施形態に係る情報処理システムの探索動作におけるポスティングリスト受信時の距離の分布の第2例を示す分布図。
【発明を実施するための形態】
【0007】
以下に、各実施形態について図面を参照して説明する。各実施形態は、発明の技術的思想を具体化するための装置や方法を例示している。図面は、模式的又は概念的なものである。略同一の機能及び構成を有する構成要素には、同一の符号が付加されている。参照符号に付加された数字やアルファベットなどは、同じ参照符号により参照され、且つ類似した要素同士を区別するために使用される。
【0008】
<0>近似最近傍探索の概要
HDD(Hard Disk Drive)やSSD(Solid State Drive)などのストレージ装置の使用を前提とした近似最近傍探索の一種として、SPANN(Highly-efficient Billion-scale Approximate Nearest Neighbor Search)が提案されている。以下に、ストレージ装置の使用を前提とした近似最近傍探索の一例として、SPANNの概要について説明する。
【0009】
なお、本明細書における“検索データ”は、クエリに基づいて実行される近似最近傍探索における検索対象のデータに対応する。“データ”は、例えば、構造化されている構造化データと、構造化されていない非構造化データとに区別される。“構造化データ”は、列と行の概念を持つデータである。構造化データは、構造化されているため、検索、集計、比較などが容易であり、データの解析や分析に適している。非構造化データは、例えば、eメール、提案書、企画書、見積書、発注書、契約書などのオフィス文書データや、画像データや、動画データや、音声データや、センサーログなどである。本明細書における検索データは、非構造化データに対応し、ベクトル情報に変換され得る。ベクトル情報は、単に“ベクトル”と呼ばれてもよい。“正解ベクトル”は、クエリ(クエリベクトル)の近傍のベクトルに対応する。正解ベクトルは、クエリからの距離に基づいて設定される。
【0010】
図1は、ストレージ装置の利用を前提とした近似最近傍探索の概要を示す概略図である。図1は、SPANNにおいてストレージ装置に格納される検索データの構造と、クエリとの関係性とを例示している。図1に示すように、SPANNでは、検索データに対応する複数のベクトル情報VIがクラスタリングされ、複数のポスティングリストPLに割り当てられる。つまり、ポスティングリストPLは、複数のベクトル情報VIが格納された転置インデックスである。そして、各ポスティングリストPLには、代表ベクトルRVが関連付けられる。代表ベクトルRVとしては、例えば、関連付けられたポスティングリストPLに含まれた複数のベクトル情報VIの重心ベクトルなどが使用される。各ポスティングリストPLのそれぞれの代表ベクトルRVは、グラフやツリー構造に格納され得る。
【0011】
具体的には、検索データに対応する複数のベクトル情報VIは、クラスタリングされることによって、複数のポスティングリストPL1~PLn(nは2以上の整数)に分割される。ポスティングリストPL1は、代表ベクトルRV1と、複数のベクトル情報VI1を有する。例えば、代表ベクトルRV1は、複数のベクトル情報VI1の重心ベクトルである。ポスティングリストPL2は、代表ベクトルRV2と、複数のベクトル情報VI2を有する。例えば、代表ベクトルRV2は、複数のベクトル情報VI2の重心ベクトルである。ポスティングリストPLnは、複数のベクトル情報VInを含む。例えば、代表ベクトルRVnは、複数のベクトル情報VInの重心ベクトルである。各ベクトル情報VIは、異なる非構造化データに対応づけられている。各ポスティングリストPLに含まれたベクトル情報VIの数は、同じであってもよいし、異なっていてもよい。
【0012】
SPANNでは、検索に使用されるインデックスがメモリ上に配置される。検索に使用されるインデックスは、複数のポスティングリストPLのそれぞれの代表ベクトルRVを含む。検索したいクエリが入力されると、メモリ上のインデックスを対象として一段目の探索が実行される。以下では、ストレージ装置の利用を前提とした近似最近傍探索における一段目の探索のことを、“第1探索処理”と呼ぶ。第1探索処理は、複数の代表ベクトルRVの中からクエリベクトルQVに近い代表ベクトルRVを検索する処理である。具体的には、検索したいクエリが入力されると、入力されたクエリに対応するクエリベクトルQVと、複数のポスティングリストPLのそれぞれの代表ベクトルRVとの距離Dの計算が実行される。そして、n個の代表ベクトルRVのうち、例えば、クエリベクトルQVに近い方からL個(Lは1以上の整数))分の代表ベクトルRVが選択される。
【0013】
その後、選択されたL個の代表ベクトルRVにそれぞれ対応するL個のポスティングリストPLが、メモリに転送される。すなわち、第1探索処理の結果に基づいて、近似最近傍探索に必要なデータが、ストレージ装置からメモリに転送される。それから、メモリに転送されたデータを対象として、二段目の探索が実行される。以下では、ストレージ装置の利用を前提とした近似最近傍探索における二段目の探索のことを、“第2探索処理”と呼ぶ。第2探索処理は、メモリに転送されたL個のポスティングリストPL内のベクトル情報VIの中からクエリベクトルQVに近いベクトル情報VIを検索する処理である。具体的には、クエリベクトルQVと、メモリに転送されたL個のポスティングリストPLのそれぞれに含まれた複数のベクトル情報VIとの距離Dの計算が実行される。そして、L個のポスティングリストPL内の複数のベクトル情報VIのうち、例えば、クエリベクトルQVに最も近いベクトル情報VIが、近傍ベクトルとして選択される。
【0014】
ストレージ装置を利用した近似最近傍探索は、第1探索処理において選択されるポスティングリストPLの数(すなわち、Lの数)を増やすことによって、探索精度を向上させることができる。しかし、第1探索処理においてLの数が多くなると、ポスティングリストPLをストレージ装置からメモリに転送する時間が長くなる。つまり、Lが小さい場合、ストレージ装置からメモリに転送するデータ量が少なくなるため、探索精度が悪化するが、レイテンシは短くなる。一方で、Lが大きい場合、ストレージ装置からメモリに転送するデータ量が多くなるため、探索精度が向上するが、レイテンシは長くなる。このように、ストレージ装置を利用した近似最近傍探索において、探索精度とレイテンシとは、トレードオフの関係を有する。
【0015】
また、探索精度を維持するために検索するべきポスティングリストPLの数は、クエリベクトルQVの特徴(値)によって異なる。例えば、あるクエリでは、数個のポスティングリストPLを検索することによって、十分な探索精度が得られる。一方で、別のクエリでは、数十個のポスティングリストPLを検索しなければ近傍ベクトルを見つけることができない場合がある。つまり、クエリ毎に固定された数のポスティングリストPLが検索される場合、過剰な数のポスティングリストPLの転送によって、必要以上にレイテンシが長くなるおそれや、不足した数のポスティングリストPLの転送によって、探索精度が要求されるレベルに到達しないおそれがある。
【0016】
数個のポスティングリストPLを検索することによって十分な探索精度が得られる場合、検索するポスティングリストPLの数を減少させることが好ましい。数十個のポスティングリストPLを検索することによって十分な探索精度が得られる場合、検索するポスティングリストPLの数を増加させることが好ましい。
【0017】
図2は、ストレージ装置の利用を前提とした近似最近傍探索の一例を示す模式図である。図2は、クエリベクトルQVと代表ベクトルRVとの距離Dの分布に基づいて、第2探索処理の対象とするポスティングリストPLの数を動的に減らす手法の一例である。図2に示された一例では、まず、第1探索処理によって、SIRN(Search Internal Result Num)個のポスティングリストPLが検索され、クエリベクトルQVと各ポスティングリストPLの代表ベクトルRVとの距離Dが計算される。
【0018】
ここで、一番近い代表ベクトルRVとの距離DがDminとする。本例では、Dmin×(1+ε)の距離Dに入っているポスティングリストPLのみがストレージ装置からメモリに転送され、第2探索処理が実行される。εは、事前に設定され、探索精度の調整に使用されるパラメータである。図2では、Dminと(1+ε)とに基づいて選択されたポスティングリストPLの数に対応する部分が、“NPL”により示されている。これにより、本例では、探索精度の低下を抑制しつつ転送するポスティングリストPLの数が削減され、レイテンシが短くなり得る。
【0019】
しかしながら、各ポスティングリストPLの代表ベクトルRVは、ポスティングリストPLに含まれるベクトル情報VIに基づいて構成される。また、クエリベクトルQVに近い代表ベクトルRVを有するポスティングリストPLは、必ずしも正解ベクトルを含むとは限らない。すなわち、Dminと、正解ベクトルを含むポスティングリストPLとの相関は小さい。このため、メモリに転送するポスティングリストPLの数を計算するタイミングにおいて分かっている代表ベクトルRVの情報だけでは、メモリに転送することが好ましいポスティングリストPLの数(最適PL数)が分からない。従って、(1+ε)が大きめに設定されなければ、正解ベクトルが見落とされるおそれがある。また、本例では、クエリベクトルQVの特性に応じて(1+ε)を変更することができない。
【0020】
図3は、近似最近傍探索の処理シーケンスの一例を示すシーケンス図である。図3は、第1探索処理により選択された6つのポスティングリストPL(1)~PL(6)がストレージ装置からメモリ(プロセッサ)に転送されるシーケンスを示している。図3に示すように、プロセッサは、クエリベクトルQVを受信すると、第1探索処理を実行し、第1探索処理の結果に基づいて、Dmin及び(1+ε)に基づいた数のポスティングリストPLの転送をストレージ装置に要求をする(転送要求)。
【0021】
すると、ストレージ装置は、プロセッサから受信した転送要求に基づいて、ポスティングリストPL(1)~PL(6)をプロセッサに順次転送する。プロセッサは、ストレージ装置からポスティングリストPLを受信すると、受信したポスティングリストPLに含まれた複数のベクトル情報VIを対象とした第2探索処理を実行する。そして、プロセッサは、ポスティングリストPL(1)~PL(6)のそれぞれの第2探索処理の結果に基づいて近傍ベクトルNVを決定し、決定した近傍ベクトルNVをクエリに対する回答として出力する。
【0022】
本例では、第2探索処理が、第1探索処理により選択された全てのポスティングリストPLに対して実行され、近傍ベクトルNVが探索される。ここで、ポスティングリストPL(3)が正解ベクトルを含み(正解検出)、ポスティングリストPL(1)~(4)が、最適PL数に対応する場合について考える。この場合、ポスティングリストPL(4)がストレージ装置からプロセッサに転送された後に転送されるポスティングリストPL(5)及びPL(6)は、探索精度の向上への寄与が小さく、レイテンシ低下の要因となり得る。このように、ストレージ装置を利用した近似最近傍探索において、探索精度とレイテンシとを両立するためには、ストレージ装置から転送し検索に使うポスティングリストPLの数をクエリ毎に適切に決定することが重要である。
【0023】
<1>第1実施形態
第1実施形態に係る情報処理システム1は、ストレージ装置の利用を前提とした近似最近傍探索を実行可能に構成される。そして、情報処理システム1は、第1探索処理に基づいたポスティングリストPLの転送を、所定の条件に応じて中止できるように構成される。以下に、第1実施形態に係る情報処理システム1の詳細について説明する。以下では、情報処理システム1により実行される近似最近傍探索のことを、“探索動作”と呼ぶ。
【0024】
<1-1>情報処理システム1の構成
図4は、第1実施形態に係る情報処理システム1の構成の一例を示すブロック図である。図4に示すように、情報処理システム1は、例えば、情報処理装置10、及びストレージ装置20を備える。
【0025】
情報処理装置10は、外部から受信したクエリに基づいて探索動作を実行するように構成されたコンピュータである。情報処理装置10は、探索動作において、第1探索処理と、ストレージ装置20に対するポスティングリストPLの転送要求と、第2探索処理とを実行する。そして、情報処理装置10は、探索動作により決定されたベクトル情報VIを回答として外部に出力する。このように、情報処理装置10は、クエリに対する回答を検索する際に、ストレージ装置20に記憶された情報を参照する。
【0026】
ストレージ装置20は、データを不揮発に記憶することが可能な記憶媒体である。ストレージ装置20は、探索動作に関連付けられた検索データを記憶する。また、ストレージ装置20は、検索データに基づく複数のポスティングリストPLを記憶する。ストレージ装置20としては、様々な記憶媒体が使用され得る。ストレージ装置20は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)などである。
【0027】
なお、情報処理システム1は、複数のストレージ装置20を備えていてもよい。情報処理システム1は、例えば、スマートフォン、携帯電話端末、デスクトップ型パソコン、ラップトップ型パソコンなどである。情報処理装置10は、ネットワークに接続されたサーバであってもよい。複数のストレージ装置20が、情報処理装置10に直接又は間接的に接続されてもよい。情報処理装置10とストレージ装置20との間の通信は、有線通信と無線通信とのいずれであってもよいし、ネットワークを介していてもよい。
【0028】
<1-1-1>情報処理システム1のハードウェア構成
(情報処理装置10のハードウェア構成)
図5は、第1実施形態に係る情報処理システム1が備える情報処理装置10のハードウェア構成の一例を示すブロック図である。図5に示すように、情報処理装置10は、例えば、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、入出力回路14、及び通信インターフェース(通信I/F)15を備える。
【0029】
CPU11は、情報処理装置10の制御に関する様々なプログラムを実行するように構成されたプロセッサである。ROM12は、情報処理装置10の制御プログラムを記憶するように構成された不揮発性の記憶装置である。RAM13は、CPU11の作業領域として使用される揮発性の記憶装置である。RAM13は、例えばSRAMやDRAMである。入出力回路14は、情報処理装置10に入力される信号と、情報処理装置10から出力される信号とを取り扱う回路である。例えば、入出力回路14には、クエリが入力される。そして、入出力回路14から、クエリに対する回答が出力される。入出力回路14は、クエリに基づいてクエリベクトルQVを生成するエンコーダを有していてもよい。通信インターフェース15は、ストレージ装置20との通信に使用されるインターフェース回路である。なお、情報処理装置10は、第1探索処理と第2探索処理とのそれぞれを実行する際に、RAM13に記憶(展開)されたデータを利用する。RAM13は、単に“メモリ”とよばれてもよい。
【0030】
(ストレージ装置20のハードウェア構成)
図6は、第1実施形態に係る情報処理システム1が備えるストレージ装置20のハードウェア構成の一例を示すブロック図である。図6に示すように、ストレージ装置20は、コントローラ30、及び不揮発性記憶装置40を備える。コントローラ30は、情報処理装置10からの要求に応じて不揮発性記憶装置40を制御可能に構成される。コントローラ30は、例えば、CPU31、ROM32、RAM33、通信インターフェース(通信I/F)34、及びストレージインターフェース(ストレージI/F)35を備える。
【0031】
CPU31は、コントローラ30の制御に関する様々なプログラムを実行するように構成されたプロセッサである。ROM32は、コントローラ30の制御プログラムを記憶するように構成された不揮発性の記憶装置である。RAM33は、CPU31の作業領域として使用される揮発性の記憶装置である。通信インターフェース34は、情報処理装置10との通信に使用されるインターフェース回路である。ストレージインターフェース35は、不揮発性記憶装置40との通信に使用されるインターフェース回路である。不揮発性記憶装置40は、データを不揮発に記憶可能に構成される。なお、ストレージ装置20は、SSDでなく、NAND型フラッシュメモリ単体であってもよい。
【0032】
<1-1-2>情報処理システム1の機能構成
図7は、第1実施形態に係る情報処理システム1の機能構成の一例を示すブロック図である。図7に示すように、情報処理システム1は、距離計算部101、代表ベクトル管理部102、ポスティングリスト決定部103、ポスティングリスト受信部104、中止処理部105、近傍ベクトル決定部106、及びストレージ部200を備えるコンピュータとして機能する。距離計算部101、代表ベクトル管理部102、ポスティングリスト決定部103、ポスティングリスト受信部104、中止処理部105、及び近傍ベクトル決定部106は、情報処理装置10に対応する。ストレージ部200は、ストレージ装置20に対応し、複数のポスティングリストPL1~PLnを記憶する。
【0033】
距離計算部101は、外部からクエリベクトルQVを受信する。クエリベクトルQVを受信した距離計算部101は、代表ベクトル管理部102からポスティングリストPLの代表ベクトルRVを取得する。そして、距離計算部101は、クエリベクトルQVと代表ベクトルRVとの距離を計算し、計算結果をポスティングリスト決定部103に送信する。
【0034】
代表ベクトル管理部102は、検索に使用されるインデックスを管理する。具体的には、代表ベクトル管理部102は、ストレージ部200に記憶された複数のポスティングリストPL1~PLnのそれぞれの代表ベクトルRVを記憶する。例えば、代表ベクトル管理部102は、探索動作が実行される前に、ストレージ部200に記憶された複数のポスティングリストPL1~PLnのそれぞれの代表ベクトルRV及び各代表ベクトルRVを特定するインデックスを読み出して管理する。
【0035】
ポスティングリスト決定部103は、距離計算部101から受信した、クエリベクトルQVと代表ベクトルRVとの距離の計算結果に基づいて、第1探索処理を実行する。ポスティングリスト決定部103は、第1探索処理によって、ストレージ部200に転送させる複数のポスティングリストPLを決定する。そして、ポスティングリスト決定部103は、転送が決定された複数のポスティングリストPLの転送要求を、ストレージ部200に送信する。転送要求は、転送が決定された複数のポスティングリストPLのアドレス情報を含む。また、ポスティングリスト決定部103は、転送が決定された複数のポスティングリストPLのリストを含む転送情報を、ポスティングリスト受信部104に送信する。
【0036】
ストレージ部200は、ポスティングリスト決定部103からの転送要求に応じて、指定された複数のポスティングリストPLの転送を開始する。具体的には、コントローラ30が、転送要求に基づいたアドレスに記憶されたデータの読み出しを不揮発性記憶装置40に送信する。すると、不揮発性記憶装置40が、指定されたアドレスからデータを読み出し、読み出したデータをコントローラ30に送信する。それから、コントローラ30は、不揮発性記憶装置40から受信したデータを、情報処理装置10に送信する。ストレージ部200によるポスティングリストPLの転送順番は、転送要求の内容に基づいている。例えば、ストレージ部200は、クエリベクトルQVと代表ベクトルRVとの距離が近い方から順に、ポスティングリストPLをポスティングリスト受信部104に転送する。具体的には、ポスティングリスト決定部103が、ストレージ部200に、距離が近い順にポスティングリストPLの転送要求を送信する。そして、ストレージ部200が、この転送要求に応じて、ポスティングリスト受信部104に、距離が近い順にポスティングリストPLを転送する。
【0037】
ポスティングリスト受信部104は、ポスティングリスト決定部103から受信した転送情報に基づいて、ストレージ部200から転送されたポスティングリストPLを受信する。そして、ポスティングリスト受信部104は、受信したポスティングリストPL内の各ベクトル情報VIと、クエリベクトルQVとの距離を計算し、計算結果を中止処理部105に送信する。
【0038】
中止処理部105は、ポスティングリスト受信部104から受信した計算結果に基づいて、ポスティングリストPLの転送処理を中止するか否かを判定する。そして、中止処理部105は、転送処理を中止しない場合、後続のポスティングリストPLを受信するようにポスティングリスト受信部104に通知する。一方で、中止処理部105は、転送処理を中止する場合、ストレージ部200とポスティングリスト受信部104とのそれぞれに転送処理の中止を通知し、ポスティングリスト受信部104から受信した計算結果を近傍ベクトル決定部106に送信する。なお、中止処理部105は、転送処理を中止するか否かに依らずに、ポスティングリスト受信部104から受信した計算結果を近傍ベクトル決定部106に送信してもよい。ポスティングリスト受信部104は、後続のポスティングリストPLの受信の通知を受信することなく、継続してポスティングリストPLを受信してもよい。つまり、中止処理部105による後続のポスティングリストPLの受信の通知は、省略されてもよい。中止処理部105は、ストレージ部200に直接でなく、ポスティングリスト受信部104を経由して、後続のポスティングリストPLの転送処理の中止をストレージ部200に通知してもよい。
【0039】
近傍ベクトル決定部106は、中止処理部105から受信した計算結果に基づいて、近傍ベクトルNVを決定する。そして、近傍ベクトル決定部106は、決定した近傍ベクトルNVを外部へ出力する。なお、近傍ベクトル決定部106は、探索動作の設定に応じて、1つ以上の近傍ベクトルNVを決定し、外部へ出力し得る。
【0040】
<1-2>情報処理システム1の動作
図8は、第1実施形態に係る情報処理システム1における探索動作の一例を示すフローチャートである。以下に、図8を参照して、第1実施形態の情報処理方法として、第1実施形態に係る情報処理システム1における探索動作の一例について説明する。
【0041】
第1実施形態の探索動作が開始すると、まず、情報処理装置10は、クエリベクトルQVを受信する(S10)。クエリベクトルQVは、外部から受信したクエリに基づいて入出力回路14により生成されたベクトルであってもよいし、情報処理システム1の外部から受信したベクトルであってもよい。
【0042】
次に、情報処理装置10は、第1探索処理を実行する(S11)。すなわち、情報処理装置10は、クエリベクトルQVと、ポスティングリストPLの代表ベクトルRVとの距離に基づいて、ストレージ装置20からRAM13に転送するポスティングリストPLを決定する。
【0043】
次に、情報処理装置10は、ポスティングリストPLの転送要求をストレージ装置20に送信する(S12)。この転送要求は、S11の処理により決定されたポスティングリストPLのアドレス情報を含む。すると、ストレージ装置20のコントローラ30は、転送要求に含まれたアドレス情報を対象とした読み出し命令を待ち行列に格納する。そして、コントローラ30は、待ち行列に格納された読み出し命令に応じて、不揮発性記憶装置40からポスティングリストPLを読み出す。
【0044】
次に、情報処理装置10は、ストレージ装置20からポスティングリストPLを受信する(S13)。すなわち、S12の処理に基づいて読み出されたポスティングリストPLが、ストレージ装置20から情報処理装置10に転送される。
【0045】
次に、情報処理装置10は、第2探索処理を実行する(S14)。すなわち、情報処理装置10は、クエリベクトルQVと、受信したポスティングリストPL内の各ベクトル情報VIとの距離を計算する。なお、S14の処理は、S13の処理において1つ以上のベクトル情報VIが受信されたタイミングで開始してもよい。つまり、S13の処理の一部と、S14の処理の一部とは並列に実行されてもよい。
【0046】
次に、情報処理装置10は、転送中止条件が満たされているか否かを確認する(S15)。転送中止条件は、ストレージ装置20から情報処理装置10へのポスティングリストPLの転送を中止するか否かの判定に使用される。転送中止条件としては、様々な条件が使用され得る。転送中止条件の具体例については、第3~第5実施形態で説明する。
【0047】
S15の処理において、転送中止条件が満たされていない場合(S15:NO)、情報処理装置10は、S13の処理に進む。すなわち、情報処理装置10は、次のポスティングリストPLを受信し、第2探索処理を実行する。
【0048】
S15の処理において、転送中止条件が満たされている場合(S15:YES)、情報処理装置10は、S16の処理に進む。
【0049】
S16の処理において、情報処理装置10は、転送中止要求をストレージ装置20に送信する。転送中止要求を受信したストレージ装置20は、転送要求に基づいたポスティングリストPLの転送を中止する。このとき、ストレージ装置20は、転送中止要求を受信した時点で転送途中であったポスティングリストPLの情報処理装置10への転送を直ちに中止してもよいし、そのポスティングリストPLが情報処理装置10へ転送されてから、後続のポスティングリストPLの転送を中止してもよい。ポスティングリストPLの転送を中止する処理は、例えば、S12の処理により待ち行列に格納され且つ実行されていない読み出し命令を破棄する処理を含む。また、S16の処理は、“情報処理装置10が、転送中止要求を使用せずに、転送中止条件が満たされた後に受信したポスティングリストPLを無視する”という処理に置き換えられてもよい。
【0050】
その後、情報処理装置10は、少なくとも1つの近傍ベクトルNVを出力する(S17)。S17の処理において出力される近傍ベクトルNVは、S14の処理の結果に基づいて決定される。S17の処理において出力される近傍ベクトルNVの数は、1つであってもよいし、2つ以上であってもよい。S17の処理が終了すると、情報処理装置10は、図8の一連の処理を終了する。
【0051】
図9は、第1実施形態に係る情報処理システム1の探索動作において受信したポスティングリスト数と距離との関係の一例を示すグラフである。横軸は、情報処理装置10が受信したポスティングリストPLの数に対応する。縦軸は、クエリベクトルQVとの距離に対応する。破線により示された代表点との距離は、直近で受信したポスティングリストPLの代表ベクトルRVとクエリベクトルQVとの距離に対応する。実線により示された近傍点との最短距離は、直近で受信したポスティングリストPLに含まれた複数のベクトル情報VIのうち、最もクエリベクトルQVに近いベクトル情報VIに対応する。
【0052】
図9に示すように、代表点(代表ベクトルRV)との距離は、情報処理装置10が受信したポスティングリストPLの数が増えるほど遠くなる。言い換えると、クエリベクトルQVとの距離は、後に受信するポスティングリストPLの代表点ほど遠くなる。一方で、近傍点との最短距離は、代表点との距離が近いほど近くなるわけではない。このように、受信したポスティングリストPLの数と、正解ベクトルが発見されるポスティングリストPLの場所との相関は小さい。このため、情報処理装置10は、例えば、受信したポスティングリストPL毎の第2探索処理により正解ベクトルを発見したことに基づいて、ポスティングリストPLの転送を中止するように構成される。
【0053】
図10は、第1実施形態に係る情報処理システム1における探索動作の処理シーケンスの一例を示すシーケンス図である。以下に、図10を参照して、第1実施形態に係る情報処理システム1における探索動作の処理シーケンスの一例について説明する。
【0054】
情報処理装置10のCPU11は、クエリベクトルQVを受信すると、第1探索処理を実行し、第1探索処理により決定されたポスティングリストPLの転送をストレージ装置20に要求をする(転送要求)。本例における転送要求は、5つ以上のポスティングリストPLを情報処理装置10へ転送することをストレージ装置20に指示している。
【0055】
すると、ストレージ装置20は、CPU11から受信した転送要求に基づいて、ポスティングリストPL(1)~PL(4)を含む5つ以上のポスティングリストPLの情報処理装置10への転送を開始する。CPU11は、ストレージ装置20からポスティングリストPLを受信すると、受信したポスティングリストPLに含まれた複数のベクトル情報VIを対象とした第2探索処理を実行する。そして、CPU11は、第2探索処理を実行しつつ、第2探索処理により得られた情報に基づいて、ポスティングリストPLの受信を打ち切ることが可能かどうかを判定する。
【0056】
本例では、ポスティングリストPL(3)が正解ベクトルを含んでいる(正解検出)。CPU11は、正解ベクトルを検出したことに基づいて、転送中止要求(中止指示)をストレージ装置20に送信する。また、本例では、ストレージ装置20が中止指示を受信した時点で転送途中であったポスティングリストPL(4)が情報処理装置10へ転送され、CPU11がポスティングリストPL(4)に対する第2探索処理を実行している。そして、CPU11は、ポスティングリストPL(1)~PL(4)のそれぞれの第2探索処理の結果に基づいて近傍ベクトルNVを決定し、決定した近傍ベクトルNVをクエリに対する回答として出力する。
【0057】
以上のように、情報処理装置10は、第1探索処理により決定されたポスティングリストPL(5)以降の、ストレージ装置20から情報処理装置10のメモリ(RAM13)への転送を省略することができる。その結果、情報処理装置10は、転送を省略したポスティングリストPLの数に応じて、レイテンシを低減することができる。なお、本例では、ポスティングリストPL(3)に正解ベクトルが含まれているため、ポスティングリストPL(4)の情報処理装置10への転送が中止されてもよい。第1実施形態に係る情報処理装置10は、正解ベクトルを検出したことに基づいて、第1探索処理により決定された複数のポスティングリストPLの転送の一部を中止若しくは無視するように構成されていればよい。
【0058】
<1-3>第1実施形態の効果
以上で説明した情報処理システム1に依れば、検索精度の低下を抑制し且つレイテンシを下げることができる。以下に、第1実施形態の効果の詳細について説明する。
【0059】
IT技術を利用した業務効率化などを目的として、非構造化データの重要性が高まっている。非構造化データの用途は、多岐にわたる。そして、非構造化データのデータ量は、構造化データのデータ量と比べて大きい傾向を有する。このような大量の非構造化データから所望のデータを検索する技術として、近似最近傍探索という技術が知られている。しかしながら、非構造化データのデータ量の増加やメモリ価格の高騰に伴い、近似最近傍探索を実行するための情報処理システムのコストの高騰が進行している。
【0060】
そこで、情報処理システムのコストの抑制のために、検索データの一部をHDDやSSDなどのストレージ装置に格納する近似最近傍探索手法が提案されている。近似最近傍探索は、ストレージ装置に格納されたポスティングリストPLの代表ベクトルRVを対象とした第1探索処理と、第1探索処理に基づいて決定されたポスティングリストPLを対象とした第2探索処理とによって、メモリ容量を抑制しつつ実行され得る。このような近似最近傍探索手法は、さらにレイテンシを抑制するために、正解ベクトルを精度よく見つけることができ且つポスティングリストPLの転送数を減らせることが好ましい。
【0061】
これに対して、第1実施形態に係る情報処理システム1の情報処理装置10は、第1探索手法によって決定されたポスティングリストPLを受信しつつ、受信したポスティングリストPLから得られる情報に基づいて、ポスティングリストPLの転送を継続するか否かを判定する。具体的には、情報処理装置10は、転送中止条件が満たされたか否か(例えば、正解ベクトルを検出したか否か)に応じて、後続のポスティングリストPLの転送を中止する。
【0062】
その結果、第1実施形態に係る情報処理システム1は、探索動作において、探索精度の劣化を抑制しつつ、ポスティングリストPLの転送数を減らすことができる。従って、第1実施形態に係る情報処理システム1は、探索精度を維持しつつレイテンシを下げることができる。
【0063】
<2>第2実施形態
第2実施形態に係る情報処理システム1Aは、第1実施形態に係る情報処理システム1と同様のハードウェア構成を備え、探索動作を実行可能に構成される。そして、情報処理システム1Aは、ストレージ装置20に対するポスティングリストPLの転送指示をするか否かを、所定の転送単位毎に判定するように構成される。以下に、第2実施形態に係る情報処理システム1Aについて、第1実施形態と異なる点を主に説明する。
【0064】
<2-1>情報処理システム1Aの機能構成
図11は、第2実施形態に係る情報処理システム1Aの機能構成の一例を示すブロック図である。図11に示すように、情報処理システム1Aは、距離計算部101、代表ベクトル管理部102、ポスティングリスト決定部103A、ポスティングリスト受信部104、中止処理部105A、近傍ベクトル決定部106、及びストレージ部200を備えるコンピュータとして機能する。距離計算部101、代表ベクトル管理部102、ポスティングリスト決定部103A、ポスティングリスト受信部104、中止処理部105A、及び近傍ベクトル決定部106は、第2実施形態に係る情報処理装置10Aに対応する。
【0065】
ポスティングリスト決定部103Aは、距離計算部101から受信した、クエリベクトルQVと代表ベクトルRVとの距離の計算結果に基づいて、第1探索処理を実行する。ポスティングリスト決定部103Aは、第1探索処理によって、ストレージ部200に転送させる複数のポスティングリストPLを決定する。そして、ポスティングリスト決定部103Aは、転送が決定された複数のポスティングリストPLを複数のグループに分けて、グループ単位でストレージ部200に送信可能に構成される。また、ポスティングリスト決定部103Aは、転送要求を送信した複数のポスティングリストPLのリストを含む転送情報を、ポスティングリスト受信部104に送信する。ポスティングリスト決定部103Aは、中止処理部105Aの指示に基づいて、次のグループのポスティングリストPLの転送要求をストレージ部200に送信するか否かを決定する。
【0066】
中止処理部105Aは、ポスティングリスト受信部104から受信した計算結果に基づいて、ポスティングリストPLの転送処理を中止するか否かを判定する。そして、中止処理部105Aは、転送処理を中止しない場合、次のグループのポスティングリストPLの転送の開始を、ポスティングリスト決定部103Aに要求する。一方で、中止処理部105Aは、転送処理を中止する場合、ポスティングリスト決定部103Aとポスティングリスト受信部104とのそれぞれに転送処理の中止を通知し、ポスティングリスト受信部104から受信した計算結果を近傍ベクトル決定部106に送信する。ポスティングリスト決定部103Aは、転送処理の中止が通知されると、転送要求を送信していないグループのポスティングリストPLの転送処理を中止する。なお、ポスティングリスト決定部103Aは、次のグループのポスティングリストPLの転送の開始要求を受信することなく、次のグループのポスティングリストPLの転送を開始してもよい。つまり、中止処理部105Aによる次のグループのポスティングリストPLの転送の開始要求は、省略されてもよい。中止処理部105Aは、ポスティングリスト決定部103Aに直接でなく、ポスティングリスト受信部104を経由して、後続のグループのポスティングリストPLの転送処理の中止をポスティングリスト決定部103Aに通知してもよい。
【0067】
第2実施形態に係る情報処理システム1Aのその他の構成は、第1実施形態に係る情報処理システム1と同様である。
【0068】
<2-2>情報処理システム1Aの動作
図12は、第2実施形態に係る情報処理システム1Aにおける探索動作の一例を示すフローチャートである。以下に、図12を参照して、第2実施形態の情報処理方法として、第2実施形態に係る情報処理システム1Aにおける探索動作の一例について説明する。
【0069】
第2実施形態の探索動作が開始すると、まず、情報処理装置10Aは、第1実施形態と同様に、クエリベクトルQVを受信し(S10)、第1探索処理を実行する(S11)。
【0070】
次に、情報処理装置10Aは、ポスティングリストPLのグループ化処理を実行する(S20)。すなわち、情報処理装置10Aは、第1探索処理により決定された複数のポスティングリストPLを、K個(Kは、2以上の整数)のグループに分類する。各グループに割り当てられるポスティングリストPLの数は、固定されてもよいし、異なっていてもよい。
【0071】
次に、情報処理装置10Aは、第kグループのポスティングリストPLの転送要求をストレージ装置20に送信する(S21)。“k”は、1以上K以下の整数であり、探索動作の初回のS21の処理においては“1”である。すなわち、初回のS21の処理において、情報処理装置10Aは、K個のグループのうち第1グループのポスティングリストPLの転送要求を、ストレージ装置20に送信する。
【0072】
次に、情報処理装置10Aは、ストレージ装置20から第kグループのポスティングリストPLを受信する(S22)。第kグループのポスティングリストPLは、kの数値が小さいほど、クエリベクトルQVと代表ベクトルRVとの距離が近いポスティングリストPLを含むグループに対応する。
【0073】
次に、情報処理装置10Aは、第1実施形態と同様に、第2探索処理を実行する(S14)。すなわち、情報処理装置10Aは、第kグループに含まれる複数のポスティングリストPLを対象とした第2探索処理を実行する。
【0074】
次に、情報処理装置10Aは、第1実施形態と同様に、転送中止条件が満たされているか否かを確認する(S15)。
【0075】
S15の処理において、転送中止条件が満たされていない場合(S15:NO)、情報処理装置10Aは、kをインクリメントする(S23)。その後、情報処理装置10Aは、S21の処理に進む。言い換えると、情報処理装置10Aは、S23の処理を介することによって、次のグループのポスティングリストPLを対象とした転送要求と、ポスティングリストPLの受信と、第2探索処理とを実行する。
【0076】
S15の処理において、転送中止条件が満たされている場合(S15:YES)、情報処理装置10Aは、S17の処理に進む。すなわち、第2実施形態の探索動作では、図8に示したS16の処理が省略されている。
【0077】
S17の処理において、情報処理装置10Aは、第1実施形態と同様に、少なくとも1つの近傍ベクトルNVを出力する。S17の処理が終了すると、情報処理装置10Aは、図12の一連の処理を終了する。
【0078】
図13は、第2実施形態に係る情報処理システム1Aにおける探索動作の処理シーケンスの一例を示すシーケンス図である。以下に、図13を参照して、第2実施形態に係る情報処理システム1Aにおける探索動作の処理シーケンスの一例について説明する。
【0079】
情報処理装置10Aは、クエリベクトルQVを受信すると、第1探索処理を実行し、第1探索処理により決定された複数のポスティングリストPLの転送をストレージ装置20に要求をする(転送要求)。本例では、情報処理装置10Aは、第1探索処理で決定された複数のポスティングリストPLを、3個単位でグループ化している。このため、情報処理装置10Aは、3つのポスティングリストPL(1)~PL(3)を情報処理装置10Aへ転送することをストレージ装置20に指示している。
【0080】
すると、ストレージ装置20は、転送要求に基づいて、ポスティングリストPL(1)~PL(3)の情報処理装置10Aへの転送を開始する。情報処理装置10Aは、ストレージ装置20からポスティングリストPLを受信すると、受信したポスティングリストPLに含まれた複数のベクトル情報VIを対象とした第2探索処理を実行する。そして、情報処理装置10Aは、第2探索処理を実行しつつ、第2探索処理により得られた情報に基づいて、ポスティングリストPLの受信を打ち切ることが可能かどうかを判定する。
【0081】
本例では、ポスティングリストPL(1)~PL(3)が、正解ベクトルを含んでいない(正解未検出)。この場合、情報処理装置10Aは、正解未検出であることに基づいて、次のグループのポスティングリストPL(4)~PL(6)を情報処理装置10Aへ転送することをストレージ装置20に指示する(転送要求)。
【0082】
すると、ストレージ装置20は、転送要求に基づいて、ポスティングリストPL(4)~PL(6)の情報処理装置10Aへの転送を開始する。情報処理装置10Aは、ストレージ装置20からポスティングリストPLを受信すると、受信したポスティングリストPLに含まれた複数のベクトル情報VIを対象とした第2探索処理を実行する。そして、情報処理装置10Aは、第2探索処理を実行しつつ、第2探索処理により得られた情報に基づいて、ポスティングリストPLの受信を打ち切ることが可能かどうかを判定する。
【0083】
本例では、ポスティングリストPL(5)が正解ベクトルを含んでいる(正解検出)、情報処理装置10Aは、正解ベクトルを検出したことに基づいて、残りのグループのポスティングリストPLの転送要求を中止する。そして、情報処理装置10Aは、ポスティングリストPL(1)~PL(6)のそれぞれの第2探索処理の結果に基づいて近傍ベクトルNVを決定し、決定した近傍ベクトルNVをクエリに対する回答として出力する。
【0084】
以上で説明されたように、情報処理装置10Aは、ポスティングリストPLの転送要求と転送中止条件の判定との組を、ポスティングリストPLのグループ単位で実行する。このため、情報処理装置10Aは、1つのクエリに対する探索動作において、ストレージ装置20に対するポスティングリストPLの転送要求を、第1探索処理により選択されたポスティングリストPLの数よりも少ない複数回実行し得る。具体的には、例えば、情報処理装置10Aが、第1探索処理により100個のポスティングリストPLが選択された場合に、10個ずつポスティングリストPLの転送要求を実行し、10個のポスティングリストPLを受信する度に転送中止するか否かを判定をしてもよい。
【0085】
<2-3>第2実施形態の効果
第2実施形態に係る情報処理システム1Aの情報処理装置10は、第1探索処理により決定されたポスティングリストPLの転送を転送するか否かを、グループ単位で判定する。その結果、第2実施形態に係る情報処理システム1Aは、第1実施形態と同様に、探索精度を維持しつつレイテンシを下げることができる。情報処理システム1Aは、第1実施形態よりも転送要求の頻度を下げることができるので、第1実施形態よりもレイテンシを更に下げることができる。さらに、情報処理システム1Aは、ポスティングリストPLの転送中止に関する処理を簡潔にすることができる。
【0086】
<3>第3実施形態
第3実施形態に係る情報処理システム1Bは、第1実施形態に係る情報処理システム1と同様のハードウェア構成を備え、探索動作を実行可能に構成される。そして、情報処理システム1Bでは、転送中止条件が、受信したベクトル情報VIの個数に基づいて設定される。以下に、第3実施形態に係る情報処理システム1Aの詳細について、第1実施形態と異なる点を主に説明する。
【0087】
<3-1>情報処理システム1Bの機能構成
図14は、第3実施形態に係る情報処理システム1Bの機能構成の一例を示すブロック図である。図14に示すように、情報処理システム1Bは、距離計算部101、代表ベクトル管理部102、ポスティングリスト決定部103、ポスティングリスト受信部104A、中止処理部105B、近傍ベクトル決定部106、ベクトル個数判定部107、及びストレージ部200を備えるコンピュータとして機能する。距離計算部101、代表ベクトル管理部102、ポスティングリスト決定部103、ポスティングリスト受信部104A、中止処理部105B、近傍ベクトル決定部106、及びベクトル個数判定部107は、第3実施形態に係る情報処理装置10Bに対応する。
【0088】
ポスティングリスト受信部104Aは、ポスティングリスト決定部103から受信した転送情報に基づいて、ストレージ部200から転送されたポスティングリストPLを受信する。そして、ポスティングリスト受信部104Aは、受信したポスティングリストPL内の各ベクトル情報VIと、クエリベクトルQVとの距離を計算し、計算結果を中止処理部105Bに送信する。さらに、ポスティングリスト受信部104Aは、受信したポスティングリストPLに含まれたベクトル情報VIの数に関する個数情報を、ベクトル個数判定部107に送信する。
【0089】
ベクトル個数判定部107は、ポスティングリスト受信部104Aから受信した個数情報に基づいて、探索処理において受信したベクトル情報VIの総数を計算する。そして、ベクトル個数判定部107は、ベクトル情報VIの総数と、予め設定された閾値とを比較して、ポスティングリストPLの転送を中止するか否かを判定する。それから、ベクトル個数判定部107は、判定結果を、中止処理部105Bに送信する。
【0090】
中止処理部105Bは、ベクトル個数判定部107から受信した判定結果に基づいて、ポスティングリストPLの転送処理を中止するか否かを判定する。そして、中止処理部105Bは、転送処理を中止しない場合、後続のポスティングリストPLを受信するようにポスティングリスト受信部104Aに通知する。一方で、中止処理部105Bは、転送処理を中止する場合、ストレージ部200とポスティングリスト受信部104Aとのそれぞれに転送処理の中止を通知し、ポスティングリスト受信部104Aから受信した計算結果を近傍ベクトル決定部106に送信する。なお、ポスティングリスト受信部104Aは、後続のポスティングリストPLの受信の通知を受信することなく、継続してポスティングリストPLを受信してもよい。つまり、中止処理部105Bによる後続のポスティングリストPLの受信の通知は、省略されてもよい。中止処理部105Bは、ストレージ部200に直接でなく、ポスティングリスト受信部104Aを経由して、後続のポスティングリストPLの転送処理の中止をストレージ部200に通知してもよい。
【0091】
第3実施形態に係る情報処理システム1Bのその他の構成は、第1実施形態に係る情報処理システム1と同様である。
【0092】
<3-2>情報処理システム1Bの動作
図15は、第3実施形態に係る情報処理システム1Bにおける探索動作の一例を示すフローチャートである。以下に、図15を参照して、第3実施形態の情報処理方法として、第3実施形態に係る情報処理システム1Bにおける探索動作の一例について説明する。
【0093】
第3実施形態の探索動作が開始すると、まず、情報処理装置10Bは、第1実施形態と同様に、クエリベクトルQVを受信し(S10)、第1探索処理を実行し(S11)、ポスティングリストPLの転送要求をストレージ装置20に送信する(S12)。そして、情報処理装置10Bは、第1実施形態と同様に、ストレージ装置20からポスティングリストPLを受信し(S13)、第2探索処理を実行する(S14)。
【0094】
次に、情報処理装置10Bは、受信したベクトル情報VIの総数をカウントする(S30)。言い換えると、S30の処理において、情報処理装置10Bは、探索動作が開始してから現在までに受信した各ポスティングリストPLに含まれたベクトル情報VIの数を算出する。
【0095】
次に、情報処理装置10Bは、受信したベクトル情報VIの総数が所定の閾値TH1を超えたか否かを確認する(S31)。閾値TH1は、情報処理システム1Bにおける転送中止条件に関連付けられ、事前に設定される個数のパラメータである。
【0096】
S31の処理において、受信したベクトル情報VIの総数が所定の閾値TH1を超えていないことが確認された場合(S31:NO)、情報処理装置10Bは、S13の処理に進む。すなわち、情報処理装置10Bは、次のポスティングリストPLを受信し、第2探索処理を実行する。
【0097】
S31の処理において、受信したベクトル情報VIの総数が所定の閾値TH1を超えていることが確認された場合(S31:YES)、情報処理装置10Bは、S16の処理に進む。
【0098】
S16の処理において、情報処理装置10Bは、第1実施形態と同様に、転送中止要求をストレージ装置20に送信する。その後、情報処理装置10Bは、第1実施形態と同様に、少なくとも1つの近傍ベクトルNVを出力する(S17)。S17の処理が終了すると、情報処理装置10Bは、図15の一連の処理を終了する。
【0099】
<3-3>第3実施形態の効果
第3実施形態に係る情報処理システム1Bは、近似最近傍探索におけるレイテンシの最大値を略一定にすることができる。従って、情報処理システム1Bは、第1実施形態の効果だけでなく、レイテンシの悪化を抑制することができる。
【0100】
<4>第4実施形態
第4実施形態に係る情報処理システム1Cは、第1実施形態に係る情報処理システム1と同様のハードウェア構成を備え、探索動作を実行可能に構成される。そして、情報処理システム1Cでは、転送中止条件が、受信したベクトル情報VIとクエリベクトルQVとの距離の最小値に基づいて設定される。以下に、第4実施形態に係る情報処理システム1Cの詳細について、第1実施形態と異なる点を主に説明する。
【0101】
<4-1>情報処理システム1Cの機能構成
図16は、第4実施形態に係る情報処理システム1Cの機能構成の一例を示すブロック図である。図16に示すように、情報処理システム1Cは、距離計算部101、代表ベクトル管理部102、ポスティングリスト決定部103、ポスティングリスト受信部104B、中止処理部105C、近傍ベクトル決定部106、距離閾値判定部108、及びストレージ部200を備えるコンピュータとして機能する。距離計算部101、代表ベクトル管理部102、ポスティングリスト決定部103、ポスティングリスト受信部104B、中止処理部105C、近傍ベクトル決定部106、及び距離閾値判定部108は、第4実施形態に係る情報処理装置10Cに対応する。
【0102】
ポスティングリスト受信部104Bは、ポスティングリスト決定部103から受信した転送情報に基づいて、ストレージ部200から転送されたポスティングリストPLを受信する。そして、ポスティングリスト受信部104Bは、受信したポスティングリストPL内の各ベクトル情報VIと、クエリベクトルQVとの距離を計算し、計算結果を中止処理部105Cと距離閾値判定部108とのそれぞれに送信する。
【0103】
距離閾値判定部108は、ポスティングリスト受信部104Bから受信したベクトル情報VIに基づいて、探索処理において受信したベクトル情報VIとクエリベクトルQVとの最短距離を計算する。そして、距離閾値判定部108は、最短距離の計算結果と、予め設定された閾値とを比較して、ポスティングリストPLの転送を中止するか否かを判定する。それから、距離閾値判定部108は、判定結果を、中止処理部105Cに送信する。
【0104】
中止処理部105Cは、距離閾値判定部108から受信した判定結果に基づいて、ポスティングリストPLの転送処理を中止するか否かを判定する。そして、中止処理部105Cは、転送処理を中止しない場合、後続のポスティングリストPLを受信するようにポスティングリスト受信部104Bに通知する。一方で、中止処理部105Cは、転送処理を中止する場合、ストレージ部200とポスティングリスト受信部104Bとのそれぞれに転送処理の中止を通知し、ポスティングリスト受信部104Bから受信した計算結果を近傍ベクトル決定部106に送信する。なお、ポスティングリスト受信部104Bは、後続のポスティングリストPLの受信の通知を受信することなく、継続してポスティングリストPLを受信してもよい。つまり、中止処理部105Cによる後続のポスティングリストPLの受信の通知は、省略されてもよい。中止処理部105Cは、ストレージ部200に直接でなく、ポスティングリスト受信部104Bを経由して、後続のポスティングリストPLの転送処理の中止をストレージ部200に通知してもよい。
【0105】
第4実施形態に係る情報処理システム1Cのその他の構成は、第1実施形態に係る情報処理システム1と同様である。
【0106】
<4-2>情報処理システム1Cの動作
図17は、第4実施形態に係る情報処理システム1Cにおける探索動作の一例を示すフローチャートである。以下に、図17を参照して、第4実施形態の情報処理方法として、第4実施形態に係る情報処理システム1Cにおける探索動作の一例について説明する。
【0107】
第4実施形態の探索動作が開始すると、まず、情報処理装置10Cは、第1実施形態と同様に、クエリベクトルQVを受信し(S10)、第1探索処理を実行し(S11)、ポスティングリストPLの転送要求をストレージ装置20に送信する(S12)。そして、情報処理装置10Cは、第1実施形態と同様に、ストレージ装置20からポスティングリストPLを受信し(S13)、第2探索処理を実行する(S14)。
【0108】
次に、情報処理装置10Cは、最短距離を算出する(S40)。言い換えると、S40の処理において、情報処理装置10Cは、探索動作が開始してから現在までに受信した各ポスティングリストPLに含まれた各ベクトル情報VIとクエリベクトルQVとの距離の計算結果のうち最短の距離を算出する。
【0109】
次に、情報処理装置10Cは、最短距離が所定の閾値TH2よりも近いか否かを確認する(S41)。閾値TH2は、情報処理システム1Bにおける転送中止条件に関連付けられ、事前に設定されるベクトルのパラメータである。
【0110】
S41の処理において、最短距離が所定の閾値TH2よりも近くないことが確認された場合(S41:NO)、情報処理装置10Cは、S13の処理に進む。すなわち、情報処理装置10Cは、次のポスティングリストPLを受信し、第2探索処理を実行する。
【0111】
S41の処理において、最短距離が所定の閾値TH2よりも近いことが確認された場合(S41:YES)、情報処理装置10Cは、S16の処理に進む。
【0112】
S16の処理において、情報処理装置10Cは、第1実施形態と同様に、転送中止要求をストレージ装置20に送信する。その後、情報処理装置10Cは、第1実施形態と同様に、少なくとも1つの近傍ベクトルNVを出力する(S17)。S17の処理が終了すると、情報処理装置10Cは、図17の一連の処理を終了する。
【0113】
<4-3>第4実施形態の効果
第4実施形態に係る情報処理システム1Cは、所定の閾値に基づいて、近似最近傍探索における探索精度を変更できる。従って、情報処理システム1Cは、第1実施形態の効果だけでなく、ユーザの要求に応じた探索精度を実現できる。
【0114】
<5>第5実施形態
第5実施形態に係る情報処理システム1Dは、第1実施形態に係る情報処理システム1と同様のハードウェア構成を備え、探索動作を実行可能に構成される。そして、情報処理システム1Dでは、転送中止条件が、ベクトル情報VIとクエリベクトルQVとの距離の統計量に基づいて設定される。以下に、第5実施形態に係る情報処理システム1Dの詳細について、第1実施形態と異なる点を主に説明する。
【0115】
<5-1>情報処理システム1Dの機能構成
図18は、第5実施形態に係る情報処理システム1Dの機能構成の一例を示すブロック図である。図18に示すように、情報処理システム1Dは、距離計算部101、代表ベクトル管理部102、ポスティングリスト決定部103、ポスティングリスト受信部104C、中止処理部105D、近傍ベクトル決定部106、最短距離判定部109、統計解析部110、及びストレージ部200を備えるコンピュータとして機能する。距離計算部101、代表ベクトル管理部102、ポスティングリスト決定部103、ポスティングリスト受信部104C、中止処理部105D、近傍ベクトル決定部106、最短距離判定部109、及び統計解析部110は、第5実施形態に係る情報処理装置10Dに対応する。
【0116】
ポスティングリスト受信部104Cは、ポスティングリスト決定部103から受信した転送情報に基づいて、ストレージ部200から転送されたポスティングリストPLを受信する。そして、ポスティングリスト受信部104Cは、受信したポスティングリストPL内の各ベクトル情報VIと、クエリベクトルQVとの距離を計算し、計算結果を中止処理部105Dと、最短距離判定部109と、統計解析部110とのそれぞれに送信する。
【0117】
最短距離判定部109は、ポスティングリスト受信部104Cから受信したベクトル情報VIに基づいて、探索処理において受信したベクトル情報VIとクエリベクトルQVとの最短距離を計算する。そして、最短距離判定部109は、計算結果を中止処理部105Dに送信する。
【0118】
統計解析部110は、ポスティングリストPL毎に、複数のベクトル情報VIとクエリベクトルQVとの距離に基づいて統計情報を計算する。統計情報としては、例えば、平均や、標準偏差が使用される。そして、統計解析部110は、計算した統計情報を中止処理部105Dに送信する。
【0119】
中止処理部105Dは、現在分かっているクエリベクトルQVとベクトル情報VIとの最短距離(すなわち、最短距離判定部109の計算結果)と、統計解析部110から受信した統計情報とを用いて、後続のポスティングリストPLを受信した場合に、距離がより近いベクトル情報VIが見つかる可能性が高いかどうかを判定する。そして、中止処理部105Dは、判定結果に基づいて、ポスティングリストPLの転送処理を中止するか否かを判定する。そして、中止処理部105Dは、転送処理を中止しない場合、後続のポスティングリストPLを受信するようにポスティングリスト受信部104Cに通知する。一方で、中止処理部105Dは、転送処理を中止する場合、ストレージ部200とポスティングリスト受信部104Cとのそれぞれに転送処理の中止を通知し、ポスティングリスト受信部104Cから受信した計算結果を近傍ベクトル決定部106に送信する。なお、ポスティングリスト受信部104Cは、後続のポスティングリストPLの受信の通知を受信することなく、継続してポスティングリストPLを受信してもよい。つまり、中止処理部105Dによる後続のポスティングリストPLの受信の通知は、省略されてもよい。中止処理部105Dは、ストレージ部200に直接でなく、ポスティングリスト受信部104Cを経由して、後続のポスティングリストPLの転送処理の中止をストレージ部200に通知してもよい。
【0120】
第5実施形態に係る情報処理システム1Dのその他の構成は、第1実施形態に係る情報処理システム1と同様である。
【0121】
<5-2>情報処理システム1Dの動作
図19は、第5実施形態に係る情報処理システム1Dにおける探索動作の一例を示すフローチャートである。以下に、図19を参照して、第5実施形態の情報処理方法として、第5実施形態に係る情報処理システム1Dにおける探索動作の一例について説明する。
【0122】
第5実施形態の探索動作が開始すると、まず、情報処理装置10Dは、第1実施形態と同様に、クエリベクトルQVを受信し(S10)、第1探索処理を実行し(S11)、ポスティングリストPLの転送要求をストレージ装置20に送信する(S12)。そして、情報処理装置10Dは、第1実施形態と同様に、ストレージ装置20からポスティングリストPLを受信し(S13)、第2探索処理を実行する(S14)。
【0123】
次に、情報処理装置10Dは、受信したポスティングリストPLの統計解析を実行する(S50)。言い換えると、S50の処理において、情報処理装置10Dは、探索動作が開始してから現在までに受信した各ポスティングリストPLに含まれたベクトル情報VIとクエリベクトルQVとの距離の計算結果のうち最短の距離を算出し、現在のポスティングリストPLに含まれた複数のベクトル情報VIに基づく統計情報を算出する。
【0124】
次に、情報処理装置10Dは、現在の最短距離がポスティングリストPLの距離分布の所定の範囲外であるか否かを確認する(S51)。距離分布は、S50の処理により算出された統計情報に対応する。例えば、距離分布は、ポスティングリストPLに含まれた複数のベクトル情報VIのそれぞれとクエリベクトルQVとの距離の分布である。“所定の範囲”は、例えば、正規分布における±3σの範囲に対応する。
【0125】
S51の処理において、現在の最短距離がポスティングリストPLの距離分布の所定の範囲外でないことが確認された場合(S51:NO)、情報処理装置10Dは、S13の処理に進む。すなわち、情報処理装置10Dは、次のポスティングリストPLを受信し、第2探索処理を実行する。
【0126】
S51の処理において、現在の最短距離がポスティングリストPLの距離分布の所定の範囲外であることが確認された場合(S51:YES)、情報処理装置10Dは、S16の処理に進む。
【0127】
S16の処理において、情報処理装置10Dは、第1実施形態と同様に、転送中止要求をストレージ装置20に送信する。その後、情報処理装置10Dは、第1実施形態と同様に、少なくとも1つの近傍ベクトルNVを出力する(S17)。S17の処理が終了すると、情報処理装置10Dは、図19の一連の処理を終了する。
【0128】
(統計解析の具体例)
以下に、図20及び図21を用いて、S50の処理における統計解析と、S51の処理における判定方法の具体例について説明する。図20及び図21は、第5実施形態に係る情報処理システム1Dの探索動作におけるポスティングリストPL受信時の距離の分布の第1例及び第2例をそれぞれ示す分布図である。図20及び図21のそれぞれは、正規分布を仮定した場合における、ポスティングリストPLに含まれた複数のベクトル情報VIのそれぞれとクエリベクトルQVとの距離の分布の計算結果の一例を示している。“度数”は、その距離に対応するベクトル情報VIの数に対応している。
【0129】
情報処理装置10Dは、S50の処理において、ポスティングリストPLに含まれた複数のベクトル情報VIとクエリベクトルQVとの距離の分布を仮定し、それに必要な統計情報を適用することによって確率を計算し得る。例えば、情報処理装置10Dは、正規分布を仮定した場合に、平均値と標準偏差に基づいて、今わかっている最短距離より近いベクトルが見つかる確率を計算することができる。
【0130】
図20に示すように、第1例は、ポスティングリストPL受信時の最短距離(正解候補)が、複数のベクトル情報VIのそれぞれとクエリベクトルQVとの距離の平均から所定の範囲(±3σの範囲)内である。この場合、情報処理装置10Dは、S51の処理において、次のポスティングリストPLを受信した場合に、最短距離のベクトル情報VIが見つかる可能性が高いと判断し、ポスティングリストPLの転送を継続する。
【0131】
図21に示すように、第2例は、ポスティングリストPL受信時の最短距離(正解候補)が、複数のベクトル情報VIのそれぞれとクエリベクトルQVとの距離の平均から所定の範囲(±3σの範囲)外である。この場合、情報処理装置10Dは、S51の処理において、次のポスティングリストPLを受信した場合に、最短距離のベクトル情報VIが見つかる可能性が低いと判断し、ポスティングリストPLの転送を中止する。
【0132】
なお、情報処理装置10Dは、正規分布以外の分布を仮定することも可能である。つまり、情報処理装置10Dにより仮定される分布は、検索するデータの特性(クエリの種類)に応じて変更されてもよい。情報処理装置10Dは、様々な分布を用いて、統計情報を算出することができる。
【0133】
第5実施形態に係る情報処理システム1Dのその他の動作は、第1実施形態に係る情報処理システム1と同様である。
【0134】
<5-3>第5実施形態の効果
第5実施形態に係る情報処理システム1Dは、統計情報に基づいてポスティングリストPLを転送するか否かを判定することによって、正解ベクトルが存在する可能性の低いポスティングリストPLの転送を中止(省略)することができる。従って、情報処理システム1Dは、探索精度を維持しつつレイテンシを下げることができる。
【0135】
<6>その他
上記実施形態は、可能な範囲で組み合わされてもよい。例えば、第2実施形態は、第3~第5実施形態のいずれと組み合わされてもよい。情報処理装置10は、転送中止条件として、複数の条件を利用してもよい。例えば、情報処理装置10は、転送中止条件として、第3実施形態で説明された条件と、第4実施形態で説明された条件との両方を利用してもよい。転送中止条件としては、ポスティングリストPLの転送の中止の判断に利用可能であれば、様々な条件が使用され得る。
【0136】
上記実施形態において、動作の説明に用いたフローチャートは、あくまで一例である。フローチャートを用いて説明された各動作は、処理の順番が可能な範囲で入れ替えられてもよいし、その他の処理が追加されてもよいし、一部の処理が省略されてもよい。上記実施形態で説明された情報処理装置10による動作は、CPU11(プロセッサ)による動作とみなされてもよい。本明細書において、第1探索処理によりストレージ装置20からRAM13への転送が決定されたポスティングリストPLは、“選択ポスティングリスト”と呼ばれてもよい。
【0137】
上記実施形態において、情報処理装置10及びコントローラ30のそれぞれのハードウェア構成は、その他の構成であってもよい。例えば、CPUの替わりに、MPU(Micro Processing Unit)、ASIC(Application Specific Integrated Circuit)、あるいはFPGA(field-programmable gate array)などが使用されてもよい。情報処理装置10及びコントローラ30のそれぞれが有する各機能は、一部又は全部が専用のハードウェアによって実現されてもよいし、CPUなどのプロセッサが実行するプログラムとして構成されてもよい。すなわち、情報処理装置10及びコントローラ30のそれぞれが有する各機能は、コンピュータとプログラムとを用いて実現することができる。プログラムが記憶媒体に記録されてもよいし、プログラムがネットワークを介して提供されてもよい。
【0138】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことが出来る。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0139】
1,1A,1B,1C,1D…情報処理システム、10,10A,10B,10C,10D…情報処理装置、11…CPU、12…ROM、13…RAM、14…入出力回路、15…通信インターフェース、20…ストレージ装置、25…通信インターフェース、30…コントローラ、31…CPU、32…ROM、33…RAM、34…通信インターフェース、35…ストレージインターフェース、40…不揮発性記憶装置、100…距離計算部、101…距離計算部、102…代表ベクトル管理部、103,103A…ポスティングリスト決定部、104,104A,104B,104C…ポスティングリスト受信部、105,105A,105B,105C,105D…中止処理部、106…近傍ベクトル決定部、107…ベクトル個数判定部、108…距離閾値判定部、109…最短距離判定部,110…統計解析部、200…ストレージ部、PL…ポスティングリスト、RV…代表ベクトル、VI…ベクトル情報
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21