(57)【特許請求の範囲】
【請求項１】
第１のオブジェクトに含まれる複数の単語の意味空間における分布から、前記意味空間における確率分布であって、前記第１のオブジェクトを表す確率分布を推定する確率分布推定部と、
第２のオブジェクトに含まれる複数の単語各々の前記意味空間における座標各々での、前記確率分布の値を用いて、前記第１のオブジェクトと前記第２のオブジェクトとの類似度を算出する類似度算出部と
を備える類似度算出装置。
【請求項２】
クエリに含まれる複数の単語の意味空間における分布から、前記意味空間における確率分布であって、前記クエリを表す確率分布を推定する確率分布推定部と、
検索対象のオブジェクトに含まれる複数のオブジェクトについて、当該オブジェクトに含まれる複数の単語各々の前記意味空間における座標各々での、前記確率分布の値を用いて、前記クエリと前記当該オブジェクトとの類似度を算出し、算出した前記類似度に基づき、前記検索対象のオブジェクトの中から、前記クエリに類似するオブジェクトを探索する探索実行部と
を備える類似検索装置。
【請求項３】
前記意味空間は、単語同士の意味が近いほど、前記単語同士の距離が近くなる空間であり、
前記クエリを表す確率分布は、前記クエリに含まれる複数の単語の分布密度が高い位置ほど、高い確率となる分布である、
請求項２に記載の類似検索装置。
【請求項４】
前記確率分布は、複数の正規分布からなる第１の混合正規分布であり、
前記探索実行部は、前記検索対象のオブジェクトに含まれる全てのオブジェクトについて、当該オブジェクトに含まれる複数の単語各々の前記意味空間における座標各々での、前記複数の正規分布のうちの一部の正規分布からなる第２の混合正規分布の値を用いて、前記クエリと前記当該オブジェクトとの類似度を算出し、算出した前記類似度に基づき、前記複数のオブジェクトを決定する
請求項２または請求項３に記載の類似検索装置。
【請求項５】
コンピュータを、
第１のオブジェクトに含まれる複数の単語の意味空間における分布から、前記意味空間における確率分布であって、前記第１のオブジェクトを表す確率分布を推定する確率分布推定部、
第２のオブジェクトに含まれる複数の単語各々の前記意味空間における座標各々での、前記確率分布の値を用いて、前記第１のオブジェクトと前記第２のオブジェクトとの類似度を算出する類似度算出部
として機能させるための類似度算出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、類似度算出装置、類似検索装置、および類似度算出プログラムに関する。
【背景技術】
【０００２】
従来、動画や文書など様々な内容を取り上げたオブジェクトの集合（オブジェクト集合）のなかから、与えられたキーワードリスト（クエリ）が指し示す内容と合致あるいは類似するオブジェクトを抽出する類似検索という技術がある。例えば、非特許文献１には、検索対象のオブジェクトデータが固定である条件において、当該オブジェクトデータについて配置したｐｉｖｏｔと呼ばれる目印（参照オブジェクト）を利用して、与えられたクエリが指し示す内容と合致あるいは類似する可能性が低いオブジェクトをまとめて削除することによって、クエリ・オブジェクト間の参照ならびに評価の回数を削減し、その結果、当該類似検索全体の処理時間を高速化する手法が開示されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】倉沢央、深川大路、高須淳宏、安達淳、「類似検索の高速化を目的としたＰｉｖｏｔ選択手法の実験評価」、第９回情報科学技術フォーラム講演論文集、Ｄ−００８、ｐｐ．１０９−１１０、２０１０年
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、非特許文献１に記載された類似検索などにおいては、Pivotなど、検索対象であるオブジェクトデータについての事前情報を利用して、クエリ・オブジェクト間の参照ならびに評価の組み合わせの総数を削減する。このため、当該事前情報を生成する前処理を、システム起動時、オブジェクト更新時などに行う必要があり、類似検索全体のの演算量が多くなってしまうことがあるという問題がある。特に、放送予定番組を検索対象とした番組推薦のように、検索対象のオブジェクトデータ（放送予定番組）が日々刻々と変化する状況においては、この前処理の頻度が高くなる。
【０００５】
本発明は、このような事情に鑑みてなされたもので、類似検索全体の演算量の増加を抑えることができる類似度算出装置、類似検索装置、および類似度算出プログラムを提供する。
【課題を解決するための手段】
【０００６】
この発明は上述した課題を解決するためになされたもので、本発明の一態様は、第１のオブジェクトに含まれる複数の単語の意味空間における分布から、前記意味空間における確率分布であって、前記第１のオブジェクトを表す確率分布を推定する確率分布推定部と、第２のオブジェクトに含まれる複数の単語各々の前記意味空間における座標各々での、前記確率分布の値を用いて、前記第１のオブジェクトと前記第２のオブジェクトとの類似度を算出する類似度算出部とを備える類似度算出装置である。
【０００７】
また、本発明の他の態様は、クエリに含まれる複数の単語の意味空間における分布から、前記意味空間における確率分布であって、前記クエリを表す確率分布を推定する確率分布推定部と、検索対象のオブジェクトに含まれる複数のオブジェクトについて、当該オブジェクトに含まれる複数の単語各々の前記意味空間における座標各々での、前記確率分布の値を用いて、前記クエリと前記当該オブジェクトとの類似度を算出し、算出した前記類似度に基づき、前記検索対象のオブジェクトの中から、前記クエリに類似するオブジェクトを探索する探索実行部とを備える類似検索装置である。
【０００８】
また、本発明の他の態様は、上述の類似検索装置であって、前記意味空間は、単語同士の意味が近いほど、前記単語同士の距離が近くなる空間であり、前記クエリを表す確率分布は、前記クエリに含まれる複数の単語の分布密度が高い位置ほど、高い確率となる分布である。
【０００９】
また、本発明の他の態様は、上述のいずれかの類似検索装置であって、前記確率分布は、複数の正規分布からなる第１の混合正規分布であり、前記探索実行部は、前記検索対象のオブジェクトに含まれる全てのオブジェクトについて、当該オブジェクトに含まれる複数の単語各々の前記意味空間における座標各々での、前記複数の正規分布のうちの一部の正規分布からなる第２の混合正規分布の値を用いて、前記クエリと前記当該オブジェクトとの類似度を算出し、算出した前記類似度に基づき、前記複数のオブジェクトを決定する。
【００１０】
また、本発明の他の態様は、コンピュータを、第１のオブジェクトに含まれる複数の単語の意味空間における分布から、前記意味空間における確率分布であって、前記第１のオブジェクトを表す確率分布を推定する確率分布推定部、第２のオブジェクトに含まれる複数の単語各々の前記意味空間における座標各々での、前記確率分布の値を用いて、前記第１のオブジェクトと前記第２のオブジェクトとの類似度を算出する類似度算出部として機能させるための類似度算出プログラムである。
【発明の効果】
【００１１】
この発明によれば、類似検索全体の演算量の増加を抑えることができる。
【図面の簡単な説明】
【００１２】
【図１】この発明の一実施形態による類似検索装置１００の構成を示す概略ブロック図である。
【図２】同実施形態による類似検索装置１００の動作を説明するフローチャートである。
【図３】同実施形態によるクエリデータ単語リストの一例を示す図である。
【図４】同実施形態によるクエリデータベクトルリストの一例を示す図である。
【図５】同実施形態による確率分布パラメータリストの一例を示す図である。
【図６】同実施形態による確率分布推定部５０が推定した混合正規分布の一例の模式図である。
【図７】同実施形態によるオブジェクトデータの一例を示す図である。
【図８】同実施形態によるオブジェクトデータ単語リストの一例を示す図である。
【図９】同実施形態によるオブジェクトデータベクトルリストＯｒの一例を示す図である。
【図１０】同実施形態によるオブジェクトデータベクトルリストＯｒの一例の模式図である。
【図１１】同実施形態による一次探索実行部６０による処理を説明する模式図である。
【図１２】同実施形態による累積類似度（近似値）の一例を示す図である。
【図１３】同実施形態によるオブジェクトデータベクトルリストＣｕの一例を示す図である。
【図１４】同実施形態による二次探索実行部７０による処理を説明する模式図である。
【図１５】同実施形態による累積類似度（真値）の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して、本発明の実施の形態について説明する。この発明の一実施形態による類似検索装置１００は、複数の検索対象のオブジェクトの中から、クエリに類似するものを検索する類似検索装置である。検索対象のオブジェクトは、例えば、放送予定の番組リスト中の各番組の番組概要である。また、クエリは、例えば、視聴者が過去に視聴した番組の字幕データである。
【００１４】
図１は、類似検索装置１００の構成を示す概略ブロック図である。類似検索装置１００は、オブジェクトデータ記録・比較部１０、オブジェクトデータ解析部２０、クエリデータ記録・比較部３０、単語ベクトル生成部４０、確率分布推定部５０、探索実行部８０を含む。探索実行部８０は、一次探索実行部６０、二次探索実行部７０を含む。
【００１５】
オブジェクトデータ記録・比較部１０は、入力されたオブジェクトデータが新規の内容であるか否かの判定、ならびに、オブジェクトデータとオブジェクトデータベクトルリストＯｒの記録を行う。オブジェクトデータは、複数の検索対象のオブジェクトを表すデータである。オブジェクトが、例えば、放送予定の番組リスト中の番組概要であれば、オブジェクトデータは、それらの番組概要の文字列データである。オブジェクトデータベクトルリストＯｒは、オブジェクトデータ、すなわち検索対象のオブジェクトに含まれている単語各々の意味空間における座標（ベクトル）のリストである。意味空間は、意味の近い単語同士ほど距離が近くなるようにプロットされる空間である。オブジェクトデータ解析部２０は、オブジェクトデータ記録・比較部１０が新規であると判定したオブジェクトデータから、オブジェクトデータ単語リストの生成を行う。オブジェクトデータ単語リストは、オブジェクトデータに含まれる単語のうち、名詞のみなど、所定の規則により抽出された単語のリストである。
【００１６】
クエリデータ記録・比較部３０は、入力されたクエリデータ単語リストが新規の内容であるか否かの判定、ならびに、確率分布パラメータリストの記録を行う。クエリデータ単語リストは、クエリに含まれる単語のリストである。確率分布パラメータリストは、意味空間における確率分布であって、クエリを表す確率分布を示すパラメータのリストである。後述するように、本実施形態では、クエリを表す確率分布を、混合正規分布をモデルとして推定する。このため、本実施形態では、確率分布パラメータリストは、混合正規分布示すパラメータのリストである。
【００１７】
単語ベクトル生成部４０は、クエリデータ記録・比較部３０が新規であると判定したクエリデータ単語リストに対応するクエリデータベクトルリストを算出する。また、単語ベクトル生成部４０は、オブジェクトデータ解析部２０が生成したオブジェクトデータ単語リストに対応するオブジェクトデータベクトルリストＯｒを算出する。確率分布推定部５０は、単語ベクトル生成部４０が算出したクエリデータベクトルリストに対して確率分布パラメータリストを計算する。
【００１８】
一次探索実行部６０は、クエリデータ記録・比較部３０が記録している確率分布パラメータリストを用いて、オブジェクトデータ記録・比較部１０が記録しているオブジェクトデータベクトルリストＯｒのなかから、別途定義する累積類似度（近似値）が閾値以上のオブジェクトを選定する枝刈り処理を行う。一次探索実行部６０は、選定したオブジェクトに対応するベクトルを抽出し、オブジェクトデータベクトルリストＣｕとして出力する。すなわち、オブジェクトデータベクトルリストＣｕは、枝刈りされたオブジェクデータベクトルリストである。
【００１９】
二次探索実行部７０は、クエリデータ記録・比較部３０が記録している確率分布パラメータリストを用いて、一次探索実行部６０が出力したオブジェクトデータベクトルリストＣｕのなかから、別途定義する累積類似度（真値）の上位ｋ個のオブジェクトを選定する。二次探索実行部７０は、選定したオブジェクトに対応する内容をオブジェクトデータ記録・比較部１０から読み出し、別途示すリスト形式にまとめた上で検索結果として出力する。
【００２０】
図２は、類似検索装置１００の動作を説明するフローチャートである。まず、クエリデータ記録・比較部３０は、新規の内容のクエリデータ単語リスト｛ｗ＿ｑ｝が入力されたか否かを判定する（Ｓ１）。クエリデータ単語リスト｛ｗ＿ｑ｝は、式（１）で表される。なお、式（１）において、ｎは、クエリデータ単語リストに含まれる単語の数である。
【００２１】
【数１】
0006555810.tif 000002
【００２２】
ステップＳ１において、新規のクエリデータ単語リストが入力されたと判定したときは（Ｓ１−Ｙｅｓ）、クエリデータ記録・比較部３０は、そのクエリデータ単語リストを、単語ベクトル生成部４０に入力する。単語ベクトル生成部４０は、入力されたクエリデータ単語リスト｛ｗ＿ｑ｝を受け取り、クエリデータ単語リスト｛ｗ＿ｑ｝のそれぞれの単語のベクトル表現（意味空間における座標）を求め、求めたベクトル表現のリストを、クエリデータベクトルリスト｛ｘ＿ｑ｝とする（Ｓ２）。クエリデータベクトルリスト｛ｘ＿ｑ｝は、式（２）で表される。なお、式（２）においても、ｎは、クエリデータ単語リストに含まれる単語の数である。
【００２３】
【数２】
0006555810.tif 000003
【００２４】
単語ベクトル生成部４０による単語のベクトル表現の求め方は、任意の単語間の意味的な類似度を、ｃｏｓ角などのベクトル間の距離尺度として定量的に算出可能な形式で与える手法であれば何でもよい。言い換えると、単語のベクトル表現は、単語同士の意味が近いほど、単語同士の距離が近くなる空間における単語の座標である。この求め方として、たとえば、深層学習を用いた単語の分散表現（Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg Corrado, and Jeffrey Dean, “Distributed Representations of Words and Phrases and their Compositionality,” In Proceedings of the 27th Annual Conference on Neural Information Processing Systems (NIPS2013), 2013年）による方法を用いることができる。この深層学習を用いた単語の分散表現による方法は、ｗｏｒｄ２ｖｅｃとも呼ばれ、別途与える大量の学習データを用いて各単語間の意味的な類似関係（類似度）を推定し、推定した当該単語間類似度と矛盾しないかたちであらかじめ定めた次元数のベクトル空間に各単語を配置することで、ベクトル表現を求める方法である。
【００２５】
次に、確率分布推定部５０が、単語ベクトル生成部４０が求めたクエリデータベクトルリスト｛ｘ＿ｑ｝の個々のベクトルの同ベクトル空間上での出現確率に関する確率分布Ｐ（ｘ）を推定することで、確率分布パラメータリストを算出する（Ｓ３）。なお、確率分布Ｐ（ｘ）は、クエリに含まれる複数の単語の分布密度が高い位置ほど、高い確率となる分布であるとも言える。クエリデータ記録・比較部３０は、ステップＳ３で確率分布推定部５０が算出した確率分布パラメータリストを記録し（Ｓ４）、ステップＳ６に処理を進める。
【００２６】
ステップＳ３において、確率分布Ｐ（ｘ）を推定する際に、どのような分布のモデルを用いても良いが、複数の分布を混合した分布をモデルとして用いた方が望ましい。本実施形態では、混合正規分布をモデルとして用いる。このため、この推定によって得られた確率分布（第１の混合正規分布）は、式（３）で定義される確率分布Ｐｍｉｘ（ｘ）で表現される。なお、式（３）において、Ｎ（μ，Σ）は、平均ベクトルμ、分散・共分散行列Σの多次元正規分布である。πｋは、ｋ番目のコンポーネントである正規分布の混合比である。
【００２７】
【数３】
0006555810.tif 000004
【００２８】
クエリデータベクトルリストに記された個々のベクトルは、確率分布Ｐ（ｘ）から抽出されたサンプルであると仮定する。また、式（３）に示した混合正規分布Ｐｍｉｘ（ｘ）は、当該サンプル集合（すなわちクエリデータベクトルリストに記載された個々のベクトル）の分布の様子を最もよく説明する多次元正規分布の形式で定式化したものである。以降の手順では、当該サンプル集合（クエリデータベクトルリスト）をもとに推定した混合正規分布Ｐｍｉｘ（ｘ）を、当該サンプル集合を生成した確率分布Ｐ（ｘ）と同一とみなす。
【００２９】
なお、サンプル集合、すなわちクエリデータベクトルリスト｛ｘ＿ｑ（ｉ）｝から混合正規分布Ｐｍｉｘ（ｘ）の各パラメータ｛（π１，μ１，Σ１），（π２，μ２，Σ２），…，（πＫ，μＫ，ΣＫ）｝、すなわち確率分布パラメータリストを推定する手法には、例えば、Ｔｒｅｖｏｒ  Ｈａｓｔｉｅほか  著、杉山  将ほか訳、共立出版、２０１４年発刊の「統計的学習の基礎−データマイニング・推論・予測−」の第８．５節  ＥＭアルゴリズム（ｐｐ．３１２−３１８）に記載されている最尤法に基づいて確率モデルのパラメータを推定する手法を用いることができるが、その他の手法であってもよい。
【００３０】
一方、ステップＳ１において、新規のクエリデータ単語リストは入力されていないと判定したときは（Ｓ１−Ｎｏ）、クエリデータ記録・比較部３０は、あらかじめ記録していた確率分布パラメータリストを取り出し（Ｓ５）、ステップＳ６に処理を進める。なお、クエリデータ記録・比較部３０が取り出す、あらかじめ記録していた確率分布パラメータリストは、直近で入力されたクエリデータ単語リストに対応する確率分布パラメータリストである。
【００３１】
ステップＳ６では、オブジェクトデータ記録・比較部１０が、新規の内容のオブジェクトデータが入力されたか否かを判定する。ステップＳ６において、新規のオブジェクトデータが入力されたと判定したときは（Ｓ６−Ｙｅｓ）、オブジェクトデータ記録・比較部１０は、オブジェクトデータ解析部２０に、そのオブジェクトデータを入力する。オブジェクトデータ解析部２０は、入力されたオブジェクトデータに記された個々のオブジェクトの内容についての文字列を解析し、名詞などのキーワードを抽出し、オブジェクトデータ単語リスト｛ｙ＿ｏ（ｊ）｝、｛ｗ＿ｏ（ｉ）｝とする。ここで、｛ｙ＿ｏ（ｊ）｝、｛ｗ＿ｏ（ｉ）｝は、式（４）、式（５）のように表される。
【００３２】
【数４】
0006555810.tif 000005
【００３３】
ここで、ｊは、個々のオブジェクトを示すインデックスであり、Ｊは、オブジェクトの個数である。ｉは抽出した単語（キーワード）を示すインデックスであり、ｍは抽出されたキーワードの異なり総数である。例えば、｛ｙ＿ｏ（１）｝は、１番目のオブジェクトから抽出されたキーワードのベクトル表現の集合である。キーワードＡ、Ｂ、Ｃを示すベクトル表現がそれぞれベクトルａ、ｂ、ｃであり、１番目のオブジェクトから抽出されたキーワードが、キーワードＡが２つ、キーワードＢが０、キーワードＣが１つのとき、｛ｙ＿ｏ（１）｝＝｛ａ，ａ，ｃ｝である。
【００３４】
次に、単語ベクトル生成部４０は、オブジェクトデータ解析部２０が生成したオブジェクトデータ単語リストの個々の単語のベクトル表現を求めることで、オブジェクトデータベクトルリストＯｒ｛ｚ＿ｏ（ｊ）｝、｛ｘ＿ｏ（ｉ）｝を算出する（Ｓ７）。なお、オブジェクトデータ単語リストの個々の単語のベクトル表現の求め方は、クエリデータ単語リスト｛ｗ＿ｑ｝のそれぞれの単語のベクトル表現の求め方と同様である。ここで、｛ｚ＿ｏ（ｊ）｝，｛ｘ＿ｏ（ｉ）｝は、式（６）、式（７）のように表される。
【００３５】
【数５】
0006555810.tif 000006
【００３６】
次に、オブジェクトデータ記録・比較部１０は、ステップＳ７で算出したオブジェクトデータベクトルリストＯｒと、オブジェクトデータとを記録し（Ｓ８）、ステップＳ１０に処理を進める。
一方、ステップＳ６において、新規の内容のオブジェクトデータが入力されていないと判定したときは（Ｓ６−Ｎｏ）、オブジェクトデータ記録・比較部１０は、あらかじめ記録していたオブジェクトデータベクトルリストＯｒを取り出し（Ｓ９）、ステップＳ１０に処理を進める。なお、オブジェクトデータ記録・比較部１０が取り出す、あらかじめ記録していたオブジェクトデータベクトルリストＯｒは、直近で入力されたオブジェクトデータに対応するオブジェクトデータベクトルリストＯｒである。
【００３７】
ステップＳ１０では、一次探索実行部６０が、オブジェクトデータベクトルリストＯｒと確率分布パラメータリストの一部で定義される混合正規分布（近似確率分布、第２の混合正規分布）とを用いて計算した累積類似度（近似値）が閾値以上のオブジェクトに対応するベクトルを、オブジェクトデータベクトルリストＯｒから抽出し、オブジェクトデータベクトルリストＣｕとする。このときの一次探索実行部６０による累積類似度（近似値）の算出方法を説明する。
【００３８】
まず、一次探索実行部６０は、確率分布パラメータリストに記載された各コンポーネント（正規分布）の混合比πｋに従って、Ｌ個（Ｌ＜Ｋ）のインデックス｛ｋ（ｌ）｝を抽出する。Ｌは、例えば、あらかじめ設定された値であってもよいし、混合比πｋの合計が所定の値以上となる値であってもよい。インデックス｛ｋ（ｌ）｝は、式（８）で表される。
【００３９】
【数６】
0006555810.tif 000007
【００４０】
なお、インデックス｛ｋ（ｌ）｝を抽出するための具体的なアルゴリズムは何でも良いが、例えば、プログラミング言語Ｐｙｔｈｏｎ用の数値演算ライブラリｎｕｍｐｙに実装されている抽出関数ｒａｎｄｏｍ．ｃｈｏｉｃｅ（）を用いてもよい。ここで、インデックス｛ｋ（ｌ）｝を抽出する際に、混合比πｋが大きいほどｋが含まれる確率が高くなるようにしているが、これに限らず、混合比πｋの上位Ｌ個を抽出して、インデックス｛ｋ（ｌ）｝としてもよい。
【００４１】
次に、一次探索実行部６０は、抽出したインデックス｛ｋ（ｌ）｝が示すＬ個のコンポーネントのみを用いて構成される近似確率分布Ｐ＊ｍｉｘ（ｘ）を用いて、オブジェクトデータベクトルリストＯｒに記載された各オブジェクトｊの累積類似度（近似値）ｓ＊（ｊ）を、式（９）を用いて算出する。なお、近似確率分布Ｐ＊ｍｉｘ（ｘ）は、式（１０）で表される。なお、Ω（ｊ）は、オブジェクトデータ単語リストに含まれるオブジェクトｊに対応するキーワードのインデックスである。式（９）に示すように、オブジェクトｊの累積類似度（近似値）は、オブジェクトｊに含まれるキーワードが、クエリに出現する確率を累積した値であり、クエリに出現する確率を算出する際に、近似確率分布Ｐ＊ｍｉｘ（ｘ）を用いたものである。
【００４２】
【数７】
0006555810.tif 000008
【００４３】
【数８】
0006555810.tif 000009
【００４４】
次に、一次探索実行部６０は、算出した累積類似度（近似値）ｓ＊（ｊ）が、所定の閾値θ以上のオブジェクトについてのデータのみを、オブジェクトデータベクトルリストＯｒから抽出し、オブジェクトデータベクトルリストＣｕ｛ｚ＊＿ｏ（ｊ）｝、｛ｘ＿ｏ（ｉ）｝とする。ここで、｛ｚ＊＿ｏ（ｊ）｝，｛ｘ＿ｏ（ｉ）｝は、式（６）、式（７）のように表される。
【００４５】
【数９】
0006555810.tif 000010
【００４６】
図２の説明に戻って、ステップＳ１１では、二次探索実行部７０は、オブジェクトデータベクトルリストＣｕと確率分布パラメータリストで定義される混合正規分布を用いて計算した累積類似度（真値）の上位ｋ個のオブジェクトを検索結果とする。二次探索実行部７０による検索結果の求め方を説明する。二次探索実行部７０による累積類似度（真値）の算出方法は、算出対象が、オブジェクトデータベクトルリストＣｕに対応するオブジェクトに限定されていることと、確率分布パラメータリストで定義される混合正規分布をそのまま用いることが、一次探索実行部６０による累積類似度（近似値）の算出方法と異なる。
【００４７】
まず、二次探索実行部７０は、式（１３）に示すように、確率分布パラメータリストが示す混合正規分布を用いて、オブジェクトデータベクトルリストＣｕに記載された各々のオブジェクトについての累積類似度（真値）ｓ（ｊ）を算出する。式（１３）に示すように、オブジェクトｊの累積類似度（真値）は、オブジェクトｊに含まれるキーワードが、クエリに出現する確率を累積した値であり、クエリに出現する確率を算出する際に、確率分布Ｐｍｉｘ（ｘ）を用いたものである。
【００４８】
【数１０】
0006555810.tif 000011
【００４９】
次に、二次探索実行部７０は、算出した累積類似度（真値）のリスト｛ｓ（ｊ）｝を降順に並べ替える。オブジェクトの並べ替えの具体的なアルゴリズムは何でも良いが、たとえば、プログラム言語Ｐｙｔｈｏｎのリストオブジェクトｌｉｓｔについて定義された組み込み関数ｌｉｓｔ．ｓｏｒｔｅｄ（）が利用可能である。
【００５０】
次に、二次探索実行部７０は、並べ替えた累積類似度（真値）のリスト｛ｓ（ｊ）｝の上位ｋ個に対応するオブジェクトを検索結果とする。すなわち、二次探索実行部７０は、累積類似度（真値）が大きい方からｋ個に対応するオブジェクトを検索結果とする。二次探索実行部７０は、オブジェクトデータ記録・比較部１０が記録しているオブジェクトデータのうち、検索結果のオブジェクトに対応する部分を抽出して、検索結果として出力する。
【００５１】
図３は、クエリデータ単語リストの一例を示す図である。図３に、アジア、アフリカ、インド、・・・と示しているように、クエリデータ単語リストは、クエリに含まれる単語のリストである。
図４は、クエリデータベクトルリストの一例を示す図である。図４に、アジア：０．６５０，０．３８７，・・・，０．０４９、アフリカ：０．９２１，０．４６１，・・・，０．８６６・・・と示しているように、クエリデータベクトルリストは、クエリデータ単語リスト中の単語各々のベクトル表現のリストである。
【００５２】
図５は、確率分布パラメータリストの一例を示す図である。図５に、ｐｉ＝０．５４７，ｍｕ＝［０．８８３，・・・，０．４８２］，ｓｉｇｍａ＝［［０．５４６，・・・，０．６７９］，・・・，［０．１２６，・・・，０．３１４］］・・・と示しているように、確率分布パラメータリストは、混合正規分布を表すパラメータである。なお、図５中のｐｉは、πｋであり、ｍｕは、μｋであり、ｓｉｇｍａは、Σｋであり、図５は、６つの正規分布からなる混合正規分布を表すパラメータのリストである。
【００５３】
図６は、確率分布推定部５０が推定した混合正規分布の一例の模式図である。図６において、四角は、図４に例示したクエリデータベクトルリストの各々のベクトル表現が示す座標に対応する。また、実線は、混合正規分布が示す確率の等高線であり、混合正規分布のコンポーネントである６つの正規分布それぞれによる山が現れている。
【００５４】
図７は、オブジェクトデータの一例を示す図である。図７に示す例は、Ｏｂｊ．Ａ、Ｏｂｊ．Ｂ、Ｏｂｊ．Ｃ、Ｏｂｊ．Ｄの４つのオブジェクトを含む。各オブジェクトは、番組ガイド用の番組の概要であり、番組の放送時間、タイトル、紹介文からなる。
図８は、オブジェクトデータ単語リストの一例を示す図である。図８に、＃Ｏｂｊ．Ａ：アフリカ，ハシビロコウ，台湾，ハチクマ、＃Ｏｂｊ．Ｂ：韓国ドラマ，通販，手袋，天使・・・と示しているように、オブジェクトデータ単語リストは、オブジェクトデータから抽出されたキーワードのリストである。
【００５５】
図９は、オブジェクトデータベクトルリストＯｒの一例を示す図である。図９に示す例は、図８に例示したオブジェクトデータに対応するオブジェクトデータベクトルリストＯｒの例である。図９に、Ｏｂｊ．Ａ、Ｏｂｊ．Ｂ、Ｏｂｊ．Ｃ、Ｏｂｊ．Ｄの４つのオブジェクトに含まれるキーワードである「きのこ」、「アフリカ」、・・・それぞれのベクトル表現「０．４３５，０．０４３，・・・，０．３１８」、「０．０６２，０．２５８，・・・０．８０５」・・・と示しているように、オブジェクトデータベクトルリストＯｒは、オブジェクトデータから抽出されたキーワードのベクトル表現のリストである。
【００５６】
図１０は、オブジェクトデータベクトルリストＯｒの一例の模式図である。図１０は、図９に例示したオブジェクトデータベクトルリストＯｒに対応する模式図である。図１０において、四角は、図４に例示したクエリデータベクトルリストの各々のベクトル表現が示す座標に対応する。また、三角は、オブジェクトデータベクトルリストＯｒの各々のベクトル表現が示す座標に対応する。
【００５７】
図１１は、一次探索実行部６０による処理を説明する模式図である。図１１は、確率分布パラメータリストの一部で定義される混合正規分布（近似確率分布）として、確率分布パラメータリストが示す混合正規分布のうち、実線の等高線で示したｋ＝４，５，６のコンポーネントからなる混合正規分布を用いる場合の例である。破線の等高線で示したｋ＝１，２，３のコンポーネントは用いられない。一次探索実行部６０は、オブジェクトデータベクトルリストＯｒに含まれるオブジェクトであるＯｂｊ．Ａ、Ｏｂｊ．Ｂ、Ｏｂｊ．Ｃ、Ｏｂｊ．Ｄのそれぞれについて累積類似度（近似値）を算出する。
【００５８】
図１２は、累積類似度（近似値）の一例を示す図である。図１２に示す例は、図１０に例示したオブジェクトデータベクトルリストＯｒに対応する累積類似度（近似値）の例であり、Ｏｂｊ．Ａ、Ｏｂｊ．Ｂ、Ｏｂｊ．Ｃ、Ｏｂｊ．Ｄの４つのオブジェクトそれぞれの累積類似度（近似値）である。例えば、一行目の＃Ｏｂｊ．Ａ：ｓｃｏｒｅ＊＝０．６０７は、Ｏｂｊ．Ａの累積類似度（近似値）である。
【００５９】
図１３は、オブジェクトデータベクトルリストＣｕの一例を示す図である。図１３に示す例は、図１０に例示したオブジェクトデータベクトルリストＯｒおよび図１２に例示した累積類似度（近似値）に対応するオブジェクトデータベクトルリストＣｕの例である。図１３のオブジェクトデータベクトルリストＣｕは、Ｏｂｊ．Ａ、Ｏｂｊ．Ｂ、Ｏｂｊ．Ｃ、Ｏｂｊ．Ｄの４つのオブジェクトのうち、累積類似度（近似値）の上位３個であるＯｂｊ．Ａ、Ｏｂｊ．Ｃ、Ｏｂｊ．Ｄが、一次探索実行部６０により抽出された場合の例である。したがって、オブジェクトデータベクトルリストＣｕには、Ｏｂｊ．Ｂにのみ含まれていたキーワードである韓国ドラマ、通販、手袋、天使のベクトル表現は含まれていない。
【００６０】
図１４は、二次探索実行部７０による処理を説明する模式図である。図１４では、オブジェクトデータベクトルリストＣｕとして、Ｏｂｊ．Ａ、Ｏｂｊ．Ｃ、Ｏｂｊ．Ｄから抽出されたキーワードのベクトル表現と、確率分布パラメータリストが示す混合正規分布とを、二次探索実行部７０が用いて、累積類似度（真値）を算出している。破線で示したＯｂｊ．Ｂに関しては、累積類似度（真値）が算出されないことを示している。
図１５は、累積類似度（真値）の一例を示す図である。図１５に示す例は、図１３に例示したオブジェクトデータベクトルリストＣｕに対応する累積類似度（真値）の例であり、Ｏｂｊ．Ａ、Ｏｂｊ．Ｃ、Ｏｂｊ．Ｄの３つのオブジェクトそれぞれの累積類似度（真値）である。例えば、一行目の＃Ｏｂｊ．Ａ：ｓｃｏｒｅ＝０．６０７は、Ｏｂｊ．Ａの累積類似度（真値）である。二行目の＃Ｏｂｊ．Ｂ：ｓｃｏｒｅ＝Ｎ／Ａは、オブジェクトデータベクトルリストＣｕに、Ｏｂｊ．Ｂが含まれていないことを示す。
【００６１】
なお、本実施形態では、クエリについて、確率分布を求めて、クエリとオブジェクトとの類似度を算出しているが、クエリではなく、各オブジェクトについて、確率分布を求めて、クエリとオブジェクトとの類似度を算出してもよい。なお、単語リストに含まれる単語の数が多いほど、確率分の推定精度が高くなるので、単語リストに含まれる単語の数が多い方について、確率分布を求めて類似度を算出した方が望ましい。また、別の観点からは、確率分布の推定には多くの演算量を必要とするので、変更される頻度の低い方について、確率分布を求めて類似度を算出した方が望ましい。
【００６２】
このように、２つのオブジェクト（クエリと、検索対象のオブジェクト）のうち、一方のオブジェクトを確率分布で表すことにより、検索対象のオブジェクト全体の事前情報を利用することなく、類似度を算出することができる。したがって、オブジェクトデータの一部もしくは全体が頻繁に変更されるような場合でも、類似検索全体の演算量が増加するのを抑えることができる。
【００６３】
また、確率分布を推定する際に、複数の分布を混合した分布をモデルとして用いている。このため、複数の分布のうちの一部の分布を混合した分布を用いた累積類似度（近似値）を算出することができる。そして、この累積類似度（近似値）を用いて、オブジェクトデータの枝刈り処理を行うことで、類似検索の全体の演算量を抑えることができる。
【００６４】
また、図１における類似検索装置１００を構成する各部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、類似検索装置１００を実現してもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
【００６５】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【００６６】
また、上述した図１における類似検索装置１００の各機能ブロックは個別にチップ化してもよいし、一部、または全部を集積してチップ化してもよい。また、集積回路化の手法はＬＳＩに限らず、専用回路、または汎用プロセッサで実現しても良い。ハイブリッド、モノリシックのいずれでも良い。一部は、ハードウェアにより、一部はソフトウェアにより機能を実現させても良い。
また、半導体技術の進歩により、ＬＳＩに代替する集積回路化等の技術が出現した場合、当該技術による集積回路を用いることも可能である。
【００６７】
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【符号の説明】
【００６８】
１０…オブジェクトデータ記録・比較部、２０…オブジェクトデータ解析部、３０…クエリデータ記録・比較部、単語ベクトル生成部、５０…確率分布推定部、６０…一次探索実行部、７０…二次探索実行部、８０…探索実行部
【図１】
0006555810.tif 000012
【図２】
0006555810.tif 000013
【図３】
0006555810.tif 000014
【図４】
0006555810.tif 000015
【図５】
0006555810.tif 000016
【図６】
0006555810.tif 000017
【図７】
0006555810.tif 000018
【図８】
0006555810.tif 000019
【図９】
0006555810.tif 000020
【図１０】
0006555810.tif 000021
【図１１】
0006555810.tif 000022
【図１２】
0006555810.tif 000023
【図１３】
0006555810.tif 000024
【図１４】
0006555810.tif 000025
【図１５】
0006555810.tif 000026