(58)【調査した分野】(Int.Cl.,DB名)
複数n個の系列データS
n(t)において、類似するデータを示す系列的な区間を、類似区間として検出する類似系列区間検出装置であって、
前記n個の系列データS
n(t)を記録する記録手段と、
前記n個の系列データS
n(t)を順番に連結して1つにまとめられた連結系列データを生成するとともに、該連結系列データの全体の系列的な長さLと、前記n個の系列データS
n(t)の連結順番および連結位置に関する情報とを、前記記録手段に記録する連結系列データ生成手段と、
前記連結系列データの始点と終点とを連結して円状を成す円状系列データf(t)を生成する円状系列データ生成手段と、
該円状系列データf(t)において類似区間と想定され得る最大の区間長をTとして、前記円状系列データf(t)より区間[t−T,t−1]の範囲で遡って系列データを抽出することによって、参照データZ(τ)(1≦τ≦T)を設定するとともに、前記参照データZ(τ)以外の前記円状系列データf(t)の残りの区間[t,t+L−T−1]の系列データを入力データg(x)(1≦x≦L−T)として設定するデータ設定手段と、
前記参照データZ(τ)と前記入力データg(x)との局所距離d(x,τ)(=‖g(x)−Z(τ)‖)を、連続DP処理に基づいて求める局所距離算出手段と、
該局所距離算出手段により求められた局所距離d(x,τ)に基づいて、連続DP処理における漸化式を用いて、局所距離の最小値D(x,τ)を求めると共に、求められた局所距離の最小値D(x,τ)を傾斜制限に基づいて決定される漸化式の重み付け係数kとτとで除算することにより、前記最小値D(x,τ)を正規化したA(x,τ)(=D(x,τ)/(k×τ))を求める正規化処理手段と、
該A(x,τ)が予め設定される閾値h以下となるτ(x)を、xの前後αの区間[x−α,x+α]からなるxの局所間隔(local interval of x)で算出し、算出されたτ(x)に基づいて、前記参照データZ(τ)と前記入力データg(x)とにおけるスポッティング点(x
*,τ
*)を、類似区間の最小の区間長を定める係数τ
0を用いて、
【数1】
に基づいて算出するスポッティング点算出手段と、
該スポッティング点(x
*,τ
*)に至る最適パスを、連続DP処理における累積値のバックトレース処理によって求めることにより、前記区間[x−α,x+α]において、前記参照データZ(τ)の区間[1,τ
*]に類似する前記入力データg(x)の類似区間を求める部分類似区間検出手段と、
該部分類似区間検出手段により求められた区間[x−α,x+α]の入力データg(x)における類似区間を、全てのxについて求めることにより、xの全区間における入力データg(x)の類似区間を求める全体類似区間検出手段と、
前記円状系列データf(t)のtの値を、1からLへと順番に増加させることにより、前記データ設定手段において、全てのtに対応する参照データZ(τ)と入力データg(x)とを設定させると共に、前記全体類似区間検出手段において、全てのtに対応する入力データg(x)の類似区間を求めさせることにより、円状系列データの全ての区間において類似区間の検出を行う円状類似区間検出手段と、
該円状類似区間検出手段により検出された類似区間が、前記n個の系列データにおけるどの系列データのどの区間に該当するかを、前記記録手段に記録された前記連結順番および前記連結位置に関する情報に基づいて求めることにより、n個の系列データにおける類似区間の検出を行う複数系列類似区間検出手段と
を備えることを特徴とする類似系列区間検出装置。
前記局所距離算出手段は、前記局所距離d(x,τ)を求める場合において、前記記録手段に記録された前記n個の系列データにおける前記連結位置の情報に基づいて、前記局所距離d(x,τ)におけるxが、前記n個の系列データのいずれかの終端点xaに該当するか否かを判断し、xが終端点xaに該当する場合には、局所距離d(xa,τ)の値として∞を設定することを特徴とする請求項1に記載の類似系列区間検出装置。
複数n個の系列データS
n(t)において、類似するデータを示す系列的な区間を、類似区間として検出する類似系列区間検出装置の類似系列区間検出プログラムであって、
連結系列データ生成手段に、記録手段に記録される前記n個の系列データS
n(t)を順番に連結して1つにまとめられた連結系列データを生成させるともに、該連結系列データの全体の系列的な長さLと、前記n個の系列データS
n(t)の連結順番および連結位置に関する情報とを、前記記録手段に記録させる連結系列データ生成ステップと、
円状系列データ生成手段に、前記連結系列データの始点と終点とを連結して円状を成す円状系列データf(t)を生成させる円状系列データ生成ステップと、
データ設定手段に、前記円状系列データf(t)において類似区間と想定され得る最大の区間長をTとして、前記円状系列データf(t)より区間[t−T,t−1]の範囲で遡って系列データを抽出させることによって、参照データZ(τ)(1≦τ≦T)を設定させるとともに、前記参照データZ(τ)以外の前記円状系列データf(t)の残りの区間[t,t+L−T−1]の系列データを入力データg(x)(1≦x≦L−T)として設定させるデータ設定ステップと、
局所距離算出手段に、前記参照データZ(τ)と前記入力データg(x)との局所距離d(x,τ)(=‖g(x)−Z(τ)‖)を、連続DP処理に基づいて求めさせる局所距離算出ステップと、
正規化処理手段に、前記局所距離算出ステップにおいて求められた局所距離d(x,τ)に基づいて、連続DP処理における漸化式を用いて、局所距離の最小値D(x,τ)を求めさせると共に、求められた局所距離の最小値D(x,τ)を傾斜制限に基づいて決定される漸化式の重み付け係数kとτとで除算することにより、前記最小値D(x,τ)を正規化したA(x,τ)(=D(x,τ)/(k×τ))を求めさせる正規化処理ステップと、
スポッティング点算出手段に、前記A(x,τ)が予め設定される閾値h以下となるτ(x)を、xの前後αの区間[x−α,x+α]からなるxの局所間隔(local interval of x)で算出させ、算出されたτ(x)に基づいて、前記参照データZ(τ)と前記入力データg(x)とにおけるスポッティング点(x
*,τ
*)を、類似区間の最小の区間長を定める係数τ
0を用いて、
【数2】
に基づいて算出させるスポッティング点算出ステップと、
部分類似区間検出手段に、前記スポッティング点(x
*,τ
*)に至る最適パスを、連続DP処理における累積値のバックトレース処理によって求めさせることにより、前記区間[x−α,x+α]において、前記参照データZ(τ)の区間[1,τ
*]に類似する前記入力データg(x)の類似区間を求めさせる部分類似区間検出ステップと、
全体類似区間検出手段により、前記部分類似区間検出ステップにおいて求められた前記区間[x−α,x+α]の前記入力データg(x)における類似区間を、全てのxについて求めさせることにより、xの全区間における前記入力データg(x)の類似区間を求めさせる全体類似区間検出ステップと、
円状類似区間検出手段に、前記円状系列データf(t)のtの値を、1からLへと順番に増加させることにより、前記データ設定ステップにおいて、全てのtに対応する参照データZ(τ)と入力データg(x)とを設定させると共に、前記全体類似区間検出ステップにおいて、全てのtに対応する入力データg(x)の類似区間を求めさせることにより、円状系列データの全ての区間において類似区間の検出を行わせる円状類似区間検出ステップと、
複数系列類似区間検出手段に、前記円状類似区間検出ステップにおいて検出された類似区間が、前記n個の系列データにおけるどの系列データのどの区間に該当するかを、前記記録手段に記録された前記連結順番および前記連結位置に関する情報に基づいて求めさせることにより、n個の系列データにおける類似区間の検出を行わせる複数系列類似区間検出ステップと
を実行させるための類似系列区間検出プログラム。
前記局所距離算出ステップにおいて、前記局所距離算出手段が、前記局所距離d(x,τ)を求める場合に、前記n個の系列データにおける前記連結位置の情報に基づいて、前記局所距離d(x,τ)におけるxが、前記n個の系列データのいずれかの終端点xaに該当するか否かを、前記局所距離算出手段に判断させ、xが終端点xaに該当する場合には、局所距離d(xa,τ)の値として∞を設定させるプログラムであることを特徴とする請求項4に記載の類似系列区間検出プログラム。
【背景技術】
【0002】
従来より、音声や動画などのような時系列的なデータにおいて、共通するデータ部分を検索することが通常的に行われている。このようなデータの検索には、一般的にクエリ(query)を用いて検索が行われる。ここで、クエリとは、検索処理を行うために設定(入力)される文字列・データ列などを意味している。クエリを用いて検索を行うことにより、検索対象データからクエリに該当するデータ列などを求めることが可能となる。
【0003】
例えば、クエリを用いて検索を行う方法として、検索対象となる系列的なデータにおいて、一定区間毎の特徴的なデータ分布を、ヒストグラムによって求めるActive Searchと呼ばれる方法(例えば、非特許文献1参照)が知られている。
【0004】
しかしながら、音声や動画などの検索対象データには、各種の変形やノイズなどが存在するため、クエリと厳密に一致するデータだけを検索したのでは、所望のデータを検索することが困難であった。このため、クエリと厳密に一致する(exact matching)データだけでなく、検索対象データとなる系列的なデータにおいて、類似するデータ(類似する区間)を検出する方法が求められている。このような検索方法では、大規模となる検索対象データとクエリとの組を検索対象とする拡張クエリ(extended query)という考え方が導入されている。
【0005】
この考え方を拡大・応用することによって、クエリとしてかなり長い時系列データを用いることができる。このため、長い時系列データのどの部分が厳密にクエリとして機能するかを、ユーザが予め認識しなくても、検索を行うことが可能である。この検索方法では、分節されていない長い記号列(自然言語文など)や、音声や動画などの特徴的な時系列データをクエリとして用いることができる。この検索方法として、Active Searchをベースに提案されたRIFASと呼ばれる方法(例えば、非特許文献2参照)が知られている。
【0006】
Active SearchやRIFASでは、検索対象データの一定の固定区間長においてヒストグラムを求めて類似性を求めることを特徴としている。しかしながら、求められたヒストグラムが同じであっても、異なる時系列データを表す場合もある。例えば、一定の固定区間長において、データA,B,C,Dが時系列的に連続する場合には、データABCDの順番で連続する場合であっても、データBADCの順番で連続する場合あっても、データCDABの順番で連続する場合あっても、同じヒストグラムとして検出されてしまう。この場合には、同じヒストグラムが検出されても、実際の時系列的なデータは異なったデータと判断される。このため、ヒストグラムが同一・類似したものであっても、区間系列におけるデータの類似性を正確に表すものとは言えなかった。
【0007】
また、一般的に、検索対象データにおける類似区間が、系列の中で一定の固定長を持つとは限らない。しかしながら、Active SearchやRIFASでは、固定区間長におけるヒストグラムを求めるため、類似する系列において長さが異なる場合が考慮されていないという問題があった。
【0008】
一方で、類似するデータと判断できる区間を検出する方法として、連続DP(Dynamic Programming:動的計画法)を用いて(例えば、非特許文献3参照)、系列における伸縮許容な距離に基づいて音声検出を行う方法が提案されている(非特許文献4参照)。連続DPは、例えば、2つの系列データにおけるマッチング演算を行うことにより類似するデータ(対応するパターンデータ)の検出を行う方法である。
【0009】
例えば、一方の系列データの要素n
1と比較対象となる他方の系列データの要素n
2との対応点で評価値を求める場合に、要素n
1の直前の要素(n−1)
1と、要素n
2の直前の要素(n−1)
2とを用いた、要素n
1と要素(n−1)
2との対応点、要素n
2と要素(n−1)
1との対応点、および要素(n−1)
1と要素(n−1)
2との対応点におけるそれぞれの評価値を用いて3種類の評価値を計算し、これらの3種類の評価値のうち最小となる対応点の評価値を記憶すると共に、最小の評価値をもたらした経路を記録する。この計算を全ての対応点について行い、全ての経路を記憶した後に、最小の評価値を示す経路(最適パス)を、バックトレース処理を用いて求めることにより、要素同士の対応関係において類似するデータのマッチングを求めることができる。
【0010】
また、連続DPをベースにして、2つの系列データにおいて、系列として類似するデータ(類似する区間)を検出するRIFCDPと呼ばれる方法(例えば、非特許文献5参照)が提案されている。RIFCDPでは、各時刻で連続DPによる出力求め、この出力に付随する最適履歴系列の中から部分系列を検出することを特徴としている。RIFCDPでは、連続DPをベースにしていることから、各時刻での連続DP出力に至る途中の累積値を記録しておき、全体履歴の任意の2点における累積値の差で部分区間の有無を判断する。RIFCDPでは、検出する類似区間の長さが一定でない点で、Active SearchやRIFASとは異なっている。
【0011】
しかしながら、RIFCDPにおいて連続DPにより求められる最適履歴系列は、対象となる2つの系列データの区間全体に基づいて得られるものである。このため、2つの系列データの全区間同士の最適マッチングを求めるために用いられる最適履歴系列では、2つの系列データの部分区間同士の最適マッチングを保証することができない。系列データの一部区間のデータが、区間全体に基づいて求められる履歴と最適にマッチングしていると判断することが困難である。さらに、2つの系列データの部分区間同士の最適マッチングを判断する場合には、全体履歴系列において任意の2点をとって部分区間を指定することになるが、この2点を指定するための組合せに関する問題が生じ得るという特徴があった。
【0012】
また、上述したRIFASやRIFCDPは、2つの長い系列データにおける類似区間の検出を目的とする方法であり、複数の系列データにおける類似区間の検出を行う場合に最適な方法とは言えなかった。このような多数の系列データ間で類似するデータを検出する計算方法としてRDDS法と呼ばれる方法が提案されている(例えば、非特許文献6参照)。
【発明の概要】
【発明が解決しようとする課題】
【0014】
RDDS法は、RIFASを多系列に拡張した方法と見なすことができる。実世界では、単に2つの系列データの間だけではなく、多数の系列データにおいて存在する類似区間(類似する部分データ)の検出を行うことが求められる傾向がある。例えば、複数の話者が議論する場合に、複数の話者の発する音声の系列群の中に、類似する発話区間がどれだけあるかによって、議論される内容(話題)を推定することができる。また、多数の遺伝子の塩基系列の間で、類似する部分系列(類似する部分データ)がどこに存在するかを推定する場合に応用することも可能である。しかしながら、RDDS法を用いて計算処理を行う場合には、セグメント長(一定固定長であり、この区間でヒストグラムを作成する)のn乗(nは系列の個数)を上限とする計算量が必要になると想定されており、nが大きい場合には、演算処理負担が増大するという問題があった。
【0015】
本発明は、上記問題に鑑みて成されるものであり、複数の系列データにおける類似する部分データの検索処理を行うにあたって、ヒストグラムを用いることなく、複数の系列データの間に存在する多様な長さを持つ類似区間の検出を、系列的なマッチングによって求めることが可能な類似系列区間検出装置および類似系列区間検出プログラムを提供することを課題とする。
【課題を解決するための手段】
【0016】
上記課題を解決するために、本発明に係る類似系列区間検出装置および類似系列区間検出プログラムは、複数n個の系列データS
n(t)において、類似するデータを示す系列的な区間を、類似区間として検出する類似系列区間検出装置および類似系列区間検出プログラムであって、前記n個の系列データS
n(t)のどの区間が前記類似区間に該当するかを求める演算手段を備え、該演算手段は、前記n個の系列データS
n(t)を順番に連結して1つにまとめた連結系列データの始点と終点とを連結して円状系列データf(t)を生成し、該円状系列データf(t)に対して、tから区間長Tまで遡った範囲[t,t−T]の系列データを参照データZ(τ)(1≦τ≦T)として設定すると共に、該参照データZ(τ)以外の前記円状系列データf(t)の残りの区間[t,t+L−T−1]の系列データを入力データg(x)(1≦x≦L−T)として設定し、連続DP処理を用いて、前記参照データZ(τ)と前記入力データg(x)とのスポッティング点(x
*,τ
*)を求め、求められたスポッティング点に至る最適パスを、連続DP処理において用いられる累積値のバックトレース処理によって求めることにより、前記参照データZ(τ)の区間[1,τ
*]の系列データに類似する前記入力データg(x)の類似区間を検出し、tを1からLまで変化させて、全てのtに基づいて参照データと入力データとを設定して前記類似区間の検出処理を行うことにより、前記円状系列データの全ての区間における類似区間の検出を行い、前記n個の系列データS
n(t)を連結して前記円状系列データを生成したときの連結位置および連結順番に関する情報に基づいて、前記円状系列データにおいて検出された前記類似区間が、前記n個の系列データにおけるどの系列データのどの区間に該当するかを求めることを特徴とする。
【0017】
さらに、本発明に係る類似系列区間検出装置および類似系列区間検出プログラムは、複数n個の系列データS
n(t)において、類似するデータを示す系列的な区間を、類似区間として検出する類似系列区間検出装置および類似系列区間検出プログラムであって、連結系列データ生成手段に、記録手段に記録される前記n個の系列データS
n(t)を順番に連結して1つにまとめられた連結系列データを生成させるともに、該連結系列データの全体の系列的な長さLと、前記n個の系列データS
n(t)の連結順番および連結位置に関する情報とを、前記記録手段に記録させる連結系列データ生成ステップと、円状系列データ生成手段に、前記連結系列データの始点と終点とを連結して円状を成す円状系列データf(t)を生成させる円状系列データ生成ステップと、データ設定手段に、前記円状系列データf(t)において類似区間と想定され得る最大の区間長をTとして、前記円状系列データf(t)より区間[t−T,t−1]の範囲で遡って系列データを抽出させることによって、参照データZ(τ)(1≦τ≦T)を設定させるとともに、前記参照データZ(τ)以外の前記円状系列データf(t)の残りの区間[t,t+L−T−1]の系列データを入力データg(x)(1≦x≦L−T)として設定させるデータ設定ステップと、局所距離算出手段に、前記参照データZ(τ)と前記入力データg(x)との局所距離d(x,τ)(=‖g(x)−Z(τ)‖)を、連続DP処理に基づいて求めさせる局所距離算出ステップと、正規化処理手段に、前記局所距離算出ステップにおいて求められた局所距離d(x,τ)に基づいて、連続DP処理における漸化式を用いて、局所距離の最小値D(x,τ)を求めさせると共に、求められた局所距離の最小値D(x,τ)を傾斜制限に基づいて決定される漸化式の重み付け係数kとτとで除算することにより、前記最小値D(x,τ)を正規化したA(x,τ)(=D(x,τ)/(k×τ))を求めさせる正規化処理ステップと、スポッティング点算出手段に、前記A(x,τ)が予め設定される閾値h以下となるτ(x)を、xの前後αの区間[x−α,x+α]からなるxの局所間隔(local interval of x)で算出させ、算出されたτ(x)に基づいて、前記参照データZ(τ)と前記入力データg(x)とにおけるスポッティング点(x
*,τ
*)を、類似区間の最小の区間長を定める係数τ
0を用いて、
【数1】
に基づいて算出させるスポッティング点算出ステップと、部分類似区間検出手段に、前記スポッティング点(x
*,τ
*)に至る最適パスを、連続DP処理における累積値のバックトレース処理によって求めさせることにより、前記区間[x−α,x+α]において、前記参照データZ(τ)の区間[1,τ
*]に類似する前記入力データg(x)の類似区間を求めさせる部分類似区間検出ステップと、全体類似区間検出手段により、前記部分類似区間検出ステップにおいて求められた前記区間[x−α,x+α]の前記入力データg(x)における類似区間を、全てのxについて求めさせることにより、xの全区間における前記入力データg(x)の類似区間を求めさせる全体類似区間検出ステップと、円状類似区間検出手段に、前記円状系列データf(t)のtの値を、1からLへと順番に増加させることにより、前記データ設定ステップにおいて、全てのtに対応する参照データZ(τ)と入力データg(x)とを設定させると共に、前記全体類似区間検出ステップにおいて、全てのtに対応する入力データg(x)の類似区間を求めさせることにより、円状系列データの全ての区間において類似区間の検出を行わせる円状類似区間検出ステップと、複数系列類似区間検出手段に、前記円状類似区間検出ステップにおいて検出された類似区間が、前記n個の系列データにおけるどの系列データのどの区間に該当するかを、前記記録手段に記録された前記連結順番および前記連結位置に関する情報に基づいて求めさせることにより、n個の系列データにおける類似区間の検出を行わせる複数系列類似区間検出ステップとを実行させることを特徴とする。
【0018】
ここで、系列データとは、音楽データや動画データのような時間要素を備えた系列的なデータ(以下、時系列データとする。)や、遺伝子の塩基系列のような遺伝子データや、自然言語文などのような分節されていない長い記号列などが該当する。また、静止画像についても、行または列を連結することにより1つの系列データとして扱うことができる。
【0019】
本発明に係る類似系列区間検出装置および類似系列区間検出プログラムでは、n個の系列データS
n(t)を順番に連結して円状の円状系列データf(t)を生成し、円状系列データf(t)に対して、区間長Tの参照データZ(τ)と、その他の区間からなる入力データg(x)とを設定し、連続DP処理を用いて、参照データZ(τ)と入力データg(x)との類似区間の検出(類似区間のマッチング)を行うことを特徴とする。このため、複数(n個)の系列データにおいて類似区間の検出処理を行う場合であっても、系列データの個数に依存することなく連続DP処理を適用することが可能となる。
【0020】
また、連続DP処理を用いて、参照データZ(τ)と入力データg(x)との類似区間の検出を行うことができるので、類似区間を固定区間に限定することなく、一定の伸縮の範囲を考慮した類似区間の検出を行うことができる。このため、類似区間の検出を、厳密に一致する(exact matching)データだけに限定するのではなく、好適に類似範囲や類似内容が拡張されたデータ(拡張クエリ:extended query)まで許容して、類似区間の検出を行うことが可能となる。
【0021】
さらに、本発明に係る類似系列区間検出装置および類似系列区間検出プログラムでは、円状系列データを用いて連続DP処理を行う拡張された連続DP処理(以下、Circle連続DPとする)を用いて類似区間の検出を行う。Circle連続DPを用いることにより、ヒストグラムを用いた類似区間の検出とは異なり、複数の系列間に存在する多様な長さを持つ類似区間の検出を行うことが可能となる。このため、ヒストグラムをベースとした類似区間の検出のように、ヒストグラムが同じであっても類似区間に該当しない場合や、類似区間の区間長が一致しないことにより類似区間として検出できない場合等の問題が生じることがない。
【0022】
また、ヒストグラムにより類似区間を検出するのではなく、連続DP処理を用いて類似区間の検出を行うため、セグメント長のn乗の計算量が想定される従来の検出手法よりも、計算量を低減することが可能である。Circle連続DPを用いる方法では、演算を、円状系列データにおける全区間長Lの2乗オーダーの計算量に抑えることができ、対象とする時系列データの全系列数nには依存しない。このため、Circle連続DPによる類似区間の検出方法を、系列数が増大する大規模な時系列データ処理に適したアルゴリズムとして利用することができる。
【0023】
さらに、Circle連続DPを用いて類似区間の検出を行うことにより、tに基づいて円状系列データから参照データと入力データとが抽出され、さらにtを1からLまで増加させることにより、円状系列データの全ての区間において、参照データと入力データとを設定することができるので、結果として、複数の系列データの全ての区間において類似区間の検索処理を行うことが可能となる。さらに、複数の系列データが円状に連結された円状系列データに基づいて類似区間の検出が行われるため、類似区間が異なる系列データに存在する場合であっても、同じ系列データ(1つの系列データ)の中に複数の類似区間が存在する場合であっても、適切に類似区間を検出することができる。
【0024】
また、本発明に係る類似系列区間検出装置および類似系列区間検出プログラムでは、局所距離の最小値D(x,τ)を傾斜制限に基づいて決定される漸化式の重み付け係数kとτとで除算することにより、最小値D(x,τ)を正規化したA(x,τ)を求め、求められたA(x,τ)に基づいて参照データZ(τ)と入力データg(x)のスポッティング点(x
*,τ
*)を求めることを特徴とする。
【0025】
従来の連続DP処理では、比較対象となる参照データの全体の区間長Tを用いて、最小値D(x,τ)を重み付け係数kとTとで割る方法を用いることが通常であった。しかしながら、区間長Tは、想定される類似する区間の最大の長さに基づいて設定される値であり、実際に類似区間は、区間長Tよりも短くなる可能性が高い。このため、最小値D(x,τ)をTで割る方法では、連続DPにおける参照データとして、類似する区間以外の区間をも含んだ全区間を基準として、入力データとのマッチング処理を行ってしまうことになり、類似した区間同士の最適なマッチングを保証することができなくなってしまうおそれがある。
【0026】
一方で、本発明に係るCircle連続DPでは、τが取り得る範囲である区間[1,T]の中(1≦τ≦Tの中)で、D(x,τ)/(k×τ)の最小値をとるτ
*を用いることで、最大の区間長Tの範囲ではなく、より短い区間[1,τ
*]を基準として類似区間の検出を行うことが可能となり、類似する区間の検出精度(マッチング精度)を向上させることが可能となる。
【0027】
また、上述した類似系列区間検出装置において、前記局所距離算出手段は、前記局所距離d(x,τ)を求める場合において、前記記録手段に記録された前記n個の系列データにおける前記連結位置の情報に基づいて、前記局所距離d(x,τ)におけるxが、前記n個の系列データのいずれかの終端点x
aに該当するか否かを判断し、xが終端点x
aに該当する場合には、局所距離d(x
a,τ)の値として∞を設定するものであってもよい。
【0028】
さらに、上述した類似系列区間検出プログラムは、前記局所距離算出ステップにおいて、前記局所距離算出手段が、前記局所距離d(x,τ)を求める場合に、前記n個の系列データにおける前記連結位置の情報に基づいて、前記局所距離d(x,τ)におけるxが、前記n個の系列データのいずれかの終端点x
aに該当するか否かを、前記局所距離算出手段に判断させ、xが終端点x
aに該当する場合には、局所距離d(x
a,τ)の値として∞を設定させるプログラムであってもよい。
【0029】
本発明に係る円状系列データf(t)は、複数の系列データが連結された円状のデータである。このため、例えば、検出された区間が、ある系列データの終端点(x
aとする)に該当する場合に、次に連結された時系列データの始端点(x
bとする)にも該当することになる。このため、終端点x
aにおける局所距離d(x
a,τ)の値と、始端点x
bにおける局所距離d(x
b,τ)の値とは、同じ値となってしまい、重複した計算を行うことになってしまう。従って、xが終端点x
aに該当する場合には、終端点x
aにおける局所距離d(x
a,τ)を∞に設定すること(d(x
a,τ)=∞)により、局所距離の最小値D(x,τ)の計算等の重複を防止することが可能となる。このように始端点と終端点とにおける重複検出を防止することにより、一度検出された類似区間を円状系列データにおける検索対象データから除くことができ、Circle連続DPによる計算処理の負担を軽減することが可能となる。
【発明の効果】
【0030】
本発明に係る類似系列区間検出装置および類似系列区間検出プログラムでは、n個の系列データS
n(t)を順番に連結して円状の円状系列データf(t)を生成し、円状系列データf(t)に対して、区間長Tの参照データZ(τ)と、その他の区間からなる入力データg(x)とを設定し、連続DP処理を用いて、参照データZ(τ)と入力データg(x)との類似区間の検出(類似区間のマッチング)を行うことを特徴とする。このため、複数(n個)の系列データにおいて類似区間の検出処理を行う場合であっても、系列データの個数に依存することなく連続DP処理を適用することが可能となる。
【0031】
また、連続DP処理を用いて、参照データZ(τ)と入力データg(x)との類似区間の検出を行うことができるので、類似区間を固定区間に限定することなく、一定の伸縮の範囲を考慮した類似区間の検出を行うことができる。このため、類似区間の検出を、厳密に一致する(exact matching)データだけに限定するのではなく、好適に類似範囲や類似内容が拡張されたデータ(拡張クエリ:extended query)まで許容して、類似区間の検出を行うことが可能となる。
【0032】
さらに、本発明に係る類似系列区間検出装置および類似系列区間検出プログラムでは、円状系列データを用いて連続DP処理を行う拡張された連続DP処理(以下、Circle連続DPとする)を用いて類似区間の検出を行う。Circle連続DPを用いることにより、ヒストグラムを用いた類似区間の検出とは異なり、複数の系列間に存在する多様な長さを持つ類似区間の検出を行うことが可能となる。このため、ヒストグラムをベースとした類似区間の検出のように、ヒストグラムが同じであっても類似区間に該当しない場合や、類似区間の区間長が一致しないことにより類似区間として検出できない場合等の問題が生じることがない。
【0033】
また、ヒストグラムにより類似区間を検出するのではなく、連続DP処理を用いて類似区間の検出を行うため、セグメント長のn乗の計算量が想定される従来の検出手法よりも、計算量を低減することが可能である。Circle連続DPを用いる方法では、演算を、円状系列データにおける全区間長Lの2乗オーダーの計算量に抑えることができ、対象とする時系列データの全系列数nには依存しない。このため、Circle連続DPによる類似区間の検出方法を、系列数が増大する大規模な時系列データ処理に適したアルゴリズムとして利用することができる。
【0034】
さらに、Circle連続DPを用いて類似区間の検出を行うことにより、tに基づいて円状系列データから参照データと入力データとが抽出され、さらにtを1からLまで増加させることにより、円状系列データの全ての区間において、参照データと入力データとを設定することができるので、結果として、複数の系列データの全ての区間において類似区間の検索処理を行うことが可能となる。さらに、複数の系列データが円状に連結された円状系列データに基づいて類似区間の検出が行われるため、類似区間が異なる系列データに存在する場合であっても、同じ系列データ(1つの系列データ)の中に複数の類似区間が存在する場合であっても、適切に類似区間を検出することができる。
【発明を実施するための形態】
【0036】
以下、本発明に係る類似系列区間検出装置について、図面を用いて詳細に説明を行う。
【0037】
図1は、類似系列区間検出装置の一例である検出装置の概略構成を示したブロック図である。検出装置1は、一般的なコンピュータにより構成することができ、
図1に示すように、CPU(Central Processing Unit)(演算手段、連結系列データ生成手段、円状系列データ生成手段、データ設定手段、局所距離算出手段、正規化処理手段、スポッティング点算出手段、部分類似区間検出手段、全体類似区間検出手段、円状類似区間検出手段、
複数系列類似区間検出手段)2と、ROM(Read Only Memory)3と、RAM(Random Access Memory)(記録手段)4と、記録部(記録手段)5と、ディスプレイ部6と、操作部7とにより概略構成されている。
【0038】
CPU2は、複数の系列データの中から類似する部分データの検出を行う機能を有している。CPU2は、後述する処理プログラム(例えば、
図9のフローチャートに基づくプログラム)に従って、類似する部分データの検出処理を行う。
【0039】
本実施の形態に係る検出装置1では、系列データとして時系列データ(時間要素を備えた系列的なデータ)を一例として示して説明を行う。時系列データとして、例えば、音声データや動画データなどのような時系列的に内容が変化し得るデータが該当する。動画データの場合には、動画データの1フレーム毎の画像データを走査線に沿って複数に分割することにより1画面を時系列データとしてとらえることができ、音声データと同様の時系列データとして捉えることができる。
【0040】
また、静止画像についても、行または列を連結することにより1つの時系列データとして扱うことができる。本実施の形態に係る検出装置1を用いることにより、複数の静止画像の間において、背景に依存しない類似部分画像の抽出を行うことが可能になる。このような背景に依存しない類似部分の抽出処理は、画像処理においてもっとも困難な処理であるとされている。
【0041】
さらに、本実施の形態において用いる時系列データは、時系列的に有限なデータを前提とする。また、時系列データにおいて検索対象とするデータの時系列的な長さ(データの時系列的な部分)を「区間」という表現を用いて説明を行う。
【0042】
RAM4は、CPU2の処理に利用されるワークエリアとして用いられる。ROM3には、時系列データにおける類似する区間の検出処理に関するプログラム等が記録されている。CPU2は、ROM3より読み込んだプログラムに従って、類似する区間の検出処理を行う。
【0043】
記録部5には、複数の時系列データなどが記録されている。本実施の形態に係る記録部5は、一般的なハードディスクにより構成されている。なお、記録部5の構成は、ハードディスクだけに限定されるものではなく、フラッシュメモリ、SSD(Solid State Drive / Solid State Disk)などのように、複数の時系列データを、CPU2によって読み出し可能な状態で記録することが可能であり、後述する連結位置や連結順番に関する情報を記録することが可能なものであるならば、具体的な構成は特に限定されるものではない。
【0044】
なお、本実施の形態に係る検出装置1では、CPU2において実行されるプログラム(類似する区間の検出処理に関するプログラム:
図9参照)を、ROM3に記録する構成として説明を行うが、これらのプログラムは、記録部5に記録されるものであってもよい。
【0045】
ディスプレイ部6は、記録部5に記録される時系列データなどをユーザに対して視認可能に表示させ、また、CPU2による類似する区間の検出処理結果を表示させる役割を有している。ディスプレイ部6には、液晶ディスプレイや、CRTディスプレイなどの一般的な表示装置が用いられる。
【0046】
操作部7は、ユーザが検出装置1を操作するために必要なデータの入力や、検出装置1の具体的な操作などを行う場合に用いられる装置であって、一般的なキーボードやマウスなどにより構成される。
【0047】
CPU2は、ROM3より演算処理に必要なプログラムを読み取り、読み取ったプログラムに従って、記録部5に記録される複数の時系列データを読み出して、類似する区間の検出処理を行う。以下に、CPU2が行う処理の内容を説明し、その後、CPU2の具体的な処理手順を、フローチャートを示して説明する。
【0048】
まず、CPU2が行う処理内容を理解するための考え方について説明する。CPU2では、複数の時系列データにおいて類似する部分的なデータ(類似区間)が存在するか否かを判断し、類似する区間が存在する場合には類似する部分の検出を行う。このような類似する区間を検出するために、本実施の形態に係る検出装置1では、Circle連続DPと呼ばれる処理方法を用いる。
【0049】
図2(a)は、複数の時系列データ(系列データS
n(t))を示した概念図であり、
図2(a)には、S
1(t)からS
n(t)までのn個の時系列データが示されている。時系列データの個数は特に限定されないが、本実施の形態では、nを3以上の数とする。各時系列データはそれぞれ一定の時系列的な長さを備えており、時間tの関数として示すことが可能となっている。なお、
図2(a)に示されるn個の時系列データの長さは、便宜上同じ長さで示されているが、各時系列データの長さは、必ずしも全て同じ長さとは限らず、それぞれ異なる長さであってもよい。
【0050】
各時系列データには、類似した部分データが含まれているものとする。
図2(a)において、[A],[B],[C]で示される区間は、それぞれ類似した区間を示している。ここで、類似する区間とは、時系列データにおける部分的なデータが類似していることを意味しており、必ずしも類似する区間の長さが同じであるとは限らない。また、類似する区間は、異なる時系列データとの関係で存在するだけでなく、同じ時系列データにおいても存在する可能性があるものとする。
図2(a)では、説明の便宜上、[A],[B],[C]で示される類似する区間を図示しているが、実際の時系列データでは、類似する区間の有無や、その個数、その位置等に関する情報が不明である。
【0051】
CPU2では、類似する区間の検出処理を行う初めの処理として、
図2(b)に示すように、複数の時系列データを連結して1つの時系列データ(連結系列データ)にまとめる処理(連結系列データ生成処理)を行う。複数の時系列データを連結して1つの時系列データにまとめる場合に、CPU2では、まとめられた時系列データのどの部分が、連結する前の複数の時系列データのどの部分に該当するかを判断できるように、まとめられた時系列データにおける連結位置や、連結された複数の時系列データの連結順番などの情報を、記録部5あるいはRAM4などに記録する。このようにして記録された情報に基づいて、CPU2は、類似する区間が複数の時系列データのどの部分に該当するかを、最終的に判断することが可能となる。
【0052】
次に、CPU2は、まとめられた時系列データの始点と終点とを連結して、円状(環状)の時系列データ(円状系列データ)を生成する(円状系列データ生成処理)。CPU2では、円状に連結された時系列データ(以下、円状時系列データと称する。円状系列データの一例に該当する)を、Circle連続DPにおける直接的な検索対象として、類似する区間の検出処理を行う。なお、CPU2は、Circle連続DPを用いた処理において、円状時系列データを1つの時系列データとして用いるため、処理を行う最中に、連結前の複数の時系列データの個別の時系列を全く考慮する必要がない。CPU2では、Circle連続DPを用いて、円状時系列データにおける類似する区間を全て検出した後に、連結前の複数の時系列データのどの位置(時系列位置)に、類似する区間が属するかを最終的な処理として判断する。類似する区間がどの時系列データに属するか否かは、複数の時系列データを連結した際に、記録部5あるいはRAM4に記録した連結位置や連結順番に関する情報から、容易に判断することが可能である。
【0053】
図3は、Circle連続DPの処理内容を示した概念図である。円状時系列データに変形する前の時系列データ(まとめられた時系列データ)の全体の長さを、説明の便宜上、区間長Lとする(
図3の左上図参照)。まとめられた時系列データは、tの関数であるため、t=1からt=LまでのL個のフレームによりデータが形成されていると考えることができる。円状時系列データは、まとめられた時系列データの始点と終点とが連結されたものであるため、区間長Lの円状のデータとなる(
図3の右上図参照)。
【0054】
Circle連続DPでは、区間長Tの部分的な時系列データを円状時系列データから参照する。この区間長Tは、円状時系列データの一部を構成するため、円状時系列データに対して、区間長Tの参照用の窓(以下、参照窓(reference window)と称する。)を設定したものと考えることができる(
図3の左下図参照)。この区間長Tの長さの部分的な時系列データを、Circle連続DPにおける参照データとする。
【0055】
ここで、区間長Tは、区間長Lよりも短い区間長であって(つまり、T<L)、さらに、円状時系列データの類似する区間において想定され得る最大の長さ(区間長)に設定される。すなわち、上述したように、類似する区間の区間長は、必ずしも一定でなく、さらに類似する区間の区間長が全て同じ長さになるわけではない。このため、区間長Tを、Circle連続DPにおいて検出され得る類似する区間の最大の長さにすることにより、異なる長さからなる全ての類似する区間を検出することが可能となる。
【0056】
参照データ以外の円状時系列データをCircle連続DPにおける入力データとする。このようにして参照データと入力データとを設定し(データ設定処理)、参照データと入力データとを用いて連続DP処理を行うことにより、参照データに類似する区間が入力データに存在するか否かを判断することが可能となり、結果として、円状時系列データにおける類似する区間の検出を行うことが可能となる。参照データは、参照窓により設定されるデータであるため、連続DPによる演算が終了した後に、円状時系列データを時計回りに1フレームだけシフトすることによって、参照窓により特定される参照データの区間も1フレーム分だけシフトすることができる(
図3の右下図参照)。このように参照データの区間を1フレームずつシフトさせつつ、特定される参照データと入力データ(円状時系列データにおいて参照データ以外の区間のデータ)とを用いて連続DPの演算を行い、1フレーム毎のシフトを円状時系列データが1周するまで繰り返し行うことにより、円状時系列データ全体において類似する区間の検出を行うことが可能となる。
【0057】
図4は、参照データと入力データとを用いた連続DPの処理内容を説明するための概念図である。
図4の縦軸に参照データを示し、横軸に入力データを示している。本実施の形態では、円状時系列データを、時間tの関数としてf(t)で表すものとする。また、参照データを、τの関数としてZ(τ)で示し、入力データをxの関数としてg(x)で表すものとする。
【0058】
ここで、円状時系列データf(t)の長さはLであるため、tは、1≦t≦Lとなる。また、円状時系列データは、まとめられた時系列データの始点と終点とが連結されたものであるため、tがLまで達して終点位置に到達した場合には、円状時系列データが始点位置の円状時系列データに戻ることになる。つまり、円状時系列データf(L+t)=f(t)が成立する。
【0059】
また、入力データg(x)は、円状時系列データにおいて参照データ以外の区間のデータに該当するため、xは、1,2,・・・,L−Tの値となる。また。入力データg(x)は、円状時系列データf(t)との関係において、時間tを基準として、g(x)=f(t+x−1)が成立するものとする。
【0060】
これらを整理すると、
円状時系列データ:f(t) 但し、1≦t≦L
Lは、円状時系列データの全体長
円状であるため、f(L+t)=f(t)
入力データ:g(x) 但し、x=1,2,・・・,L−T
Tは、参照データの区間長
また、時間tにおいて、g(x)=f(t+x−1)
一方で、参照データZ(τ)は、区間長がTであるため、τが、1,2,・・・,Tとなる。
参照データ:Z(τ) 但し、τ=1,2,・・・,T
【0061】
また、後述する連続DPを用いて参照データに類似する入力パターンg(x)の区間の対応を求める場合、参照データの時系列中の座標点τ
*がまず定まる(詳細については、後述するスポッティング点の検出処理において説明する)が、この参照データの区間[1,τ
*]のデータは、円状時系列データf(t)の区間[t−τ
*,t−1]とする。本実施の形態では、参照データにおいてτが増大する方向のデータ系列が、円状時系列データf(t)のtの増大する方向のデータ系列や、入力データg(x)のxの増大する方向のデータ系列に比べて流れが逆転することを特徴としている。
【0062】
参照データの区間[1,τ
*]のデータが、連続DPにおける横軸xの入力データg(x)の区間[x1,x2]に対応する場合、その区間[x1,x2](入力データg(x)の区間)は、円状時系列データf(t)における[t+x1−1,t+x2−1]の区間に該当する。また、連続DPによって、参照データZ(τ)に対応する入力データg(x)の類似する区間(部分系列)が求められる場合、求められる区間は1つに限定されず、複数の区間において検出される場合もある。
図4に示した概念図では、参照データZ(τ)に対応する入力データg(x)の類似する区間(類似区間)として、2つの区間が検出される場合を一例として示している。
【0063】
CPU2が、入力データg(x)において参照データZ(τ)に類似する区間が存在するか否かを判断する場合には、最小となる局所距離を求める(局所距離算出処理)。入力データg(x)と参照データZ(τ)との局所距離はd(x,τ)で示すことができ、以下の式で定義される。
d(x,τ)=‖g(x)−Z(τ)‖
1≦x≦L−T,1≦τ≦t
但し、xまたはτが、連結前の複数の時系列データのいずれかのデータの終端点に該当する場合には、d(x,τ)=∞になるように設定が行われる。
【0064】
より詳細に説明すると、円状時系列データf(t)は、複数の時系列データが連結された円状のデータである。このため、例えば、検出された区間がある時系列データの終端点(x
aとする)に該当する場合には、次に連結された時系列データの始端点(x
bとする)にも該当することになる。このため、終端点x
aにおける局所距離d(x
a,τ)の値と、始端点x
bにおける局所距離d(x
b,τ)の値とは、同じ値となってしまい、重複した計算を行うことになってしまう。従って、CPU2では、xまたはτが終端点x
aに該当する場合には、終端点x
aにおける局所距離d(x
a,τ)を∞とすること(d(x
a,τ)=∞)により、次述する局所距離の最小値D(x,τ)の計算等の重複を防止することが可能となる。
【0065】
このように始端点と終端点とにおける重複検出を防止することにより、一度検出された類似区間を円状時系列データにおける検索対象データから除くことができ、Circle連続DPによるCPU2の計算処理の負担を軽減することが可能となる。
【0066】
また、本実施の形態に係るCircle連続DPにおいて適用される評価関数は、次のようになる。まず、局所距離(評価関数)の最小値D(x,τ)を次の式(1)で定める。
【数2】
但し、i∈[1,T],τ(j)∈[1,i],x(j)∈[1,L−T],τ=τ(i),
r
j:τ(j)→x(j),x(j)=r
j(τ(j)),
r=(r
1,r
2,・・・,r
i)
ここで、関数rの要素r
jは、τ(j)からx(j)への写像を示している。従って、x(j)に対して、x(j)=r
j(τ(j))の関係が成立する。
【0067】
また、
図5は、Circle連続DPで用いる傾斜制限の局所パスの集合を示した図である。
図5に示す傾斜制限に基づいて、参照データと入力データとの非線形対応が1/2倍から2倍までの伸縮の範囲で求められることになる。
【0068】
CPU2は、上述した局所距離の最小値D(x,τ)の計算を行うために、以下の漸化式を用いる。
for x(1≦x≦L−T)
τ=1: D(x,1)=3d(x,1)
2≦τ≦T:
【数3】
【0069】
この処理において、CPU2は、局所距離の最小値D(x,τ)を求めるために、各xについて、τが1の場合には、D(x,1)=3d(x,1)とし、τが2≦τ≦Tの場合には、式(2)の示す漸化式のうち、最小の値となる漸化式を用いて、D(x,τ)を求め、この演算処理を、xの1≦x≦L−Tの範囲で繰り返し実行する。
【0070】
式(2)の漸化式は、
図5に示した傾斜制限の局所パスに対応した数式である。例えば、式(2)における2番目の項のみを使ってD(x,τ)を求めると、参照データと入力データとの線形マッチングを求めることになる。
【0071】
また、D(x,τ)およびd(x,τ)における境界条件として、xが0以下の場合(x≦0)、xがL−Tよりも大きい値の場合(x>L−T)、およびτが1からTの範囲に含まれない場合のいずれかに該当する場合には、D(x,τ)=d(x,τ)=∞とする。
【数4】
【0072】
Circle連続DPにおいて、局所距離の最小値D(x,τ)を求める処理は、円状時系列データに変形する前の時系列データ(まとめられた時系列データ)の全体区間長Lに対応して実行され、時系列データf(t)のt毎に実行されることになる。従って最小値D(x,τ)を求める計算は、L回行われることになり、さらに各tにおいて、範囲[1,L−T]のxの全ての値と、範囲[1,T]のτの全ての値とについて、漸化式が計算されることになる。
【0073】
また、時間tがt+1へと更新されると、Circle連続DPにおける参照データZ(τ)および入力データg(x)も、tに伴って更新されることになる。参照データZ(τ)および入力データg(x)の更新は、以下の順番で更新される。
First,Z(1)=g(1)(=f(1))
Second,for x=1,2,・・・,L−T−1,g(x)=g(x+1)
Third,g(L−T)=Z(T)
Final,for τ=2,3,・・・,T,Z(τ)=Z(τ−1)
【0074】
まず初めに、Z(1)=g(1)(=f(1))とし、次に、xを1から順番にL−T−1まで増加させるときにg(x)=g(x+1)として、g(x)をg(x+1)へと順番に更新する。その後に、g(L−T)=Z(T)として、最後に、τが2から順番にTまで増加させるときにZ(τ)=Z(τ−1)として、Z(τ)をZ(τ−1)へと順番に更新する。
【0075】
これらの更新が終わった後に、局所距離の一部が新たに計算され、残りのd(x,τ)は、既に計算が行われたd(x+1,τ−1)によって更新される。以下に更新式を示す。
for x=1,2,・・・,L−T,d(x,1)=‖g(x)−Z(1)‖
For 1≦τ≦T,d(L−T,τ)=‖g(L−T)−Z(τ)‖
Local distance updating:
for τ=2,3,・・・,T,and x=1,2,・・・,L−T−1,
d(x,τ)=d(x+1,τ−1)
【0076】
図6は、Circle連続DPにおける演算開始時の参照データと入力データとのデータ配置を示した概念図であり、
図7は、最終演算時の参照データと入力データとのデータ配置を示した概念図である。Circle連続DPでは、円状に形成された円状時系列データに基づいて連続DPが行われるが、連続DP演算における最初と最後のデータ配置は、実際の演算処理においても重要であるため、図を示して説明する。
【0077】
演算開始時には、
図6に示すように、参照データZ(τ)のτには、[1,T]に対応して、円状時系列データf(t)の[1,T]の区間のデータを逆方向に設定(配置)する。すなわち、τ=1の場合には、円状時系列データにおける時間Tのf(T)を参照データZ(1)として設定し、τ=Tの場合には、円状時系列データにおける時間1のf(1)を、参照データZ(T)として設定することになる。このようにして参照データZ(τ)を設定した後に、入力データg(x)のxを範囲[1,L−T]で動作させて連続DP処理を行う。この場合における入力データg(x)は、g(x)=f(T+x)として設定される。
【0078】
一方で、最終演算時には、
図7に示すように、参照データZ(τ)と入力データg(x)が設定される。最終演算時においても、参照データZ(τ)のτには、[1,T]に対応して、円状時系列データf(t)の[L−T+1,L]の区間のデータを逆方向に設定(配置)する。すなわち、τ=1の場合には、円状時系列データにおける時間Lのf(L)を参照データZ(1)として設定し、τ=Tの場合には、円状時系列データにおける時間L−T+1のf(L−T+1)を、参照データZ(T)として設定することになる。このようにして参照データZ(τ)を設定した後に、入力データg(x)のxを範囲[1,L−T]で動作させて連続DP処理を行う。この場合における入力データg(x)は、g(x)=f(x)として設定される。
【0079】
上述したようにして、参照データZ(τ)と入力データg(x)が設定された後に、全てのtについて連続DPによる演算処理が行われる。この連続DPによる演算処理において、参照データと入力データとの時系列における類似区間の検出は、スポッティング点の検出を通じて行われることになる。参照データを確定する参照窓の大きさは、一定の区間長Tである。しかしながら、類似する区間の長さは、必ずしも一定ではなく、類似する区間であると判断される場合であっても、その類似する区間同士の区間長もさまざまな長さとなり得る。このため、既に説明したように、区間長Tの長さとして、類似する区間の長さとして想定される最大の長さの値が設定される。
【0080】
Circle連続DPでは、既に
図4を示して説明したように、参照データの区間のデータ系列の流れと入力データの区間のデータ時系列の流れとが逆転している。このため、参照データZ(τ)と入力データg(x)との対応において、参照データZ(1)がx軸上の点xの入力データg(x)に対応し、双方時間を遡るようにして対応点が形成される。
【0081】
まず、Z(1)に対応するg(x)が、類似区間の双方の終端が一致するように対応する。その次に、始端を決める必要が生ずるが、始端は、局所距離の最小値D(x,τ)に対して以下の式(3)に基づく計算を行うことによって求められる。なお、D(x,τ)から定まる始端の点を(x
*,τ
*)として示す。この点(x
*,τ
*)が、上述したスポッティング点に該当する。このスポッティング点に基づいて、類似する区間を求めることが可能となる。
【0082】
図8は、参照データZ(τ)と入力データg(x)との連続DPにおけるスポッティング点の決定処理を説明するための概念図である。スポッティング点を決定するために、CPU2では、まず、次の式に基づいて、A(x,τ)を求める(正規化処理)。
【数5】
【0083】
但し、1≦τ≦Tおよび1≦x≦L−Tの範囲で、それぞれτとxとを増加させて全てのx,τの組合せに対応するA(x,τ)を求める。
【0084】
また、A(x,τ)を求めるために、D(x,τ)を3τで割る理由は、τに至る全ての最適パスがとる漸化式の重み係数の和を用いてD(x,τ)を正規化するためである。なお、「3τ」の「3」は、傾斜制限に基づいて決定される漸化式の重み付け係数kを示し、傾斜制限が異なれば、漸化式の重み付け係数が「3」以外の係数となる場合もある。このため、D(x,τ)を除する値は、τに重み付け係数kを掛けた値(k×τ)であればよく、必ずしも3τには限定されない。
本実施の形態では、式(2)のような漸化式を用いるため、3τで割る処理を行っている。このように3τでD(x,τ)を割ることによって、参照データ内の長さが異なる区間長(部分長)の間で比較を行うことが可能となる。
【0085】
次に、CPU2は、閾値hを用いて、xを固定し、[x−α,x+α]の区間でA(x,τ)≦hとなるτ(x)を求める。[x−α,x+α]の区間、つまり、xを中心とする前後αの区間を、xの局所間隔(local interval of x)と称する。CPU2では、次の式に基づいて、スポッティング点(x
*,τ
*)を求める(スポッティング点算出処理)。
【数6】
【0086】
なお、式(4)に示すτ
0は、類似区間の最小の区間長を定める係数である。
図8に示すように、x
*はx軸(入力データの区間を示す軸)における類似区間の始端を示す。また、τ
*は、参照データにおける始端を示し、A(x,τ)が閾値h以下となる最長の参照データの部分区間(類似する区間)の長さを示す。
【0087】
CPU2は、(x
*,τ
*)を求めた後に、(x
*,τ
*)に至る最適パス(最適経路)を、連続DPにおける累積値のバックトレース処理によって求める。その結果、τ=1に対応する入力データの類似区間の終点x
*endを求めることが可能となる。求められたx
*endは、x
*end≧x
*が成立する(部分類似区間検出処理)。
【0088】
バックトレース処理によって求められる、参照データZ(τ)の類似する区間は、[1,τ
*]範囲となる。また、入力データg(x)における類似する区間は、[x
*,x
*end]の範囲となる。また、入力データg(x)における[x
*,x
*end]の範囲は、円状時系列データf(t)における[t+x
*−1,t+x
*end−1]の範囲に対応する。
【数7】
【0089】
但し、参照データZ(1)は、g(x
*)に対応し、Z(τ
*)は、g(x
*end)に対応することになる。また、入力データg(x)における類似する区間は必ずしも1つには限定されず、入力データに複数の類似する区間が存在する場合には、入力データにおける類似する範囲が複数箇所検出されることになる。
【0090】
CPU2は、上述した式(4)に基づくスポッティング点の検出およびバックトレース処理を、全てのxの局所間隔(local interval of x)において実行することにより、入力データの全区間に対して類似する区間の検出を行う(全体類似区間検出処理)。さらに、CPU2は、この処理を全てのt(1≦t≦L)に対して行う。このように、全てのxに対して、さらに全てのtに対して処理を行うことにより、円状時系列データf(t)の全ての範囲において、類似する区間を検出することが可能となる(円状類似区間検出処理)。
【0091】
図9は、上述したCPU2の処理内容を示したフローチャートである。CPU2は、
図9に該当するプログラムをROM3より読み出して、読み出したプログラムを実行することにより、円状時系列データにおける類似する区間の検出処理を行うことが可能となる。
【0092】
まず、CPU2は、複数の時系列データを連結し(連結系列データ生成ステップ)、連結された時系列データに基づいて円状時系列データを生成する(円状系列データ生成ステップ)(ステップS.1)。この場合、CPU2は、複数の時系列データにおける連結位置に関する情報や連結させた連結順番に関する情報などを、RAM4あるいは記録部5に記録しておく。この処理において、CPU2は、連結系列データ生成手段および円状系列データ生成手段として機能することになる。
【0093】
次に、CPU2は、tに1を代入し、tにおける初期値設定を行う(ステップS.2)。そして、CPU2は、tの値に基づいて、生成された円状時系列データから、予め設定されるTに該当するデータを抽出することにより参照データの設定を行うと共に、円状時系列データのうち参照データ以外のデータを入力データとして設定する(データ設定ステップ)(ステップS.3)。この処理において、t=1の場合には、1つ目のフレームにおける連続DP処理に該当するため、
図6に示すような演算開始時のデータ配置が行われることになる。また、この処理において、CPU2は、データ設定手段として機能することになる。
【0094】
その後、CPU2は、xを1からL−Tに増加させつつ(1≦x≦L−T)、τを1からTに増加させて(1≦τ≦T)、全てのx,τに対応するd(x,τ)を求める(局所距離算出ステップ)(ステップS.4)。この処理において、CPU2は、局所距離算出手段として機能することになる。また、CPU2は、xが連結される前の時系列データの終端点(x
a)に該当する場合に、d(x
a,τ)の値を∞に設定することにより、類似区間の重複検出を行わないようにする。
【0095】
そして、CPU2は、求められたd(x,τ)に基づいてD(x,τ)を求める共に、求められたD(x,τ)からA(x,τ)を求めて(正規化処理ステップ)、求められたA(x,τ)に基づいてスポッティング点(x
*,τ
*)を検出する(スポッティング点算出ステップ)(ステップS.5)。この処理において、CPU2は、正規化処理手段およびスポッティング点算出手段として機能することになる。そして、CPU2は、求められたスポッティング点(x
*,τ
*)に基づいて、全てのxの局所間隔について、類似区間の検出を行う(部分類似区間検出ステップおよび全体類似区間検出ステップ)(ステップS.6)。この処理において、CPU2は、部分類似区間検出手段および全体類似区間検出手段として機能することになる。
【0096】
そして、CPU2は、tがLよりも大きい値であるか否か(t>L?)を判断し(ステップS.7)、tがL以下である場合(ステップS.7においてNoの場合)には、tに1を加えた上で(ステップS.8)、処理をステップS.3へと移行する。tに1を加えることにより、ステップS.3において、CPU2は、1フレームだけ円状時系列データをずらした状態で、参照データと入力データとの設定を行うことになる(データ設定ステップ)。このように、tがL以下である場合に、1フレーム分シフトされた区間位置に基づいて参照データと入力データを設定して、ステップS.4からステップS.6までの処理を行うことによって、円状時系列データの全ての区間に対して、参照窓に基づく新たな参照データと入力データとの設定(更新)と、新たに設定(更新)された参照データと入力データとによる類似区間の検出処理を行うことが可能となる(円状類似区間検出ステップ)。この処理において、CPU2は、円状類似区間検出手段として機能することになる。
【0097】
tがLより大きい値である場合(ステップS.7においてYesの場合)、CPU2は、ステップS.1においてRAM4あるいは記録部5に記録した、複数の時系列データにおける連結位置に関する情報や連結させた連結順番に関する情報などに基づいて、複数の時系列データのどの区間のデータが類似する区間のデータに該当するかを判断し(複数系列類似区間検出ステップ)(ステップS.9)、複数の時系列データにおける類似区間の検出処理を終了する。この処理において、CPU2は、複数系列類似区間検出手段として機能することになる。
【0098】
図9に示す処理に従って、CPU2が類似する区間の検出を行うことによって、複数の時系列データにおける類似区間の検出を行うことができる。また、
図9に示すCircle連続DPを用いて類似区間の検出を行う場合には、RDDS法を用いた場合よりも計算量を軽減することが可能となる。
【0099】
RDDS法の場合には、既に説明したように、セグメント長のn乗の計算量が必要とされる。一方で、Circle連続DPでは、式(2)に示した漸化式の演算回数によって計算量負担が決定される。上述したCircle連続DPでは、固定したtについて、横軸xの幅がL−Tのサイズだけ想定され、縦軸τについて高さTが考えられるので、横L−T、高さTの面上の各点において、式(2)のD(x,τ)の更新が行われることになる。つまり、T×(L−T)回の更新が行われることになる。また、tは、既に説明したように、L回
更新されるので、漸化式における演算回数の総数は、{T×(L−T)}×Lとなる。ここで、Tの値は、それほど大きくない定数であるため、全体としての計算量は、Lの2乗オーダーの計算量(O(L×L))となる。
【0100】
ここで、Lは複数の時系列データを連結したときの長さ(区間長)である。このため、Lが大きくなると計算量は増すことになる。しかしながら、RDDS法の場合のようなn乗の計算量に比べれば、計算負担が明らかに軽減される。
【0101】
さらに、以下のような方法を用いることにより、計算量をさらに軽減させることも可能である。第1の方法として、tのシフト量を1フレームずつ行うのではなく、シフト量を複数フレームにして、シフト間隔を大きくすることが考えられる。類似する区間の検出精度を損なわないシフト間隔(フレーム数)は、実験的に決めることが可能である。また、第2の方法として、Circle連続DPにおける局所距離の累積演算において、累積値が閾値hを超えた場合に、そのときのτの値以上のτの値について累積演算を行わないようにすることも考えられる。累積距離は単調増加であるため、累積値が閾値hを超えた場合には、演算を停止しても検出結果に支障が生じない。
【0102】
また、本実施の形態に係る検出装置1では、上述したように、CPU2においてA(x,τ)を求める場合、CPU2が、D(x,τ)を3τで割る処理を行うが、従来の連続DPでは、比較対象となる参照データの全体の区間長Tを用いて、3Tで割る方法を用いることが通常であった。しかしながら、本実施の形態において設定される区間長Tは、想定され得る類似区間の最大の長さに基づいて設定される値であるため、実際に類似する区間は、区間長Tよりも短くなる可能性が高い。このため、3Tで割る方法を用いると、連続DPにおける参照データとして、類似する区間以外の区間をも含んだ全区間を基準として、入力データとのマッチング処理を行ってしまうことになり、類似した区間同士の最適なマッチングを保証することができなくなってしまうおそれがある。
【0103】
本実施の形態に係るCircle連続DPでは、τが取り得る範囲である区間[1,T]の中(1≦τ≦Tの中)で、D(x,τ)/3τの最小値をとるτ
*を用いることで、最大の区間長Tの長さの参照データの大きさの中で、小さい値の区間[1,τ
*]を類似区間として採用することでき、類似する区間のマッチング処理における精度を向上させることが可能となる。
【0104】
さらに、本実施の形態に示したCircle連続DPでは、連続DPを用いて類似する区間の検出を行っていることから、従来のようにヒストグラムによる系列マッチングを行うのではない。このため、多様な長さを持つ類似区間の検出を高い精度で行うことが可能である。
【0105】
また、Circle連続DPでは、複数の時系列データを連結して1つの時系列データを生成し、さらに生成された時系列データを円状に連結した円状時系列データを用いて、類似する区間の検出を行う。このため、類似する区間の検出処理において、連結前の複数の時系列データがいくつの系列であったかということはあまり重要ではない。Circle連続DPでは、円状時系列データを生成して処理を行うので、連結前の時系列データの個数に計算量が依存しなくなる。実際にCircle連続DPを用いる計算量は、上述したようにLの2乗オーダー(O(L×L))であり、対象とする時系列データの全時系列数nには依存していない。このため、Circle連続DPは、系列数が増大する大規模な時系列データ処理に適したアルゴリズムとして利用することができる。
【0106】
さらに、Circle連続DPでは、厳密なマッチングをベースとして類似性の判断を行うのではなく、類似度(距離)をベースとして、時系列間における多様な類似性の判断を行うことを特徴としている。このため、ノイズの多い記号列や音声特徴列や動画像特徴列など、記号化を十分に行うことが困難な時系列データに対して、Circle連続DPを適用することが可能である。
【0107】
また、Circle連続DPによる処理手法は、ヒストグラムをベースとしたものではなく、時系列間でのマッチングの最適性が保証されるという特徴を備えたものである。このため、Circle連続DPを用いることにより、系列データベースにおいて、系列数が多い場合であっても計算量の増大を抑えることが可能となり、データベースの組織化、データマイニング、データ検索などへ広く応用することが可能である。
【0108】
以上、本発明に係る類似系列区間検出装置および類似系列区間検出プログラムについて、図面を用いて詳細に説明したが、本発明に係る類似系列区間検出装置および類似系列区間検出プログラムは、実施の形態に示した例には限定されない。
【0109】
例えば、実施の形態に示した類似系列区間検出装置のCircle連続DPでは、外部からの検索クエリによる検索処理については説明されていない。つまり、実施の形態に示したCircle連続DPの例においては、複数の時系列データに類似する区間が存在し得る場合を例として説明している。実施の形態では、複数の時系列データとは別に参照データとなり得る外部の時系列データを検索クエリとして用い、この時系列データ(検索クエリ)と複数の時系列データとの間に、類似した区間が存在するか否かを検索する場合については、詳細な説明を行っていない。
【0110】
しかしながら、外部からの時系列データを検索クエリとして用いる場合であっても、時系列の長さに関係なく、1つの時系列データとして検索対象となる複数の時系列データ群に加えることにより、実施の形態で説明したCircle連続DPと同様の考え方で、類似する区間の検索を行うことが可能となる。詳細には、まず初めに、外部からの時系列データを含めた複数の時系列データを連結して円状時系列データを作成する。その次に、Circle連続DPにより類似区間の検出を行う場合において、参照データとして外部からの時系列データを設定し、そのクエリ長の回数(フレーム数)のみ、円状時系列データのシフト処理を行うことによって、外部からの時系列データに類似する部分だけを検出することが可能となる。
【0111】
また、実施の形態に示す検出装置1では、
図9に示すCircle連続DPの処理を、CPU2が行う場合について説明したが、
図9に示した処理は、必ずしも1つのCPUで全ての処理を行う必要はなく、複数の演算手段を用いて処理を分担する構成とすることも可能である。今日では、処理内容に応じてさまざまな演算回路(例えば、ASIC(Application Specific Integrated Circuit)等)を用いることが多くなっている。このため、Circle連続DPにおいても、処理内容に応じて複数の演算回路を設けて、処理内容に応じて複数の演算回路が処理を分担する構成であっても、実施の形態に示したCircle連続DPを実現することが可能である。