(57)【要約】  インデックス生成装置は、データ間の類似度を用いて、下位ノードと、その下位ノードとリンク関係を持つエントリであって、その下位ノードのエントリにより示されるデータとの類似度が当該リンク関係に付与される類似度閾値以上の代表データを示すエントリを含む上位ノードと、を含むインデックスを生成するインデックス生成部と、上位ノードと下位ノードとの各リンク関係に関し、デフォルト類似度閾値及び調整値をそれぞれ決定し、デフォルト類似度閾値から調整値の減算により各リンク関係に付与される各類似度閾値をそれぞれ決定する閾値決定部と、を有する。
2016006276.tif 000002
【特許請求の範囲】
【請求項１】
インデックス対象となるデータを示す少なくとも１つのエントリをそれぞれ含む複数のノードが階層化されたインデックスを生成するインデックス生成装置において、
データ間の類似度を用いて、下位ノードと、該下位ノードとリンク関係を持つエントリであって、該下位ノードのエントリにより示されるデータとの類似度が該リンク関係に付与される類似度閾値以上の代表データを示すエントリを含む上位ノードと、を含む前記インデックスを生成するインデックス生成部と、
上位ノードと下位ノードとの各リンク関係に関し、デフォルト類似度閾値及び調整値をそれぞれ決定し、該デフォルト類似度閾値から該調整値の減算により該各リンク関係に付与される各類似度閾値をそれぞれ決定する閾値決定部と、
を備えるインデックス生成装置。
【請求項２】
前記閾値決定部は、前記デフォルト類似度閾値が大きい程、小さくなるように前記調整値を決定する、
請求項１に記載のインデックス生成装置。
【請求項３】
前記閾値決定部は、前記デフォルト類似度閾値を階層が下がる程大きい値に設定し、前記調整値を階層が下がる程小さい値に設定する、
請求項１又は２に記載のインデックス生成装置。
【請求項４】
前記閾値決定部は、前記上位ノードにより示される前記代表データと前記下位ノードのエントリにより示される複数データの各々との類似度の分散度合が小さい程、前記リンク関係に関する前記調整値を小さい値に決定する、
請求項１に記載のインデックス生成装置。
【請求項５】
前記閾値決定部は、前記上位ノードにより示される前記代表データと前記下位ノードのエントリにより示される複数データの各々との類似度の標準偏差を該下位ノードのエントリ数で除算して得られる値を、前記リンク関係に関する前記調整値に決定する、
請求項４に記載のインデックス生成装置。
【請求項６】
インデックス対象データを取得する対象取得部と、
前記上位ノードのエントリにより示される前記代表データと前記対象取得部により取得されるインデックス対象データとの類似度を取得する類似度取得部と、
を更に備え、
前記インデックス生成部は、前記類似度取得部により取得される類似度と、前記デフォルト類似度閾値及び前記調整値から算出される類似度閾値とを比較し、該比較結果に基づいて、該インデックス対象データを示す新たなエントリの挿入先を前記上位ノード又は前記下位ノードに決定し、
前記インデックス生成部は、
前記新たなエントリの挿入先として決定された対象ノードに含まれるエントリ及び前記新たなエントリを含む対象エントリ集合の中から、代表エントリを選択する代表選択部と、
前記対象エントリ集合のエントリ数がエントリ閾値を超える場合に、前記選択された代表エントリを除く前記対象エントリ集合の中から、前記選択された代表エントリにより示されるデータとの類似度が前記閾値決定部により決定される新たなデフォルト類似度閾値又は新たな類似度閾値以上のデータを示すエントリを選択し、該選択されたエントリを含む下位ノードを生成し、前記対象ノードの前記選択された代表エントリに該下位ノードへのリンク関係を設定し、該リンク関係に新たなデフォルト類似度閾値及び新たな調整値を付与する溢れ調整部と、
を含む、
請求項１から５のいずれか１項に記載のインデックス生成装置。
【請求項７】
インデックス対象データを取得する対象取得部と、
前記複数のノードの各々について、ノード内の最大エントリ数を示すエントリ閾値をそれぞれ決定するエントリ調整部と、
を更に備え、
前記エントリ調整部は、前記インデックス生成部により前記インデックス対象データを示すエントリの挿入先が前記下位ノードに決定された場合に、前記下位ノードに含まれる複数エントリにより示される複数データ及び前記インデックス対象データの各々と前記代表データとの類似度群の分布状態に基づいて、前記下位ノードに関する前記エントリ閾値を変更するか否かを判定する、
請求項１から６のいずれか１項に記載のインデックス生成装置。
【請求項８】
前記エントリ調整部は、前記インデックス対象データを示すエントリが前記下位ノードに挿入された場合に、前記下位ノード内のエントリ数が前記エントリ閾値を超えるか否かを判定し、該エントリ数が前記エントリ閾値を超える場合に、前記複数データ及び前記インデックス対象データの各々と前記代表データとの類似度に対して外れ値検出を行い、外れ値が検出されない場合に、前記エントリ閾値を増加させ、外れ値が検出された場合には、前記エントリ閾値を変更しない、
請求項７に記載のインデックス生成装置。
【請求項９】
インデックス対象となるデータを示す少なくとも１つのエントリをそれぞれ含む複数のノードが階層化されたインデックスを生成するインデックス生成方法において、
下位ノードと、該下位ノードとリンク関係を持つエントリであって、該下位ノードのエントリにより示されるデータとの類似度が該リンク関係に付与される類似度閾値以上の代表データを示すエントリを含む上位ノードと、を含む前記インデックスを生成し、
上位ノードと下位ノードとの各リンク関係に関し、デフォルト類似度閾値及び調整値をそれぞれ決定し、
前記デフォルト類似度閾値から前記調整値の減算により、前記各リンク関係に付与される各類似度閾値をそれぞれ決定する、
ことを含むインデックス生成方法。
【請求項１０】
インデックス対象データを取得し、
前記複数のノードの各々について、ノード内の最大エントリ数を示すエントリ閾値をそれぞれ決定する、
ことを更に含み、
前記エントリ閾値の決定は、前記インデックス対象データを示すエントリの挿入先が前記下位ノードに決定された場合に、前記下位ノードに含まれる複数エントリにより示される複数データ及び前記インデックス対象データの各々と前記代表データとの類似度群の分布状態に基づいて、前記下位ノードに関する前記エントリ閾値を変更するか否かを判定することを含む、
請求項９に記載のインデックス生成方法。
【請求項１１】
請求項９又は１０に記載のインデックス生成方法を少なくとも１つのコンピュータに実行させるプログラム。
【請求項１２】
インデックス対象となるデータを示す少なくとも１つのエントリをそれぞれ含む複数のノードが階層化されたインデックスのデータ構造において、
前記インデックスが、
下位ノードと、
前記下位ノードとリンク関係を持つエントリであって、前記下位ノードのエントリにより示されるデータとの類似度が該リンク関係に付与される類似度閾値以上の代表データを示すエントリを含む上位ノードと、
を含み、
前記代表データを示す前記上位ノードのエントリと前記下位ノードとの各リンク関係には、デフォルト類似度閾値及び調整値がそれぞれ付与されており、
前記リンク関係に付与される前記類似度閾値は、前記デフォルト類似度閾値から前記調整値を減算することで算出されており、
コンピュータが、前記上位ノードのエントリにより示される前記代表データと検索対象データとの類似度を算出し、該類似度と前記上位ノードのエントリが持つ前記リンク関係に付与された前記類似度閾値とを比較し、該比較結果に基づいて該検索対象データに対応する検索結果を得るために参照する、
前記インデックスのデータ構造。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの類似検索技術に関する。
【背景技術】
【０００２】
下記特許文献１から１０に示されるように、現在、様々な類似検索手法が提案されている。このような類似検索は、画像の特徴量データのような多次元データや高次元データを対象に行われることが多い。例えば、特許文献１、３及び６は、類似画像検索方法を提案する。特許文献２は、一方のデータから他方のデータに辿るためのリンクがデータ間に設定されたデータベースを用いて、類似データの検索を行う手法を提案する。特許文献５は、任意の画像集合を階層的に分類する手法を提案する。特許文献７は、高次元の特徴ベクトルの集合から、クエリ特徴ベクトルに類似した特徴ベクトルを検索する手法を提案する。特許文献９は、ハッシュ関数を用いて各学習パターンをハッシュ値に対応するバケットに分類し、入力パターンのハッシュ値に対応するバケットに属する学習パターンの中から、入力パターンに最も類似する学習パターンを探索する手法を提案する。特許文献１０は、複数の特徴量をベクトルで表現可能な多次元のデータに対し、条件を指定して所望のデータを抽出するデータマッチング方法を提案する。なお、以降、「高次元」と「多次元」とは、特別に区別されることなく用いられる。【０００３】
このような類似検索では、類似度関数等を用いて、対象データ間の類似度が算出される。例えば、画像の特徴量データは、多次元の数値ベクトルで表わされ、比較対象の特徴量データ間の類似度が類似度関数により算出される。特許文献４は、データベース内の全ての特徴量に関し、他の特徴量との類似度を計算し、類似度の高い順に上位ｆ（ｘ）件分のＩＤ情報を、類似度順付で格納しておき、この格納内容を検索することにより、類似特徴量を検索する手法を提案する。【０００４】
また、対象データに関し索引が構築され、この索引を用いて類似検索を行うことで、検索の高速化が図られる。多次元データの索引生成手法として、Ｒ木（R-tree）が知られている（非特許文献１参照）。また、特許文献８は、特徴ベクトル空間を複数個の近似領域に分割し、各近似領域を近似領域の密疎に応じて階層化されたインデクシングツリーを生成する手法を提案する。なお、下記非特許文献２、３及び４については後述する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４５４５６４１号公報
【特許文献２】特開２０１１−０９０３５２号公報
【特許文献３】特開２０１２−０７９１８６号公報
【特許文献４】特開２０００−０３５９６５号公報
【特許文献５】特開２００１−１６００５７号公報
【特許文献６】特許第４９０６９００号公報
【特許文献７】特開２０１１−２５７９７０号公報
【特許文献８】特開２００２−１６３２７２号公報
【特許文献９】特開２００９−０２０７６９号公報
【特許文献１０】特開２００４−０４６６１２号公報
【非特許文献】
【０００６】
【非特許文献１】Antonin Guttman著「R-Trees：A Dynamic Index Structure for Spatial Searching」、SIGMOD Conference出版、1984年、pp.47-57
【非特許文献２】Wei Dong、Moses Charikar、Kai Li、「Efficient k-nearest neighbor graph construction for generic similarity measures」、WWW 2011、577-586
【非特許文献３】Stanley Milgram、「The Small World Problem」、Psychology Today、May 1967、pp.60-67
【非特許文献４】J.Travers and S.Milgram、「An experimental study of the small world problem」、Sociometry 32、425、1969
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述のような類似検索手法は、対象データのデータ構造に強く依存しているため、対象データの次元数が所定数を超える場合、対象データの次元数や、各次元におけるデータ型等のようなデータ内部構造が未知の場合等には、対応できない。例えば、Ｒ木のような空間索引を用いた手法は、距離空間における三角不等式等の幾何学的性質を用いて類似検索処理を行うため、次元数や各次元のデータ内部構造が未知の場合、空間索引を構築することができず、ひいては、類似検索処理を行うことができない。ここで、対象データのデータ構造とは、対象データの全体のデータフォーマット、対象データの次元数、各次元のデータの内部構造などを意味する。【０００８】
本発明は、このような事情に鑑みてなされたものであり、対象データのデータ構造に依存しない汎用的な類似検索技術を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の各側面では、上述した課題を解決するために、それぞれ以下の構成を採用する。【００１０】
第一の側面は、インデックス対象となるデータを示す少なくとも１つのエントリをそれぞれ含む複数のノードが階層化されたインデックスを生成するインデックス生成装置に関する。第一の側面に係るインデックス生成装置は、データ間の類似度を用いて、下位ノードと、その下位ノードとリンク関係を持つエントリであって、その下位ノードのエントリにより示されるデータとの類似度が当該リンク関係に付与される類似度閾値以上の代表データを示すエントリを含む上位ノードと、を含むインデックスを生成するインデックス生成部と、上位ノードと下位ノードとの各リンク関係に関し、デフォルト類似度閾値及び調整値をそれぞれ決定し、デフォルト類似度閾値から調整値の減算により各リンク関係に付与される各類似度閾値をそれぞれ決定する閾値決定部と、を備える。【００１１】
第二の側面は、インデックス対象となるデータを示す少なくとも１つのエントリをそれぞれ含む複数のノードが階層化されたインデックスを生成するインデックス生成方法に関する。第二の側面に係るインデックス生成方法は、下位ノードと、その下位ノードとリンク関係を持つエントリであって、その下位ノードのエントリにより示されるデータとの類似度が当該リンク関係に付与される類似度閾値以上の代表データを示すエントリを含む上位ノードと、を含むインデックスを生成し、上位ノードと下位ノードとの各リンク関係に関し、デフォルト類似度閾値及び調整値をそれぞれ決定し、デフォルト類似度閾値から調整値の減算により、各リンク関係に付与される各類似度閾値をそれぞれ決定する、ことを含む。【００１２】
第三の側面は、インデックス対象となるデータを示す少なくとも１つのエントリをそれぞれ含む複数のノードが階層化されたインデックスのデータ構造に関する。第三の側面に係るインデックスのデータ構造は、当該インデックスが、下位ノードと、その下位ノードとリンク関係を持つエントリであって、その下位ノードのエントリにより示されるデータとの類似度が当該リンク関係に付与される類似度閾値以上の代表データを示すエントリを含む上位ノードと、を含み、代表データを示す上位ノードのエントリと下位ノードとの各リンク関係には、デフォルト類似度閾値及び調整値がそれぞれ付与されており、リンク関係に付与される類似度閾値は、デフォルト類似度閾値から調整値を減算することで算出されている。上位ノードのエントリにより示される代表データと検索対象データとの類似度を算出し、その類似度と上位ノードのエントリが持つリンク関係に付与された類似度閾値とを比較し、この比較結果に基づいて検索対象データに対応する検索結果を得るために、当該インデックスはコンピュータにより参照される。【００１３】
なお、本発明の他の側面としては、上記第２の側面の方法を少なくとも１つのコンピュータに実行させるプログラムであってもよいし、このようなプログラムを記録したコンピュータが読み取り可能な記録媒体であってもよい。この記録媒体は、非一時的な有形の媒体を含む。
【発明の効果】
【００１４】
上記各側面によれば、対象データのデータ構造に依存しない汎用的な類似検索技術を提供することができる。
【図面の簡単な説明】
【００１５】
上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。【００１６】
【図１】本発明の実施の形態に係るインデックス生成装置の構成例を概念的に示す図である。
【図２】本実施形態で生成されるインデックスの一部の例を概念的に示す図である。
【図３】第一実施形態における高次元データ検索装置（検索装置）のハードウェア構成例を概念的に示す図である。
【図４】第一実施形態における高次元データ検索装置（検索装置）の処理構成例を概念的に示す図である。
【図５】調整値の第一決定方法を用いる場合のインデックス生成処理に関する高次元データ検索装置（検索装置）の動作例を示すフローチャートである。
【図６】調整値の第二決定方法を用いる場合のインデックス生成処理に関する高次元データ検索装置（検索装置）の動作例を示すフローチャートである。
【図７】データ削除処理に関する高次元データ検索装置（検索装置）の動作例を示すフローチャートである。
【図８】類似検索処理に関する高次元データ検索装置（検索装置）の動作例を示すフローチャートである。
【図９】第二実施形態におけるインデックスの一部の例を概念的に示す図である。
【図１０】第三実施形態における高次元データ検索装置（検索装置）の処理構成例を概念的に示す図である。
【図１１】調整値の第一決定方法を用いる場合のインデックス生成処理に関する第三実施形態の高次元データ検索装置（検索装置）の動作例を示すフローチャートである。
【図１２】実施例１におけるインデックス生成過程を概念的に示す図である。
【図１３】実施例１におけるインデックス生成過程を概念的に示す図である。
【図１４】実施例１におけるインデックス生成過程を概念的に示す図である。
【図１５】実施例１におけるインデックス生成過程を概念的に示す図である。
【図１６】実施例１におけるインデックス生成過程を概念的に示す図である。
【図１７】実施例１におけるインデックス生成過程を概念的に示す図である。
【図１８】実施例１におけるインデックス生成過程を概念的に示す図である。
【図１９】実施例１におけるインデックス生成過程を概念的に示す図である。
【図２０】実施例１におけるインデックス生成過程を概念的に示す図である。
【図２１】実施例１におけるインデックス生成過程を概念的に示す図である。
【図２２】実施例１におけるインデックス生成過程を概念的に示す図である。
【図２３】実施例２におけるインデックス生成過程を概念的に示す図である。
【図２４】実施例２におけるインデックス生成過程を概念的に示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態について説明する。なお、以下に挙げる実施形態は例示であり、本発明は以下の実施形態の構成に限定されない。
【００１８】
図１は、本発明の実施の形態に係るインデックス生成装置１００の構成例を概念的に示す図である。インデックス生成装置１００は、インデックス対象となるデータを示す少なくとも１つのエントリをそれぞれ含む複数のノードが階層化されたインデックスを生成する。ここで、「ノード」とは、生成されるインデックスのデータ構造を構成する１つのデータ要素を意味し、例えば、配列や構造体やクラス等により実現される。また、「インデックス対象となるデータ」とは、インデックスが付与されるデータを意味する。本実施形態では、インデックス対象となるデータのデータ構造は何ら制限されない。即ち、当該データの次元数は制限されず、かつ、当該データのデータ構造は未知であってもよい。また、本実施形態では、ノードに含まれるエントリとデータとの関連付け形態は、制限されない。エントリにデータが含まれていてもよいし、エントリにはデータの格納領域を指すポインタが含まれていてもよい。
【００１９】
図１に示されるように、インデックス生成装置１００は、インデックス生成部１０１及び閾値決定部１０２を有する。インデックス生成部１０１は、データ間の類似度を用いて、下位ノードと、下位ノードとリンク関係を持つエントリであって、下位ノードのエントリにより示されるデータとの類似度がそのリンク関係に付与される類似度閾値以上の代表データを示すエントリを含む上位ノードと、を含むインデックスを生成する。閾値決定部１０２は、上位ノードと下位ノードとの各リンク関係に関し、デフォルト類似度閾値及び調整値をそれぞれ決定し、デフォルト類似度閾値から調整値の減算により当該各リンク関係に付与される各類似度閾値をそれぞれ決定する。
【００２０】
本実施形態における類似度とは、近似する度合いを意味し、類似度の値が大きい程、近似する度合いが増し、逆に、類似度の値が小さい程、近似する度合いが低下する。類似度としては、ユークリッド距離や、ベクトル間距離や、ヒストグラム間の一致度合、相関係数等、様々な指標値が利用される。但し、データ間の類似度の算出手法については何ら制限されない。類似度は、インデックス生成装置１００により算出されてもよいし、他のコンピュータにより算出されてもよい。
【００２１】
また、本実施形態では、上位ノードに含まれるエントリによる下位ノードとのリンク関係の持ち方は制限されない。例えば、エントリが下位ノードを指すポインタを有していてもよい。また、エントリが下位ノードの識別ＩＤを有し、この下位ノードの識別ＩＤと下位ノードを指すポインタとの対応関係が保持されていてもよい。更に、エントリがリンクの識別ＩＤを有し、このリンクの識別ＩＤと下位ノードを指すポインタとの対応関係が保持されていてもよい。
【００２２】
インデックス生成装置１００は、例えば、後述する詳細実施形態における高次元データ検索装置１と同様のハードウェア構成を有し、その高次元データ検索装置１と同様にプログラムが処理されることで、上述の各処理部が実現される。
【００２３】
また、本発明の実施の形態に係るインデックス生成方法は、インデックス対象となるデータを示す少なくとも１つのエントリをそれぞれ含む複数のノードが階層化されたインデックスを生成する。本インデックス生成方法は、インデックス生成装置１００等のようなコンピュータにより実行され、下位ノードと、下位ノードとリンク関係を持つエントリであって、下位ノードのエントリにより示されるデータとの類似度が当該リンク関係に付与される類似度閾値以上の代表データを示すエントリを含む上位ノードと、を含むインデックスを生成し、上位ノードと下位ノードとの各リンク関係に関し、デフォルト類似度閾値及び調整値をそれぞれ決定し、デフォルト類似度閾値から調整値の減算により、当該各リンク関係に付与される各類似度閾値をそれぞれ決定する、ことを含む。但し、本インデックス生成方法に含まれる各工程は、順不同に逐次的に実行されてもよいし、同時に実行されてもよい。
【００２４】
図２は、本実施形態で生成されるインデックスの一部の例を概念的に示す図である。図２に示されるように、本実施形態では、下位ノードＬ１と、下位ノードＬ１とリンク関係Ｒ１を持つエントリＥ２であって、下位ノードＬ１のエントリＥ１（１）、Ｅ１（２）、Ｅ１（３）及びＥ１（ｎ）により示されるデータ（ｆ１、ｆ３、ｆ９等）との類似度がそのリンク関係Ｒ１に付与される類似度閾値Ｔ１以上の代表データｆ８を示すエントリＥ２を含む上位ノードＬ２と、を含むインデックスが生成される。更に、上位ノードと下位ノードとの各リンク関係には、デフォルト類似度閾値ＤＳＴ１及びＤＳＴ２、並びに、調整値ＡＤ１及びＡＤ２が決定されている。リンク関係Ｒ１に付与される類似度閾値Ｔ１は、デフォルト類似度閾値ＤＳＴ１から調整値ＡＤ１の減算により決定され、リンク関係Ｒ２に付与される類似度閾値Ｔ２は、デフォルト類似度閾値ＤＳＴ２から調整値ＡＤ２の減算により決定される。なお、図２の例では、代表データｆ８を示すエントリは、上位ノードＬ２のみに含まれるが、上位ノードＬ２及び下位ノードＬ１の両方にそれぞれ含まれていてもよい。
【００２５】
以下、本実施形態により具現化されている技術的思想と共に、本実施形態の作用及び効果について説明する。
【００２６】
本発明者は、データＡとデータＢとが類似し、かつ、データＢとデータＣとが類似する場合、データＡとデータＣとが類似するという規則（非特許文献２）に着眼し、この規則を類似検索のためのインデックスのデータ構造に採用するという着想を得た。この規則は、必ずしも真とはならないが、真となる可能性が高い。この点の実世界での例として、いわゆるＳＭＡＬＬ−ＷＯＲＬＤ理論が知られている（上記非特許文献３及び４参照）。即ち、この理論は、実世界において、人物Ａと人物Ｂとが友人であり、かつ、人物Ｂと人物Ｃとが友人である場合、人物Ａと人物Ｃとが友人である可能性が高いことを示す。
【００２７】
ここで、インデックス対象となる３つのデータをｆａ、ｆｂ及びｆｃで表し、インデックス対象となるデータｆｉの集合をＦで表し、検索対象データをｆｑで表す。ここで、データｆｂは集合Ｆに属し、データｆｂは集合Ｆに含まれる全データの代表であると仮定する。この場合、上記規則は、以下の式で表すことができる。下記式におけるｓｉｍ（）は、２つのデータ間の類似度を計算する関数であり、データとデータの集合との類似度を計算することもできる。δは、類似度の閾値を示す。
【数１】
2016006276.tif 000003
【００２８】
上記式（１）は、上述の規則を表す。即ち、上記式（１）は、データｆａとデータｆｂとの類似度が閾値δ以上であり、かつ、データｆｂとデータｆｃとの類似度が閾値δ以上である場合、データｆａとデータｆｃとの類似度は閾値δ以上であることを示す。ここで、上記式（１）のデータｆａを検索対象データｆｑに置き換えると、上記式（２）が成立する。即ち、データｆｑとデータｆｂとの類似度が閾値δ以上であり、かつ、データｆｂとデータｆｃとの類似度が閾値δ以上である場合、データｆｑとデータｆｃとの類似度は閾値δ以上であると判断することができる。
【００２９】
更に、上記式（２）のデータｆｃをデータ集合Ｆに置き換えると、上記式（３）が成立する。即ち、データｆｑとデータｆｂとの類似度が閾値δ以上であり、かつ、データｆｂとデータ集合Ｆとの類似度が閾値δ以上である場合、データｆｑとデータ集合Ｆとの類似度は閾値δ以上であると判断することができる。
【００３０】
上述したように、データｆｂは集合Ｆに含まれる全データの代表である。よって、上記式（３）によれば、データｆｂとデータ集合Ｆに含まれる各データｆｉとの類似度が予めそれぞれ算出されている状態では、検索対象データｆｑと代表のデータｆｂとの類似度のみ算出することで、検索対象データｆｑとデータ集合Ｆ内の各データｆｉとの類似性が計算なく判断され得る。本発明者は、このような規則を本実施形態におけるインデックスのデータ構造に採用した。
【００３１】
図２によれば、下位ノードＬ１がデータ集合Ｆに相当し、代表データｆ８が集合Ｆの代表のデータｆｂに相当する。下位ノードＬ１には、代表データｆ８との類似度が類似度閾値Ｔ１以上のデータを示すエントリが設定される。これにより、本実施形態によれば、代表データｆ８と検索対象データｆｑとの類似度のみを算出することで、検索対象データｆｑと下位ノードＬ１で示されるデータ集合との類似度を、計算することなく、判断することができる。例えば、代表データｆ８と検索対象データｆｑとの類似度が類似度閾値Ｔ１未満の場合には、検索対象データｆｑと下位ノードＬ１により示される全データとの類似度も、類似度計算することなく、類似度閾値Ｔ１未満と判断することができる。
【００３２】
このように、本実施形態では、対象データのデータ構造に依存せず、データ間の類似度に基づいて階層化された木構造のインデックスが生成される。更に、本実施形態におけるインデックス生成は、対象データの次元数にも依存しない。これは、本実施形態がデータの次元に対応する幾何学的性質に依存することなく、データ間の類似度に基づいてインデックスを生成しているからである。
【００３３】
従って、本実施形態により生成されるインデックスを用いることにより、対象データのデータ構造が未知である場合や対象データが高次元データである場合等においても、類似検索をすることができる。即ち、本実施形態によれば、対象データのデータ構造に依存しない汎用的な類似検索技術を提供することができる。
【００３４】
更に、本実施形態では、上位ノードと下位ノードとのリンク関係に対してデフォルト類似度閾値及び調整値が決定され、そのデフォルト類似度閾値からその調整値を減じて得られる類似度閾値に基づいて、その下位ノードにより示されるデータ群が決まる。言い換えれば、類似度に関する閾値（デフォルト類似度閾値）を調整値で緩和して得られる値が最終的な類似度閾値として利用され、各ノードのエントリが決定される。これにより、似通ったデータの集合を１つのノードに集まり易くすることができる。
【００３５】
この効果を具体例に基づいて更に説明する。１つの閾値を用いる場合、その閾値（０．８５）に対応する下位ノードには、類似度（０．８６）のデータは配置されるが、類似度（０．８４）のデータは配置されない。ところが、類似度（０．８４）のデータと類似度（０．８６）のデータとは十分に近似している可能性がある。一方、本実施形態によれば、デフォルト類似度閾値（０．８５）が調整値（０．０５）により緩和された閾値（０．８）が用いられる。よって、デフォルト閾値（０．８５）に対応する下位ノードには、類似度（０．８６）のデータも類似度（０．８４）のデータも配置されることになる。
【００３６】
本実施形態によれば、このように似通ったデータの集合を１つのノードに集まり易くすることで、類似検索時に、誤って、比較対象外としてしまうデータを削減することができ、類似検索の再現率を向上させることができる。ここで、類似検索の再現率（Recall）とは、類似検索の正解となる結果の件数を分母として、実際の類似検索で得られた結果の件数を分子として得られる値である。更に、似通ったデータの集合を１つのノードに集まり易くすることで、類似検索において、比較対象とするエントリの数が限定され易くなり、結果、類似検索の処理速度を向上させることができる。
【００３７】
従って、本実施形態によれば、類似度計算量の削減により、対象データの次元数の増加に伴う検索効率の低下を防ぎ、かつ、類似検索の再現率を向上させることもできる。なお、背景技術で述べた提案手法によれば、データの次元数の増加に伴い、空間索引内でのノード間のオーバーラップが大量に発生するため、検索時に全データをスキャンすることになり、検索効率が急激に低下していた。また、本実施形態では、データ間の類似度に基づいてインデックスを生成するため、類似度算出手法はブラックボックスでもよい。よって、本実施形態によれば、対象データのデータ構造だけでなく、類似度算出手法にも依存しない汎用的でかつ効率的な類似検索技術を提供することができる。
【００３８】
以下、上述の実施形態について更に詳細を説明する。以下には、詳細実施形態として、第一実施形態、第二実施形態及び第三実施形態を例示する。以下の各実施形態は、上述のインデックス生成装置及びインデックス生成方法を高次元データ検索装置に適用した場合の例である。なお、上述のインデックス生成装置及びインデックス生成方法は、高次元データを扱う検索装置への適用に限定されるものではなく、類似度を算出し得る様々なデータの検索装置に適用可能である。
【００３９】
［第一実施形態］
〔装置構成〕
図３は、第一実施形態における高次元データ検索装置（以降、単に検索装置と表記する）１のハードウェア構成例を概念的に示す図である。第一実施形態における検索装置１は、図３に示されるように、ハードウェア構成として、ＣＰＵ（Central Processing Unit）１０、メモリ１１、入出力インタフェース（Ｉ／Ｆ）１２、通信ユニット１３等を有する。各ハードウェア要素は、例えばバスにより接続される。
【００４０】
メモリ１１は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ハードディスク等である。入出力Ｉ／Ｆ１２は、キーボード、マウス等のようなユーザ操作の入力を受け付ける入力装置（図示せず）、表示装置やプリンタ等のようなユーザに情報を提供する出力装置（図示せず）などと接続可能である。通信ユニット１３は、他のコンピュータとの通信網を介した通信や、他の機器との信号のやりとり等を行う。通信ユニット１３には、可搬型記録媒体等も接続され得る。なお、検索装置１は、入力装置や出力装置を持たなくてもよく、検索装置１のハードウェア構成は制限されない。
【００４１】
検索装置１は、インデックス対象データを取得し、取得されるインデックス対象データに基づいて上述の実施形態で示されるデータ構造を持つインデックスを生成する。また、検索装置１は、検索対象データ及び類似度条件を取得し、上述のように生成されたインデックスを用いて、検索対象データに関し類似度条件に適合するデータを検索する（類似検索）。本実施形態では、検索装置１により生成されるインデックスを類似度木と表記する場合もある。類似度木とは、類似度に基づく階層構造を持つインデックスを意味する。検索装置１の一部が上述のインデックス生成装置１００に相当する。
【００４２】
〔処理構成〕
図４は、第一実施形態における検索装置１の処理構成例を概念的に示す図である。第一実施形態における検索装置１は、対象取得部２０、インデックス生成部２１、閾値決定部２２、類似度取得部２５、検索部３０、データベース３５等を有する。これら各処理部は、例えば、ＣＰＵ１０によりメモリ１１に格納されるプログラムが実行されることにより実現される。また、当該プログラムは、例えば、ＣＤ（Compact Disc）、メモリカード等のような可搬型記録媒体やネットワーク上の他のコンピュータから入出力Ｉ／Ｆ１２を介してインストールされ、メモリ１１に格納されてもよい。
【００４３】
対象取得部２０は、映像等のような高次元の特徴量データをインデックス対象データとして取得する。特徴量データは、入力画面等に基づいて入力装置をユーザが操作することにより入力された情報であってもよいし、可搬型記録媒体、他のコンピュータ等から入出力Ｉ／Ｆ１２又は通信ユニット１３を経由して取得された情報であってもよい。
【００４４】
類似度取得部２５は、２つの特徴量データ間の類似度を算出する。本実施形態では、類似度取得部２５による類似度算出手法は何ら制限されない。類似度取得部２５は、外部から提供される内部処理がブラックボックス化されたＡＰＩ（Application Programming Interface）やライブラリ等を用いて、当該類似度を算出してもよい。また、類似度取得部２５は、他のコンピュータにより算出された類似度を取得することもできる。
【００４５】
インデックス生成部２１は、上述のインデックス生成装置１００におけるインデックス生成部１０１と同様に、対象取得部２０により取得される特徴量データのインデックスとなる類似度木を生成及び更新する。生成又は更新された類似度木のデータは、データベース３５に格納される。なお、当該類似度木のデータは、入出力Ｉ／Ｆ１２を介して可搬型記録媒体に格納されてもよいし、通信ユニット１３を介して他のコンピュータに送信されてもよい。
【００４６】
本実施形態は、類似度木を構成する各ノードが次のようなデータ構造を持つ形態を採用する。下位ノードとリンク関係を持つ上位ノードのエントリは、その下位ノードを指すポインタと、そのリンク関係に関し算出されるデフォルト類似度閾値及び調整値と、そのエントリにより示される特徴量データとを含む。但し、当該エントリは、デフォルト類似度閾値及び調整値に代え、又は、それらと共に、それらから算出される類似度閾値を含むこともできる。その上位ノードにおける、下位ノードとリンク関係を持たないエントリは、そのエントリにより示される特徴量データを含む。また、下位ノードへのポインタを含むエントリを１つも持たないノードに含まれる各エントリは、各エントリにより示される特徴量データのデータベース３５内の格納領域を指すポインタをそれぞれ含む。また、下位ノードへのポインタが設定されたエントリが持つ特徴量データは、その下位ノードに含まれるエントリにも設定されるか、又は、その下位ノードに含まれるエントリにその特徴量データへのポインタが設定される。
【００４７】
以降、下位ノードへのポインタを含むエントリを１つも持たないノードは、葉ノードと表記され、下位ノードへのポインタを含むエントリを１つでも持つノードは、中間ノードと表記される場合がある。また、中間ノードの中で最上位のノードは、ルートノードと表記される場合もある。よって、図２によれば、ノードＬ３はルートノード又は中間ノードと表記され、ノードＬ２は中間ノードと表記され、ノードＬ１は葉ノードと表記され得る。
【００４８】
また、上位ノードと、その上位ノードに含まれるエントリのポインタでリンクされる下位ノードとの関係は、親子関係と表記される場合もあり、その親子関係を持つ上位ノード及び下位ノードは、親ノード及び下位ノードとそれぞれ表記される場合もある。よって、図２によれば、ノードＬ２とノードＬ１との関係では、ノードＬ２は親ノードと表記され、ノードＬ１は子ノードと表記され得る。
【００４９】
インデックス生成部２１は、対象取得部２０により取得された対象の特徴量データを類似度木に反映する際、次のようにして、その対象の特徴量データを含むエントリの挿入先となるノードを決定する。インデックス生成部２１は、当該対象の特徴量データと、下位ノードへのポインタを含む中間ノードのエントリに含まれる特徴量データとの類似度を類似度取得部２５から取得し、そのエントリに含まれるデフォルト類似度閾値及び調整値から算出される類似度閾値とその類似度を比較する。インデックス生成部２１は、この比較結果に基づいて、当該対象の特徴量データを含むエントリの挿入先をその中間ノード又はその下位ノードに決定する。具体的には、インデックス生成部２１は、類似度が類似度閾値以上であれば、当該対象の特徴量データを含むエントリの挿入先を下位ノードに決定し、類似度が類似度閾値未満であれば、当該対象の特徴量データを含むエントリの挿入先を中間ノードに決定する。
【００５０】
また、インデックス生成部２１は、代表選択部２３及び溢れ調整部２４を含む。
【００５１】
代表選択部２３は、特徴量データの追加時又は削除時に、必要に応じて、複数エントリの中から代表エントリを選択する。これは、データ集合Ｆの中から代表のデータｆｂを選択することに相当する。よって、代表エントリとは、代表として選択された特徴量データを示すエントリを意味する。また、代表エントリに含まれる特徴量データは代表特徴量データとも表記される。特徴量データの追加時には、具体的には、代表選択部２３は、新たなエントリの挿入先として決定された対象ノードに含まれるエントリ及び新たなエントリを含む対象エントリ集合の中から、代表エントリを選択する。その対象エントリ集合に含まれる、対象ノード内のエントリとは、対象ノードに含まれる全エントリであってもよいし、対象ノードに含まれる全エントリの中の下位ノードへのポインタを含まないエントリのみであってもよい。対象ノードに含まれる全エントリを当該対象エントリ集合に含める場合、既に存在する子ノードの再構成が必要になる場合がある。
【００５２】
例えば、代表選択部２３は、以下に示す２つの選択方法のいずれか１つを用いて、代表エントリを選択する。但し、本実施形態は、代表エントリ選択方法を以下のような方法に制限しない。代表選択部２３は、以下に示す２つの選択方法以外で、任意のエントリを代表エントリとしてランダムに選択してもよい。
【００５３】
第一の選択方法では、代表選択部２３は、他の各エントリにより示される各特徴量データとの類似度の分散が最小となる特徴量データを示すエントリを代表エントリとして選択する。この方法は、以下の式により表わすことができる。代表選択部２３は、下記式に表わされるように、集合Ｆに属する各特徴量データｆｉに関し、特徴量データｆｉと他の特徴量データｆｊとの全ての類似度をそれぞれ算出し、類似度分布の分散値σが最小となる特徴量データｆｉを、集合Ｆの代表として選出する。但し、第一の選択方法において、代表エントリとして選択されるエントリは、各データとの類似度の分散が最小となるデータを示すエントリのみに制限されるわけではない。代表エントリは、各データとの類似度の分散が小さいデータを示すエントリから優先的に選択されるとしてもよい。例えば、当該分散が２番目に小さいデータを示すエントリが代表エントリに選択されてもよい。
【数２】
2016006276.tif 000004
【００５４】
第二の選択方法では、代表選択部２３は、自身が最近傍となる他のエントリにより示されるデータの数が最大となるデータを示すエントリを代表エントリとして選択する。この方法は、以下の式により表わすことができる。代表選択部２３は、下記式に表わされるように、集合Ｆに属する各特徴量データｆｉに関し、特徴量データｆｉが最近傍となる他の特徴量データの数ＲＮＮ（Reverse Nearest Neighbors）（ｆｉ）が最大となる特徴量データｆｉを、集合Ｆの代表として選出する。但し、第二の選択方法において、代表エントリとして選択されるエントリは、当該データの数が最大となるデータを示すエントリのみに制限されるわけではない。代表エントリは、当該データの数が大きいデータを示すエントリから優先的に選択されるとしてもよい。例えば、当該データの数が２番目に大きいデータを示すエントリが代表エントリに選択されてもよい。
【数３】
2016006276.tif 000005
【００５５】
溢れ調整部２４は、新たなエントリの挿入先として決定された対象ノードに含まれるエントリ及び当該新たなエントリを含む対象エントリ集合のエントリ数が所定エントリ閾値を超える場合に、そのノードを子ノードと親ノードとに分割する。このようにノードを親ノードと子ノードとに分割することを溢れ調整とも表記する。溢れ調整において、溢れ調整部２４は、上記対象エントリ集合の中から代表エントリを代表選択部２３に選択させ、新たなデフォルト類似度閾値又は新たな類似度閾値を閾値決定部２２に決定させる。溢れ調整部２４は、選択された代表エントリを除く上記対象エントリ集合の中から、選択された代表エントリにより示される特徴量データとの類似度が新たなデフォルト類似度閾値又は新たな類似度閾値以上の特徴量データを示すエントリを選択し、選択されたエントリを含む下位ノード（子ノード）を生成する。溢れ調整部２４は、対象ノード（親ノード）における選択された代表エントリにその下位ノードへのポインタと新たなデフォルト類似度閾値及び新たな調整値を設定する。ここで、代表エントリは、子ノード及び親ノードの両方に含められてもよいし、親ノードのみに含められてもよい。
【００５６】
閾値決定部２２は、上述のインデックス生成装置１００における閾値決定部１０２と同様に、各類似度閾値をそれぞれ決定する。具体的には、閾値決定部２２は、各リンク関係に関し、デフォルト類似度閾値及び調整値をそれぞれ決定し、デフォルト類似度閾値から調整値の減算により各類似度閾値をそれぞれ決定する。本実施形態では、代表エントリにはデフォルト類似度閾値及び調整値が設定されるため、閾値決定部２２は、類似度閾値が必要となる度に、代表エントリからデフォルト類似度閾値及び調整値を抽出し、それらから類似度閾値を算出する。以降、デフォルト類似度閾値はＤＳ閾値と表記し、デフォルト類似度閾値から調整値を減算することにより決定される類似度閾値はＳ閾値と表記する場合もある。
【００５７】
図２の例によれば、ノードＬ２の代表エントリＥ２に、デフォルト類似度閾値ＤＳＴ１及び調整値ＡＤ１が設定され、ノードＬ３の代表エントリに、デフォルト類似度閾値ＤＳＴ２及び調整値ＡＤ２が設定される。閾値決定部２２は、必要に応じて、デフォルト類似度閾値ＤＳＴ１及び調整値ＡＤ１から類似度閾値Ｔ１を算出し、デフォルト類似度閾値ＤＳＴ２及び調整値ＡＤ２から類似度閾値Ｔ２を算出する。
【００５８】
ＤＳ閾値は、溢れ調整部２４による溢れ調整時に決定される。閾値決定部２２は、予め選択候補となるＤＳ閾値のリストを持ち、このリストの中から、対象リンクに付与する１つのＤＳ閾値を選択してもよい。また、閾値決定部２２は、次のような方法を用いて、新たなＤＳ閾値を決定することもできる。但し、ＤＳ閾値の決定方法は制限されない。
【００５９】
例えば、閾値決定部２２は、既に決定されているＤＳ閾値と均等間隔となるように、新たなＤＳ閾値を決定することができる。この例では、０から１までの類似度範囲を等間隔に分割することにより、各ＤＳ閾値がそれぞれ決定される。例えば、０．１の等間隔で［０，１］の類似度範囲区間を１０等分割し、各ＤＳ閾値はそれぞれの分割点の数値に決定される。この場合、ＤＳ閾値は、０．１、０．２、０．３、．．．.、０．９、１．０といった値に決定される。
【００６０】
他の例として、閾値決定部２２は、既に決定されているＤＳ閾値と最大類似度とを再帰的に２分割して得られる値を新たなＤＳ閾値に決定することができる。この例では、０から１までの類似度範囲を再帰的にＬｏｇスケールに分割することにより、各ＤＳ閾値がそれぞれ決定される。例えば、１番目のＤＳ閾値が０．２に設定され、２番目のＤＳ閾値が、０．２から１．０までの範囲を２等分割することにより、その分割点０．６に決定される。このように２等分割が繰り返されることで、３番目以降の各ＤＳ閾値は、０．８、０．９、０．９５、０．９７５、０．９８７５などに決定される。
【００６１】
他の例として、閾値決定部２２は、溢れ調整の対象となる特徴量データの集合における、代表の特徴量データと他の各特徴量データとの各類似度から得られる値を新たなＤＳ閾値に決定することができる。例えば、閾値決定部２２は、算出される複数の類似度の中の中央値となる類似度を新たなＤＳ閾値に決定する。データ集合に含まれる５つの特徴量データと代表の特徴量データとの類似度がそれぞれ、０．５、０．３、０．６、０．９、０．９５である場合、新たなＤＳ閾値が、中央値０．６に決定される。また、算出される複数の類似度の中の最大値と最小値との間を２等分割し、その分割点が新たなＤＳ閾値に決定されてもよい。
【００６２】
調整値は、その決定方法に対応するタイミングで決定及び更新される。閾値決定部２２は、例えば、次のような方法で、各調整値をそれぞれ決定する。但し、調整値の決定方法は、次のような方法のみに制限されない。
【００６３】
《調整値の第一決定方法》
閾値決定部２２は、ＤＳ閾値が大きい程小さくなるように、調整値を決定する。本方法では、閾値決定部２２は、ＤＳ閾値を上述のように決定した後、その決定されたＤＳ閾値に基づいて、調整値を決定する。即ち、本方法では、調整値は溢れ調整部２４による溢れ調整時に決定される。例えば、閾値決定部２２は、調整値の最大値と、ＤＳ閾値を入力としてＤＳ閾値と正の相関を示す出力値を出す関数とを予め持ち、決定されたＤＳ閾値をその関数に代入することで得られる出力値を当該最大値から減算することで得られる値を調整値として決定することができる。
【００６４】
また、第一決定方法は、次のように実現されてもよい。閾値決定部２２は、ＤＳ度閾値を階層が下がる程大きい値に設定し、当該調整値を階層が下がる程小さい値に設定する。例えば、閾値決定部２２は、最上位階層を１として階層毎に１加算される階層位置ｈを用いて、定数（例えば、０．１）をｈで除算して得られる値を調整値に決定する。但し、第一決定方法における具体的な調整値の決定方法は、このような例に制限されない。
【００６５】
《調整値の第二決定方法》
閾値決定部２２は、上位ノードにより示される代表特徴量データと下位ノードのエントリにより示される複数の特徴量データの各々との類似度の分散度合が小さい程、その代表特徴量データを示す代表エントリ（上位ノード）とその下位ノードとのリンク関係に関する調整値を小さい値に決定する。この方法では、下位ノードが示す特徴量データ群の変更に応じて、上記分散度合も変わる。よって、この方法では、調整値は、溢れ調整部２４による溢れ調整時に新たに決定され、ノードへのエントリ挿入（特徴量データ追加）時には元の値から更新される。
【００６６】
例えば、閾値決定部２２は、上位ノードにより示される代表特徴量データと下位ノードのエントリにより示される複数の特徴量データの各々との類似度の標準偏差をその下位ノードのエントリ数で除算して得られる値を、その代表特徴量データを示す代表エントリ（上位ノード）とその下位ノードとのリンク関係に関する調整値に決定する。ここで、標準偏差を除算するエントリ数には、エントリ閾値が利用されることが望ましい。但し、そのエントリ数には、エントリ閾値の半分以上、エントリ閾値未満の値が利用されてもよい。但し、第二決定方法における具体的な調整値の決定方法は、このような例に制限されない。
【００６７】
このように、第二決定方法では、ノードに新たなエントリを挿入する場合には、その新たなエントリにより示される新たな特徴量データも加えて、上述のように、類似度の上記分散度合が判定され、既に設定されている調整値が更新される。一方で、その新たなエントリの挿入時には、挿入先となるノードは、既に設定されているＤＳ閾値及び調整値から算出されるＳ閾値に基づいて決定される。よって、エントリ挿入後の調整値の更新により、ノードにより示される特徴量データ群の中に、そのノードが有する上位ノードとのリンク関係に付与されるＳ閾値の条件を満たさない特徴量データが含まれる場合が生じ得る。このような場合を排除するため、閾値決定部２２は、エントリ挿入時には、まずは、仮の調整値を決定し、ＤＳ閾値とこの仮の調整値とから仮の類似度閾値を決定する。インデックス生成部２１は、エントリ挿入後のノードにより示される特徴量データ群がその仮の類似度閾値の条件を満たすか否かを判定し、この判定結果に基づいて、挿入先となるべきノードを変更する。閾値決定部２２は、インデックス生成部２１による上記判定結果により挿入先となるべきノードが変更されない場合に、既に設定されている調整値及びＳ閾値をその仮の調整値及びその仮の類似度閾値に更新する。
【００６８】
また、閾値決定部２２がこの第二決定方法を用いる場合には、溢れ調整部２４は、元のノード内のエントリの中から、新たな子ノードに含めるエントリを選ぶために、ＤＳ閾値を用いる。即ち、溢れ調整部２４は、選択された代表エントリに含まれる特徴量データとの類似度が閾値決定部２２により決定されたＤＳ閾値以上の特徴量データを含むエントリを選択し、この選択されたエントリを含む下位ノード（子ノード）を生成する。閾値決定部２２は、ＤＳ閾値を用いてこのように生成された子ノードにより示される特徴量データ群に基づいて、調整値を決定し、先に決定されたＤＳ閾値とこの調整値とからＳ閾値を算出する。なお、閾値決定部２２が上記第一決定方法を用いる場合には、ノードが示す特徴量データ群に依存せず調整値が決定されるため、新たな子ノードに含めえるエントリを選ぶのにＳ閾値を用いる。
【００６９】
データベース３５は、インデックス対象となる特徴量データ群、インデックス生成部２１により生成された類似度木の情報、この類似度木に関連する情報（類似度木の生成のために算出された類似度等）を格納する。インデックス対象となるデータ群が、表形式データを形成する或る属性のデータである場合には、データベース３５は、その表形式データを格納してもよい。データベース３５は、メモリ１１に含まれるハードディスク等のような外部メモリ上に実現される。また、類似度木の生成及び検索を高速化するために、データベース３５に格納される類似度木の葉ノード以外のノードの情報は、メモリ１１に含まれる主記憶にバッファリングされる。
【００７０】
検索部３０は、インデックス生成部２１により生成される類似度木を用いて、データベース３５に格納される特徴量データ群の中から、検索対象データに関し類似度条件に適合する特徴量データを検索する。検索結果のデータは、入出力Ｉ／Ｆ１２を介して表示装置や印刷装置に出力されてもよいし、入出力Ｉ／Ｆ１２を介して可搬型記録媒体に格納されてもよいし、通信ユニット１３を介して他のコンピュータに送信されてもよい。
【００７１】
検索部３０は、図４に示されるように、条件取得部３１、類似度取得部３２及び検索処理部３３を含む。
【００７２】
条件取得部３１は、検索対象の特徴量データ及び類似度条件を取得する。検索対象の特徴量データは、入力画面等に基づいて入力装置をユーザが操作することにより入力された情報であってもよいし、可搬型記録媒体、他のコンピュータ等から入出力Ｉ／Ｆ１２又は通信ユニット１３を経由して取得された情報であってもよい。
【００７３】
類似度取得部３２は、類似度取得部２５と同様である。具体的には、類似度取得部３２は、代表特徴量データと条件取得部３１により取得された検索対象の特徴量データとの類似度を取得する。検索装置１において、類似度取得部２５及び類似度取得部３２とは１つの処理部として共有されてもよい。
【００７４】
検索処理部３３は、類似度取得部３２により取得された類似度と、類似度閾値、又は、条件取得部３１により取得された類似度条件とを比較し、この比較結果に基づいて、その類似度閾値を持つエントリ、及び、その類似度閾値を含むエントリとリンクされる子ノード以下の下位ノードのエントリを、検索対象の特徴量データに関する類似度条件に適合する抽出対象（検索結果）から除外する。検索処理部３３は、類似度閾値が必要となる度に、閾値決定部２２に、対象のエントリに含まれるＤＳ閾値及び調整値からＳ閾値を算出させる。検索処理部３３は、辿り着いたノードに含まれる全エントリをチェックする幅優先探索法を用いてもよいし、同一ノード内の他のエントリよりもリンク先の子ノードのエントリを優先的にチェックする深さ優先探索法を用いてもよい。
【００７５】
〔動作例〕
まず、第一実施形態におけるインデックス生成方法について図５、図６及び図７を用いて説明する。各図に示されるように、第一実施形態におけるインデックス生成方法は、検索装置１のような少なくとも１つのコンピュータにより実行される。例えば、図示される各工程は、検索装置１が有する各処理部により実行される。各工程は、検索装置１が有する上述の各処理部の処理内容と同様であるため、各工程の詳細は、適宜省略される。
【００７６】
図５は、調整値の第一決定方法を用いる場合のインデックス生成処理に関する検索装置１の動作例を示すフローチャートである。図６は、調整値の第二決定方法を用いる場合のインデックス生成処理に関する検索装置１の動作例を示すフローチャートである。ここでは、子ノードへのポインタ及びＤＳ閾値及び調整値が設定された少なくとも１つのエントリを含むルートノードが、既に生成されていると仮定する。また、図５及び図６には示されていないが、インデックス生成処理を開始する前には、検索装置１は、類似度木の生成に関する各種パラメータを既に保持している。パラメータには、エントリ閾値、代表エントリの選択方法、ＤＳ閾値の決定方法及び調整値の決定方法が含まれる。図５の例では、パラメータに設定される調整値の決定方法として第一決定方法が選択されており、図６の例では、第二決定方法が選択されている。また、パラメータには、類似度木の階層の深さの閾値が含まれていてもよい。
【００７７】
《調整値の第一決定方法を用いるインデックス生成方法》
最初に、図５を用いて、調整値の第一決定方法を用いる場合のインデックス生成方法を説明する。
【００７８】
検索装置１は、インデックス対象となる特徴量データｆｉを取得する（Ｓ５０）。
続いて、検索装置１は、対象ノードをルートノードに設定する（Ｓ５１）。対象ノードとは、その特徴量データｆｉを示すエントリの挿入候補となるノードを意味する。このように、検索装置１は、上位ノードから下位ノードへと順にエントリの挿入候補を選んでいく。
【００７９】
検索装置１は、対象ノードに含まれる、子ノードへのポインタを含む各エントリについて、そのエントリに含まれる特徴量データｆｅと特徴量データｆｉとの類似度Ｓをそれぞれ算出し、類似度Ｓが類似度閾値以上となる特徴量データｆｅを含むエントリを特定する（Ｓ５２）。このとき、検索装置１は、各エントリに含まれるＤＳ閾値及び調整値を用いて各類似度閾値をそれぞれ決定する。検索装置１は、対象ノードに、類似度Ｓが類似度閾値以上となる特徴量データｆｅを含むエントリが存在する場合（Ｓ５２；ＹＥＳ）、その特定されたエントリの中で類似度Ｓが最大となるエントリのポインタが示す子ノードを対象ノードに設定する（Ｓ５３）。
【００８０】
検索装置１は、対象ノードが葉ノードでない場合（Ｓ５４；ＮＯ）、工程（Ｓ５２）以降を再度実行する。検索装置１は、対象ノードが葉ノードである場合（Ｓ５４；ＹＥＳ）、又は、対象ノードに、該当するエントリが存在しない場合（Ｓ５２；ＮＯ）、特徴量データｆｉを含むエントリをその対象ノードに追加する（Ｓ５５）。
【００８１】
検索装置１は、エントリが追加された対象ノードのエントリ数が所定エントリ閾値を超えるか否かを判定する（Ｓ５６）。検索装置１は、対象ノードのエントリ数が所定エントリ閾値を超える場合（Ｓ５６；ＹＥＳ）、次のように、その対象ノードに含まれるエントリを親ノードと子ノードとに分割する。
【００８２】
検索装置１は、対象ノードのエントリの中から代表エントリを選択する（Ｓ５７）。ここでの代表エントリの選択方法には、例えば、上述のような２つの選択方法のいずれか１つが利用される。また、代表エントリを選択するエントリの母集団は、対象ノードに含まれる全エントリ（特徴量データｆｉを含む）であってもよいし、対象ノードに含まれる全エントリの中の下位ノードへのポインタを含まないエントリのみであってもよい。
【００８３】
検索装置１は、選択された代表エントリに設定するためのＤＳ閾値を決定する（Ｓ５８）。ＤＳ閾値の決定方法については上述のとおりである。
【００８４】
更に、検索装置１は、選択された代表エントリに設定するための調整値を決定する（Ｓ５９）。ここでは、検索装置１は、上述の第一決定方法により調整値を決定する。上述の第一決定方法は、上述のとおりであり、言い換えれば、ＤＳ閾値や階層の位置のように固定的に決まる他の値に応じて、調整値を決定する方法である。検索装置１は、ＤＳ閾値に応じて調整値を決定してもよいし、分割される子ノードの階層位置に応じて調整値を決定してもよい。
【００８５】
検索装置１は、代表エントリに含まれる特徴量データと、代表エントリを選択した母集団に含まれる代表エントリ以外の各エントリに含まれる各特徴量データとの類似度をそれぞれ算出する（Ｓ６０）。
【００８６】
続いて、検索装置１は、（Ｓ５８）で決定されたＤＳ閾値から（Ｓ５９）で決定された調整値を減算することにより、Ｓ閾値を算出し、算出されたＳ閾値以上の類似度を示す特徴量データを持つエントリを含む子ノードを生成する（Ｓ６１）。このとき、検索装置１は、対象ノードから、その子ノードに追加されたエントリを削除する。また、代表エントリを選択したエントリの母集団が、対象ノードに含まれる全エントリであり、かつ、選択された代表エントリが既に子ノードへのポインタを持っていた場合には、検索装置１は、新たに子ノードを生成することなく、既に存在する子ノードに、類似度閾値以上の類似度を示す特徴量データを持つエントリを追加してもよい。
【００８７】
検索装置１は、対象ノードの代表エントリに、（Ｓ６１）で生成された子ノードへのポインタ、（Ｓ５８）で決定されたＤＳ閾値及び（Ｓ５９）で決定された調整値を設定する（Ｓ６２）。検索装置１は、代表エントリには、ＤＳ閾値及び調整値に代え、又は、それらと共に、それらから算出されるＳ閾値を設定してもよい。
【００８８】
検索装置１は、対象ノードのエントリ数が所定エントリ閾値を超えない場合（Ｓ５６；ＮＯ）、又は、（Ｓ６２）の完了後、特徴量データｆｉと共に、類似度木データをデータベース３５に格納する（Ｓ６３）。ここで、検索装置１は、類似度木データのうち更新された箇所のデータのみをデータベース３５に反映してもよい。また、類似度木データの格納前に、検索装置１は、類似度木の葉ノードのエントリに設定されている特徴量データｆｉをデータベース３５に格納される特徴量データｆｉへのポインタに置き換える。
【００８９】
《調整値の第二決定方法を用いるインデックス生成方法》
次に、図６を用いて、調整値の第二決定方法を用いる場合のインデックス生成方法を説明する。図６では、図５と同じ内容となる工程には、図５と同じ符号が付されている。
【００９０】
検索装置１は、図５の場合と同様に、（Ｓ５０）から（Ｓ５６）を実行する。
検索装置１は、対象ノードのエントリ数が所定エントリ閾値を超える場合（Ｓ５６；ＹＥＳ）、次のように、その対象ノードに含まれるエントリを親ノードと子ノードとに分割する。検索装置１は、図５の場合と同様に、（Ｓ５７）及び（Ｓ５８）を実行する。続いて、検索装置１は、図５で示される（Ｓ５９）を実行せず、即ち、調整値を決定せず、図５の場合と同様に、（Ｓ６０）を実行する。
【００９１】
続いて、検索装置１は、（Ｓ５８）で決定されたＤＳ閾値以上の類似度を示す特徴量データを持つエントリを含む子ノードを生成する（Ｓ７０）。（Ｓ７０）は、Ｓ閾値ではなく、ＤＳ閾値を用いる点においてのみ、図５に示される（Ｓ６１）と相違する。
【００９２】
次に、検索装置１は、選択された代表エントリに設定するための調整値を決定する（Ｓ７１）。ここでは、検索装置１は、上述の第二決定方法により調整値を決定する。上述の第二決定方法は、上述のとおりであり、言い換えれば、子ノードにより示されるデータ群に応じて、調整値を決定する方法である。検索装置１は、ＤＳ閾値を用いて子ノードに含めるべく選択されたエントリにより示される各特徴量データと、代表特徴量データとの類似度の分散度合に応じて、当該調整値を決定する。
以降、検索装置１は、図５の場合と同様に、（Ｓ６２）及び（Ｓ６３）を実行する。
【００９３】
一方、検索装置１は、対象ノードのエントリ数が所定エントリ閾値を超えない場合（Ｓ５６；ＮＯ）、次のように動作する。
【００９４】
検索装置１は、特徴量データｆｉを含む、対象ノードに含まれる全てのエントリにより示される特徴量データと、代表特徴量データとの類似度の分散度合に応じて、その代表特徴量データを示す代表エントリのための仮の調整値を決定する（Ｓ７２）。このとき、その代表エントリにはＤＳ閾値及び調整値が既に設定されている。検索装置１は、その代表エントリに既に設定されているＤＳ閾値から当該仮の調整値を減算することにより、仮のＳ閾値を決定する（Ｓ７３）。
【００９５】
検索装置１は、特徴量データｆｉと代表特徴量データとの類似度が当該仮のＳ閾値以上となるか否かを判定する（Ｓ７４）。検索装置１は、その類似度が仮のＳ閾値以上となる場合（Ｓ７４；ＹＥＳ）、代表エントリに既に設定されている調整値を（Ｓ７２）で決定された仮の調整値に更新する（Ｓ７５）。言い換えれば、検索装置１は、代表エントリに既に設定されている調整値をその仮の調整値に置き換える（Ｓ７５）。
【００９６】
検索装置１は、その類似度が仮のＳ閾値未満となる場合（Ｓ７４；ＮＯ）、特徴量データｆｉを含むエントリを対象ノードから削除する（Ｓ７６）。これは、上位ノードの代表エントリ、及び、その代表エントリとのリンク関係を持つ下位ノードに含まれるエントリが、類似度閾値以上の特徴量データを示すという関係が崩れるからである。これにより、検索装置１は、（Ｓ５２）以降で、再度、対象ノードを選びなおす。
【００９７】
図７は、データ削除処理に関する検索装置１の動作例を示すフローチャートである。
【００９８】
検索装置１は、削除対象となる特徴量データｆｄ（以降、削除データと表記する）を取得すると、その削除データｆｄを示すエントリを特定する（Ｓ８０）。このとき、検索装置１は、葉ノードの各エントリにより示される特徴量データを、そのエントリに含まれるポインタを用いて、データベース３５から取得する。削除データｆｄの特定方法は、図８を用いて後述する類似検索方法と同様でよいため、ここでは説明を省略する。但し、この場合には、類似度条件δは１（一致）に設定される。
【００９９】
検索装置１は、特定されたエントリの中の葉ノードのエントリを削除する（Ｓ８１）。削除データｆｄが或るデータ集合の代表に設定されている場合、特定されたエントリの中には中間ノードも含まれる。また、検索装置１は、削除データｆｄをデータベース３５から削除してもよい。
【０１００】
続いて、検索装置１は、削除されたエントリを含む葉ノードへのポインタを含む親ノードのエントリを対象エントリに設定する（Ｓ８２）。
【０１０１】
検索装置１は、この対象エントリを更新する必要があるか否かを判定する（Ｓ８３）。例えば、対象エントリが削除データｆｄを含む場合、上述の（Ｓ５７）で実行される代表エントリの選択方法が子ノードで示される特徴量データ集合の値分布に依存する場合、調整値の第二決定方法が用いられる場合などには、検索装置１は、対象エントリを更新する必要があると判定する（Ｓ８３；ＹＥＳ）。
【０１０２】
一方、代表エントリの選択方法が任意のエントリの選択である場合で、かつ、対象エントリが削除データｆｄを含まない場合には、検索装置１は、対象エントリを更新する必要がないと判定する（Ｓ８３；ＮＯ）。対象エントリを更新する必要がないと判定すると（Ｓ８３；ＮＯ）、検索装置１は、データ削除処理を終了する。
【０１０３】
検索装置１は、対象エントリを更新する必要があると判定すると（Ｓ８３；ＹＥＳ）、代表エントリを再選択する（Ｓ８４）。ここでの代表エントリを選択する母集団は、例えば、対象エントリの子ノードに含まれるエントリとされる。但し、当該母集団には、その対象エントリを含むノードの他のエントリが更に加えられてもよい。
【０１０４】
検索装置１は、対象エントリに含まれる元の特徴量データを再選択された代表エントリの特徴量データに更新する（Ｓ８５）。
【０１０５】
検索装置１は、更に、その対象エントリに設定されている調整値を更新する必要があるか否かを判定する（Ｓ８６）。検索装置１は、調整値の第二決定方法が用いられている場合には、調整値を更新する必要があると判定する（Ｓ８６；ＹＥＳ）。検索装置１は、調整値を更新する必要がある場合（Ｓ８６；ＹＥＳ）、調整値の第二決定方法によりその対象エントリに設定される調整値を更新する（Ｓ８７）。具体的には、検索装置１は、再選択された代表エントリにより示される特徴量データと、削除されたエントリを含む葉ノードにより示される特徴量データとの類似度の分散度合に応じて、調整値を決定する（Ｓ８７）。但し、検索装置１は、調整値の第一決定方法が用いられている場合には、調整値を更新する必要がないと判定する（Ｓ８６；ＮＯ）。
【０１０６】
検索装置１は、対象エントリを含むノード及びその対象エントリの現在の子ノードを再構成する必要があるか否かを判定する（Ｓ８８）。具体的には、検索装置１は、対象エントリの特徴量データと同一ノードの他のエントリの特徴量データとの類似度を取得し、更に、その対象エントリに設定されているＤＳ閾値及び調整値からＳ閾値を算出する。検索装置１は、取得された各類似度とその算出されたＳ閾値とを比較することにより、対象ノードに含まれる他のエントリを現在の子ノードに移動させるか否かを判定する。例えば、当該類似度閾値以上となる類似度を示すエントリは、子ノードに移動させるべきと判定される。
【０１０７】
検索装置１は、対象エントリを含むノードの他のエントリを子ノードへ移動させることで、対象エントリを含むノード及び対象エントリの子ノードを再構成する（Ｓ８９）。
【０１０８】
続いて、検索装置１は、対象エントリを含むノードの親ノードが存在するか否かを判定する（Ｓ９０）。具体的には、検索装置１は、対象エントリを含むノードへのポインタを含むエントリを持つ中間ノードが存在するか否かを判定する。
【０１０９】
検索装置１は、対象エントリを含むノードの親ノードが存在する場合（Ｓ９０；ＹＥＳ）、現対象エントリを含むノードへのポインタを含む親ノードのエントリを新たな対象エントリに設定する（Ｓ９１）。検索装置１は、この新たな対象エントリについて、工程（Ｓ８３）以降を実行する。ここで、検索装置１は、類似度木データのうち更新された箇所のデータをデータベース３５に反映する。
【０１１０】
次に、第一実施形態における類似検索方法について図８を用いて説明する。図８は、類似検索処理に関する検索装置１の動作例を示すフローチャートである。
【０１１１】
検索装置１は、検索対象の特徴量データ（以降、クエリデータｆｑと表記）及び類似度条件δを取得する（Ｓ１００）。ここで取得されたデータは、クエリデータｆｑと類似度条件δ以上の類似度を示す特徴量データをデータベース３５から抽出することを要求する。
【０１１２】
検索装置１は、対象ノードをルートノードに設定する（Ｓ１０１）。対象ノードとは、クエリデータｆｑとの比較候補となるノードを意味する。このように、検索装置１は、上位ノードから下位ノードへと順に比較候補を選んでいく。
【０１１３】
検索装置１は、対象ノードの各エントリの各特徴量データｆｅとクエリデータｆｑとの類似度Ｓをそれぞれ算出する（Ｓ１０２）。
【０１１４】
検索装置１は、対象ノードが葉ノードである場合（Ｓ１０３；ＹＥＳ）、対象ノードに含まれるエントリの中から、類似度条件δ未満の類似度Ｓを示す特徴量データｆｅを示すエントリを抽出対象から除外する（Ｓ１０６）。
【０１１５】
一方、検索装置１は、対象ノードが葉ノードでない場合（Ｓ１０３；ＮＯ）、対象ノードに含まれるエントリの中から、類似度閾値と類似度条件δとの小さい方の値未満の類似度Ｓを示す特徴量データｆｅを示すエントリを抽出対象から除外する（Ｓ１０４）。このとき、検索装置１は、各エントリに設定されているＤＳ閾値及び調整値を用いて、各エントリのための類似度閾値をそれぞれ算出する。
【０１１６】
検索装置１は、対象ノードに、子ノードを持つエントリが除外されず残っているか否かを判定する（Ｓ１０５）。検索装置１は、子ノードを持つエントリが残っている場合（Ｓ１０５；ＹＥＳ）、現対象ノードの子ノードを新たな対象ノードに設定する（Ｓ１０７）。検索装置１は、この新たな対象ノードについて、（Ｓ１０２）以降を実行する。
【０１１７】
検索装置１は、抽出対象に残ったエントリの特徴量データｆｅを検索結果に設定する（Ｓ１０８）。
【０１１８】
上述の類似検索方法は、幅優先探索法を用いた方法であったが、深さ優先探索法が用いられてもよい。深さ優先探索法が用いられる類似検索方法では、対象ノードが中間ノードである場合、（Ｓ１０２）では、対象ノードの１つのエントリの特徴量データｆｅとクエリデータｆｑとの類似度Ｓが算出される。更に、（Ｓ１０４）の実行後、クエリデータｆｑとの比較を行っていないエントリを有する最上位の中間ノードを新たな対象ノードに設定し、（Ｓ１０２）以降が更に実行される。
【０１１９】
本実施形態におけるインデックス生成方法及び類似検索方法は、図５、図６、図７及び図８に示される例に制限されない。例えば、図５及び図６の例では、特徴量データｆｉが取得される度に、その特徴量データｆｉ及び類似度木データがデータベース３５に格納されたが、特徴量データｆｉ及び類似度木データのデータベース３５への格納タイミングは、任意である。また、（Ｓ６０）等の類似度を算出する工程は、毎回、類似度計算をすることなく、過去に算出されている類似度を保持部から取得するようにしてもよい。また、図７の例において、調整値の更新の必要性に加えて、ＤＳ閾値の更新の必要性も更に判定されてもよい。
【０１２０】
〔第一実施形態の作用及び効果〕
上述のように、第一実施形態では、上位ノードの代表エントリと下位ノードとの間のリンク関係に対してデフォルト類似度閾値及び調整値が決定され、その代表エントリに含められる。そして、そのデフォルト類似度閾値からその調整値を減じて得られる類似度閾値に基づいて、そのリンク関係を有する下位ノードに配置される特徴量データが決定される。これは、類似度に関する或る閾値を調整値で緩和して得られる値を最終的な閾値として利用して、類似度木を構築するという技術的思想の具現化である。これにより、似通ったデータの集合を１つのノードに集まり易くすることができる。第一実施形態によれば、このように似通ったデータの集合を１つのノードに集まり易くすることで、上述の実施形態と同様の効果を得ることができる。
【０１２１】
ここで、調整値の第一決定方法では、調整値は、デフォルト類似度閾値が大きい程、小さくなるように決定される。即ち、相対的に小さい値を持つデフォルト類似度閾値は、相対的に大きく緩和され、相対的に大きい値を持つデフォルト類似度閾値は、相対的に小さく緩和される。
【０１２２】
一方、調整値の第二決定方法では、調整値は、代表特徴量データと各特徴量データとの類似度群の分散度合が小さい程、小さい値に決定される。類似度群の分散度合が相対的に小さい特徴量データの集合は、相対的に大きい値の類似度閾値により集められた可能性が高い。逆に、類似度群の分散度合が相対的に大きい特徴量データの集合は、相対的に小さい値の類似度閾値により集められた可能性が高い。これは、最終的に利用される類似度閾値が大きい程、調整値が小さく決定されることと等価である。よって、第二決定方法でも第一決定方法と同様の結論となる。このような結論は、上述の実施形態と同様の内容であるため、上述の実施形態と同様の効果を得ることができる。
【０１２３】
また、第一実施形態では、各ノードの特徴量データとの類似度に基づいて、上位階層から下位階層へ順番に各ノードがチェックされることにより、取得されたインデックス対象の特徴量データに対応するエントリが適切なノードに挿入される。更に、各ノードのエントリ数に応じて、各ノードが階層的に分割される。従って、第一実施形態によれば、インデックス対象のデータに基づいて、インデックス対象のデータ規模によらず、動的に、類似度木を生成及び更新することができる。一方、背景技術で述べた提案技術には、動的なインデックスの生成及び更新をサポートするものが少ない。Ｒ木技術のようにそれをサポートしている既存技術であったとしても、大規模データには対応し難い。
【０１２４】
また、第一実施形態では、ノードの溢れ調整時などに代表エントリを選出する方法として、上述のような２つの選択方法が例示された。更に、デフォルト類似度閾値を決定する方法も複数例示された。このような複数の方法により、代表エントリ及びデフォルト類似度閾値が既に存在するエントリを考慮して決定されることで、類似度木のエントリ数のバランスを取りやすくすることができる。
【０１２５】
［第二実施形態］
上述の第一実施形態では、子ノードへのポインタを含むエントリが、子ノードで示される特徴量データ集合の代表となる１つの特徴量データを含んでいた。第二実施形態では、代表となる複数の特徴量データが、子ノードへのポインタと共に当該エントリに含まれる。代表となる特徴量データの数の上限は、例えば、子ノードで示される特徴量データの数より小さい値に設定される。以下、第二実施形態における検索装置１について、第一実施形態と異なる内容を中心に説明する。以下の説明では、第一実施形態と同様の内容については適宜省略する。
【０１２６】
図９は、第二実施形態におけるインデックスの一部の例を概念的に示す図である。図９に示されるように、第二実施形態では、下位ノードＬ１へのポインタ（リンク関係Ｒ１）を含む上位（中間）ノードＬ２のエントリＥ２は、デフォルト類似度閾値ＤＳＴ１及び調整値ＡＤ１と、下位ノードＬ１に含まれる複数エントリＥ１（ｎ）で示される複数の特徴量データ（ｆ１、ｆ３、ｆ９等）の代表となる複数の特徴量データｆ８及びｆ１１とを含む。
【０１２７】
代表選択部２３は、特徴量データの追加時又は削除時に、必要に応じて、或るノードに含まれる複数の特徴量データの中から代表となる複数の特徴量データを選択する。中間ノードには、複数の特徴量データ及び子ノードへのポインタを含むエントリと、子ノードへのポインタを含まず１つの特徴量データを含むエントリとが混在する場合がある。この場合、代表選択部２３は、子ノードへのポインタを含まないエントリの中から代表となる複数の特徴量データを選択するようにしてもよい。また、代表選択部２３は、その中間ノードに含まれる全エントリの全特徴量データの中から代表となる複数の特徴量データを選択するようにしてもよい。
【０１２８】
例えば、代表選択部２３は、以下に示す２つの選択方法のいずれか１つを用いて、代表となる複数の特徴量データを選択する。但し、本実施形態は、代表となる複数の特徴量データの選択方法を以下のような方法に制限しない。代表選択部２３は、代表となる複数の特徴量データをランダムに選択するようにしてもよい。
【０１２９】
第一の選択方法では、代表選択部２３は、類似度の値が最大となる特徴量データの組み合わせを代表として選択する。２つの特徴量データが代表として選択される場合、代表選択部２３は、類似度の値が最大となる特徴量データのペアを代表として選択する。
【０１３０】
第二の選択方法では、代表選択部２３は、類似度の値が最小となる特徴量データの組み合わせを代表として選択する。２つの特徴量データが代表として選択される場合、代表選択部２３は、類似度の値が最小となる特徴量データのペアを代表として選択する。
【０１３１】
閾値決定部２２は、第一実施形態で説明された方法に加えて、次のような方法で、ＤＳ閾値を決定することができる。閾値決定部２２は、複数の代表の特徴量データの中心点となる特徴量データと他の特徴量データとの類似度をＤＳ閾値に決定する。
【０１３２】
インデックス生成部２１は、新たな特徴量データを類似度木に反映する場合に、当該新たな特徴量データと、下位ノードへのポインタを含む中間ノードのエントリにより示される複数の特徴量データとの各類似度をそれぞれ取得し、各類似度と類似度閾値とをそれぞれ比較し、各比較結果に基づいて、当該新たな特徴量データを含むエントリの挿入先をその中間ノード又はその下位ノードに決定する。具体的には、インデックス生成部２１は、全ての類似度が類似度閾値以上であれば、当該新たな特徴量データを含むエントリの挿入先を下位ノードに決定し、いずれか１つの類似度でも類似度閾値未満であれば、当該対象の特徴量データを含むエントリの挿入先を中間ノードに決定する。但し、インデックス生成部２１は、いずれか１つの類似度でも類似度閾値以上であれば、当該新たな特徴量データを含むエントリの挿入先を下位ノードに決定し、全ての類似度が類似度閾値未満であれば、当該対象の特徴量データを含むエントリの挿入先を中間ノードに決定するようにしてもよい。
【０１３３】
検索処理部３３は、検索対象の特徴量データとエントリに含まれる複数の特徴量データとに関し取得される各類似度と、類似度閾値、又は、条件取得部３１により取得された類似度条件とを比較し、この比較結果に基づいて、その類似度閾値に対応するＤＳ閾値及び調整値を含むエントリ、及び、そのエントリとリンクされる子ノード以下の下位ノードのエントリを、検索対象の特徴量データに関する類似度条件に適合する抽出対象（検索結果）から除外する。このとき、全ての類似度が、類似度閾値と類似度条件との小さい方の値未満であれば、その類似度閾値に対応するＤＳ閾値及び調整値を含むエントリは抽出対象から除外される。
【０１３４】
〔動作例〕
以下、第二実施形態におけるインデックス生成方法について図５、図６及び図７を用いて説明する。第二実施形態では、（Ｓ５２）、（Ｓ５３）、（Ｓ５７）、（Ｓ６０）、（Ｓ６１）、（Ｓ６２）及び（Ｓ７０）において、複数の特徴量データが処理対象とされる点において、第一実施形態と異なる。
【０１３５】
具体的には、（Ｓ５２）では、検索装置１は、対象ノードに含まれる各エントリについて、そのエントリに含まれる複数の特徴量データｆｅと特徴量データｆｉとの各類似度Ｓをそれぞれ算出し、類似度閾値以上の複数の類似度Ｓを示す複数の特徴量データｆｅを示すエントリを特定する。但し、検索装置１は、類似度閾値以上の類似度Ｓを示す１つの特徴量データを含む複数の特徴量データｆｅを示すエントリが特定されてもよい。（Ｓ５３）では、検索装置１は、その特定されたエントリの中で類似度Ｓが最大となるエントリのポインタが示す子ノードを対象ノードに設定する。
【０１３６】
具体的には、（Ｓ５７）では、検索装置１は、対象ノードのエントリの中から複数の特徴量データを代表として選択する。（Ｓ６０）では、検索装置１は、（Ｓ５７）で代表として選択された複数の特徴量データと、それら代表を選択した母集団に含まれるそれら代表以外の各特徴量データとの類似度をそれぞれ算出する。（Ｓ６１）及び（Ｓ７０）において、検索装置１は、代表として選択された複数の特徴量データとの類似度が類似度閾値以上を示す特徴量データを持つエントリを含む子ノードを生成する。但し、検索装置１は、代表として選択された複数の特徴量データの中の１つとの類似度が類似度閾値以上を示す特徴量データを持つエントリを子ノードに含めてもよい。
【０１３７】
（Ｓ６２）では、検索装置１は、代表として選択された複数の特徴量データを含む１つのエントリを生成し、それら代表を含んでいたエントリを削除し、その生成されたエントリに、（Ｓ６１）及び（Ｓ７０）で生成された子ノードへのポインタ、ＤＳ閾値及び調整値を設定する。
【０１３８】
第二実施形態では、（Ｓ８４）、（Ｓ８５）及び（Ｓ８８）において、複数の特徴量データが処理対象とされる点において、第一実施形態と異なる。
【０１３９】
（Ｓ８４）では、検索装置１は、代表となる複数の特徴量データを再選択する。
（Ｓ８５）では、検索装置１は、再選択された複数の特徴量データを対象エントリに設定する。
【０１４０】
（Ｓ８８）では、検索装置１は、対象エントリの複数の特徴量データと同一ノードの他のエントリの特徴量データとの各類似度を、対象エントリに設定されるＤＳ閾値及び調整値から算出される類似度閾値とそれぞれ比較することにより、対象ノードに含まれる他のエントリを現在の子ノードに移動させるか否かを判定する。例えば、対象エントリの複数の特徴量データと当該類似度閾値以上となる類似度を示す特徴量データを含むエントリは、子ノードに移動させるべきと判定される。但し、対象エントリの複数の特徴量データの中の１つと当該類似度閾値以上となる類似度を示す特徴量データを含むエントリは、子ノードに移動させると判定されてもよい。
【０１４１】
次に、第二実施形態における類似検索方法について図８を用いて説明する。第二実施形態では、（Ｓ１０２）及び（Ｓ１０４）において、複数の特徴量データが処理対象とされる点において、第一実施形態と異なる。
【０１４２】
（Ｓ１０２）では、検索装置１は、対象ノードが中間ノードである場合、対象ノードの各エントリの複数の特徴量データｆｅとクエリデータｆｑとの各類似度Ｓをそれぞれ算出する。（Ｓ１０４）では、検索装置１は、対象ノードに含まれるエントリの中から、類似度閾値と類似度条件δとの小さい方の値未満の複数の類似度Ｓを示す複数の特徴量データｆｅを示すエントリを抽出対象から除外する。
【０１４３】
〔第二実施形態の作用及び効果〕
第二実施形態では、子ノードへのポインタを含む中間ノードのエントリは、複数の特徴量データを示す。即ち、第二実施形態では、子ノードで示される特徴量データ集合の代表となる複数の特徴量データが選出され、当該複数の特徴量データが親ノードのエントリに設定される。そして、子ノードで示される特徴量データの集合は、親ノードのエントリに含まれる全ての特徴量データ又はいずれか１つの特徴量データとの類似度がその類似度閾値以上を示す。
【０１４４】
このように、第二実施形態によれば、親ノードのエントリで示される複数の特徴量データが用いられることにより、子ノードで示される特徴量データ集合との類似度が判定されるため、親ノードのエントリにより、子ノードで示されるデータ集合の類似度範囲を、第一実施形態に比べより厳密に定義することができる。
【０１４５】
また、類似度の値が最大となる特徴量データの組み合わせを示す複数エントリを複数代表エントリとして選択する方法によれば、当該複数エントリで示される複数の特徴量データの分散が大きい場合でも、親ノードのエントリにより、子ノードで示されるデータ集合の類似度範囲を厳密に定義することができる。一方、類似度の値が最小となる特徴量データの組み合わせを示す複数エントリを複数代表エントリとして選択する方法によれば、当該複数エントリで示される複数の特徴量データが密集する場合でも、親ノードのエントリにより、子ノードで示されるデータ集合の類似度範囲を厳密に定義することができる。
【０１４６】
このように、親ノードのエントリにより、子ノードで示されるデータ集合の類似度範囲を厳密に定義することができるため、第二実施形態によれば、類似度木のバランスを取り易くなり、ひいては、検索効率を向上させることができる。
【０１４７】
［第三実施形態］
第三実施形態では、各ノードのエントリ容量を示すエントリ閾値がノード毎に動的に決定される。以下に説明される第三実施形態は、上述の第一実施形態にこの新たな特徴が追加された形態である。以下、第三実施形態における検索装置１について、上述の各実施形態と異なる内容を中心に説明する。以下の説明では、上述の各実施形態と同様の内容については適宜省略する。
【０１４８】
図１０は、第三実施形態における検索装置１の処理構成例を概念的に示す図である。図１０に示されるように、第三実施形態における検索装置１は、上述の各実施形態の構成に加えて、エントリ調整部４０を更に有する。エントリ調整部４０は、他の処理部と同様に実現される。
【０１４９】
データベース３５は、類似度木に関連する情報として、各ノードについてエントリ閾値をそれぞれ更に格納する。
【０１５０】
エントリ調整部４０は、複数のノードの各々について、ノード内の最大エントリ数を示すエントリ閾値をそれぞれ決定する。具体的には、エントリ調整部４０は、インデックス対象データを示すエントリの挿入先がインデックス生成部２１により或るノードに決定された場合に、そのノードに含まれる複数エントリにより示される複数の特徴量データ及び当該インデックス対象データの各々と、当該複数エントリの代表エントリ（上位ノード）により示される代表特徴量データとの類似度群の分布状態に基づいて、そのノードに関するエントリ閾値を変更するか否かを判定する。類似度群の分布状態は、例えば、分布の均一度、分散度合、外れ値の有無等により表される。例えば、エントリ調整部４０は、当該類似度群に対して外れ値検出を行い、外れ値が検出されない場合に、そのエントリ閾値を増加させ、外れ値が検出された場合には、そのエントリ閾値を変更しない。外れ値検出手法には、統計、距離のような様々な指標に基づく様々な周知の手法が存在するため、エントリ調整部４０でも周知の外れ値検出手法が利用されればよい。
【０１５１】
このようにして、エントリ調整部４０は、近い特徴量データができる限り１つのノードで示されるように、各ノードのエントリ容量を柔軟に変更する。エントリ調整部４０は、ノードが生成された時点では、エントリ閾値を任意の初期値に決定し、そのエントリ閾値を増加させてもよい。
【０１５２】
エントリ調整部４０は、エントリの挿入先として決定されたノードにそのエントリを挿入した場合に、そのノード内のエントリ数がそのノードのエントリ閾値を超えるか否かを判定し、エントリ数がそのエントリ閾値を超える場合に、上記判定を実行することが望ましい。上記判定は、類似度群の分布状態に基づくため、或る程度のデータ数を要するからである。また、上記判定の実行を溢れ調整時のみに制限できるため、全体処理を高速化できるからである。
【０１５３】
〔動作例〕
以下、第三実施形態におけるインデックス生成方法について図１１を用いて説明する。図１１は、調整値の第一決定方法を用いる場合のインデックス生成処理に関する第三実施形態の検索装置１の動作例を示すフローチャートである。図１１では、図５と同じ内容となる工程には、図５と同じ符号が付されている。
【０１５４】
検索装置１は、図５の場合と同様に、（Ｓ５０）から（Ｓ５６）を実行する。但し、（Ｓ５６）では、対象ノードに関しデータベース３５に格納されるエントリ閾値が利用される。検索装置１は、対象ノードのエントリ数がその対象ノードのエントリ閾値を超える場合（Ｓ５６；ＹＥＳ）、対象ノードのエントリにより示される特徴量データ（ｆｉを含む）とそれらの代表特徴量データとの類似度群に対して外れ値検出を行う（Ｓ１２１）。
【０１５５】
検索装置１は、（Ｓ１２１）で実行される外れ値検出により外れ値が検出された場合には（Ｓ１２２；ＹＥＳ）、図５と同様に、（Ｓ５７）以降を実行し、その対象ノードに含まれるエントリを親ノードと子ノードとに分割する。一方、検索装置１は、外れ値が検出されなかった場合には（Ｓ１２２；ＮＯ）、対象ノードのエントリ閾値を増加させる（Ｓ１２３）。エントリ閾値は１インクリメントされる。検索装置１は、その対象ノードに関しデータベース３５に格納されるエントリ閾値をその増加されたエントリ閾値に更新する（Ｓ６３）。
【０１５６】
調整値の第二決定方法を用いる場合のインデックス生成方法については、図示されていないが、図１１において図５から追加された工程が同趣旨で図６に追加されればよい。即ち、調整値の第二決定方法を用いる場合、図６の（Ｓ５６）と（Ｓ５７）との間に、図１１で示される（Ｓ１２１）、（Ｓ１２２）及び（Ｓ１２３）が追加される。
【０１５７】
データ削除時については、図７と同様に、検索装置１が動作すればよい。しかし、検索装置１は、図示されていないが、削除されたエントリを含む葉ノードのエントリ閾値に関し更新の要否を判定するようにしてもよい。この場合、検索装置１は、削除されたエントリを含む葉ノードのエントリ閾値が初期値から増加されたものであるか否かを判定し、そのエントリ閾値が初期値よりも大きい場合には、そのエントリ閾値を１減少させる。
【０１５８】
〔第三実施形態における作用及び効果〕
第三実施形態では、ノード毎に最大エントリ数を示すエントリ閾値がそれぞれデータベース３５に格納される。そして、エントリの挿入先に決定されたノードのエントリ数がそのエントリの挿入によりエントリ閾値を超える場合に、そのノードのエントリ閾値を変更するか否かが判定される。具体的には、挿入先のノードで示される複数の特徴量データ及び挿入対象の特徴量データの各々と、代表特徴量データとの類似度群の分布状態が均一性（低分散）を示し外れ値が存在しないような状態である場合に、そのノードに関するエントリ閾値が増加される。
【０１５９】
従って、第三実施形態によれば、類似する特徴量データどうしがノードのエントリ数の制限（エントリ閾値）により異なるノードに配置されるのを避けることができ、１つのノードに配置され易くなる。結果、第一実施形態で述べたとおり、類似検索の再現率を向上させることができ、かつ、類似度計算対象とするエントリの数を限定し易くなるため、類似検索の処理速度を向上させることができる。更に、似通ったデータを１つのノードに集まり易くすることで、ノード数が不必要に増えることを抑えることができる。これにより、ノードへのアクセス数を減少させることができ、ひいては、処理速度を向上させることができる。
【０１６０】
以下に実施例を挙げ、上述の各実施形態を更に詳細に説明する。本発明は以下の実施例から何ら限定を受けない。
【実施例１】
【０１６１】
実施例１は、上述の第三実施形態に対応する。以下、実施例１における検索装置１の動作及びインデックス生成方法について、図１１に沿って説明する。【０１６２】
図１２から図２２は、実施例１におけるインデックス生成過程を概念的に示す図である。実施例１では、図１２に示されるように、子ノードへのポインタ、ＤＳ閾値（ＤＳＴ）、調整値（ＡＤ）及び特徴量データｆ１が設定されたエントリを持つルートノードが既に生成されていると仮定する。また、ノードＮ１のエントリ閾値（ＥＴ）が３に設定されていると仮定する。また、以降、特徴量データを単にデータと表記する。【０１６３】
検索装置１は、インデックス対象となるデータｆ５を取得する（Ｓ５０）。検索装置１は、データｆ１とデータｆ５との類似度（０．８）を取得し、更に、データｆ１を含むエントリに設定されているＤＳ閾値（ＤＳＴ＝０．２５）及び調整値（ＡＤ＝０．１５）をデータベース３５から取得する。検索装置１は、ＤＳ閾値及び調整値から類似度閾値（Ｔ＝０．１）を算出し、上記類似度（０．８）がその類似度閾値（０．１）より大きいため、ルートノードの子ノードであるノードＮ１を対象ノードに設定する（Ｓ５３）。ここで、ノードＮ１は葉ノードであるため（Ｓ５４；ＹＥＳ）、検索装置１は、データｆ５を含むエントリを対象ノードＮ１に追加する（Ｓ５５）。【０１６４】
検索装置１は、対象ノードのエントリ数（４）が対象ノードＮ１のエントリ閾値（ＥＴ＝３）を超えているため（Ｓ５６；ＹＥＳ）、外れ値検出を行う。具体的には、検索装置１は、代表特徴量データｆ１と、対象ノードＮ１に含まれる特徴量データｆ２、ｆ３、ｆ４及びｆ５の各々との類似度群（０．６、０．８、０．９、０．８）に対して外れ値検出を行う。検索装置１は、外れ値が検出されない場合には（Ｓ１２２；ＮＯ）、対象ノードＮ１のエントリ閾値（ＥＴ）を１増加させて（Ｓ１２３）、処理を終える。結果、対象ノードＮ１のエントリ閾値（ＥＴ＝４）がデータベース３５に格納される（Ｓ６３）。【０１６５】
検索装置１は、外れ値が検出された場合（Ｓ１２２；ＹＥＳ）、溢れ調整を行う。溢れ調整において、検索装置１は、対象ノードＮ１の代表エントリを選択する（Ｓ５７）。図１３の例によれば、データｆ２を含むエントリが代表エントリに選択される。続いて、検索装置１は、ＤＳ閾値（ＤＳＴ＝０．８８）を決定し（Ｓ５８）、更に、調整値（ＡＤ＝０．０８）を決定する（Ｓ５９）。ここで決定されたＤＳ閾値（０．８８）は、階層位置に応じて、ルートノードのエントリに設定されているＤＳ閾値（ＤＳＴ＝０．２５）よりも大きな値に決定されている。また、調整値（０．０８）については、ＤＳ閾値の大きさに応じて、ルートノードの調整値（０．１５）よりも小さい値に決定されている。【０１６６】
検索装置１は、代表エントリのデータｆ２と、他の各エントリのデータｆ３、ｆ４及びｆ５の各々との類似度をそれぞれ算出する（Ｓ６０）。図１３の例に示されるような各類似度がそれぞれ算出される。更に、検索装置１は、上述のように決定されたＤＳ閾値（０．８８）から調整値（０．０８）を減算することにより、代表エントリに対応する類似度閾値（０．８）を算出する。これにより、検索装置１は、図１４に示されるように、類似度閾値（０．８）以上の類似度を示すデータｆ３及びｆ４を持つ２つのエントリを含む子ノードＮ２を生成する（Ｓ６１）。このとき、検索装置１は、生成された子ノードＮ２のエントリ閾値を初期値（３）に決定し、データベース３５に格納する。更に、検索装置１は、対象ノードＮ１の代表エントリに、子ノードＮ２へのポインタ、ＤＳ閾値（０．８８）及び調整値（０．０８）を設定する（Ｓ６２）。検索装置１は、データｆ５をデータベース３５に格納すると共に、更新された類似度木データをデータベース３５に格納する（Ｓ６３）。【０１６７】
続いて、図１４に示されるように、検索装置１は、新たなデータｆ６を取得する（Ｓ５０）。検索装置１は、データｆ１とデータｆ６との類似度（０．９）が、ＤＳ閾値及び調整値から算出される類似度閾値（０．１）より大きいため、ルートノードの子ノードであるノードＮ１を対象ノードに設定する（Ｓ５３）。ここで、ノードＮ１は中間ノードであるため（Ｓ５４；ＮＯ）、検索装置１は、対象ノードＮ１に含まれる、子ノードへのポインタを含むエントリについて、そのエントリに含まれるデータｆ２とデータｆ６との類似度を算出する。図１４の例では、データｆ２とデータｆ６との類似度は０．８５であるため、検索装置１は、類似度閾値（０．８）以上の類似度を示すデータｆ２を含むエントリを特定する（Ｓ５２）。【０１６８】
検索装置１は、その特定されたエントリのポインタが示す子ノードＮ２を対象ノードに設定し（Ｓ５３）、図１５に示されるように、データｆ６を含むエントリをその対象ノードＮ２に追加する（Ｓ５５）。ここで、対象ノードＮ２のエントリ数（３）は、対象ノードＮ２のエントリ閾値（３）を超えていないため（Ｓ５６；ＮＯ）、検索装置１は、データｆ６及び更新された類似度木データをデータベース３５に格納する（Ｓ６３）。【０１６９】
続いて、図１６に示される場面について説明する。ここでは、データｆ７がノードＮ１に追加された状態で、検索装置１が新たなデータｆ８を取得する（Ｓ５０）。検索装置１は、データｆ１とデータｆ８との類似度（０．７）が類似度閾値（０．１）より大きいため、ルートノードの子ノードであるノードＮ１を対象ノードに設定する（Ｓ５３）。【０１７０】
ここで、ノードＮ１は中間ノードであるため（Ｓ５４；ＮＯ）、検索装置１は、対象ノードＮ１に含まれる、子ノードへのポインタを含むエントリについて、そのエントリに含まれるデータｆ２とデータｆ８との類似度を算出する。図１６の例では、データｆ２とデータｆ８との類似度は０．７５であり、類似度閾値（０．８）以上の類似度を示すデータを含むエントリが対象ノードＮ１に存在しない。検索装置１は、該当するエントリが対象ノードＮ１に存在しないため（Ｓ５２；ＮＯ）、図１６に示されるように、データｆ８を含むエントリを対象ノードＮ１に追加する（Ｓ５５）。【０１７１】
検索装置１は、対象ノードＮ１のエントリ数（４）が対象ノードＮ１のエントリ閾値（３）を超えているため（Ｓ５６；ＹＥＳ）、外れ値検出を行う。具体的には、検索装置１は、代表特徴量データｆ１と、対象ノードＮ１に含まれる特徴量データｆ２、ｆ５、ｆ７及びｆ８の各々との類似度群（０．６、０．８、０．９、０．７）に対して外れ値検出を行う。検索装置１は、外れ値が検出されない場合には（Ｓ１２２；ＮＯ）、対象ノードＮ１のエントリ閾値（ＥＴ）を１増加させて（Ｓ１２３）、処理を終える。結果、対象ノードＮ１のエントリ閾値（ＥＴ＝４）がデータベース３５に格納される（Ｓ６３）。【０１７２】
検索装置１は、外れ値が検出された場合（Ｓ１２２；ＹＥＳ）、溢れ調整を行う。図１６の例では、検索装置１は、対象ノードＮ１に含まれる全エントリを母集団として、その母集団の中から代表エントリを選択する（Ｓ５７）。図１６の例によれば、データｆ５を含むエントリが代表エントリに選択される。検索装置１は、新たなＤＳ閾値及び新たな調整値を決定する（Ｓ５８、Ｓ５９）。ここでは、新たなＤＳ閾値（ＤＳＴ＝０．８８）及び新たな調整値（ＡＤ＝０．０８）が決定される。【０１７３】
検索装置１は、代表エントリのデータｆ５と、他の各エントリのデータｆ２、ｆ７及びｆ８の各々との類似度をそれぞれ算出する（Ｓ６０）。図１７の例に示されるような各類似度がそれぞれ算出される。更に、検索装置１は、上述のように決定されたＤＳ閾値（０．８８）から調整値（０．０８）を減算することにより、代表エントリに対応する類似度閾値（０．８）を算出する。これにより、検索装置１は、図１７及び図１８に示されるように、類似度閾値（０．８）以上の類似度を示すデータｆ８を持つ１つのエントリを含む子ノードＮ３を生成する（Ｓ６１）。このとき、検索装置１は、生成された子ノードＮ３のエントリ閾値を初期値（３）に決定し、データベース３５に格納する。検索装置１は、対象ノードＮ１におけるデータｆ５を含む代表エントリに、子ノードＮ３へのポインタ、ＤＳ閾値（０．８８）及び調整値（０．０８）を設定する（Ｓ６２）。このとき、検索装置１は、ノードＮ２へのポインタを含むエントリについてノードＮ１に残ることを決めたため、そのエントリに含まれるそのポインタやＤＳ閾値及び調整値をそのままとする。これにより、更新された類似度木は、図１８に示されるようになる。検索装置１は、データｆ８をデータベース３５に格納すると共に、更新された類似度木データをデータベース３５に格納する（Ｓ６３）。【０１７４】
図１９及び図２０は、図１７及び図１８に示される例とは異なるインデックス生成例を示す図である。図１７の例では、代表エントリがデータｆ５を含むエントリに決められ、ＤＳ閾値が０．８８に、調整値が０．０８に決定された。図１９は、ＤＳ閾値が０．８６に、調整値が０．１１に決められる例を示す。ここで決定されたＤＳ閾値（０．８６）は、階層位置に応じて、ルートノードのエントリに設定されているＤＳ閾値（ＤＳＴ＝０．２５）よりも大きな値に決定されている。また、調整値（０．１１）については、ＤＳ閾値の大きさに応じて、ルートノードの調整値（０．１５）よりも小さく、かつ、データｆ２が含まれるエントリの調整値（０．０８）よりも大きい値に決定されている。この場合、図１９の例に示されるような各類似度がそれぞれ算出される。【０１７５】
この場合、検索装置１は、ＤＳ閾値（０．８６）から調整値（０．１１）を減算することにより、類似度閾値（０．７５）を算出する。検索装置１は、この類似度閾値（０．７５）以上の類似度を示すデータｆ２及びｆ８を持つ２つのエントリを子ノードへ移すことを決める。しかし、この場合、データｆ２を含むエントリは、子ノードＮ２とリンクされている。そこで、検索装置１は、図２０に示されるように、データｆ２を含むエントリに設定されている、子ノードＮ２へのポインタ、ＤＳ閾値（０．８８）及び調整値（０．０８）をそのまま維持しつつ、データｆ２及びｆ８を含む２つのエントリを含む子ノードＮ４を生成する（Ｓ６１）。そして、検索装置１は、親ノードとなるノードＮ１から、データｆ２及びｆ８を含む２つのエントリを削除する。更に、検索装置１は、対象ノードＮ１におけるデータｆ５を含む代表エントリに、子ノードＮ４へのポインタ、ＤＳ閾値（０．８６）及び調整値（０．１１）を設定する（Ｓ６２）。結果、更新された類似度木は、図２０に示されるようになる。図２０に示されるように、既に設定されているリンク関係を維持することで、ノードの溢れ調整を簡易処理で実現することができる。【０１７６】
図２１は、図２０に示される例とは異なるインデックス生成例を示す図である。検索装置１は、ノードの溢れ調整において、既に子ノードとリンクされているエントリを子ノードへ移すことを決めた場合、図２１に示されるように、既に設定されているリンク関係を解除するようにしてもよい。この場合、検索装置１は、図２１に示されるように、データｆ２及びｆ８を含む２つのエントリと共に、子ノードＮ２に含まれる３つのエントリ（データｆ３、ｆ４及びｆ６を含む）を含む子ノードＮ４を生成し（Ｓ６１）、親ノードとなるノードＮ１から、データｆ２及びｆ８を含む２つのエントリを削除する。【０１７７】
図１９、図２０及び図２１の例において、ノードＮ１の溢れ調整時に、代表エントリに含まれるデータｆ５と、ノードＮ２に含まれていたデータｆ３、ｆ４及びｆ６の各々との類似度は、計算されなくてもよい。これは、上述の規則に基づいている。即ち、データｆ２は、データｆ３、ｆ４及びｆ６の各々と類似度閾値（０．８８−０．０８＝０．８）以上の類似度を示す代表データであり、かつ、代表データｆ２とデータｆ５とが類似度閾値（０．８６−０．１１＝０．７５）以上の類似度を示す場合、代表データｆ２のデータ集合（ｆ３、ｆ４及びｆ６）とデータｆ５とについても類似度閾値（０．８６−０．１１＝０．７５）以上の類似度を示す可能性が高いからである。【０１７８】
図２２は、図１８に示される類似度木が既に生成されている状態で、新たなデータｆ９が取得された場合のインデックス生成過程を概念的に示す図である。この場合、検索装置１は、対象ノードＮ１に含まれる、子ノードへのポインタを含む２つのエントリについて、そのエントリに含まれるデータｆ２及びｆ５と、データｆ９との各類似度をそれぞれ算出する。図２２の例では、データｆ２とデータｆ９との類似度は０．８５であり、その類似度がデータｆ２のエントリの類似度閾値（０．８８−０．０８＝０．８）より大きい。更に、データｆ５とデータｆ９との類似度は０．８６であり、その類似度がデータｆ５のエントリの類似度閾値（０．８８−０．０８＝０．８）より大きい。即ち、（Ｓ５２）に該当するエントリが複数存在する（Ｓ５２；ＹＥＳ）。【０１７９】
この場合、検索装置１は、（Ｓ５２）の条件を満たすエントリであって、かつ、データｆ９との類似度が最大となるエントリ、即ち、データｆ５を含むエントリを特定する。検索装置１は、データｆ５を含むエントリのポインタが示す子ノードＮ３を対象ノードに設定する（Ｓ５３）。検索装置１は、データｆ９を含むエントリを対象ノードＮ３に追加する（Ｓ５５）。
【実施例２】
【０１８０】
実施例２は、上述の第二実施形態に対応する。以下、実施例２における検索装置１の動作及びインデックス生成方法について、図５に沿って説明する。実施例２では、子ノードへのポインタを含むエントリが、子ノードで示される特徴量データ集合の代表となる２つの特徴量データを含む例が示される。また、子ノードへのポインタを含むエントリの２つの特徴量データとの各類似度がそれぞれ類似度閾値以上となるデータが、その子ノードへの追加対象とされる例が示される。【０１８１】
図２３及び図２４は、実施例２におけるインデックス生成過程を概念的に示す図である。図２３に示されるように、子ノードへのポインタ、ＤＳ閾値（０．３５）及び調整値（０．１）、並びに、データｆ１及びｆ２が設定されたエントリを持つルートノードが既に生成されており、ノードＮ１には、データｆ３、ｆ４及びｆ５を含む３つのエントリが設定されている。【０１８２】
この状態で、検索装置１は、データｆ６を取得する（Ｓ５０）。検索装置１は、データｆ１及びｆ２の各々とデータｆ６との各類似度（０．９、０．８５）が類似度閾値（０．３５−０．１＝０．２５）よりそれぞれ大きいため、ルートノードの子ノードであるノードＮ１を対象ノードに設定する（Ｓ５３）。ここで、ノードＮ１は葉ノードであるため（Ｓ５４；ＹＥＳ）、検索装置１は、データｆ６を含むエントリを対象ノードＮ１に追加する（Ｓ５５）。【０１８３】
検索装置１は、対象ノードＮ１のエントリ数（４）が対象ノードＮ１のエントリ閾値（３）を超えているため（Ｓ５６；ＹＥＳ）、外れ値検出を行う。具体的には、検索装置１は、代表特徴量データｆ１と対象ノードＮ１に含まれる特徴量データｆ３、ｆ４、ｆ５及びｆ６の各々との類似度群（０．８、０．９、０．８、０．９）、及び、代表特徴量データｆ２と対象ノードＮ１に含まれる特徴量データｆ３、ｆ４、ｆ５及びｆ６の各々との類似度群（０．８５、０．８７、０．７５、０．８５）に対して外れ値検出を行う。検索装置１は、外れ値が検出されない場合には（Ｓ１２２；ＮＯ）、対象ノードＮ１のエントリ閾値（ＥＴ）を１増加させて（Ｓ１２３）、処理を終える。結果、対象ノードＮ１のエントリ閾値（ＥＴ＝４）がデータベース３５に格納される（Ｓ６３）。【０１８４】
検索装置１は、外れ値が検出された場合（Ｓ１２２；ＹＥＳ）、溢れ調整を行う。溢れ調整において、検索装置１は、図２３に示されるように、対象ノードＮ１に含まれる全エントリの全データの中から２つのデータを代表として選択する（Ｓ５７）。ここでは、上述の第一の選択方法が用いられることにより、検索装置１は、類似度の値が最大となる２つのデータを代表として選択する。図２３の例では、データｆ３及びデータｆ４が代表に選択される。続いて、検索装置１は、新たなＤＳ閾値（０．６８）及び新たな調整値（０．０８）を決定する（Ｓ５８、Ｓ５９）。【０１８５】
検索装置１は、代表として選択されたデータｆ３及びｆ４の各々と、他のエントリのデータｆ５及びｆ６の各々との類似度をそれぞれ算出する（Ｓ６０）。ここでは、図２４の例に示されるような各類似度がそれぞれ算出される。更に、検索装置１は、ＤＳ閾値（０．６８）から調整値（０．０８）を減算することにより、類似度閾値（０．６）を算出する。これにより、検索装置１は、図２４に示されるように、データｆ３及びｆ４の各々と類似度閾値（０．６）以上の類似度を示すデータｆ５を持つ１つのエントリを含む子ノードＮ２を生成する（Ｓ６１）。図２４の例では、データｆ６とデータｆ４との類似度（０．６）は、類似度閾値（０．６）以上となるが、データｆ６とデータｆ３との類似度（０．５）が類似度閾値（０．６）未満となるため、データｆ６は、ノードＮ１に残される。【０１８６】
検索装置１は、対象ノードＮ１におけるデータｆ３及びｆ４を含む１つのエントリを生成し、そのエントリに、子ノードＮ２へのポインタ、ＤＳ閾値（０．６８）及び調整値（０．０８）を設定する（Ｓ６２）。これにより、更新された類似度木は、図２４に示されるようになる。【０１８７】
［変形例］
上述の各実施形態及び各実施例では、代表となる特徴量データを示すエントリは、親ノードのみに含まれるが、親ノードと子ノードとの両方にそれぞれ含まれていてもよい。【０１８８】
また、上述の各実施形態では、検索装置１は、１つの装置（コンピュータ）として実現されたが、複数の装置として実現されてもよい。上述の各実施形態は、例えば、類似度木を生成するインデックス生成装置と、類似検索を行う検索装置とから構成されてもよい。この場合、インデックス生成装置は、対象取得部２０、インデックス生成部２１、閾値決定部２２、類似度取得部２５及びエントリ調整部４０を含み、検索装置は、検索部３０及びデータベース３５を含む。更に、各実施形態は、インデックス生成装置、検索装置及びデータベース装置から構成されてもよい。【０１８９】
また、上述の説明で用いた複数のフローチャートでは、複数の工程（処理）が順番に記載されているが、各実施形態で実行される工程の実行順序は、その記載の順番に制限されない。各実施形態では、図示される工程の順番を内容的に支障のない範囲で変更することができる。また、上述の各実施形態及び各変形例は、内容が相反しない範囲で組み合わせることができる。【０１９０】
上記の各実施形態及び各変形例の一部又は全部は、以下のようにも特定され得る。但し、各実施形態及び各変形例が以下の記載に限定されるものではない。【０１９１】
１．  インデックス対象となるデータを示す少なくとも１つのエントリをそれぞれ含む複数のノードが階層化されたインデックスを生成するインデックス生成装置において、
データ間の類似度を用いて、下位ノードと、該下位ノードとリンク関係を持つエントリであって、該下位ノードのエントリにより示されるデータとの類似度が該リンク関係に付与される類似度閾値以上の代表データを示すエントリを含む上位ノードと、を含む前記インデックスを生成するインデックス生成部と、
上位ノードと下位ノードとの各リンク関係に関し、デフォルト類似度閾値及び調整値をそれぞれ決定し、該デフォルト類似度閾値から該調整値の減算により該各リンク関係に付与される各類似度閾値をそれぞれ決定する閾値決定部と、
を備えるインデックス生成装置。
２．  前記閾値決定部は、前記デフォルト類似度閾値が大きい程、小さくなるように前記調整値を決定する、
１．に記載のインデックス生成装置。
３．  前記閾値決定部は、前記デフォルト類似度閾値を階層が下がる程大きい値に設定し、前記調整値を階層が下がる程小さい値に設定する、
１．又は２．に記載のインデックス生成装置。
４．  前記閾値決定部は、前記上位ノードにより示される前記代表データと前記下位ノードのエントリにより示される複数データの各々との類似度の分散度合が小さい程、前記リンク関係に関する前記調整値を小さい値に決定する、
１．に記載のインデックス生成装置。
５．  前記閾値決定部は、前記上位ノードにより示される前記代表データと前記下位ノードのエントリにより示される複数データの各々との類似度の標準偏差を該下位ノードのエントリ数で除算して得られる値を、前記リンク関係に関する前記調整値に決定する、
４．に記載のインデックス生成装置。
６．  インデックス対象データを取得する対象取得部と、
前記上位ノードのエントリにより示される前記代表データと前記対象取得部により取得されるインデックス対象データとの類似度を取得する類似度取得部と、
を更に備え、
前記インデックス生成部は、前記類似度取得部により取得される類似度と、前記デフォルト類似度閾値及び前記調整値から算出される類似度閾値とを比較し、該比較結果に基づいて、該インデックス対象データを示す新たなエントリの挿入先を前記上位ノード又は前記下位ノードに決定し、
前記インデックス生成部は、
前記新たなエントリの挿入先として決定された対象ノードに含まれるエントリ及び前記新たなエントリを含む対象エントリ集合の中から、代表エントリを選択する代表選択部と、
前記対象エントリ集合のエントリ数がエントリ閾値を超える場合に、前記選択された代表エントリを除く前記対象エントリ集合の中から、前記選択された代表エントリにより示されるデータとの類似度が前記閾値決定部により決定される新たなデフォルト類似度閾値又は新たな類似度閾値以上のデータを示すエントリを選択し、該選択されたエントリを含む下位ノードを生成し、前記対象ノードの前記選択された代表エントリに該下位ノードへのリンク関係を設定し、該リンク関係に新たなデフォルト類似度閾値及び新たな調整値を付与する溢れ調整部と、
を含む、
１．から５．のいずれか１つに記載のインデックス生成装置。
７．  １．から６．のいずれか１つに記載のインデックス生成装置により生成される前記インデックスを用いる検索装置において、
検索対象データ及び類似度条件を取得する条件取得部と、
前記上位ノードのエントリにより示される代表データと前記検索対象データとの類似度を取得する類似度取得部と、
前記類似度取得部により取得される類似度と、前記代表データを示すエントリの前記リンク関係に関し決定された前記デフォルト類似度閾値及び前記調整値から算出された類似度閾値又は前記類似度条件とを比較し、該比較結果に基づいて、前記上位ノードに含まれる前記少なくとも１つの代表データを示すエントリ、及び、該エントリとリンク関係を持つ前記下位ノード以下の下位ノードのエントリを、前記検索対象データに関し前記類似度条件に適合する抽出対象から除外する検索処理部と、
を備える検索装置。
８．  インデックス対象データを取得する対象取得部と、
前記複数のノードの各々について、ノード内の最大エントリ数を示すエントリ閾値をそれぞれ決定するエントリ調整部と、
を更に備え、
前記エントリ調整部は、前記インデックス生成部により前記インデックス対象データを示すエントリの挿入先が前記下位ノードに決定された場合に、前記下位ノードに含まれる複数エントリにより示される複数データ及び前記インデックス対象データの各々と前記代表データとの類似度群の分布状態に基づいて、前記下位ノードに関する前記エントリ閾値を変更するか否かを判定する、
１．から６．のいずれか１つに記載のインデックス生成装置。
９．  前記エントリ調整部は、前記インデックス対象データを示すエントリが前記下位ノードに挿入された場合に、前記下位ノード内のエントリ数が前記エントリ閾値を超えるか否かを判定し、該エントリ数が前記エントリ閾値を超える場合に、前記複数データ及び前記インデックス対象データの各々と前記代表データとの類似度に対して外れ値検出を行い、外れ値が検出されない場合に、前記エントリ閾値を増加させ、外れ値が検出された場合には、前記エントリ閾値を変更しない、
８．に記載のインデックス生成装置。【０１９２】
１０．  インデックス対象となるデータを示す少なくとも１つのエントリをそれぞれ含む複数のノードが階層化されたインデックスを生成するインデックス生成方法において、
下位ノードと、該下位ノードとリンク関係を持つエントリであって、該下位ノードのエントリにより示されるデータとの類似度が該リンク関係に付与される類似度閾値以上の代表データを示すエントリを含む上位ノードと、を含む前記インデックスを生成し、
上位ノードと下位ノードとの各リンク関係に関し、デフォルト類似度閾値及び調整値をそれぞれ決定し、
前記デフォルト類似度閾値から前記調整値の減算により、前記各リンク関係に付与される各類似度閾値をそれぞれ決定する、
ことを含むインデックス生成方法。
１１．  前記調整値は、前記デフォルト類似度閾値が大きい程、小さくなるように決定される、
１０．に記載のインデックス生成方法。
１２．  前記デフォルト類似度閾値は、階層が下がる程大きい値に決定され、
前記調整値は、階層が下がる程小さい値に決定される、
１０．又は１１．に記載のインデックス生成方法。
１３．  前記上位ノードにより示される前記代表データと前記下位ノードのエントリにより示される複数データの各々との類似度の分散度合が小さい程、前記リンク関係に関する前記調整値は小さい値に決定される、
１０．に記載のインデックス生成方法。
１４．  前記リンク関係に関する前記調整値は、前記上位ノードにより示される前記代表データと前記下位ノードのエントリにより示される複数データの各々との類似度の標準偏差を該下位ノードのエントリ数で除算して得られる値に決定される、
１３．に記載のインデックス生成方法。
１５．  インデックス対象データを取得し、
前記上位ノードのエントリにより示される前記代表データと前記取得されたインデックス対象データとの類似度を取得し、
前記取得された類似度と、前記デフォルト類似度閾値及び前記調整値から算出される類似度閾値とを比較し、
前記比較結果に基づいて、該インデックス対象データを示す新たなエントリの挿入先を前記上位ノード又は前記下位ノードに決定し、
前記新たなエントリの挿入先として決定された対象ノードに含まれるエントリ及び前記新たなエントリを含む対象エントリ集合の中から、代表エントリを選択し、
前記対象エントリ集合のエントリ数がエントリ閾値を超える場合に、前記選択された代表エントリを除く前記対象エントリ集合の中から、前記選択された代表エントリにより示されるデータとの類似度が新たなデフォルト類似度閾値又は新たな類似度閾値以上のデータを示すエントリを選択し、
前記選択されたエントリを含む下位ノードを生成し、
前記対象ノードの前記選択された代表エントリに前記下位ノードへのリンク関係を設定し、
前記リンク関係に新たな類似度閾値を付与する、
ことを更に含む、
１０．から１４．のいずれか１つに記載のインデックス生成方法。
１６．  １０．から１５．のいずれか１つに記載のインデックス生成方法により生成される前記インデックスを用いる検索方法において、
検索対象データ及び類似度条件を取得し、
前記上位ノードのエントリにより示される代表データと前記検索対象データとの類似度を取得し、
前記取得された類似度と、前記代表データを示すエントリの前記リンク関係に関し決定された前記デフォルト類似度閾値及び前記調整値から算出された類似度閾値又は前記類似度条件とを比較し、
前記比較結果に基づいて、前記上位ノードに含まれる前記少なくとも１つの代表データを示すエントリ、及び、該エントリとリンク関係を持つ前記下位ノード以下の下位ノードのエントリを、前記検索対象データに関し前記類似度条件に適合する抽出対象から除外する、
ことを含む検索方法。
１７．  インデックス対象データを取得し、
前記複数のノードの各々について、ノード内の最大エントリ数を示すエントリ閾値をそれぞれ決定する、
ことを更に含み、
前記エントリ閾値の決定は、前記インデックス対象データを示すエントリの挿入先が前記下位ノードに決定された場合に、前記下位ノードに含まれる複数エントリにより示される複数データ及び前記インデックス対象データの各々と前記代表データとの類似度群の分布状態に基づいて、前記下位ノードに関する前記エントリ閾値を変更するか否かを判定することを含む、
１０．から１５．のいずれか１つに記載のインデックス生成方法。
１８．  前記エントリ閾値の決定は、
前記インデックス対象データを示すエントリが前記下位ノードに挿入された場合に、前記下位ノード内のエントリ数が前記エントリ閾値を超えるか否かを判定し、
前記エントリ数が前記エントリ閾値を超える場合に、前記複数データ及び前記インデックス対象データの各々と前記代表データとの類似度に対して外れ値検出を行い、
外れ値が検出されない場合に、前記エントリ閾値を増加させ、外れ値が検出された場合には、前記エントリ閾値を変更しない、
１７．に記載のインデックス生成方法。【０１９３】
１９．  インデックス対象となるデータを示す少なくとも１つのエントリをそれぞれ含む複数のノードが階層化されたインデックスを生成するインデックス生成装置において、
データ間の類似度を用いて、下位ノードと、該下位ノードとリンク関係を持つエントリであって、該下位ノードのエントリにより示されるデータとの類似度が該リンク関係に付与される類似度閾値以上の代表データを示すエントリを含む上位ノードと、を含む前記インデックスを生成するインデックス生成部と、
前記複数のノードの各々について、ノード内の最大エントリ数を示すエントリ閾値をそれぞれ決定するエントリ調整部と、
を備え、
前記エントリ調整部は、前記インデックス生成部により前記インデックス対象データを示すエントリの挿入先が前記下位ノードに決定された場合に、前記下位ノードに含まれる複数エントリにより示される複数データ及び前記インデックス対象データの各々と前記代表データとの類似度群の分布状態に基づいて、前記下位ノードに関する前記エントリ閾値を変更するか否かを判定する、
インデックス生成装置。
２０．  前記エントリ調整部は、前記インデックス対象データを示すエントリが前記下位ノードに挿入された場合に、前記下位ノード内のエントリ数が前記エントリ閾値を超えるか否かを判定し、該エントリ数が前記エントリ閾値を超える場合に、前記複数データ及び前記インデックス対象データの各々と前記代表データとの類似度に対して外れ値検出を行い、外れ値が検出されない場合に、前記エントリ閾値を増加させ、外れ値が検出された場合には、前記エントリ閾値を変更しない、
１９．に記載のインデックス生成装置。【０１９４】
２１．  インデックス対象となるデータを示す少なくとも１つのエントリをそれぞれ含む複数のノードが階層化されたインデックスを生成するインデックス生成方法において、
下位ノードと、該下位ノードとリンク関係を持つエントリであって、該下位ノードのエントリにより示されるデータとの類似度が該リンク関係に付与される類似度閾値以上の代表データを示すエントリを含む上位ノードと、を含む前記インデックスを生成し、
前記複数のノードの各々について、ノード内の最大エントリ数を示すエントリ閾値をそれぞれ決定する、
こと含み、
前記エントリ閾値の決定は、前記インデックス対象データを示すエントリの挿入先が前記下位ノードに決定された場合に、前記下位ノードに含まれる複数エントリにより示される複数データ及び前記インデックス対象データの各々と前記代表データとの類似度群の分布状態に基づいて、前記下位ノードに関する前記エントリ閾値を変更するか否かを判定することを含む、
インデックス生成方法。
２２．  前記エントリ閾値の決定は、
前記インデックス対象データを示すエントリが前記下位ノードに挿入された場合に、前記下位ノード内のエントリ数が前記エントリ閾値を超えるか否かを判定し、
前記エントリ数が前記エントリ閾値を超える場合に、前記複数データ及び前記インデックス対象データの各々と前記代表データとの類似度に対して外れ値検出を行い、
外れ値が検出されない場合に、前記エントリ閾値を増加させ、外れ値が検出された場合には、前記エントリ閾値を変更しない、
２１．に記載のインデックス生成方法。【０１９５】
２３．  １０．から１５、１７、１８、２１及び２２のいずれか１つに記載のインデックス生成方法を少なくとも１つのコンピュータに実行させるプログラム。
２４．  １６．に記載の検索方法を少なくとも１つのコンピュータに実行させるプログラム。【０１９６】
２５．  インデックス対象となるデータを示す少なくとも１つのエントリをそれぞれ含む複数のノードが階層化されたインデックスのデータ構造において、
前記インデックスが、
下位ノードと、
前記下位ノードとリンク関係を持つエントリであって、前記下位ノードのエントリにより示されるデータとの類似度が該リンク関係に付与される類似度閾値以上の代表データを示すエントリを含む上位ノードと、
を含み、
前記代表データを示す前記上位ノードのエントリと前記下位ノードとの各リンク関係には、デフォルト類似度閾値及び調整値がそれぞれ付与されており、
前記リンク関係に付与される前記類似度閾値は、前記デフォルト類似度閾値から前記調整値を減算することで算出されており、
コンピュータが、前記上位ノードのエントリにより示される前記代表データと検索対象データとの類似度を算出し、該類似度と前記上位ノードのエントリが持つ前記リンク関係に付与された前記類似度閾値とを比較し、該比較結果に基づいて該検索対象データに対応する検索結果を得るために参照する、
前記インデックスのデータ構造。【０１９７】
２６．  ２３．又は２４．に記載のプログラムをコンピュータに読み取り可能に記録する記録媒体。【０１９８】
この出願は、２０１４年７月１０日に出願された日本出願特願２０１４−１４２１０７号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
2016006276.tif 000006
【図２】
2016006276.tif 000007
【図３】
2016006276.tif 000008
【図４】
2016006276.tif 000009
【図５】
2016006276.tif 000010
【図６】
2016006276.tif 000011
【図７】
2016006276.tif 000012
【図８】
2016006276.tif 000013
【図９】
2016006276.tif 000014
【図１０】
2016006276.tif 000015
【図１１】
2016006276.tif 000016
【図１２】
2016006276.tif 000017
【図１３】
2016006276.tif 000018
【図１４】
2016006276.tif 000019
【図１５】
2016006276.tif 000020
【図１６】
2016006276.tif 000021
【図１７】
2016006276.tif 000022
【図１８】
2016006276.tif 000023
【図１９】
2016006276.tif 000024
【図２０】
2016006276.tif 000025
【図２１】
2016006276.tif 000026
【図２２】
2016006276.tif 000027
【図２３】
2016006276.tif 000028
【図２４】
2016006276.tif 000029
【国際調査報告】
2016006276.tif 000030
2016006276.tif 000031
2016006276.tif 000032
2016006276.tif 000033