以下、図面を参照して本発明の実施の形態を詳細に説明する。
<概要>
まず、本発明の実施の形態の概要について説明する。
本発明の実施の形態は、探索の対象となる時系列データの集合である被探索時系列データ集合から、クエリ時系列データに類似する時系列データを探索するものである。
本発明の実施の形態では、クエリ時系列データのデータ長さに対応するセグメント長の取り得る範囲を定め、その範囲からある間隔(離散値)で、複数のセグメント長を設定する。この設定したセグメント長をオブジェクト単位とし、セグメント長ごとに、オフライン処理で被探索時系列データ集合から近傍グラフを構築する。
クエリ時系列データが入力された後(オンライン処理時)に、所定の規則に基づいて、オフライン処理で構築された近傍グラフを少なくとも1つ選択する。解くべき類似探索問題に応じた適切な探索アルゴリズムに従って、この近傍グラフを用いて類似探索し、最後に解を返す。
次に、使用する用語の定義を示す。時系列データとは、ある時刻又はある時間区間(フレームとも呼ぶ)において、ある量(1つ以上の値から成る数列又はベクトルの組で表現される量)を有するデータである。ある時系列データ中のフレーム数をセグメント長と呼ぶ。被探索時系列データ集合とは、探索の対象となる時系列データの集合であり、当該集合中の各時系列データのセグメント長は、一定でなくてもよい。また、ある時系列データの中の連続する部分を部分時系列データと呼ぶ。探索のために入力する時系列データをクエリ時系列データと呼ぶ。クエリ時系列データのセグメント長は、被探索時系列データ集合の時系列データのセグメント長とは無関係である。
次に、被探索時系列データ集合から、与えられたクエリ時系列データに類似する部分時系列データ集合を発見する時系列データ探索法を、図1を用いて説明する。
図1に示すように、本実施の形態における時系列データ探索方法は、大きく分けてグラフ索引構築部と探索処理部との2つから成る。グラフ索引構築部は、被探索時系列データ集合と当該集合の各時系列データ間の非類似度定義とセグメント長に関する3つの変数、即ち、最小セグメント長、最大セグメント長、セグメント長間隔、とを入力とする。この3つの変数で表されるセグメント長を表現可能であれば、3つの変数でなくても良い。例えば、全てのセグメント長を列挙したものでも良い。入力である被探索時系列データ集合とオブジェクト間の非類似度定義とセグメント長に関する変数とを用いて、グラフ構築アルゴリズムに従って、索引となる複数個の近傍グラフ(グラフ索引集合とも呼ぶ)を構築し、グラフ索引集合を出力する。探索処理部は、当該グラフ索引構築部が出力したグラフ索引集合とクエリ時系列データとを入力とし、以下の2つの処理を行う。
第1に、クエリ時系列データのセグメント長を用いて、所定のグラフ選択アルゴリズムにより、当該グラフ索引集合から少なくとも1つのグラフ索引を選択する。第2に、選択されたグラフ索引を用いて、所定のグラフ探索アルゴリズムにより、索引であるグラフを探索し、クエリ時系列データに類似する部分時系列データ集合を出力する。
[第1の実施の形態]
<システム構成>
図2に示すように、第1の実施の形態に係る時系列データ探索装置100は、CPUと、RAMと、後述するグラフ構築処理ルーチン及び時系列データ探索処理ルーチンを実行するためのプログラムを記憶したROMとを備えたコンピュータで構成され、機能的には次に示すように構成されている。
時系列データ探索装置100は、入力部1と、グラフを生成すると共に探索処理を行う演算部2と、探索結果を出力する出力部3と、を備えている。
入力部1は、被探索時系列データ集合の入力を受け付けると共に、後述するオブジェクト間の非類似度の定義と、セグメント長に関する変数(最小セグメント長、最大セグメント長、セグメント長間隔)との入力を受け付ける。また、入力部1は、クエリ時系列データの入力を受け付ける。
ここで、被探索時系列データ集合について説明する。
本実施の形態では、被探索時系列データ集合として、複数の発話から成る発話集合(発話データ)を用いる。このとき、被探索対象データと同様の学習用(トレーニング用)発話データを準備する。学習用発話データ、被探索対象データの各発話からフレームを切り出し、フレーム毎のMel-Frequency Cepstral Coefficients(MFCC)を求める。MFCCsは、実係数列であり、13個、26個、39個などの実係数を用いることが多く、ベクトル表現される。以降、MFCCベクトルと呼ぶ。学習用発話データのMFCCベクトルの集合を用いて、混合ガウス分布(Gaussian mixture model:GMM)を推定する。ここでは、混合数を50とする。このGMMを用いて、発話データの各フレームのポステリアグラム(posteriorgram)を推定する。ポステリアグラムとは、時間フレームごとに音声クラスについての事後確率を表わす行列であり、本実施の形態では、ポステリアグラムは50次元実ベクトル(各要素の総和は1である)である。発話データから生成されたポステリアグラムの集合が被探索時系列データとなる。つまり、被探索時系列データのフレームにおけるある量の具体例は、50次元実ベクトルであるポステリアグラムである。同様にクエリ時系列データ(ポステリアグラムの列)もクエリ発話から生成される。
また、ここで、オブジェクト間の非類似度の定義について説明する。
本実施の形態では、時系列データ(オブジェクト)間の非類似度として、DTW(dynamic time warping)スコアを用いる。具体的には、DTWスコア計算の際の局所非類似度(時系列データのフレーム間の非類似度)として、(1)式を用いる。
但し、q,xは各々時系列データの1フレームのポステリアグラムであり、この場合、50次元実ベクトルである。
上記(1)式は、qとxとの局所非類似度を表す関数が、qとxとの内積の負対数値で表されること意味する。また、非類似度関数の別の例としては、時系列データの各フレームのベクトル間のユークリッド距離やコサイン距離がある。DTWスコア計算の際には、ワーピングパス(warping path)に大域的制約や局所的制約を用いられることが多い。大域的制約とは、Sakoe-Chiba bandやItakuraparallelogramのように、ワーピングパス全体をある幅の中に限定する制約である。ここでは、特に、バンド幅Rを用いたSakoe-Chiba bandによる制約を用いる。
演算部2は、時系列データデータベース10、グラフ索引構築部12、グラフ索引記憶部20、及び探索処理部30を備えている。グラフ索引構築部12は、グラフ生成部の一例である。
時系列データデータベース10は、入力部1により入力された被探索時系列データ集合を記憶すると共に、入力部1により入力された、オブジェクト間の非類似度の定義とセグメント長に関する変数とを記憶する。また、グラフ索引記憶部20は、記憶部の一例である。
グラフ索引構築部12は、時系列データデータベース10に記憶された被探索時系列データ集合、オブジェクト間の非類似度の定義、及びセグメント長に関する変数に基づいて、後述するオブジェクト集合を探索するためのグラフを生成する。
与えられた被探索時系列データ集合と非類似度定義とセグメント長に関する変数(最小セグメント長、最大セグメント長、セグメント長間隔)とから、索引となる近傍グラフを構築するアルゴリズムを説明する。本実施の形態では、最小セグメント長、最大セグメント長、セグメント長間隔は、各々20,110,10であり、すなわち、20,30,40,...,110の10個の異なるセグメント長を用いる。また、Sakoe-Chiba bandのバンド幅をR=5とする。
グラフ索引構築部12は、図3に示すように、K−NNリスト生成部121、k−DRグラフ構築部122を備えている。
K−NNリスト生成部121は、時系列データデータベース10に記憶された被探索時系列データ集合に基づいてオブジェクト集合を生成する。具体的には、時系列データデータベース10に記憶されている被探索時系列データ集合に含まれる各時系列データから、時系列データデータベース10に記憶されたセグメント長に関する変数に基づいて、クエリオブジェクトを設定する。また、K−NNリスト生成部121は、時系列データデータベース10に記憶されたオブジェクト間の非類似度の定義に基づいて、各クエリオブジェクトに対して類似するK個のオブジェクトを保持したK−NNリストを作成する。
ここで、K−NNリストの作成方法の原理を説明する。
時系列データデータベース10に記憶された被探索時系列データ集合の時系列データは単位を有しないため、時系列データデータベース10に記憶されたセグメント長に関する変数に基づいて定められる複数種類のセグメント長の各々を単位として、図4(a)に示すように、フレーム0を先頭フレームとするクエリオブジェクトを設定する。設定されたクエリオブジェクト以外については、明確な単位は不要であり(終端フレームは、大域的制約を有するDTWにより自動的に決まるため)、オブジェクトの先頭フレームのみを指定する。図4では、先頭フレームを1つずつシフトしてオブジェクトを決めているが、必ずしも1つずつずらす必要はなく、2つずつずらす等適宜調整可能である。クエリオブジェクト以外のオブジェクトのセグメント長が不要な理由は、クエリオブジェクトとその他のオブジェクトとの非類似度がSakoe-Chiba bandの制約を持つDTWスコアで求められるからである。即ち、オブジェクトの終端フレームはDTWスコア計算の過程で決定される。このようにして、フレーム0を先頭フレームとするクエリオブジェクトと他のオブジェクトの各々とのDTWスコアを計算し、当該クエリオブジェクトに類似する他のオブジェクトを格納したK−NNリストを作成する。次に図4(b)に示すように、フレーム1を先頭フレームとするクエリオブジェクトを設定し、同様の操作を実行し、フレーム1を先頭フレームとするクエリオブジェクトに類似する他のオブジェクトを格納したK−NNリストを作成する。この操作を、全てのフレームをクエリオブジェクトとして実行し、1つのセグメント長に対するK−NNリストを完成させる。また、同様の操作を繰り返し実行し、与えられた全セグメント長に対するK−NNリスト、即ち、10個のK−NNリストを完成する。
k−DRグラフ構築部122は、K−NNリスト生成部121で作成されたK−NNリストを用いて、部分時系列データを各々格納した複数の頂点間のネットワークを表すk−DRグラフを作成する。
ここで、k−DRグラフの作成方法の原理を説明する。
k−DRグラフ構築部122は、各K−NNリストから索引である次数低減k近傍グラフ(degree-reduced k-nearest neighbor graph: k−DR graph)を、kを構造パラメータとして、従来の構築法(特許文献2,非特許文献3,4)で構築する。
例として、セグメント長110に対するK−NNリストを用いて、構造パラメータk=10,20,…,200のk−DRグラフを各々構築する、ことが挙げられる。図5は、12オブジェクトに対して、非類似度としてユークリッド距離を適用し、k−DRグラフ(k=1,2,3)を構築する過程を表す図である(簡単化のためにDTWスコアではなく、ユークリッド距離を用いた)。k−DRグラフ構築アルゴリズムの要点を簡単に述べると、ある頂点(原頂点とする)からk番目に近い頂点に辺を張るか否かを、そのk番目に近い頂点から原頂点に貪欲探索(greedy search:GS)アルゴリズムで到達不可能か可能かによって決定することである。
図5(a)は、K−NNリストに格納された各々のオブジェクトを頂点として、最隣接頂点に無向辺を張った図である。図5(b)は、2−DRグラフを1−DRグラフから構築した図であり、新たに追加された辺は太い辺で描かれている。k−DRグラフ構築アルゴリズムは大別すると2つに分かれる。1つは、generation type、他方はsequence typeである。共にkを1つずつ増加させながら構築するアルゴリズムであるが、generation typeは、現在のkより小さいkのときに生成された辺のみが存在するとみなすアルゴリズムであり、sequence typeは、同一kであっても既に張られた辺は存在するとみなすアルゴリズムである。Sequence typeで構築されたk−DRグラフは、その辺生成の順序に依存した構造となる。
図5は、sequence typeのアルゴリズムであり、頂点のアルファベット順に辺の生成を行う。例えば、頂点aから2番目に近い頂点は頂点bであり、その間には辺がなく、GSアルゴリズムで頂点cから頂点aには到達不可能であるから、辺を張る。一方、頂点cから2番目に近い頂点は頂点aであるが、頂点aからは頂点cへは、既に張られている頂点ab間の辺を利用して、GSアルゴリズムで到達可能であるため、頂点cとaとの間には辺は張られない。但し、generation typeであれば、頂点cとaとの間には辺が張られることになる。図5(c)は、3−DRグラフを、2−DRグラフから構築したときの図である。
k−DRグラフ構築部122は、複数のセグメント長の各々について、当該セグメント長に対するK−NNリストから、上述したようにkの各値に対するk−DRグラフ(但し、kの最大値kmaxはKより小さいか等しい)を構築し出力する。
グラフ索引記憶部20は、グラフ索引構築部12によって生成されたk−DRグラフをセグメント長ごとに記憶する。
探索処理部30は、グラフ索引記憶部20に記憶されたグラフと入力部1により入力されたクエリ時系列データとを入力とし、グラフを索引として用いて、クエリ時系列データに類似するオブジェクト集合に相当する部分時系列データ集合を探索して出力する。ここでは、クエリ時系列データに最も類似する部分時系列データからDTWスコアに関して昇順にT番目までの部分時系列データを出力する。これは、最も類似する部分時系列データを出力する問題を含み、あるDTWスコア内の部分時系列データを出力する問題(Range queryとも呼ばれる)にも容易に拡張できる。
探索処理部30は、グラフ索引選択部32及びグラフ探索部34から構成される。
グラフ索引選択部32は、入力部1により入力されたクエリ時系列データのセグメント長を抽出し、当該セグメント長より大きく、かつ最小のセグメント長に対するグラフ索引(k−DRグラフ)を、グラフ索引構築部12において構築されたグラフ索引から選択する。
ここで、選択されるk−DRグラフの構造パラメータkは、上記非特許文献4で示されるように最類似部分時系列データを得られる確率を元にして、選択してもよい。また、上記非特許文献3で示されるような、最良優先探索コストが最小になるkを選択してもよい。更に、ある程度大きいk、例えばk=200、を選択するだけでもよい。
グラフ探索部34は、グラフ索引選択部32で選択されたk−DRグラフを用いて、入力部1により入力されたクエリ時系列データに類似する部分時系列データを探索する。
探索アルゴリズムは、2つの主たるアルゴリズム、複数の初期頂点を用いた貪欲探索(MSGS)アルゴリズムと幅優先探索(breadth-first search: BFS)アルゴリズムとから成る。初めにMSGSアルゴリズムを、次にBFSアルゴリズムを説明する。
MSGSアルゴリズムは、複数のGSアルゴリズムと同一である。複数のGSアルゴリズムは、1つの処理装置で順次実行される。一方、分散並列処理が可能である場合は、複数のGSアルゴリズムを各処理装置で実行でき、GSアルゴリズムの数が利用可能な処理装置との数よりも大きければ、並列処理と逐次処理とを組み合わせて実行することができる。
簡単のために、図6に示す12頂点からユークリッド距離に基づいて構築された3−DRグラフを用いて、与えられたクエリに最近傍頂点から5つの頂点を求める(TNN集合を求める、但しT=5)GSアルゴリズムを詳述する。クエリqが与えられたとき、TNN集合は空集合で初期化され、同時に1つの初期頂点を一様ランダムに選択する。この場合は頂点nを選択したとする(図6(a))。このとき、頂点nはTNN集合の要素となる。クエリと頂点nとの距離を計算し、次に頂点nの隣接頂点p,fとクエリとの距離を計算し、頂点p,fをTNN集合の要素とする。隣接頂点の中で頂点n(その頂点の隣接頂点とクエリとの距離が計算されている、または計算される頂点を展開頂点と呼ぶため、頂点nは展開頂点である)よりもクエリに近い頂点fに移動し、頂点fを展開頂点とする。展開頂点fの隣接頂点であってクエリとの距離が未計算である頂点e,g,hとクエリとの距離を計算し、展開頂点よりもクエリに近い頂点gに移動する(図6(b))。このとき、クエリからの距離の小さい順に5つの頂点をTNN集合の要素とする、即ち、頂点g,h,f,e,pが要素である。展開頂点gの隣接頂点であってクエリとの距離が未計算である頂点はなく、頂点gがクエリに最も近い頂点であるため、GSアルゴリズムは終了し、頂点gを結果として返す(図6(c))。このとき、TNN集合の要素は不変である。ここで、GSアルゴリズムが終了した頂点をアトラクタと呼ぶ。MSGSアルゴリズムは、前記GSアルゴリズムを複数回実行するアルゴリズムであり、この繰り返しによりTNN集合は更新される。また、MSGSアルゴリズムは、1つ以上であってGSアルゴリズムの数以下のアトラクタを返す。分散並列処理でMSGSアルゴリズムが実行された場合は、各処理装置で得られたTNN集合は、集約されクエリに近い順にT個の要素がTNN集合の要素となる。
次に、MSGSアルゴリズムにより得られたTNN集合の精度を向上させるために、得られたアトラクタをルートとする幅優先探索(BFS)アルゴリズムを実行する。前記GSアルゴリズムの説明に用いたグラフ索引を利用し、図7を用いて、BFSアルゴリズムを説明する。MSGSアルゴリズムを実行した結果、クエリに対する最近傍アトラクタが頂点gであったとする。BFSアルゴリズムは、頂点gをルートとして実行される。頂点gの隣接頂点f,h(深さ1と呼ぶ)がクエリとの距離計算済であるかを判定し、距離計算済であれば、何もしない(図7(a))。深さ2の頂点の隣接頂点についても同様の判定を行う(図7(b))。深さ2の頂点は、頂点e,m,nである。頂点hの隣接頂点mのクエリに対する距離が未計算であるため、その距離計算を実行し、TNN集合においてクエリから最遠の頂点pよりもクエリに近いため、頂点mをTNN集合の要素とし、頂点pを要素から削除する。次に深さ3の隣接頂点d,r,pのうち、距離未計算の頂点は、頂点d,rであるため、これらとクエリとの距離を計算する。結果として、頂点dはTNN集合のうちの最遠頂点であるmよりもクエリに近いため、TNN集合の要素となり、頂点mは削除される(図7(c))。深さ4の隣接頂点であって、深さ3以内の頂点でない頂点は、頂点a,cである。クエリと頂点a,cとの距離を計算し、結果としてTNN集合の最遠頂点よりも遠いことを確認する。深さ4の頂点の全てがTNN集合の要素にならないので、BFSアルゴリズムは終了する(図7(c))。このように、ある深さの頂点の全てがTNN集合の要素でなければ、BFSアルゴリズムは終了する。複数のアトラクタが得られている場合は、クエリとの距離の小さいアトラクタから順にBFSアルゴリズムを実行する。あるアトラクタがTNN集合のうちの最遠頂点よりもクエリよりも遠いとき、アトラクタ集合に対するBFSアルゴリズムは終了し、このときに得られているTNN集合が最終結果となる。
図6と図7との探索アルゴリズムの説明は、簡単化のために、2次元座標上の点と頂点とを一致させ、頂点間の非類似度としてユークリッド距離を用いた。実際には、時系列データの場合は、頂点はポステリアグラム列で表現され、時系列データ間の非類似度にはDTWスコアが用いられる。
出力部3は、探索結果として得られるTNN集合を、ユーザに対して出力する。
<時系列データ探索装置の動作>
次に、本実施の形態に係る時系列データ探索装置100の作用について説明する。まず、被探索時系列データ集合、オブジェクト間の非類似度の定義、及びセグメント長に関する変数が入力部1を介して時系列データ探索装置100に入力されると、被探索時系列データ集合、オブジェクト間の非類似度の定義、及びセグメント長に関する変数が、時系列データデータベース10に格納される。そして、時系列データ探索装置100において、図8に示すグラフ構築処理ルーチンが実行される。
まず、ステップS100において、時系列データデータベース10に記憶されている、セグメント長に関する変数に基づいて、セグメント長を設定する。
そして、ステップS102において、K−NNリスト生成部121により、図9に示すK−NNリスト生成処理ルーチンが実行される。
<K−NNリスト生成処理ルーチン>
まず、ステップS1021において、設定されたセグメント長を用いて、上記図4に示すように、1つの時系列データに対してフレームiを先頭とするクエリオブジェクトxを設定する。
次に、ステップS1022において、上記ステップS1021で設定されたクエリオブジェクトxと、全ての時系列データにおける他のフレームを先頭とするオブジェクトの各々とのDTWスコアを計算し、メモリ(図示省略)に記憶する。
次に、ステップS1023において、上記ステップS1022で算出されたDTWスコアに基づいて、クエリオブジェクトに類似する上位K個のオブジェクト(DTWスコアが小さいK個のオブジェクト)をリスト候補として選択する。
ステップS1024では、上記ステップS1023で選択されたK個のオブジェクトを、クエリオブジェクトxに類似するオブジェクトとして格納したK−NNリストを作成し、メモリ(図示省略)に記憶する。
次に、ステップS1025において、全ての時系列データにおける全てのフレームをクエリオブジェクトの先頭として処理が終了したか否かを判定する。クエリオブジェクトの先頭として設定していないフレームが存在する場合には、上記ステップS1021へ戻り、当該フレームを先頭として設定する。一方、全てのフレームをクエリオブジェクトの先頭として上記ステップS1021〜ステップS1024の処理を実行した場合には、ステップS1026へ移行する。
ステップS1026では、上記ステップS1024で生成されたクエリオブジェクトごとのK−NNリストを統合して、当該セグメント長に対するK−NNリストを生成し、メモリに格納して、処理ルーチンを終了する。
次に、上記図8に示すグラフ構築処理ルーチンに戻り、ステップS104において、時系列データデータベース10に記憶されているセグメント長に関する変数に基づいて定められる全てのセグメント長毎に、ステップS100〜ステップS102の処理を実行したか否かを判定する。ステップS100〜ステップS102の処理を実行していないセグメント長が存在する場合には、上記ステップS100へ戻り、当該セグメント長に対してステップS100〜ステップS102の処理を実行する。一方、全てのセグメント長毎に上記ステップS100〜ステップS102の処理を実行した場合には、ステップS106へ移行する。
ステップS106において、時系列データデータベース10に記憶されたセグメント長に関する変数に基づいて、セグメント長を設定する。
次に、ステップS108において、k−DRグラフ構築部122により、図10に示すk−DRグラフ生成処理ルーチンが実行される。
<k−DRグラフ生成処理ルーチン>
まず、ステップS1041において、上記ステップS102で生成された当該セグメント長に対するK−NNリストに基づいて、K−NNリストに含まれるオブジェクト集合に対応するすべての頂点xに対する1−DRグラフΓ(x)を求める。なお、頂点xは1つのオブジェクトxに対応するグラフ上の点である。1−DRグラフΓ(x)は、以下の(2)式で示される要素である。
ここで、N1(x)は、任意の頂点xに対して、最も非類似度が小さい頂点である。
すなわち、頂点x(x∈X、Xはオブジェクト集合)との非類似度が最も小さい近傍頂点N1(x)を、オブジェクト集合中から求め、この近傍頂点N1(x)との間に無向リンクを生成する。
そして、任意の頂点xに対する1−DRグラフΓ(x)を抽出する。
次に、ステップS1042において、構造パラメータk(以下、適宜kと記載)を2に設定する(k←2)。
次に、ステップS1043において、上記K−NNリストに基づいて、頂点xに対する近傍頂点集合Nk(x)および近傍頂点集合Nk−1(x)を求める。
そして、ステップS1044において、求めた近傍頂点集合Nk(x)と、近傍頂点集合Nk−1(x)との差集合である頂点yを求める(y=Nk(x)−Nk−1(x))。すなわち、頂点xからk番目に非類似度の小さい頂点yを、オブジェクト集合に対応する頂点の中から抽出する。なお、頂点xは第1の頂点の一例であり、頂点yは第2の頂点の一例である。
そして、ステップS1045において、GSアルゴリズムに従って、頂点yを初期頂点とし、頂点xをクエリとして、頂点xに類似する頂点x*を探索する。ステップS1046では、上記ステップS1045におけるGSアルゴリズムに基づく探索処理の結果、出力された頂点x*が、頂点xと等しい(x=x*)か否かを判定する。すなわち、DRグラフΓにおいて、頂点xおよび頂点yに対してGSアルゴリズムによる探索処理を行うことをGS(x,y,Γ)で表すと、ステップS1046は、x=GS(x,y,Γ)が、真であるか否かを判定することになる。
上記ステップS1046の結果、頂点x*が、頂点xと等しい場合、ステップS1049へ移行する。すなわち、新たなリンクを生成しない。
上記ステップS1046の結果、頂点x*が、頂点xと等しくない場合、ステップS1047において、以下の(3)式を満たす要素zを求める。すなわち、近傍頂点集合Nk−1(x)と、要素xとの和集合のうちで、最も頂点yとの非類似度が小さい頂点zを求める。
そして、ステップS1048において、以下の(4)式を実行することによって、頂点zと頂点yとの間に新しいリンクを生成する。
すなわち、頂点zを頂点yに対する(k−1)−DRグラフΓ(y)に加え、頂点yを頂点zに対する(k−1)−DRグラフΓ(z)に加えることで、頂点yと頂点zとの間に、無向リンクを生成する。これにより、頂点yと、頂点xに直接的にリンク結合している頂点x以外の頂点zとを、直接的にリンク結合する。
なお、本実施の形態では、近傍頂点集合Nk−1(x)と、要素xとの和集合のうちで、最も頂点yとの非類似度が小さい頂点zと、頂点yとをリンク結合する場合を例に説明したが、これに限定されるものではない。例えば、上記ステップS1046の結果、頂点x*が、頂点xと等しくない場合、頂点xと頂点yとを直接的にリンク結合するようにしてもよい。
そして、ステップS1049において、オブジェクト集合に対応するすべての頂点xに対して、上記ステップS1043からステップS1048の処理を行ったか否かを判定する。
上記ステップS1049の結果、すべての頂点xに対して、処理を行っていない場合、新たな頂点xを取得し、ステップS1043の処理へ戻る。
一方、上記ステップS1049の結果、すべての頂点xに対して、処理を行った場合、ステップS1050へ移行する。
次に、ステップS1050において、kがグラフ作成対象の値であるか否かを判定する。すなわち、本実施の形態ではk=10,20,...,200のk−DRグラフを作成するため、k=10,20,...,200であるか否かを判定する。そして、kがグラフ作成対象の値である場合には、ステップS1051へ移行し、ステップS1051において、取得した各頂点xに対するk−DRグラフΓ(x)を、k−DRグラフとしてグラフ索引記憶部20に記憶する。kがグラフ作成対象の値でない場合には、ステップS1052へ移行する。
ステップS1052では、kの値が、グラフ作成対象の値の最大値に到達したか否かを判定する。kの値が、グラフ作成対象の値の最大値に到達していない場合には、ステップS1053へ移行する。一方、kの値が、グラフ作成対象の値の最大値に到達した場合には、k−DRグラフ生成処理ルーチンを終了する。
次のステップS1053において、kを1だけインクリメントして、上記ステップS1043の処理へ戻る。
次に、上記図8に示すグラフ構築処理ルーチンに戻り、ステップS110において、時系列データデータベース10に記憶されているセグメント長に関する変数に基づいて定められる全てのセグメント長毎に、ステップS106〜ステップS108の処理を実行したか否かを判定する。ステップS106〜ステップS108の処理を実行していないセグメント長が存在する場合には、上記ステップS106へ戻り、当該セグメント長に対してステップS106〜ステップS108の処理を実行する。一方、全てのセグメント長毎に上記ステップS106〜ステップS108の処理を実行した場合には、ステップS112へ移行する。
ステップS112において、上記ステップ108で生成されたセグメント長ごとのk−DRグラフをグラフ索引記憶部20へ記憶して処理ルーチンを終了する。
そして、クエリ時系列データが時系列データ探索装置100に入力されると、時系列データ探索装置100によって、図11に示す時系列データ探索処理ルーチンが実行される。
まず、ステップS200において、入力部1により入力されたクエリ時系列データから、クエリ時系列データの長さに相当するセグメント長を抽出する。
次に、ステップS202において、上記ステップS200で抽出されたクエリ時系列データのセグメント長に基づいて、探索用グラフ索引のセグメント長を選択する。ここで、クエリ時系列データのセグメント長より大きい最小の探索用グラフ索引のセグメント長を選択する。
次に、ステップS204において、k−DRグラフの構造パラメータkを設定する。構造パラメータkは、上記ステップS108でグラフ索引記憶部20へ記憶されたk−DRグラフを選択するためのパラメータである。
次に、ステップS206において、上記ステップS202で選択された探索用グラフ索引のセグメント長と、上記ステップS204で設定された構造パラメータkとに基づいて、グラフ索引記憶部20に記憶された、対応するk−DRグラフを読み込む。
次に、ステップS208において、図12に示す探索処理ルーチンが実行される。
<探索処理ルーチン>
まず、ステップS2081において、上記MSGS探索アルゴリズムに従って、クエリ時系列データに類似するT個の部分時系列データを探索する。そして、クエリ時系列データに類似するT個の部分時系列データから成るTNN(top T nearest neighbors:最類似からT近傍)集合を生成する。
次に、ステップS2082において、上記ステップS2081で生成されたTNN集合の精度を向上させるために、上記BFS探索アルゴリズムを実行し、TNN集合を更新して生成し、処理ルーチンを終了する。
次に、上記図11に示す時系列データ探索処理ルーチンに戻り、ステップS210において、上記ステップS208で得られたTNN集合を出力部3より出力して、処理ルーチンを終了する。
以上説明したように、第1の実施の形態によれば、予め定められたセグメント長の各々について生成された、部分時系列データに対応する頂点における頂点間ネットワークを表わすグラフから、クエリ時系列データのセグメント長より長いセグメント長であって、かつ、セグメント長が最も短いセグメント長について生成されたグラフを選択し、選択したグラフを用いてクエリ時系列データに類似する部分時系列データを探索することにより、少ない計算量で、クエリ時系列データに類似する部分時系列データを精度よく探索することができる。
また、オフライン処理で被探索時系列データ集合から近傍グラフ索引を構築し、クエリ時系列データが入力された後のオンライン処理で、非常に小さい計算量で高速に、クエリ時系列データに類似する時系列データを被探索時系列データ集合から発見することができる。
[第2の実施の形態]
<システム構成>
次に、本発明の第2の実施の形態について説明する。なお、第2の実施の形態に係る時系列データ探索装置の構成は、第1の実施の形態と同様の構成となるため、同一符号を付して説明を省略する。
第2の実施の形態では、複数のグラフ索引を選択し、当該選択された複数のグラフ索引を用いて、分散並列処理により、クエリ時系列データに類似する部分時系列データを同時に探索する点が、第1の実施の形態と異なっている。
第2の実施の形態に係る時系列データ探索装置100のグラフ索引選択部32は、入力部1により入力されたクエリ時系列データのセグメント長を抽出し、当該セグメント長に基づいて、複数のグラフ索引(k−DRグラフ)をグラフ索引記憶部20に記憶されたグラフ索引から選択する。
ここで、2つのグラフ索引を選択する場合には、1つ目のグラフ索引は、入力部1により入力されたクエリ時系列データのセグメント長より大きく、かつ最小のセグメント長に対するグラフ索引を選択する。そして、2つ目のグラフ索引は、当該クエリ時系列データのセグメント長を上回らない最大のセグメント長に対するグラフ索引を選択する。
3つのグラフ索引を選択する場合には、3つ目のグラフ索引として、当該クエリ時系列データのセグメント長よりも2番目に大きいセグメント長に対応するグラフ索引を選択し、4つのグラフ索引を選択する場合には、4つ目のグラフ索引として、2つ目のグラフ索引のセグメント長の次に小さいセグメント長に対応するグラフ索引を選択する。
グラフ探索部34では、グラフ索引選択部32で選択された複数のk−DRグラフを用いて、入力部1により入力されたクエリ時系列データに類似する部分時系列データを、グラフ索引毎に同時に探索する。そして、グラフ索引毎にTNN集合を作成する。
グラフ探索部34は、グラフ索引毎に探索結果として得られるTNN集合を、統合して新たなTNN集合とし、出力部3によりユーザに対して出力する。
なお、第2の実施の形態に係る時系列データ探索装置の他の構成及び作用については、第1の実施の形態と同様であるため、説明を省略する。
以上説明したように、第2の実施の形態に係る時系列データ探索装置100によれば、予め定められたセグメント長の各々について生成された部分時系列データに対応する頂点における頂点間ネットワークを表わすグラフから、複数のグラフを選択し、選択した複数のグラフを用いてクエリ時系列データに類似する部分時系列データをグラフ毎に同時に探索することにより、少ない計算量で、クエリ時系列データに類似する部分時系列データを精度よく探索することができる。
なお、上記の第2の実施の形態では、異なるセグメント長について生成した各グラフを用いて分散並列処理で探索を行う場合について説明したが、これに限定されるものではなく、異なるセグメント長について生成されたグラフを合併し、当該合併したグラフを用いて探索を行ってもよい。
例えば、クエリ時系列データのセグメント長より大きく、かつ最小のセグメント長に対するグラフと、クエリ時系列データのセグメント長より小さく、かつ最大のセグメント長に対するグラフとに対して、辺と頂点との各々について合併集合(Union)を取ったグラフを生成し、当該グラフを用いて探索を行ってもよい。
<実験例>
上記の第1の実施の形態の効果を実験結果に基づいて示す。実験のために音声発話データであるTIMITデータ集合を用いた。学習用発話データは、3696個の発話データの集合であり、被探索時系列データ集合は、944個の発話データ(時系列データ)の集合である。解くべき探索問題は次の通りである。
被探索時系列データ集合と2つの時系列データの非類似度であるDTWスコアとが与えられる。同一単語で発話が異なる複数の発話単語(例えば、単語はproblemであるが、発話が異なる複数個あること)がクエリ時系列データ集合として与えられたとき、その単語を部分時系列データとして含む可能性の高い時系列データを指定の個数だけ列挙する。但し、「可能性の高い」とは、クエリ時系列データ集合と時系列データとの統合DTWスコア(DTW score fusion)が小さいことである。DTW score fusion D'(Q,x)は(5)式で表される(非特許文献5)。Qはクエリ時系列データ集合,xは時系列データを表す。
式(5)中、qiは各々のクエリ時系列データを表し、その個数がmである。クエリ時系列データ(発話単語)として、5種類problem(Q06とも呼ぶ),children (Q07),surface(Q08),development(Q09),organizations(Q10)を用い、各々(発話単語の数, 真の正解発話データ数)=(22,8),(18,10),(3, 6),(9, 8),(7, 6)である。 探索性能を精度(指定した個数の発話データを出力した時のprecision)と計算量(DTWスコア計算回数)とで評価した。性能については、上記非特許文献1で示されたZhang-Glass法(ZG法)と比較した。また、本実施の形態におけるk−DRグラフの構造パラメータkを50とし、MSGS探索時の初期頂点数Lを10と設定した(k=50,L=10)。
図13は、指定した個数(順位閾値)に対する探索精度を示す。図13(a)は本実施の形態の結果、図13(b)はZG法の結果である。図中、P@Nは真の正解数だけ出力した場合のprecisionを表している。図から分かるように、本実施の形態とZG法とは同程度の探索精度である。
図14は、クエリ時系列データ毎の厳密なDTWスコア計算回数を示している。本実施の形態では、ZG法と比べて約1/10であることが分かる。
以上の実験結果から、本実施の形態は、既存法と同程度の探索精度で、約10倍高速化を達成したことが分かる。
従って、既存手法(非特許文献1)と比較して、真の解に対する精度を保ったままで、オンライン処理における探索計算量を約1/10に低減する、即ち、約10倍の高速化を達成するという効果が得られる。
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
例えば、オブジェクト集合の空間において、非類似度ではなく、類似度を定義するようにしてもよい。
また、上記の第1の実施の形態では、グラフ索引探索部32は、クエリ時系列データのセグメント長より長く、かつ最短のセグメント長に対するグラフのみを選択する場合を例に説明したが、これに限定されるものではなく、グラフ索引選択部32は、クエリ時系列データのセグメント長より小さく、かつ最大のセグメント長に対するグラフのみを選択するようにしてもよい。
また、時系列データデータベース10及びグラフ索引記憶部20は、外部に設けられ、時系列データ探索装置とネットワークで接続されていてもよい。
また、被探索時系列データ集合は、複数の発話から成る発話集合(発話データ)を用いる場合を例に説明したが、これに限定されるものではなく、他の時系列データにも適用することができる。
また、上述したアルゴリズムに従って、K−NNリストを生成する場合を例に説明したが、これに限定されるものではなく、他のアルゴリズムに従って、K−NNリストを生成するようにしてもよい。
また、上述したアルゴリズムに従って、k−DRグラフを生成する場合を例に説明したが、これに限定されるものではなく、他のグラフ生成アルゴリズムに従って、グラフを生成するようにしてもよい。
また、グラフ探索部34において用いられる探索アルゴリズムは、MSGS探索アルゴリズムとBFS探索アルゴリズムとの組み合わせである場合を例に説明したが、これに限定されるものではなく、他の探索アルゴリズムを用いてもよい。例えば、探索アルゴリズムとして、最良優先探索(best-first search:BS)アルゴリズムを用いることができる。
また、探索対象となる時系列データは、複数である場合を例に説明したが、これに限定されるものではなく、1つの時系列データを探索対象としてもよい。
上述のグラフ生成装置は、内部にコンピュータシステムを有しているが、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。