特許第6068568号(P6068568)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ ヤフー株式会社の特許一覧

特許6068568改変k最近傍グラフ生成装置及び改変k最近傍グラフ生成装置の動作方法
<>
  • 特許6068568-改変k最近傍グラフ生成装置及び改変k最近傍グラフ生成装置の動作方法 図000002
  • 特許6068568-改変k最近傍グラフ生成装置及び改変k最近傍グラフ生成装置の動作方法 図000003
  • 特許6068568-改変k最近傍グラフ生成装置及び改変k最近傍グラフ生成装置の動作方法 図000004
  • 特許6068568-改変k最近傍グラフ生成装置及び改変k最近傍グラフ生成装置の動作方法 図000005
  • 特許6068568-改変k最近傍グラフ生成装置及び改変k最近傍グラフ生成装置の動作方法 図000006
  • 特許6068568-改変k最近傍グラフ生成装置及び改変k最近傍グラフ生成装置の動作方法 図000007
  • 特許6068568-改変k最近傍グラフ生成装置及び改変k最近傍グラフ生成装置の動作方法 図000008
  • 特許6068568-改変k最近傍グラフ生成装置及び改変k最近傍グラフ生成装置の動作方法 図000009
  • 特許6068568-改変k最近傍グラフ生成装置及び改変k最近傍グラフ生成装置の動作方法 図000010
  • 特許6068568-改変k最近傍グラフ生成装置及び改変k最近傍グラフ生成装置の動作方法 図000011
  • 特許6068568-改変k最近傍グラフ生成装置及び改変k最近傍グラフ生成装置の動作方法 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6068568
(24)【登録日】2017年1月6日
(45)【発行日】2017年1月25日
(54)【発明の名称】改変k最近傍グラフ生成装置及び改変k最近傍グラフ生成装置の動作方法
(51)【国際特許分類】
   G06F 17/30 20060101AFI20170116BHJP
【FI】
   G06F17/30 414Z
   G06F17/30 419B
【請求項の数】7
【全頁数】14
(21)【出願番号】特願2015-137181(P2015-137181)
(22)【出願日】2015年7月8日
【審査請求日】2015年12月18日
(73)【特許権者】
【識別番号】500257300
【氏名又は名称】ヤフー株式会社
(74)【代理人】
【識別番号】100109553
【弁理士】
【氏名又は名称】工藤 一郎
(72)【発明者】
【氏名】岩崎 雅二郎
【審査官】 早川 学
(56)【参考文献】
【文献】 特開2010−79871(JP,A)
【文献】 特開2012−133522(JP,A)
【文献】 坂垣内洵也、外2名,修正相対近傍グラフを用いたターゲット追跡と認識,電子情報通信学会技術研究報告,社団法人電子情報通信学会,2004年 9月 3日,Vol.104,No.290,pp.121〜128
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/30
(57)【特許請求の範囲】
【請求項1】
ベクトル空間で定義される複数のノードを保持するノード保持部と、
保持される各ノードが前記ベクトル空間内でk個の最近傍ノードと有向エッジにより接続されて構成されるk最近傍グラフを生成するk最近傍グラフ生成部と、
生成されたk最近傍グラフにおいて、一つの有向エッジのみによって接続されているノード間にすでに接続されている有向エッジと逆向きの有向エッジである逆向エッジを付加することで改変されたk最近傍グラフである改変k最近傍グラフを生成する改変k最近傍グラフ生成部と、
を有する改変k最近傍グラフ生成装置。
【請求項2】
自然数kが下記式(1)を満たし、生成される一のグラフ内にて複数の値をとりうる変動数とした場合に、
ベクトル空間で定義される複数のノードを保持するノード保持部と、
保持される各ノードが前記ベクトル空間内でk個の最近傍ノードと有向エッジにより接続されて構成される変動k最近傍グラフを生成する変動k最近傍グラフ生成部と、
生成された変動k最近傍グラフにおいて、一つの有向エッジのみによって接続されているノード間にすでに接続されている有向エッジと逆向きの有向エッジである逆向エッジを付加することで改変された変動k最近傍グラフである改変変動k最近傍グラフを生成する改変変動k最近傍グラフ生成部と、
を有する改変変動k最近傍グラフ生成装置。
式(1) a ≦ k ≦ b
a、b:自然数
【請求項3】
生成された改変k最近傍グラフを構成するノードのうち、自身を始点とする有向エッジの数が所定の閾値を超えるノードについて、閾値を超えた分の有向エッジを長い順に前記閾値を超えない有向エッジ数に至るまで削除する第一エッジ削除部を、さらに有する請求項1に記載の改変k最近傍グラフ生成装置。
【請求項4】
生成された改変変動k最近傍グラフを構成するノードのうち、自身を始点とする有向エッジの数が所定の閾値を超えるノードについて、閾値を超えた分の有向エッジを長い順に前記閾値を超えない有向エッジ数に至るまで削除する第二エッジ削除部を、さらに有する請求項2に記載の改変変動k最近傍グラフ生成装置。
【請求項5】
前記k最近傍グラフに代えて近似k最近傍グラフとした請求項1又は3に記載の改変k最近傍グラフ生成装置。
【請求項6】
ベクトル空間で定義される複数のノードを保持するノード保持部を有する改変k最近傍グラフ生成装置の動作方法であって、
保持される各ノードが前記ベクトル空間内でk個の最近傍ノードと有向エッジにより接続されて構成されるk最近傍グラフを生成するk最近傍グラフ生成ステップと、
生成されたk最近傍グラフにおいて、一つの有向エッジのみによって接続されているノード間にすでに接続されている有向エッジと逆向きの有向エッジである逆向エッジを付加することで改変されたk最近傍グラフである改変k最近傍グラフを生成する改変k最近傍グラフ生成ステップと、
を有する改変k最近傍グラフ生成装置の動作方法。
【請求項7】
ベクトル空間で定義される複数のノードを保持するノード保持部を有する改変k最近傍グラフ生成装置を動作させるプログラムであって、
保持される各ノードが前記ベクトル空間内でk個の最近傍ノードと有向エッジにより接続されて構成されるk最近傍グラフを生成するk最近傍グラフ生成ステップと、
生成されたk最近傍グラフにおいて、一つの有向エッジのみによって接続されているノード間にすでに接続されている有向エッジと逆向きの有向エッジである逆向エッジを付加することで改変されたk最近傍グラフである改変k最近傍グラフを生成する改変k最近傍グラフ生成ステップと、
を計算機に実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、高次元ベクトルデータの探索をするためのグラフ構造のインデックスの生成を行う技術に関する。
【背景技術】
【0002】
高次元空間におけるベクトルデータの近傍検索は、画像検索や音声検索などで活用されている。近傍検索を行うにあたり、各ベクトルデータの近傍(隣接データ)を定義したグラフ構造のインデックスが直感的で理解しやすく近傍検索の索引として用いられている。
【0003】
このようなグラフ構造のインデックス生成の手法の一つとしてk最近傍グラフがある。この手法は各ノード(ベクトルデータ)からk個の最近傍のノードへの有向エッジで接続されているグラフ構造のインデックスである。そして、このように接続されたエッジをたどりながら、例えば指定されたオブジェクトと最も類似するオブジェクトを検索する。k最近傍グラフの生成や更新、k最近傍グラフを用いた最近傍検索に関する技術としては、特許文献1や特許文献2などがある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2001−52024号公報
【特許文献2】特開2011−90351号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
k最近傍グラフを用いた最近傍検索は、ノード間のエッジ数をk個の最近傍に制限するため少ない距離計算回数で高い検索精度を実現し得る。一方、制限された数の有向エッジでしかノード間が接続されないため分離したグラフ、すなわち探索においてたどれない経路が生じてしまう。これにより、探索漏れが生じたり遠回りをした探索による計算処理量の増加が生じたりするおそれがある。
【課題を解決するための手段】
【0006】
そこで、上記課題を解決するために本発明において、以下の改変k最近傍グラフ生成装置などを提供する。すなわち、ベクトル空間で定義される複数のノードを保持するノード保持部と、保持される各ノードが前記ベクトル空間内でk個の最近傍ノードと有向エッジにより接続されて構成されるk最近傍グラフを生成するk最近傍グラフ生成部と、生成されたk最近傍グラフにおいて、一つの有向エッジのみによって接続されているノード間にすでに接続されている有向エッジと逆向きの有向エッジである逆向エッジを付加することで改変されたk最近傍グラフである改変k最近傍グラフを生成する改変k最近傍グラフ生成部と、を有する改変k最近傍グラフ生成装置を提供する。
【0007】
また、上記構成を備え、生成された改変k最近傍グラフを構成するノードのうち、自身を始点とする有向エッジの数が所定の閾値を超えるノードについて、閾値を超えた分の有向エッジを長い順に前記閾値を超えない有向エッジ数に至るまで削除する第一エッジ削除部を、さらに有する改変k最近傍グラフ生成装置も提供する。また、上記いずれかの改変k最近傍グラフ生成装置において、k最近傍グラフに代えて近似k最近傍グラフとした改変k最近傍グラフ生成装置を提供する。
【発明の効果】
【0008】
上記のような構成を採用する改変k最近傍グラフ生成装置により、従来のk最近傍グラフをインデックスとする最近傍検索よりも、検索精度と検索速度に優れる最近傍検索を行うことができる。
【図面の簡単な説明】
【0009】
図1】実施形態1の改変k最近傍グラフ生成装置の機能ブロックの一例を示すブロック図
図2】k=3として作成したk最近傍グラフの一部とキーノードの一例を示す概念図
図3】k最近傍グラフを用いて最近傍検索を行う態様を示す概念図
図4】改変k最近傍グラフ生成部による逆向エッジ付加の態様の一例を示す概念図
図5】実施形態1の改変k最近傍グラフ生成装置のハードウェア構成の一例を表す概略図
図6】実施形態1の改変k最近傍グラフ生成装置における処理の流れの一例を表すフロー図
図7】実施形態2の改変k最近傍グラフ生成装置の機能ブロックの一例を示すブロック図
図8】第一エッジ削除部によりエッジを削除する一例を示す概念図
図9】第一エッジ削除部によりエッジを削除する他の例を示す概念図
図10】実施形態2の改変k最近傍グラフ生成装置における処理の流れの一例を表すフロー図
図11】試験結果を示すグラフ
【発明を実施するための形態】
【0010】
以下、本発明の実施の形態について、添付図面を用いて説明する。なお、本発明は、これら実施形態に何ら限定されるべきものではなく、その要旨を逸脱しない範囲において、種々なる態様で実施し得る。
【0011】
実施形態1は、主に請求項1、3、4、5などに関する。実施形態2は、主に請求項2、3、4、5などに関する。
<実施形態1>
<概要>
【0012】
本実施形態の改変k最近傍グラフ生成装置は、生成したk最近傍グラフにおいて、一つの有向エッジのみによって接続されているノード間にかかる有向エッジと逆向きのエッジを付加してk最近傍グラフを改変することに特徴を有する。このように改変した改変k最近傍グラフを用いることにより、最近傍検索の検索精度及び検索速度の向上を図ることができる。
<構成>
【0013】
図1は、本実施形態の改変k最近傍グラフ生成装置の機能ブロックの一例を示すブロック図である。なお、以下に記載する本装置の機能ブロックは、ハードウェア及びソフトウェアの組み合わせとして実現され得る。具体的には、コンピュータを利用するものであれば、CPU(中央演算装置)や主メモリ、システムバス、あるいは二次記憶装置(ハードディスクドライブや不揮発性メモリ、CDやDVDなどの記憶メディアとそれらメディアの読取ドライブなど)、情報入力に利用される入力デバイス、表示装置、その他の外部周辺装置などのハードウェア構成部、またその外部周辺装置用のインターフェース、通信用インターフェース、それらハードウェアを制御するためのドライバプログラムやその他アプリケーションプログラム、ユーザ・インターフェース用アプリケーションなどが挙げられる。そして主メモリ上に展開したプログラムに従ったCPUの演算処理によって、入力デバイスやその他インターフェースなどから入力され、メモリやハードディスク上に保持されているデータなどが加工、蓄積されたり、上記各ハードウェアやソフトウェアを制御するための命令が生成されたりする。あるいは本装置の機能ブロックは専用ハードウェアによって実現されてもよい。また、本装置は一つのハードウェアやソフトウェアにより構成される場合に限られず、複数のハードウェアやソフトウェアの組み合わせによって構成されてもよく、ネットワークを介在したサーバ装置を含んで構成されてもよい。
【0014】
また、この発明は装置として実現できるのみでなく、方法としても実現可能である。また、このような発明の一部をソフトウェアとして構成することができる。さらに、そのようなソフトウェアをコンピュータに実行させるために用いるプログラム、及びプログラムを固定した記録媒体も、当然にこの発明の技術的な範囲に含まれる(本明細書の全体を通じて同様である)。
【0015】
図1に示すように、本実施形態の「改変k最近傍グラフ生成装置」(0100)は、「ノード保持部」(0101)と、「k最近傍グラフ生成部」(0102)と、「改変k最近傍グラフ生成部」(0103)とを有する。
【0016】
「ノード保持部」(0101)は、ベクトル空間で定義される複数のノード改変k最近傍グラフ生成装置を保持する機能を有する。ノードは高次元のベクトルデータであり、例えば、画像や音声などの特徴量が挙げられる。
【0017】
キーノードは、本装置に対して例えばクライアント端末から検索クエリを受付けた場合に、探索の基準となるノードとして定義されるノードである。例えば、類似画像検索においては、指定された画像を表わす画像特徴量を抽出してキーノードとして定義する。
【0018】
「k最近傍グラフ生成部」(0102)は、保持される各ノードが前記ベクトル空間内でk個の最近傍ノードと有向エッジにより接続されて構成されるk最近傍グラフを生成する機能を有する。
【0019】
k最近傍グラフ生成部は、各ノードのベクトルデータに基づき距離をインデックスの基準としてグラフを生成する。このk最近傍グラフの生成は、各ノードの近傍にあるノードのうち最も近傍にあるk個のノードを有向エッジで接続することで作成する。なお、有向エッジとは単一の方向を有するエッジである。したがって、一つの有向エッジでのみ接続されるノード間では、探索の際にはその単一の方向にしかたどることができない。なお、最近傍検索及びk最近傍グラフの理論については、特許文献1及び2などに開示されているように公知のものであり、詳細な説明については省略する。
【0020】
「改変k最近傍グラフ生成部」(0103)は、生成されたk最近傍グラフにおいて、一つの有向エッジのみによって接続されているノード間にすでに接続されている有向エッジと逆向きの有向エッジである逆向エッジを付加することで改変されたk最近傍グラフである改変k最近傍グラフを生成する機能を有する。
【0021】
図2は、k=3として作成したk最近傍グラフの一部を示す概念図である。図中において黒丸で示しているのがノードであり、矢印で示しているのが有向エッジである。図示するように双方を指す有向エッジによって互いに接続されるノードがある一方で、一つの有向エッジによってのみ接続される「ノードA」(0201)及び「ノードB」(0202)も存在する。
【0022】
図3は、図2に示したk最近傍グラフを用いて最近傍検索を行う態様を示す概念図である。図中において白丸で示しているのは、「キーノード」(0303)である。なお、キーノードは、検索装置に対して例えばクライアント端末から検索クエリを受付けた場合に、探索の基準となるノードとして定義されるノードである。例えば、類似画像検索においては、指定された画像を表わす画像特徴量を抽出してキーノードとして定義する。探索が「ノードC」(0304)の方から進んでいる場合、各ノードにおいて指定されたキーノードに最も近いノードをk個の近傍ノードから選択していくと、探索の経路は「ノードA」(0301)をたどることになる。ノードAにおいて「キーノード」(0303)に最も近いk個のノードに「ノードB」(0302)が含まれ得るが、ノードAからノードBへ向く有向エッジは存在しない。したがって、ノードAからノードBへの直接的な経路がなく、結果としてキーノードに近いノードを検索結果として得られない場合や、得られたとしても多くの計算量が上乗せされる場合が生じる。
【0023】
そこで、図4に示すように、「ノードA」(0401)から「ノードB」(0402)へ向かう有向エッジである逆向エッジを付加する。この逆向エッジの付加により、ノードAからノードBへの探索経路が繋がり、「キーノード」(0403)へ近づくことが可能となる。改変k最近傍グラフ生成部は、上記のような一の有向エッジによってのみ接続されるノードのすべてに対して逆向エッジを付加する。
【0024】
このように逆向エッジを付加することで改変されたグラフを改変k最近傍グラフという。改変k最近傍グラフ生成部は、改変k最近傍グラフを保持するとともにノード保持部へ新たなノードが追加された場合に改めてk最近傍グラフを生成し、さらに逆向エッジ付加による改変を行うよう構成することが好ましい。
【0025】
なお、k最近傍グラフの生成と、生成されたk最近傍グラフを逆向エッジの付加により改変することを、それぞれ説明してきたが、k最近傍グラフの生成を行いつつ逆向エッジを付加しながら改変k最近傍グラフの生成を行うように構成してもよい。すなわち、k最近傍グラフ生成部と改変k最近傍グラフ生成部とを一体的に構成してもよい。
【0026】
なお、本実施形態の改変k最近傍グラフ生成装置の構成に、さらに、改変k最近傍グラフを用いてキーノードの最近傍検索ノードを探索する探索部を加えてもよい。探索部による探索は、改変k最近傍グラフを用いることの他は従来の最近傍探索と同様である。すなわち、例えば任意に定めたノードを探索の起点とし、起点ノードと有向エッジにより接続される近傍のノードとキーノードとの距離を計算し、それらの近傍ノードのうちキーノードとの距離が最も近いノードを選択する。そして、選択されたノードにおける近傍ノードのうちキーノードに最も近いノードを選択する。このようなキーノードとの距離に基づき近傍のノードを順次たどりながらキーノードと最も近いノードへ近づいていく。さらに、キーノードを中心とする所定の検索範囲内に含まれるノードを網羅的にすべて探索してもよい。
<ハードウェア構成>
【0027】
図5、上記機能的な各構成要件をハードウェアとして実現した際の、改変k最近傍グラフ生成装置の構成の一例を表す概略図である。この図を利用して改変k最近傍グラフ生成装置に係るそれぞれのハードウェア構成の働きについて説明する。
【0028】
この図にあるように、改変k最近傍グラフ生成装置は、各種演算処理を実行するための「CPU」(0501)と、「主メモリ」(0502)と、「記憶装置」(0503)と、「通信回路」(0504)」などを備える。記憶装置にはノード、生成したk最近傍グラフ及び各種プログラムなどが格納されている。CPUはこれら各種プログラムを主メモリに展開したうえで実行する。前記の各ハードウェア構成は「システムバス」(0505)などのデータ通信経路によって相互に接続され、情報の送受信や処理を行う。
【0029】
まず、CPUは、k最近傍グラフ生成プログラムを実行し、格納されているノードを読出し、ノード間の距離計算処理等を行い、k最近傍グラフを生成する。そして、改変k最近傍グラフ生成プログラムを実行し、一つの有向エッジでのみ接続されるノードを抽出し、抽出したノード間に逆向エッジを付加して改変k最近傍グラフの生成を行う。
【0030】
なお、探索部を構成に加える場合には、さらにCPUは、例えば検索クエリの受付けをトリガとし、格納されている探索プログラムを実行し、通信回路を介して受信した検索クエリに基づくキーノードを記憶装置から読出し、さらに格納されている改変k最近傍グラフを構成するノードを読み出してキーノードと読出したノードとの距離計算処理を行う。このような処理を順次行いエッジをたどりキーノードに最も近いノードを探索するための処理を行う。なお、改変k最近傍グラフが生成された後は必ずしもk最近傍グラフを保持し続けなくてもよい。
<処理の流れ>
【0031】
図6は、本実施形態の改変k最近傍グラフ生成装置における処理の流れの一例を表すフロー図である。なお、以下に示すステップは、上記のような計算機の各ハードウェア構成によって実行されるステップであっても良いし、媒体に記録され計算機を制御するためのプログラムを構成する処理ステップであっても構わない。
【0032】
図示するように、まず、保持される各ノードが前記ベクトル空間内でk個の最近傍ノードと有向エッジにより接続されて構成されるk最近傍グラフを生成する(k最近傍グラフ生成ステップ:S0601)。そして、生成されたk最近傍グラフにおいて、一つの有向エッジのみによって接続されているノード間に逆向エッジを付加して改変k最近傍グラフを生成する(改変k最近傍グラフ生成ステップ:S0602)。なお、k最近傍グラフ生成ステップと改変k最近傍グラフ生成ステップとは重畳して行ってもよい。
<他の構成>
【0033】
ここまで、生成したk最近傍グラフを改変して最近傍検索を行う改変k最近傍グラフ生成装置について説明してきた。この改変k最近傍グラフ生成装置において、k最近傍グラフに代えて近似k最近傍グラフを生成し、生成した近似k最近傍グラフを上述の通り改変して生成した改変近似k最近傍グラフを用いて最近傍検索を行うよう構成してもよい。
【0034】
k最近傍グラフはすべてのノード間の距離計算を行ったうえでk個の最近傍ノードを特定し有向エッジで接続する。したがって、元来計算処理量が大きくグラフ生成コストを問題視する向きもある。そこで近年ではk最近傍グラフの理論を踏襲しつつ生成コストの抑制を図る近似k最近傍グラフの生成手法が提案されている(Wei Dong, Moses Charikar, Kai Li. Efficient K-Nearest Neighbor Graph Construction for Generic Similarity Measures. WWW2011)。
【0035】
本実施形態の改変k最近傍グラフ生成装置は、このような生成手法に基づき生成された近似k最近傍グラフを改変して検索に用いても有効である。これは、後述する実施形態2においても同様である。
【0036】
また、k最近傍グラフを生成する代わりに変動k最近傍グラフを生成し、生成した変動k最近傍グラフに対して改変k最近傍グラフ生成部における処理と同様に逆向エッジを付加して改変するように構成してもよい。変動k最近傍グラフは、自然数kが下記式(1)を満たし、生成される一のグラフ内にて複数の値をとりうる変動数であり、各ノードがk個の最近傍ノードと有向エッジにより接続されて構成されるグラフである。
式(1) a≦k≦b (a、b:自然数)
【0037】
変動k最近傍グラフは、ノード間が有向エッジで接続される点においてk最近傍グラフと同様であるが、有向エッジで接続される最近傍ノードの数がノードによって異なる点で相違する。近傍探索に用いられるグラフについては様々に研究が行われており、このような変動k最近傍グラフも存在し、有向エッジにより接続されて構成されるグラフであることから、逆向エッジを付加し改変変動k最近傍グラフを生成することの効果もk最近傍ノードを改変する場合と同様に奏し得る。
【0038】
変動k最近傍グラフを生成し、さらに逆向エッジを付加して改変変動k最近傍グラフを生成する改変変動k最近傍グラフ生成装置の機能ブロック構成やハードウェア構成は、改変k最近傍グラフ生成装置に準じて構成することができる。また、改変変動k最近傍グラフ生成装置における処理の流れについても、改変k最近傍グラフ生成装置における処理の流れに準じたものとなる。
<効果>
【0039】
本実施形態の改変k最近傍グラフ生成装置により、従来のk最近傍グラフをインデックスとする最近傍検索よりも、検索精度と検索速度に優れる最近傍検索を行うことができる。
<実施形態2>
<概要>
【0040】
本実施形態は、実施形態1における改変k最近傍グラフ生成装置を基本とし、改変k最近傍グラフにおいて、自身を始点とする有向エッジの数が所定数の閾値を超えるノードについて、閾値を超えた分の有向エッジを長い順に前記閾値を超えない有向エッジ数に至るまで削除する。これにより計算処理量の増加を抑制し、より検索速度に優れる最近傍検索を行うことができる。
<構成>
【0041】
図7は、本実施形態の改変k最近傍グラフ生成装置の機能ブロックの一例を示すブロック図である。図7に示すように、本実施形態の「改変k最近傍グラフ生成装置」(0700)は、「ノード保持部」(0701)と、「k最近傍グラフ生成部」(0702)と、「改変k最近傍グラフ生成部」(0703)とを有し、さらに「第一エッジ削除部」(0704)を有する。第一エッジ削除部の他の各構成は、実施形態1において既に説明を行っているため重ねての説明は省略する。なお、改変変動k最近傍グラフ生成装置に第一エッジ削除部と同機能を果たす第二エッジ部を加えて構成してもよい。
【0042】
「第一エッジ削除部」(0704)は、生成された改変k最近傍グラフを構成するノードのうち、自身を始点とする有向エッジの数が所定の閾値を超えるノードについて、閾値を超えた分の有向エッジを長い順に前記閾値を超えない有向エッジ数に至るまで削除する機能を有する。
【0043】
生成した改変k最近傍グラフにおいて、一部のノードに極めて多量の有向エッジが存在する場合が生じ得る。この場合計算処理量が増加し検索速度の低下をもたらすおそれがある。そこで、一のノードからのエッジの上限数を定め、上限数を超える場合には超えた分のエッジを長い順に削除する。
【0044】
図8は、第一エッジ削除部によりエッジを削除する一例を示す概念図である。図8(a)は、改変k最近傍グラフにおける一のノードを始点とする有向エッジを示す図である。図示するように、一の「ノード」(0801)を始点とする有向エッジの本数は11本である。
【0045】
図8(b)は、閾値を「6」とした場合のエッジ削除の態様を示す図である。図示するように、「ノード」(0801)を始点とする11本の有向エッジのうち、閾値を超えた5本の破線で示したエッジが削除される。なお、図中の鎖線の円は、有向エッジの長さが分かるよう便宜的に描いたものである。
【0046】
有向エッジの長さは、その有向エッジにより接続されるノード間の距離である。したがって、一のノードと接続されるすべてのノードとの距離を計算し、距離の長い順にソートして有向エッジの数が閾値に至るまで削除すればよい。なお、改変k最近傍グラフ生成部によって付加されたエッジのみを削除の対象として限定してもよいし、すべてのエッジを削除の対象としてもよい。
【0047】
有向エッジを削除するにあたり、有向エッジの接続先のノードにおける距離順位を考慮するように構成してもよい。図9(a)は、エッジ削除の対象となる一のノードを始点とする計11本の有向エッジを示している。これら有向エッジのうちE1〜E4は元のk最近傍グラフ(k=4)において存在していたものである。そして、E5〜E11は改変k最近傍グラフ生成部により付加されたエッジである。各エッジに付した数は長さ(距離)を示し、数字の大きいエッジほど距離が長い。
【0048】
図9(b)は、E1〜E11についての「対象ノードに接続するエッジを距離の近い順でソートしたときの順位(A)」、「距離」、「当該エッジの接続先ノードにおけるエッジの距離の近い順での順位(B)」及び「削除のための指標(A+B)」を示す表である。
【0049】
元々存在するE1〜E4は削除の対象となるエッジから除外している。E5〜E11エッジ数の上限を定める閾値を「8」とした場合、エッジの接続先ノードにおけるエッジの距離の近い順での順位(B)を考慮して、(A+B)の値に基づいて削除対象となるエッジを特定する。図中に示すように、(A+B)の値の大きい順にソートすると、「E11(15)」、「E9(13)」及び「E8(12)」の三つのエッジが削除対象として特定される。なお、距離の近い順での順位に代えて距離の遠い順での順位を用いて指標としてもよい。すなわち指標を設定するのにあたり昇順、降順は問わない。
【0050】
エッジ削除の対象ノードにおける距離順位が低いエッジであっても、当該エッジが接続するノードにおいては距離順位の高い重要なエッジであり削除しない方が良い場合がある。そこで、このように接続先ノードにおける距離順位も考慮してエッジ削除を行う。
<ハードウェア構成>
【0051】
本実施形態の改変k最近傍グラフ生成装置は、実施形態1の改変k最近傍グラフ生成装置に係るハードウェア構成に準じて構成することができる。例えば、上述したようにエッジを削除するための第一エッジ削除プログラムや閾値をさらに記憶装置に格納し、当該プログラムをCPUが実行することで構成される。
<処理の流れ>
【0052】
図10は、本実施形態の改変k最近傍グラフ生成装置における処理の流れの一例を表すフロー図である。図示するように、まず、保持される各ノードがベクトル空間内でk個の最近傍ノードと有向エッジにより接続されて構成されるk最近傍グラフを生成する(k最近傍グラフ生成ステップ:S1001)。そして、生成されたk最近傍グラフにおいて、一つの有向エッジのみによって接続されているノード間に逆向エッジを付加して改変k最近傍グラフを生成する(改変k最近傍グラフ生成ステップ:S1002)。そして、自身を始点とする有向エッジの数が所定の閾値を超えるノードについて、閾値を超えた分の有向エッジを長い順に前記閾値を超えない有向エッジ数に至るまで削除する(第一エッジ削除ステップ:S1003)。
<効果>
【0053】
本実施形態の改変k最近傍グラフ生成装置により、計算処理量の増加を抑制し、より検索速度に優れる最近傍検索を行うことができる。
<試験>
【0054】
図11は、検索範囲よりわずかに広い範囲を探索するための探索半径係数εを0.0から0.02ずつ大きくして、128次元のSIFT(画像局所特徴量)1000万オブジェクトに対して20件の最近傍ノードの検索をしたときの検索時間と検索精度(再現率)との関係を示すグラフである。εを大きくすると検索精度は向上するが、その分検索時間の増加をもたらす。グラフAは、k=10で生成したk最近傍グラフを改変せずにそのまま用いて検索を行った結果である。グラフBは、さらに実施形態1の逆向きエッジの追加をした改変k最近傍グラフを用いて検索を行った結果である。グラフCは、さらに実施形態2の閾値を40としてエッジ削除をした改変k最近傍グラフを用いて検索を行った結果である。
【0055】
グラフAとグラフBとの対比から分かるように、改変k最近傍グラフを用いた検索はより短い検索時間で高い検索精度が得られることが示された。また、グラフBとグラフCとの対比から分かるように、エッジの削除を行うことにより、さらに短い検索時間で高い検索精度が得られることが示された。
【符号の説明】
【0056】
0100 改変k最近傍グラフ生成装置
0101 ノード保持部
0102 k最近傍グラフ生成部
0103 改変k最近傍グラフ生成部
【要約】
【課題】k最近傍グラフを用いた最近傍検索は、高い検索精度を実現し得る一方、制限された数の有向エッジでしかノード間が接続されないため分離したグラフ、すなわち探索においてたどれない経路が生じてしまう。これにより、検索漏れや計算処理量の増加が生じるおそれがある。
【解決手段】k最近傍グラフにおいて一つの有向エッジのみによって接続されているノード間にすでに接続されている有向エッジと逆向きの有向エッジである逆向エッジを付加することで改変する改変k最近傍グラフ生成し、当該改変k最近傍グラフを用いて探索する改変k最近傍グラフ生成装置を提供する。
【選択図】図1
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11