(57)【要約】【課題】少ない計算量で、クエリ時系列データに類似する部分時系列データを精度よく探索することができるようにする。【解決手段】予め定められたセグメント長の各々から、クエリ時系列データのセグメント長より長いセグメント長であって、かつ、セグメント長が最も短いセグメント長及び前記クエリ時系列データのセグメント長より短いセグメント長であって、かつ、セグメント長が最も長いセグメント長のうち少なくとも１つを選択し、探索対象の時系列データのうちの部分時系列データに対応する頂点における頂点間の類似度又は非類似度に基づく頂点間ネットワークを表わすグラフをセグメント長毎に記憶する記憶部から、選択したセグメント長について生成されたグラフを選択する。そして、選択したセグメント長について生成されたグラフを用いて、所定の探索アルゴリズムに従って、クエリ時系列データに類似する部分時系列データを探索する。【選択図】図２
2014081841.tif 000002
【特許請求の範囲】
【請求項１】
予め定められたセグメント長の各々について、探索対象の時系列データのうちの前記セグメント長の部分時系列データの各々に対して、前記部分時系列データと類似する上位Ｋ個の部分時系列データが格納されたＫ−ＮＮリストに基づいて予め生成された、前記探索対象の時系列データのうちの部分時系列データに対応する頂点における前記頂点間の類似度又は非類似度に基づく頂点間ネットワークを表わすグラフを前記セグメント長毎に記憶する記憶部を含み、前記探索対象の時系列データから、入力されたクエリ時系列データに類似する部分時系列データを探索する時系列データ探索装置における時系列データ探索方法であって、
（ａ１）前記記憶部に記憶された前記グラフから、前記クエリ時系列データのセグメント長より長いセグメント長であって、かつ、セグメント長が最も短いセグメント長について生成された前記グラフ、及び前記クエリ時系列データのセグメント長より短いセグメント長であって、かつ、セグメント長が最も長いセグメント長について生成された前記グラフの少なくとも一方を選択し、
（ａ２）前記（ａ１）で選択した前記グラフを用いて、所定の探索アルゴリズムに従って、前記クエリ時系列データに類似する部分時系列データを探索する
時系列データ探索方法。
【請求項２】
予め定められたセグメント長の各々について、探索対象の時系列データのうちの前記セグメント長の部分時系列データの各々に対して、前記部分時系列データと類似する上位Ｋ個の部分時系列データが格納されたＫ−ＮＮリストに基づいて予め生成された、前記探索対象の時系列データのうちの部分時系列データに対応する頂点における前記頂点間の類似度又は非類似度に基づく頂点間ネットワークを表わすグラフを前記セグメント長毎に記憶する記憶部を含み、前記探索対象の時系列データから、入力されたクエリ時系列データに類似する部分時系列データを探索する時系列データ探索装置であって、
（ａ１）前記記憶部に記憶された前記グラフから、前記クエリ時系列データのセグメント長より長いセグメント長であって、かつ、セグメント長が最も短いセグメント長について生成された前記グラフ、及び前記クエリ時系列データのセグメント長より短いセグメント長であって、かつ、セグメント長が最も長いセグメント長について生成された前記グラフの少なくとも一方を選択するグラフ索引選択手段と、
（ａ２）前記（ａ１）で選択した前記グラフを用いて、所定の探索アルゴリズムに従って、前記クエリ時系列データに類似する部分時系列データを探索するグラフ探索手段と、
を含む時系列データ探索装置。
【請求項３】
請求項１記載の時系列データ探索方法を構成する各ステップをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、時系列データ探索方法、装置、及びプログラムに係り、特に、グラフを用いて時系列データを探索する時系列データ探索方法、装置、及びプログラムに関する。
【背景技術】
【０００２】
音声音響信号、映像、センサデータ等の大規模な時系列データから、与えられたクエリ時系列データに類似する時系列データ又は時系列データの一部を効率的に発見する技術は、データの規模の増大に伴い、ますます重要な技術になっている。この時系列データ間の類似探索における類似尺度として、時間軸方向のずれに対応できるダイナミックタイムワーピング（Dynamic time warping: ＤＴＷ）に基づくスコア（ＤＴＷスコアと略す）が用いられてきた。
【０００３】
ＤＴＷスコアを非類似度とする探索を高速化する方法として、クエリ時系列データが入力された後、即ち、「オンライン処理」で、そのクエリと被探索時系列データ集合の各時系列データとのＤＴＷスコアの下界を高速に求め、下界に基づいて決められた僅かな時系列データとのみ厳密なＤＴＷを計算する方法が用いられている（非特許文献1）。
【０００４】
一方、探索対象データ及びクエリデータが、順序性の無い離散データ（オブジェクトと呼び、探索対象データを被探索オブジェクト集合、クエリデータをクエリオブジェクトと呼ぶ）である場合、与えられたクエリオブジェクトに類似するオブジェクトを高速に見つける探索法に、クエリオブジェクトが与えられる前、即ち、「オフライン処理」で、被探索オブジェクト集合の各オブジェクトが頂点である近傍グラフを索引とする類似探索法（グラフ索引類似探索法と略す）がある。
【０００５】
グラフ索引類似探索法に使用されるグラフは、ｋ近傍グラフ（k-nearest neighbor graph）を基本構造とするグラフが用いられてきた。一般的に、ｋ近傍グラフには、有向グラフ（非特許文献２）と無向グラフがある。無向ｋ近傍グラフは有向ｋ近傍グラフより、探索を効率的に行う索引であることが経験的に知られている。無向ｋ近傍グラフ（undirected k-nearest neighbor graph、単にｋ−ＮＮグラフと呼ぶ）を基本構造とするグラフのうち、特に、undirected degree-reduced k-nearest neighbor graph（ｋ−ＤＲグラフ）は、効率的な探索を可能にするグラフである（特許文献１，２、非特許文献３，４）。これらのグラフを索引とする類似探索法は、探索アルゴリズムとして、複数の初期頂点を用いた貪欲探索（greedy-search，ＧＳと略す）アルゴリズム（multiple starting greedy search algorithm：ＭＳＧＳ algorithm）や最良優先探索（best-first search、 ＢＳと略す）アルゴリズムを用いることができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第４７７４０１６号公報
【特許文献２】特許第４７７４０１９号公報
【非特許文献】
【０００７】
【非特許文献１】Y. Zhang, and J. Glass, “An inner-product lower-bound estimate for dynamic time warping,”Int. Conf. Acoustics, Speech, Signal Process., 2011.
【非特許文献２】W. Dong, M. Charikar, and K. Li, “Efficient K-nearest neighbor graph construction for generic similarity measures,” Int. World Wide Web Conf. , 2011.
【非特許文献３】K. Aoyama, S. Watanabe, H. Sawada, Y. Minami, N. Ueda, and K. Saito, “Fast similarity search on a large speech data set with neighborhood graph indexing,” Int. Conf. Acoustics, Speech, Signal Process., pp. 5358-5361, 2010.
【非特許文献４】K. Aoyama, K. Saito, H. Sawada, and N. Ueda, “Fast approximate similarity search based on degree-reduced neighborhood graphs,” ACM SIGKDD Conf. Knowledge Discovery and Data Mining, 2011.
【非特許文献５】T. J. Hazen, W. Shen, and C. White, “Query-by-example spoken term detection using phonetic posteriorgramtemplates,” Int. Workshop Acoustic Speech Recognition & Understanding, pp.421-426, 2009
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、オンライン処理で、被探索時系列データ集合中の全時系列データに関して、クエリ時系列データに対するＤＴＷスコアの下界を求めることは、被探索時系列データ集合のサイズの増大に伴い、多大な計算量を要するという問題があった。
【０００９】
一方、グラフ索引類似探索法は、時系列データのような明確なオブジェクト単位を有しないデータに関する適用事例はなく、オブジェクト単位が定まらないという問題があった。
【００１０】
本発明は、上記の問題を解決するためになされたもので、少ない計算量で、クエリ時系列データに類似する部分時系列データを精度よく探索することができる時系列データ探索方法、装置、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記の目的を達成するために本発明に係る時系列データ探索方法は、予め定められたセグメント長の各々について、探索対象の時系列データのうちの前記セグメント長の部分時系列データの各々に対して、前記部分時系列データと類似する上位Ｋ個の部分時系列データが格納されたＫ−ＮＮリストに基づいて予め生成された、前記探索対象の時系列データのうちの部分時系列データに対応する頂点における前記頂点間の類似度又は非類似度に基づく頂点間ネットワークを表わすグラフを前記セグメント長毎に記憶する記憶部を含み、前記探索対象の時系列データから、入力されたクエリ時系列データに類似する部分時系列データを探索する時系列データ探索装置における時系列データ探索方法であって、（ａ１）前記記憶部に記憶された前記グラフから、前記クエリ時系列データのセグメント長より長いセグメント長であって、かつ、セグメント長が最も短いセグメント長について生成された前記グラフ、及び前記クエリ時系列データのセグメント長より短いセグメント長であって、かつ、セグメント長が最も長いセグメント長について生成された前記グラフの少なくとも一方を選択し、（ａ２）前記（ａ１）で選択した前記グラフを用いて、所定の探索アルゴリズムに従って、前記クエリ時系列データに類似する部分時系列データを探索する。
【００１２】
本発明に係る時系列データ探索装置は、予め定められたセグメント長の各々について、探索対象の時系列データのうちの前記セグメント長の部分時系列データの各々に対して、前記部分時系列データと類似する上位Ｋ個の部分時系列データが格納されたＫ−ＮＮリストに基づいて予め生成された、前記探索対象の時系列データのうちの部分時系列データに対応する頂点における前記頂点間の類似度又は非類似度に基づく頂点間ネットワークを表わすグラフを前記セグメント長毎に記憶する記憶部を含み、前記探索対象の時系列データから、入力されたクエリ時系列データに類似する部分時系列データを探索する時系列データ探索装置であって、（ａ１）前記記憶部に記憶された前記グラフから、前記クエリ時系列データのセグメント長より長いセグメント長であって、かつ、セグメント長が最も短いセグメント長について生成された前記グラフ、及び前記クエリ時系列データのセグメント長より短いセグメント長であって、かつ、セグメント長が最も長いセグメント長について生成された前記グラフの少なくとも一方を選択するグラフ索引選択手段と、（ａ２）前記（ａ１）で選択した前記グラフを用いて、所定の探索アルゴリズムに従って、前記クエリ時系列データに類似する部分時系列データを探索するグラフ探索手段と、を含んで構成されている。
【００１３】
本発明に係る時系列データ探索方法及び時系列データ探索装置によれば、探索対象の時系列データのうちの部分時系列データに対応する頂点における頂点間の類似度又は非類似度に基づく頂点間ネットワークを表わすグラフをセグメント長毎に記憶する記憶部に記憶されたグラフから、クエリ時系列データのセグメント長より長いセグメント長であって、かつ、セグメント長が最も短いセグメント長について生成されたグラフ、及び前記クエリ時系列データのセグメント長より短いセグメント長であって、かつ、セグメント長が最も長いセグメント長について生成されたグラフの少なくとも一方を選択する。
【００１４】
そして、選択したグラフを用いて、所定の探索アルゴリズムに従って、クエリ時系列データに類似する部分時系列データを探索する。
【００１５】
このように、予め定められたセグメント長の各々について生成された部分時系列データに対応する頂点における頂点間ネットワークを表わすグラフから、クエリ時系列データのセグメント長より長いセグメント長であって、かつ、セグメント長が最も短いセグメント長、及びクエリ時系列データのセグメント長より短いセグメント長であって、かつ、セグメント長が最も長いセグメント長のうち少なくとも１つについて生成されたグラフを選択し、選択したグラフを用いてクエリ時系列データに類似する部分時系列データを探索することにより、少ない計算量で、クエリ時系列データに類似する部分時系列データを精度よく探索することができる。
【００１６】
また、上記時系列データ探索方法は、前記（ａ１）のステップの前に、（ｂ１）前記予め定められたセグメント長の各々について、前記探索対象の時系列データのうちの前記セグメント長の部分時系列データの各々に対して、前記部分時系列データと類似する上位Ｋ個の部分時系列データが格納されたＫ−ＮＮリストを生成し、（ｂ２）前記予め定められたセグメント長の各々について、前記（ｂ１）で前記セグメント長について生成されたＫ−ＮＮリストに基づいて、前記探索対象の時系列データのうちの部分時系列データに対応する頂点における前記頂点間の類似度又は非類似度に基づく頂点間ネットワークを表わすグラフを生成することを更に含むようにすることができる。
【００１７】
また、上記時系列データ探索方法における前記（ｂ１）のステップは、（ｃ１）前記探索対象の時系列データのうちの前記セグメント長のクエリ部分時系列データを設定し、（ｃ２）前記探索対象の時系列データのうちの部分時系列データの各々と、前記クエリ部分時系列データとの類似度又は非類似度を各々算出し、（ｃ３）前記（ｃ２）で算出された類似度又は非類似度に基づいて、前記クエリ部分時系列データと類似する上位Ｋ個の部分時系列データを選択し、（ｃ４）前記（ｃ１）から前記（ｃ３）の処理を、前記探索対象の時系列データのうちの前記セグメント長の部分時系列データそれぞれを前記クエリ部分時系列データとして繰り返すことにより、前記セグメント長についてのＫ−ＮＮリストを生成し、（ｃ５）前記（ｃ１）から前記（ｃ４）の処理を、前記セグメント長それぞれについて繰り返し、前記（ｂ２）のステップは、（ｄ１）前記セグメント長についてのＫ−ＮＮリストに基づいて、前記探索対象の時系列データのうちの部分時系列データに対応する頂点の各々を、最も類似する部分時系列データに対応する頂点とリンク結合し、（ｄ２）前記部分時系列データの各々に対応する頂点の各々から、前記部分時系列データに対応する任意の前記頂点である第１の頂点を抽出し、前記Ｋ−ＮＮリストに基づいて、当該第１の頂点からｋ番目（ただし、ｋは１より大きい整数）に類似する頂点である第２の頂点を、前記部分時系列データに対応する各頂点から抽出し、（ｄ３）前記第２の頂点を初期頂点とし、前記第１の頂点をクエリとして、貪欲探索アルゴリズムに従って、前記初期頂点から、前記クエリに類似する頂点を探索し、（ｄ４）前記（ｄ３）の結果、探索結果として得られた頂点が、前記第１の頂点でない場合に、当該第１の頂点と前記第２の頂点とを、直接的、または、前記第１の頂点及び前記第２の頂点以外の頂点を介することにより間接的にリンク結合し、（ｄ５）前記（ｄ２）から前記（ｄ４）の処理を、前記部分時系列データに対応する前記頂点それぞれを前記第１の頂点として繰り返すことを、ｋが２からＫ以下である所定の値になるまで繰り返すことにより、前記頂点間ネットワークを表わすグラフを生成し、（ｄ６）前記（ｄ１）から前記（ｄ５）の処理を、前記セグメント長それぞれについて繰り返すようにすることができる。
【００１８】
また、上記時系列データ探索装置は、（ｂ１）前記予め定められたセグメント長の各々について、前記探索対象の時系列データのうちの前記セグメント長の部分時系列データの各々に対して、前記部分時系列データと類似する上位Ｋ個の部分時系列データが格納されたＫ−ＮＮリストを生成し、（ｂ２）前記予め定められたセグメント長の各々について、前記（ｂ１）で前記セグメント長について生成されたＫ−ＮＮリストに基づいて、前記探索対象の時系列データのうちの部分時系列データに対応する頂点における前記頂点間の類似度又は非類似度に基づく頂点間ネットワークを表わすグラフを生成するグラフ索引構築手段を更に含むようにすることができる。
【００１９】
また、上記時系列データ探索装置における前記（ｂ１）の処理は、（ｃ１）前記探索対象の時系列データのうちの前記セグメント長のクエリ部分時系列データを設定し、（ｃ２）前記探索対象の時系列データのうちの部分時系列データの各々と、前記クエリ部分時系列データとの類似度又は非類似度を各々算出し、（ｃ３）前記（ｃ２）で算出された類似度又は非類似度に基づいて、前記クエリ部分時系列データと類似する上位Ｋ個の部分時系列データを選択し、（ｃ４）前記（ｃ１）から前記（ｃ３）の処理を、前記探索対象の時系列データのうちの前記セグメント長の部分時系列データそれぞれを前記クエリ部分時系列データとして繰り返すことにより、前記セグメント長についてのＫ−ＮＮリストを生成し、（ｃ５）前記（ｃ１）から前記（ｃ４）の処理を、前記セグメント長それぞれについて繰り返し、前記（ｂ２）の処理は、（ｄ１）前記セグメント長についてのＫ−ＮＮリストに基づいて、前記探索対象の時系列データのうちの部分時系列データに対応する頂点の各々を、最も類似する部分時系列データに対応する頂点とリンク結合し、（ｄ２）前記部分時系列データの各々に対応する頂点の各々から、前記部分時系列データに対応する任意の前記頂点である第１の頂点を抽出し、前記Ｋ−ＮＮリストに基づいて、当該第１の頂点からｋ番目（ただし、ｋは１より大きい整数）に類似する頂点である第２の頂点を、前記部分時系列データに対応する各頂点から抽出し、（ｄ３）前記第２の頂点を初期頂点とし、前記第１の頂点をクエリとして、貪欲探索アルゴリズムに従って、前記初期頂点から、前記クエリに類似する頂点を探索し、（ｄ４）前記（ｄ３）の結果、探索結果として得られた頂点が、前記第１の頂点でない場合に、当該第１の頂点と前記第２の頂点とを、直接的、または、前記第１の頂点及び前記第２の頂点以外の頂点を介することにより間接的にリンク結合し、（ｄ５）前記（ｄ２）から前記（ｄ４）の処理を、前記部分時系列データに対応する前記頂点それぞれを前記第１の頂点として繰り返すことを、ｋが２からＫ以下である所定の値になるまで繰り返すことにより、前記頂点間ネットワークを表わすグラフを生成し、（ｄ６）前記（ｄ１）から前記（ｄ５）の処理を、前記セグメント長それぞれについて繰り返すようにすることができる。
【００２０】
また、本発明に係るプログラムは、上記の時系列データ探索方法の各ステップをコンピュータに実行させるためのプログラムである。
【発明の効果】
【００２１】
以上説明したように、本発明の時系列データ探索方法、装置、及びプログラムによれば、予め定められたセグメント長の各々について生成された部分時系列データに対応する頂点における頂点間ネットワークを表わすグラフから、クエリ時系列データのセグメント長より長いセグメント長であって、かつ、セグメント長が最も短いセグメント長、及びクエリ時系列データのセグメント長より短いセグメント長であって、かつ、セグメント長が最も長いセグメント長のうち少なくとも１つについて生成されたグラフを選択し、選択したグラフを用いてクエリ時系列データに類似する部分時系列データを探索することにより、少ない計算量で、クエリ時系列データに類似する部分時系列データを精度よく探索することができる、という効果が得られる。
【図面の簡単な説明】
【００２２】
【図１】時系列データ探索法を説明するための図である。
【図２】本発明の実施の形態に係る時系列データ探索装置の構成を示す概略図である。
【図３】本発明の実施の形態に係る時系列データ探索装置のグラフ索引構築部の構成を示す概略図である。
【図４】被探索時系列データからオブジェクトを生成するための方法を説明するための図である。
【図５】ｋ−ＤＲアルゴリズムを説明するための図である。
【図６】ＧＳ探索アルゴリズムを説明するための図である。
【図７】ＢＦＳ探索アルゴリズムを説明するための図である。
【図８】本発明の実施の形態に係る時系列データ探索装置のグラフ構築処理ルーチンの内容を示すフローチャートである。
【図９】本発明の実施の形態に係る時系列データ探索装置のＫ−ＮＮリスト生成処理ルーチンの内容を示すフローチャートである。
【図１０】本発明の実施の形態に係る時系列データ探索装置のｋ−ＤＲグラフ生成処理ルーチンの内容を示すフローチャートである。
【図１１】本発明の実施の形態に係る時系列データ探索装置の時系列データ探索処理ルーチンの内容を示すフローチャートである。
【図１２】本発明の実施の形態に係る時系列データ探索装置の探索処理ルーチンの内容を示すフローチャートである。
【図１３】本発明の実施の形態と従来手法との探索精度を比較した実験結果を示すグラフである。
【図１４】本発明の実施の形態と従来手法とのＤＴＷ計算回数を比較した実験結果を示すグラフである。
【発明を実施するための形態】
【００２３】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００２４】
＜概要＞
まず、本発明の実施の形態の概要について説明する。
【００２５】
本発明の実施の形態は、探索の対象となる時系列データの集合である被探索時系列データ集合から、クエリ時系列データに類似する時系列データを探索するものである。
【００２６】
本発明の実施の形態では、クエリ時系列データのデータ長さに対応するセグメント長の取り得る範囲を定め、その範囲からある間隔（離散値）で、複数のセグメント長を設定する。この設定したセグメント長をオブジェクト単位とし、セグメント長ごとに、オフライン処理で被探索時系列データ集合から近傍グラフを構築する。
【００２７】
クエリ時系列データが入力された後（オンライン処理時）に、所定の規則に基づいて、オフライン処理で構築された近傍グラフを少なくとも１つ選択する。解くべき類似探索問題に応じた適切な探索アルゴリズムに従って、この近傍グラフを用いて類似探索し、最後に解を返す。
【００２８】
次に、使用する用語の定義を示す。時系列データとは、ある時刻又はある時間区間（フレームとも呼ぶ）において、ある量（１つ以上の値から成る数列又はベクトルの組で表現される量）を有するデータである。ある時系列データ中のフレーム数をセグメント長と呼ぶ。被探索時系列データ集合とは、探索の対象となる時系列データの集合であり、当該集合中の各時系列データのセグメント長は、一定でなくてもよい。また、ある時系列データの中の連続する部分を部分時系列データと呼ぶ。探索のために入力する時系列データをクエリ時系列データと呼ぶ。クエリ時系列データのセグメント長は、被探索時系列データ集合の時系列データのセグメント長とは無関係である。
【００２９】
次に、被探索時系列データ集合から、与えられたクエリ時系列データに類似する部分時系列データ集合を発見する時系列データ探索法を、図１を用いて説明する。
【００３０】
図１に示すように、本実施の形態における時系列データ探索方法は、大きく分けてグラフ索引構築部と探索処理部との２つから成る。グラフ索引構築部は、被探索時系列データ集合と当該集合の各時系列データ間の非類似度定義とセグメント長に関する３つの変数、即ち、最小セグメント長、最大セグメント長、セグメント長間隔、とを入力とする。この３つの変数で表されるセグメント長を表現可能であれば、３つの変数でなくても良い。例えば、全てのセグメント長を列挙したものでも良い。入力である被探索時系列データ集合とオブジェクト間の非類似度定義とセグメント長に関する変数とを用いて、グラフ構築アルゴリズムに従って、索引となる複数個の近傍グラフ（グラフ索引集合とも呼ぶ）を構築し、グラフ索引集合を出力する。探索処理部は、当該グラフ索引構築部が出力したグラフ索引集合とクエリ時系列データとを入力とし、以下の２つの処理を行う。
【００３１】
第１に、クエリ時系列データのセグメント長を用いて、所定のグラフ選択アルゴリズムにより、当該グラフ索引集合から少なくとも１つのグラフ索引を選択する。第２に、選択されたグラフ索引を用いて、所定のグラフ探索アルゴリズムにより、索引であるグラフを探索し、クエリ時系列データに類似する部分時系列データ集合を出力する。
【００３２】
[第１の実施の形態]
＜システム構成＞
図２に示すように、第１の実施の形態に係る時系列データ探索装置１００は、ＣＰＵと、ＲＡＭと、後述するグラフ構築処理ルーチン及び時系列データ探索処理ルーチンを実行するためのプログラムを記憶したＲＯＭとを備えたコンピュータで構成され、機能的には次に示すように構成されている。
【００３３】
時系列データ探索装置１００は、入力部１と、グラフを生成すると共に探索処理を行う演算部２と、探索結果を出力する出力部３と、を備えている。
【００３４】
入力部１は、被探索時系列データ集合の入力を受け付けると共に、後述するオブジェクト間の非類似度の定義と、セグメント長に関する変数（最小セグメント長、最大セグメント長、セグメント長間隔）との入力を受け付ける。また、入力部１は、クエリ時系列データの入力を受け付ける。
【００３５】
ここで、被探索時系列データ集合について説明する。
【００３６】
本実施の形態では、被探索時系列データ集合として、複数の発話から成る発話集合（発話データ）を用いる。このとき、被探索対象データと同様の学習用（トレーニング用）発話データを準備する。学習用発話データ、被探索対象データの各発話からフレームを切り出し、フレーム毎のMel-Frequency Cepstral Coefficients（ＭＦＣＣ）を求める。ＭＦＣＣｓは、実係数列であり、１３個、２６個、３９個などの実係数を用いることが多く、ベクトル表現される。以降、ＭＦＣＣベクトルと呼ぶ。学習用発話データのＭＦＣＣベクトルの集合を用いて、混合ガウス分布（Gaussian mixture model：ＧＭＭ）を推定する。ここでは、混合数を５０とする。このＧＭＭを用いて、発話データの各フレームのポステリアグラム（posteriorgram）を推定する。ポステリアグラムとは、時間フレームごとに音声クラスについての事後確率を表わす行列であり、本実施の形態では、ポステリアグラムは５０次元実ベクトル（各要素の総和は１である）である。発話データから生成されたポステリアグラムの集合が被探索時系列データとなる。つまり、被探索時系列データのフレームにおけるある量の具体例は、５０次元実ベクトルであるポステリアグラムである。同様にクエリ時系列データ（ポステリアグラムの列）もクエリ発話から生成される。
【００３７】
また、ここで、オブジェクト間の非類似度の定義について説明する。
【００３８】
本実施の形態では、時系列データ（オブジェクト）間の非類似度として、ＤＴＷ（dynamic time warping）スコアを用いる。具体的には、ＤＴＷスコア計算の際の局所非類似度（時系列データのフレーム間の非類似度）として、（１）式を用いる。
【００３９】
【数１】
2014081841.tif 000003
【００４０】
但し、ｑ，ｘは各々時系列データの１フレームのポステリアグラムであり、この場合、５０次元実ベクトルである。
【００４１】
上記（１）式は、ｑとｘとの局所非類似度を表す関数が、ｑとｘとの内積の負対数値で表されること意味する。また、非類似度関数の別の例としては、時系列データの各フレームのベクトル間のユークリッド距離やコサイン距離がある。ＤＴＷスコア計算の際には、ワーピングパス（warping path）に大域的制約や局所的制約を用いられることが多い。大域的制約とは、Sakoe-Chiba bandやItakuraparallelogramのように、ワーピングパス全体をある幅の中に限定する制約である。ここでは、特に、バンド幅Rを用いたSakoe-Chiba bandによる制約を用いる。
【００４２】
演算部２は、時系列データデータベース１０、グラフ索引構築部１２、グラフ索引記憶部２０、及び探索処理部３０を備えている。グラフ索引構築部１２は、グラフ生成部の一例である。
【００４３】
時系列データデータベース１０は、入力部１により入力された被探索時系列データ集合を記憶すると共に、入力部１により入力された、オブジェクト間の非類似度の定義とセグメント長に関する変数とを記憶する。また、グラフ索引記憶部２０は、記憶部の一例である。
【００４４】
グラフ索引構築部１２は、時系列データデータベース１０に記憶された被探索時系列データ集合、オブジェクト間の非類似度の定義、及びセグメント長に関する変数に基づいて、後述するオブジェクト集合を探索するためのグラフを生成する。
【００４５】
与えられた被探索時系列データ集合と非類似度定義とセグメント長に関する変数（最小セグメント長、最大セグメント長、セグメント長間隔）とから、索引となる近傍グラフを構築するアルゴリズムを説明する。本実施の形態では、最小セグメント長、最大セグメント長、セグメント長間隔は、各々２０，１１０，１０であり、すなわち、２０，３０，４０，．．．，１１０の１０個の異なるセグメント長を用いる。また、Sakoe-Chiba bandのバンド幅をＲ＝５とする。
【００４６】
グラフ索引構築部１２は、図３に示すように、Ｋ−ＮＮリスト生成部１２１、ｋ−ＤＲグラフ構築部１２２を備えている。
【００４７】
Ｋ−ＮＮリスト生成部１２１は、時系列データデータベース１０に記憶された被探索時系列データ集合に基づいてオブジェクト集合を生成する。具体的には、時系列データデータベース１０に記憶されている被探索時系列データ集合に含まれる各時系列データから、時系列データデータベース１０に記憶されたセグメント長に関する変数に基づいて、クエリオブジェクトを設定する。また、Ｋ−ＮＮリスト生成部１２１は、時系列データデータベース１０に記憶されたオブジェクト間の非類似度の定義に基づいて、各クエリオブジェクトに対して類似するＫ個のオブジェクトを保持したＫ−ＮＮリストを作成する。
【００４８】
ここで、Ｋ−ＮＮリストの作成方法の原理を説明する。
【００４９】
時系列データデータベース１０に記憶された被探索時系列データ集合の時系列データは単位を有しないため、時系列データデータベース１０に記憶されたセグメント長に関する変数に基づいて定められる複数種類のセグメント長の各々を単位として、図４（ａ）に示すように、フレーム０を先頭フレームとするクエリオブジェクトを設定する。設定されたクエリオブジェクト以外については、明確な単位は不要であり（終端フレームは、大域的制約を有するＤＴＷにより自動的に決まるため）、オブジェクトの先頭フレームのみを指定する。図４では、先頭フレームを１つずつシフトしてオブジェクトを決めているが、必ずしも１つずつずらす必要はなく、２つずつずらす等適宜調整可能である。クエリオブジェクト以外のオブジェクトのセグメント長が不要な理由は、クエリオブジェクトとその他のオブジェクトとの非類似度がSakoe-Chiba bandの制約を持つＤＴＷスコアで求められるからである。即ち、オブジェクトの終端フレームはＤＴＷスコア計算の過程で決定される。このようにして、フレーム０を先頭フレームとするクエリオブジェクトと他のオブジェクトの各々とのＤＴＷスコアを計算し、当該クエリオブジェクトに類似する他のオブジェクトを格納したＫ−ＮＮリストを作成する。次に図４（ｂ）に示すように、フレーム１を先頭フレームとするクエリオブジェクトを設定し、同様の操作を実行し、フレーム１を先頭フレームとするクエリオブジェクトに類似する他のオブジェクトを格納したＫ−ＮＮリストを作成する。この操作を、全てのフレームをクエリオブジェクトとして実行し、１つのセグメント長に対するＫ−ＮＮリストを完成させる。また、同様の操作を繰り返し実行し、与えられた全セグメント長に対するＫ−ＮＮリスト、即ち、１０個のＫ−ＮＮリストを完成する。
【００５０】
ｋ−ＤＲグラフ構築部１２２は、Ｋ−ＮＮリスト生成部１２１で作成されたＫ−ＮＮリストを用いて、部分時系列データを各々格納した複数の頂点間のネットワークを表すｋ−ＤＲグラフを作成する。
【００５１】
ここで、ｋ−ＤＲグラフの作成方法の原理を説明する。
【００５２】
ｋ−ＤＲグラフ構築部１２２は、各Ｋ−ＮＮリストから索引である次数低減ｋ近傍グラフ（degree-reduced k-nearest neighbor graph: ｋ−ＤＲ graph）を、ｋを構造パラメータとして、従来の構築法（特許文献２，非特許文献３，４）で構築する。
【００５３】
例として、セグメント長１１０に対するＫ−ＮＮリストを用いて、構造パラメータｋ＝１０，２０，…，２００のｋ−ＤＲグラフを各々構築する、ことが挙げられる。図５は、１２オブジェクトに対して、非類似度としてユークリッド距離を適用し、ｋ−ＤＲグラフ（ｋ＝１，２，３）を構築する過程を表す図である（簡単化のためにＤＴＷスコアではなく、ユークリッド距離を用いた）。ｋ−ＤＲグラフ構築アルゴリズムの要点を簡単に述べると、ある頂点（原頂点とする）からｋ番目に近い頂点に辺を張るか否かを、そのｋ番目に近い頂点から原頂点に貪欲探索（greedy search:ＧＳ）アルゴリズムで到達不可能か可能かによって決定することである。
【００５４】
図５（ａ）は、Ｋ−ＮＮリストに格納された各々のオブジェクトを頂点として、最隣接頂点に無向辺を張った図である。図５（ｂ）は、２−ＤＲグラフを１−ＤＲグラフから構築した図であり、新たに追加された辺は太い辺で描かれている。ｋ−ＤＲグラフ構築アルゴリズムは大別すると２つに分かれる。１つは、generation type、他方はsequence typeである。共にｋを１つずつ増加させながら構築するアルゴリズムであるが、generation typeは、現在のｋより小さいｋのときに生成された辺のみが存在するとみなすアルゴリズムであり、sequence typeは、同一ｋであっても既に張られた辺は存在するとみなすアルゴリズムである。Sequence typeで構築されたｋ−ＤＲグラフは、その辺生成の順序に依存した構造となる。
【００５５】
図５は、sequence typeのアルゴリズムであり、頂点のアルファベット順に辺の生成を行う。例えば、頂点ａから２番目に近い頂点は頂点ｂであり、その間には辺がなく、ＧＳアルゴリズムで頂点ｃから頂点ａには到達不可能であるから、辺を張る。一方、頂点ｃから２番目に近い頂点は頂点ａであるが、頂点ａからは頂点ｃへは、既に張られている頂点ａｂ間の辺を利用して、ＧＳアルゴリズムで到達可能であるため、頂点ｃとａとの間には辺は張られない。但し、generation typeであれば、頂点ｃとａとの間には辺が張られることになる。図５（ｃ）は、３−ＤＲグラフを、２−ＤＲグラフから構築したときの図である。
【００５６】
ｋ−ＤＲグラフ構築部１２２は、複数のセグメント長の各々について、当該セグメント長に対するＫ−ＮＮリストから、上述したようにｋの各値に対するｋ−ＤＲグラフ（但し、ｋの最大値ｋｍａｘはＫより小さいか等しい）を構築し出力する。
【００５７】
グラフ索引記憶部２０は、グラフ索引構築部１２によって生成されたｋ−ＤＲグラフをセグメント長ごとに記憶する。
【００５８】
探索処理部３０は、グラフ索引記憶部２０に記憶されたグラフと入力部１により入力されたクエリ時系列データとを入力とし、グラフを索引として用いて、クエリ時系列データに類似するオブジェクト集合に相当する部分時系列データ集合を探索して出力する。ここでは、クエリ時系列データに最も類似する部分時系列データからＤＴＷスコアに関して昇順にＴ番目までの部分時系列データを出力する。これは、最も類似する部分時系列データを出力する問題を含み、あるＤＴＷスコア内の部分時系列データを出力する問題（Range queryとも呼ばれる）にも容易に拡張できる。
【００５９】
探索処理部３０は、グラフ索引選択部３２及びグラフ探索部３４から構成される。
【００６０】
グラフ索引選択部３２は、入力部１により入力されたクエリ時系列データのセグメント長を抽出し、当該セグメント長より大きく、かつ最小のセグメント長に対するグラフ索引（ｋ−ＤＲグラフ）を、グラフ索引構築部１２において構築されたグラフ索引から選択する。
【００６１】
ここで、選択されるｋ−ＤＲグラフの構造パラメータｋは、上記非特許文献４で示されるように最類似部分時系列データを得られる確率を元にして、選択してもよい。また、上記非特許文献３で示されるような、最良優先探索コストが最小になるｋを選択してもよい。更に、ある程度大きいｋ、例えばｋ＝２００、を選択するだけでもよい。
【００６２】
グラフ探索部３４は、グラフ索引選択部３２で選択されたｋ−ＤＲグラフを用いて、入力部１により入力されたクエリ時系列データに類似する部分時系列データを探索する。
【００６３】
探索アルゴリズムは、２つの主たるアルゴリズム、複数の初期頂点を用いた貪欲探索（ＭＳＧＳ）アルゴリズムと幅優先探索（breadth-first search: ＢＦＳ）アルゴリズムとから成る。初めにＭＳＧＳアルゴリズムを、次にＢＦＳアルゴリズムを説明する。
【００６４】
ＭＳＧＳアルゴリズムは、複数のＧＳアルゴリズムと同一である。複数のＧＳアルゴリズムは、1つの処理装置で順次実行される。一方、分散並列処理が可能である場合は、複数のＧＳアルゴリズムを各処理装置で実行でき、ＧＳアルゴリズムの数が利用可能な処理装置との数よりも大きければ、並列処理と逐次処理とを組み合わせて実行することができる。
【００６５】
簡単のために、図６に示す１２頂点からユークリッド距離に基づいて構築された３−ＤＲグラフを用いて、与えられたクエリに最近傍頂点から５つの頂点を求める(ＴＮＮ集合を求める、但しＴ＝５)ＧＳアルゴリズムを詳述する。クエリｑが与えられたとき、ＴＮＮ集合は空集合で初期化され、同時に１つの初期頂点を一様ランダムに選択する。この場合は頂点ｎを選択したとする（図６（ａ））。このとき、頂点ｎはＴＮＮ集合の要素となる。クエリと頂点ｎとの距離を計算し、次に頂点ｎの隣接頂点ｐ，ｆとクエリとの距離を計算し、頂点ｐ，ｆをＴＮＮ集合の要素とする。隣接頂点の中で頂点ｎ（その頂点の隣接頂点とクエリとの距離が計算されている、または計算される頂点を展開頂点と呼ぶため、頂点ｎは展開頂点である）よりもクエリに近い頂点ｆに移動し、頂点ｆを展開頂点とする。展開頂点ｆの隣接頂点であってクエリとの距離が未計算である頂点ｅ，ｇ，ｈとクエリとの距離を計算し、展開頂点よりもクエリに近い頂点ｇに移動する（図６（ｂ））。このとき、クエリからの距離の小さい順に５つの頂点をＴＮＮ集合の要素とする、即ち、頂点ｇ，ｈ，ｆ，ｅ，ｐが要素である。展開頂点ｇの隣接頂点であってクエリとの距離が未計算である頂点はなく、頂点ｇがクエリに最も近い頂点であるため、ＧＳアルゴリズムは終了し、頂点ｇを結果として返す（図６（ｃ））。このとき、ＴＮＮ集合の要素は不変である。ここで、ＧＳアルゴリズムが終了した頂点をアトラクタと呼ぶ。ＭＳＧＳアルゴリズムは、前記ＧＳアルゴリズムを複数回実行するアルゴリズムであり、この繰り返しによりＴＮＮ集合は更新される。また、ＭＳＧＳアルゴリズムは、１つ以上であってＧＳアルゴリズムの数以下のアトラクタを返す。分散並列処理でＭＳＧＳアルゴリズムが実行された場合は、各処理装置で得られたＴＮＮ集合は、集約されクエリに近い順にＴ個の要素がＴＮＮ集合の要素となる。
【００６６】
次に、ＭＳＧＳアルゴリズムにより得られたＴＮＮ集合の精度を向上させるために、得られたアトラクタをルートとする幅優先探索（ＢＦＳ）アルゴリズムを実行する。前記ＧＳアルゴリズムの説明に用いたグラフ索引を利用し、図７を用いて、ＢＦＳアルゴリズムを説明する。ＭＳＧＳアルゴリズムを実行した結果、クエリに対する最近傍アトラクタが頂点ｇであったとする。ＢＦＳアルゴリズムは、頂点ｇをルートとして実行される。頂点ｇの隣接頂点ｆ，ｈ（深さ１と呼ぶ）がクエリとの距離計算済であるかを判定し、距離計算済であれば、何もしない（図７（ａ））。深さ２の頂点の隣接頂点についても同様の判定を行う（図７（ｂ））。深さ２の頂点は、頂点ｅ，ｍ，ｎである。頂点ｈの隣接頂点ｍのクエリに対する距離が未計算であるため、その距離計算を実行し、ＴＮＮ集合においてクエリから最遠の頂点ｐよりもクエリに近いため、頂点ｍをＴＮＮ集合の要素とし、頂点ｐを要素から削除する。次に深さ３の隣接頂点ｄ，ｒ，ｐのうち、距離未計算の頂点は、頂点ｄ，ｒであるため、これらとクエリとの距離を計算する。結果として、頂点ｄはＴＮＮ集合のうちの最遠頂点であるｍよりもクエリに近いため、ＴＮＮ集合の要素となり、頂点ｍは削除される（図７（ｃ））。深さ４の隣接頂点であって、深さ３以内の頂点でない頂点は、頂点ａ，ｃである。クエリと頂点ａ，ｃとの距離を計算し、結果としてＴＮＮ集合の最遠頂点よりも遠いことを確認する。深さ４の頂点の全てがＴＮＮ集合の要素にならないので、ＢＦＳアルゴリズムは終了する（図７（ｃ））。このように、ある深さの頂点の全てがＴＮＮ集合の要素でなければ、ＢＦＳアルゴリズムは終了する。複数のアトラクタが得られている場合は、クエリとの距離の小さいアトラクタから順にＢＦＳアルゴリズムを実行する。あるアトラクタがＴＮＮ集合のうちの最遠頂点よりもクエリよりも遠いとき、アトラクタ集合に対するＢＦＳアルゴリズムは終了し、このときに得られているＴＮＮ集合が最終結果となる。
【００６７】
図６と図７との探索アルゴリズムの説明は、簡単化のために、２次元座標上の点と頂点とを一致させ、頂点間の非類似度としてユークリッド距離を用いた。実際には、時系列データの場合は、頂点はポステリアグラム列で表現され、時系列データ間の非類似度にはＤＴＷスコアが用いられる。
【００６８】
出力部３は、探索結果として得られるＴＮＮ集合を、ユーザに対して出力する。
【００６９】
＜時系列データ探索装置の動作＞
次に、本実施の形態に係る時系列データ探索装置１００の作用について説明する。まず、被探索時系列データ集合、オブジェクト間の非類似度の定義、及びセグメント長に関する変数が入力部１を介して時系列データ探索装置１００に入力されると、被探索時系列データ集合、オブジェクト間の非類似度の定義、及びセグメント長に関する変数が、時系列データデータベース１０に格納される。そして、時系列データ探索装置１００において、図８に示すグラフ構築処理ルーチンが実行される。
【００７０】
まず、ステップＳ１００において、時系列データデータベース１０に記憶されている、セグメント長に関する変数に基づいて、セグメント長を設定する。
【００７１】
そして、ステップＳ１０２において、Ｋ−ＮＮリスト生成部１２１により、図９に示すＫ−ＮＮリスト生成処理ルーチンが実行される。
【００７２】
＜Ｋ−ＮＮリスト生成処理ルーチン＞
まず、ステップＳ１０２１において、設定されたセグメント長を用いて、上記図４に示すように、１つの時系列データに対してフレームｉを先頭とするクエリオブジェクトｘを設定する。
【００７３】
次に、ステップＳ１０２２において、上記ステップＳ１０２１で設定されたクエリオブジェクトｘと、全ての時系列データにおける他のフレームを先頭とするオブジェクトの各々とのＤＴＷスコアを計算し、メモリ（図示省略）に記憶する。
【００７４】
次に、ステップＳ１０２３において、上記ステップＳ１０２２で算出されたＤＴＷスコアに基づいて、クエリオブジェクトに類似する上位Ｋ個のオブジェクト（ＤＴＷスコアが小さいＫ個のオブジェクト）をリスト候補として選択する。
【００７５】
ステップＳ１０２４では、上記ステップＳ１０２３で選択されたＫ個のオブジェクトを、クエリオブジェクトｘに類似するオブジェクトとして格納したＫ−ＮＮリストを作成し、メモリ（図示省略）に記憶する。
【００７６】
次に、ステップＳ１０２５において、全ての時系列データにおける全てのフレームをクエリオブジェクトの先頭として処理が終了したか否かを判定する。クエリオブジェクトの先頭として設定していないフレームが存在する場合には、上記ステップＳ１０２１へ戻り、当該フレームを先頭として設定する。一方、全てのフレームをクエリオブジェクトの先頭として上記ステップＳ１０２１〜ステップＳ１０２４の処理を実行した場合には、ステップＳ１０２６へ移行する。
【００７７】
ステップＳ１０２６では、上記ステップＳ１０２４で生成されたクエリオブジェクトごとのＫ−ＮＮリストを統合して、当該セグメント長に対するＫ−ＮＮリストを生成し、メモリに格納して、処理ルーチンを終了する。
【００７８】
次に、上記図８に示すグラフ構築処理ルーチンに戻り、ステップＳ１０４において、時系列データデータベース１０に記憶されているセグメント長に関する変数に基づいて定められる全てのセグメント長毎に、ステップＳ１００〜ステップＳ１０２の処理を実行したか否かを判定する。ステップＳ１００〜ステップＳ１０２の処理を実行していないセグメント長が存在する場合には、上記ステップＳ１００へ戻り、当該セグメント長に対してステップＳ１００〜ステップＳ１０２の処理を実行する。一方、全てのセグメント長毎に上記ステップＳ１００〜ステップＳ１０２の処理を実行した場合には、ステップＳ１０６へ移行する。
【００７９】
ステップＳ１０６において、時系列データデータベース１０に記憶されたセグメント長に関する変数に基づいて、セグメント長を設定する。
【００８０】
次に、ステップＳ１０８において、ｋ−ＤＲグラフ構築部１２２により、図１０に示すｋ−ＤＲグラフ生成処理ルーチンが実行される。
【００８１】
＜ｋ−ＤＲグラフ生成処理ルーチン＞
まず、ステップＳ１０４１において、上記ステップＳ１０２で生成された当該セグメント長に対するＫ−ＮＮリストに基づいて、Ｋ−ＮＮリストに含まれるオブジェクト集合に対応するすべての頂点ｘに対する１−ＤＲグラフΓ（ｘ）を求める。なお、頂点ｘは１つのオブジェクトｘに対応するグラフ上の点である。１−ＤＲグラフΓ（ｘ）は、以下の（２）式で示される要素である。
【００８２】
【数２】
2014081841.tif 000004
【００８３】
ここで、Ｎ１（ｘ）は、任意の頂点ｘに対して、最も非類似度が小さい頂点である。
【００８４】
すなわち、頂点ｘ（ｘ∈Ｘ、Ｘはオブジェクト集合）との非類似度が最も小さい近傍頂点Ｎ１（ｘ）を、オブジェクト集合中から求め、この近傍頂点Ｎ１（ｘ）との間に無向リンクを生成する。
【００８５】
そして、任意の頂点ｘに対する１−ＤＲグラフΓ（ｘ）を抽出する。
【００８６】
次に、ステップＳ１０４２において、構造パラメータｋ（以下、適宜ｋと記載）を２に設定する（ｋ←２）。
【００８７】
次に、ステップＳ１０４３において、上記Ｋ−ＮＮリストに基づいて、頂点ｘに対する近傍頂点集合Ｎｋ（ｘ）および近傍頂点集合Ｎｋ−１（ｘ）を求める。
【００８８】
そして、ステップＳ１０４４において、求めた近傍頂点集合Ｎｋ（ｘ）と、近傍頂点集合Ｎｋ−１（ｘ）との差集合である頂点ｙを求める（ｙ＝Ｎｋ（ｘ）−Ｎｋ−１（ｘ））。すなわち、頂点ｘからｋ番目に非類似度の小さい頂点ｙを、オブジェクト集合に対応する頂点の中から抽出する。なお、頂点ｘは第１の頂点の一例であり、頂点ｙは第２の頂点の一例である。
【００８９】
そして、ステップＳ１０４５において、ＧＳアルゴリズムに従って、頂点ｙを初期頂点とし、頂点ｘをクエリとして、頂点ｘに類似する頂点ｘ＊を探索する。ステップＳ１０４６では、上記ステップＳ１０４５におけるＧＳアルゴリズムに基づく探索処理の結果、出力された頂点ｘ＊が、頂点ｘと等しい（ｘ＝ｘ＊）か否かを判定する。すなわち、ＤＲグラフΓにおいて、頂点ｘおよび頂点ｙに対してＧＳアルゴリズムによる探索処理を行うことをＧＳ（ｘ，ｙ，Γ）で表すと、ステップＳ１０４６は、ｘ＝ＧＳ（ｘ，ｙ，Γ）が、真であるか否かを判定することになる。
【００９０】
上記ステップＳ１０４６の結果、頂点ｘ＊が、頂点ｘと等しい場合、ステップＳ１０４９へ移行する。すなわち、新たなリンクを生成しない。
【００９１】
上記ステップＳ１０４６の結果、頂点ｘ＊が、頂点ｘと等しくない場合、ステップＳ１０４７において、以下の（３）式を満たす要素ｚを求める。すなわち、近傍頂点集合Ｎｋ−１（ｘ）と、要素ｘとの和集合のうちで、最も頂点ｙとの非類似度が小さい頂点ｚを求める。
【００９２】
【数３】
2014081841.tif 000005
【００９３】
そして、ステップＳ１０４８において、以下の（４）式を実行することによって、頂点ｚと頂点ｙとの間に新しいリンクを生成する。
【００９４】
【数４】
2014081841.tif 000006
【００９５】
すなわち、頂点ｚを頂点ｙに対する（ｋ−１）−ＤＲグラフΓ（ｙ）に加え、頂点ｙを頂点ｚに対する（ｋ−１）−ＤＲグラフΓ（ｚ）に加えることで、頂点ｙと頂点ｚとの間に、無向リンクを生成する。これにより、頂点ｙと、頂点ｘに直接的にリンク結合している頂点ｘ以外の頂点ｚとを、直接的にリンク結合する。
なお、本実施の形態では、近傍頂点集合Ｎｋ−１（ｘ）と、要素ｘとの和集合のうちで、最も頂点ｙとの非類似度が小さい頂点ｚと、頂点ｙとをリンク結合する場合を例に説明したが、これに限定されるものではない。例えば、上記ステップＳ１０４６の結果、頂点ｘ＊が、頂点ｘと等しくない場合、頂点ｘと頂点ｙとを直接的にリンク結合するようにしてもよい。
【００９６】
そして、ステップＳ１０４９において、オブジェクト集合に対応するすべての頂点ｘに対して、上記ステップＳ１０４３からステップＳ１０４８の処理を行ったか否かを判定する。
【００９７】
上記ステップＳ１０４９の結果、すべての頂点ｘに対して、処理を行っていない場合、新たな頂点ｘを取得し、ステップＳ１０４３の処理へ戻る。
【００９８】
一方、上記ステップＳ１０４９の結果、すべての頂点ｘに対して、処理を行った場合、ステップＳ１０５０へ移行する。
【００９９】
次に、ステップＳ１０５０において、ｋがグラフ作成対象の値であるか否かを判定する。すなわち、本実施の形態ではｋ＝１０，２０，．．．，２００のｋ−ＤＲグラフを作成するため、ｋ＝１０，２０，．．．，２００であるか否かを判定する。そして、ｋがグラフ作成対象の値である場合には、ステップＳ１０５１へ移行し、ステップＳ１０５１において、取得した各頂点ｘに対するｋ−ＤＲグラフΓ（ｘ）を、ｋ−ＤＲグラフとしてグラフ索引記憶部２０に記憶する。ｋがグラフ作成対象の値でない場合には、ステップＳ１０５２へ移行する。
【０１００】
ステップＳ１０５２では、ｋの値が、グラフ作成対象の値の最大値に到達したか否かを判定する。ｋの値が、グラフ作成対象の値の最大値に到達していない場合には、ステップＳ１０５３へ移行する。一方、ｋの値が、グラフ作成対象の値の最大値に到達した場合には、ｋ−ＤＲグラフ生成処理ルーチンを終了する。
【０１０１】
次のステップＳ１０５３において、ｋを１だけインクリメントして、上記ステップＳ１０４３の処理へ戻る。
【０１０２】
次に、上記図８に示すグラフ構築処理ルーチンに戻り、ステップＳ１１０において、時系列データデータベース１０に記憶されているセグメント長に関する変数に基づいて定められる全てのセグメント長毎に、ステップＳ１０６〜ステップＳ１０８の処理を実行したか否かを判定する。ステップＳ１０６〜ステップＳ１０８の処理を実行していないセグメント長が存在する場合には、上記ステップＳ１０６へ戻り、当該セグメント長に対してステップＳ１０６〜ステップＳ１０８の処理を実行する。一方、全てのセグメント長毎に上記ステップＳ１０６〜ステップＳ１０８の処理を実行した場合には、ステップＳ１１２へ移行する。
【０１０３】
ステップＳ１１２において、上記ステップ１０８で生成されたセグメント長ごとのｋ−ＤＲグラフをグラフ索引記憶部２０へ記憶して処理ルーチンを終了する。
【０１０４】
そして、クエリ時系列データが時系列データ探索装置１００に入力されると、時系列データ探索装置１００によって、図１１に示す時系列データ探索処理ルーチンが実行される。
【０１０５】
まず、ステップＳ２００において、入力部１により入力されたクエリ時系列データから、クエリ時系列データの長さに相当するセグメント長を抽出する。
【０１０６】
次に、ステップＳ２０２において、上記ステップＳ２００で抽出されたクエリ時系列データのセグメント長に基づいて、探索用グラフ索引のセグメント長を選択する。ここで、クエリ時系列データのセグメント長より大きい最小の探索用グラフ索引のセグメント長を選択する。
【０１０７】
次に、ステップＳ２０４において、ｋ−ＤＲグラフの構造パラメータｋを設定する。構造パラメータｋは、上記ステップＳ１０８でグラフ索引記憶部２０へ記憶されたｋ−ＤＲグラフを選択するためのパラメータである。
【０１０８】
次に、ステップＳ２０６において、上記ステップＳ２０２で選択された探索用グラフ索引のセグメント長と、上記ステップＳ２０４で設定された構造パラメータｋとに基づいて、グラフ索引記憶部２０に記憶された、対応するｋ−ＤＲグラフを読み込む。
【０１０９】
次に、ステップＳ２０８において、図１２に示す探索処理ルーチンが実行される。
【０１１０】
＜探索処理ルーチン＞
まず、ステップＳ２０８１において、上記ＭＳＧＳ探索アルゴリズムに従って、クエリ時系列データに類似するＴ個の部分時系列データを探索する。そして、クエリ時系列データに類似するＴ個の部分時系列データから成るＴＮＮ（top T nearest neighbors：最類似からＴ近傍）集合を生成する。
【０１１１】
次に、ステップＳ２０８２において、上記ステップＳ２０８１で生成されたＴＮＮ集合の精度を向上させるために、上記ＢＦＳ探索アルゴリズムを実行し、ＴＮＮ集合を更新して生成し、処理ルーチンを終了する。
【０１１２】
次に、上記図１１に示す時系列データ探索処理ルーチンに戻り、ステップＳ２１０において、上記ステップＳ２０８で得られたＴＮＮ集合を出力部３より出力して、処理ルーチンを終了する。
【０１１３】
以上説明したように、第１の実施の形態によれば、予め定められたセグメント長の各々について生成された、部分時系列データに対応する頂点における頂点間ネットワークを表わすグラフから、クエリ時系列データのセグメント長より長いセグメント長であって、かつ、セグメント長が最も短いセグメント長について生成されたグラフを選択し、選択したグラフを用いてクエリ時系列データに類似する部分時系列データを探索することにより、少ない計算量で、クエリ時系列データに類似する部分時系列データを精度よく探索することができる。
また、オフライン処理で被探索時系列データ集合から近傍グラフ索引を構築し、クエリ時系列データが入力された後のオンライン処理で、非常に小さい計算量で高速に、クエリ時系列データに類似する時系列データを被探索時系列データ集合から発見することができる。
【０１１４】
[第２の実施の形態]
＜システム構成＞
次に、本発明の第２の実施の形態について説明する。なお、第２の実施の形態に係る時系列データ探索装置の構成は、第１の実施の形態と同様の構成となるため、同一符号を付して説明を省略する。
【０１１５】
第２の実施の形態では、複数のグラフ索引を選択し、当該選択された複数のグラフ索引を用いて、分散並列処理により、クエリ時系列データに類似する部分時系列データを同時に探索する点が、第１の実施の形態と異なっている。
【０１１６】
第２の実施の形態に係る時系列データ探索装置１００のグラフ索引選択部３２は、入力部１により入力されたクエリ時系列データのセグメント長を抽出し、当該セグメント長に基づいて、複数のグラフ索引（ｋ−ＤＲグラフ）をグラフ索引記憶部２０に記憶されたグラフ索引から選択する。
【０１１７】
ここで、２つのグラフ索引を選択する場合には、１つ目のグラフ索引は、入力部１により入力されたクエリ時系列データのセグメント長より大きく、かつ最小のセグメント長に対するグラフ索引を選択する。そして、２つ目のグラフ索引は、当該クエリ時系列データのセグメント長を上回らない最大のセグメント長に対するグラフ索引を選択する。
【０１１８】
３つのグラフ索引を選択する場合には、３つ目のグラフ索引として、当該クエリ時系列データのセグメント長よりも２番目に大きいセグメント長に対応するグラフ索引を選択し、４つのグラフ索引を選択する場合には、４つ目のグラフ索引として、２つ目のグラフ索引のセグメント長の次に小さいセグメント長に対応するグラフ索引を選択する。
【０１１９】
グラフ探索部３４では、グラフ索引選択部３２で選択された複数のｋ−ＤＲグラフを用いて、入力部１により入力されたクエリ時系列データに類似する部分時系列データを、グラフ索引毎に同時に探索する。そして、グラフ索引毎にＴＮＮ集合を作成する。
【０１２０】
グラフ探索部３４は、グラフ索引毎に探索結果として得られるＴＮＮ集合を、統合して新たなＴＮＮ集合とし、出力部３によりユーザに対して出力する。
【０１２１】
なお、第２の実施の形態に係る時系列データ探索装置の他の構成及び作用については、第１の実施の形態と同様であるため、説明を省略する。
【０１２２】
以上説明したように、第２の実施の形態に係る時系列データ探索装置１００によれば、予め定められたセグメント長の各々について生成された部分時系列データに対応する頂点における頂点間ネットワークを表わすグラフから、複数のグラフを選択し、選択した複数のグラフを用いてクエリ時系列データに類似する部分時系列データをグラフ毎に同時に探索することにより、少ない計算量で、クエリ時系列データに類似する部分時系列データを精度よく探索することができる。
【０１２３】
なお、上記の第２の実施の形態では、異なるセグメント長について生成した各グラフを用いて分散並列処理で探索を行う場合について説明したが、これに限定されるものではなく、異なるセグメント長について生成されたグラフを合併し、当該合併したグラフを用いて探索を行ってもよい。
例えば、クエリ時系列データのセグメント長より大きく、かつ最小のセグメント長に対するグラフと、クエリ時系列データのセグメント長より小さく、かつ最大のセグメント長に対するグラフとに対して、辺と頂点との各々について合併集合（Union）を取ったグラフを生成し、当該グラフを用いて探索を行ってもよい。
【０１２４】
＜実験例＞
上記の第１の実施の形態の効果を実験結果に基づいて示す。実験のために音声発話データであるＴＩＭＩＴデータ集合を用いた。学習用発話データは、３６９６個の発話データの集合であり、被探索時系列データ集合は、９４４個の発話データ（時系列データ）の集合である。解くべき探索問題は次の通りである。
【０１２５】
被探索時系列データ集合と２つの時系列データの非類似度であるＤＴＷスコアとが与えられる。同一単語で発話が異なる複数の発話単語（例えば、単語はproblemであるが、発話が異なる複数個あること）がクエリ時系列データ集合として与えられたとき、その単語を部分時系列データとして含む可能性の高い時系列データを指定の個数だけ列挙する。但し、「可能性の高い」とは、クエリ時系列データ集合と時系列データとの統合ＤＴＷスコア（ＤＴＷ score fusion）が小さいことである。ＤＴＷ score fusion Ｄ'（Ｑ，ｘ）は(５)式で表される（非特許文献５）。Ｑはクエリ時系列データ集合，ｘは時系列データを表す。
【０１２６】
【数５】
2014081841.tif 000007
【０１２７】
式(５)中、ｑｉは各々のクエリ時系列データを表し、その個数がｍである。クエリ時系列データ（発話単語）として、５種類problem（Ｑ０６とも呼ぶ），children （Ｑ０７），surface（Ｑ０８），development（Ｑ０９），organizations（Ｑ１０）を用い、各々（発話単語の数, 真の正解発話データ数）＝（２２，８），（１８，１０），（３， ６），（９， ８），（７， ６）である。 探索性能を精度（指定した個数の発話データを出力した時のprecision）と計算量（ＤＴＷスコア計算回数）とで評価した。性能については、上記非特許文献１で示されたZhang-Glass法（ＺＧ法）と比較した。また、本実施の形態におけるｋ−ＤＲグラフの構造パラメータｋを５０とし、ＭＳＧＳ探索時の初期頂点数Ｌを１０と設定した（ｋ＝５０，Ｌ＝１０）。
【０１２８】
図１３は、指定した個数（順位閾値）に対する探索精度を示す。図１３（ａ）は本実施の形態の結果、図１３（ｂ）はＺＧ法の結果である。図中、Ｐ＠Ｎは真の正解数だけ出力した場合のprecisionを表している。図から分かるように、本実施の形態とＺＧ法とは同程度の探索精度である。
【０１２９】
図１４は、クエリ時系列データ毎の厳密なＤＴＷスコア計算回数を示している。本実施の形態では、ＺＧ法と比べて約１／１０であることが分かる。
【０１３０】
以上の実験結果から、本実施の形態は、既存法と同程度の探索精度で、約１０倍高速化を達成したことが分かる。
【０１３１】
従って、既存手法（非特許文献１）と比較して、真の解に対する精度を保ったままで、オンライン処理における探索計算量を約１／１０に低減する、即ち、約１０倍の高速化を達成するという効果が得られる。
【０１３２】
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【０１３３】
例えば、オブジェクト集合の空間において、非類似度ではなく、類似度を定義するようにしてもよい。
【０１３４】
また、上記の第１の実施の形態では、グラフ索引探索部３２は、クエリ時系列データのセグメント長より長く、かつ最短のセグメント長に対するグラフのみを選択する場合を例に説明したが、これに限定されるものではなく、グラフ索引選択部３２は、クエリ時系列データのセグメント長より小さく、かつ最大のセグメント長に対するグラフのみを選択するようにしてもよい。
【０１３５】
また、時系列データデータベース１０及びグラフ索引記憶部２０は、外部に設けられ、時系列データ探索装置とネットワークで接続されていてもよい。
【０１３６】
また、被探索時系列データ集合は、複数の発話から成る発話集合（発話データ）を用いる場合を例に説明したが、これに限定されるものではなく、他の時系列データにも適用することができる。
【０１３７】
また、上述したアルゴリズムに従って、Ｋ−ＮＮリストを生成する場合を例に説明したが、これに限定されるものではなく、他のアルゴリズムに従って、Ｋ−ＮＮリストを生成するようにしてもよい。
【０１３８】
また、上述したアルゴリズムに従って、ｋ−ＤＲグラフを生成する場合を例に説明したが、これに限定されるものではなく、他のグラフ生成アルゴリズムに従って、グラフを生成するようにしてもよい。
【０１３９】
また、グラフ探索部３４において用いられる探索アルゴリズムは、ＭＳＧＳ探索アルゴリズムとＢＦＳ探索アルゴリズムとの組み合わせである場合を例に説明したが、これに限定されるものではなく、他の探索アルゴリズムを用いてもよい。例えば、探索アルゴリズムとして、最良優先探索（best-first search：ＢＳ）アルゴリズムを用いることができる。
【０１４０】
また、探索対象となる時系列データは、複数である場合を例に説明したが、これに限定されるものではなく、１つの時系列データを探索対象としてもよい。
【０１４１】
上述のグラフ生成装置は、内部にコンピュータシステムを有しているが、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
【０１４２】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。
【符号の説明】
【０１４３】
２     演算部
１０   時系列データデータベース
１２   グラフ索引構築部
２０   グラフ索引記憶部
３０   探索処理部
３２   グラフ索引選択部
３４   グラフ探索部
１００ 時系列データ探索装置
１２１ Ｋ−ＮＮリスト生成部
１２２ ｋ−ＤＲグラフ構築部
【図１】
2014081841.tif 000008
【図４】
2014081841.tif 000009
【図５】
2014081841.tif 000010
【図６】
2014081841.tif 000011
【図７】
2014081841.tif 000012
【図１３】
2014081841.tif 000013
【図２】
2014081841.tif 000014
【図３】
2014081841.tif 000015
【図８】
2014081841.tif 000016
【図９】
2014081841.tif 000017
【図１０】
2014081841.tif 000018
【図１１】
2014081841.tif 000019
【図１２】
2014081841.tif 000020
【図１４】
2014081841.tif 000021