JP5060340B2 - 類似部分シーケンス検出方法、類似部分シーケンス検出プログラム、および、類似部分シーケンス検出装置 - Google Patents

類似部分シーケンス検出方法、類似部分シーケンス検出プログラム、および、類似部分シーケンス検出装置 Download PDF

Info

Publication number
JP5060340B2
JP5060340B2 JP2008042633A JP2008042633A JP5060340B2 JP 5060340 B2 JP5060340 B2 JP 5060340B2 JP 2008042633 A JP2008042633 A JP 2008042633A JP 2008042633 A JP2008042633 A JP 2008042633A JP 5060340 B2 JP5060340 B2 JP 5060340B2
Authority
JP
Japan
Prior art keywords
partial sequence
similar
similarity score
time warping
similar partial
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008042633A
Other languages
English (en)
Other versions
JP2009199507A (ja
Inventor
真智子 豊田
保志 櫻井
俊一 市川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2008042633A priority Critical patent/JP5060340B2/ja
Publication of JP2009199507A publication Critical patent/JP2009199507A/ja
Application granted granted Critical
Publication of JP5060340B2 publication Critical patent/JP5060340B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ストリームマイニングにおいて類似部分シーケンスペアを検出する技術に関する。
データストリーム(以下、単に「ストリーム」ともいう。)とは、ネットワークから高速に流れてくる大量のデータのことである。ストリームマイニングとは、時系列として表現されるデータストリームから役に立つ情報を素早く見つけ出す技術である。ストリームマイニングは、単にデータベースに蓄えられた大規模データを分析するものではなく、増え続けるデータの流れをリアルタイムに分析し、監視するための技術である。そして、増え続ける大規模なデータを分析するため、またユーザに情報をリアルタイムに提供するため、ストリームマイニングの技術は高速化と省メモリ化を図る必要がある。
ストリーム監視においては、シーケンスマッチング技術が必要とされる。シーケンスマッチングでは、2つのデータシーケンス間の類似度を距離値として表し、この距離値を用いて類似度を判断する。また、各データストリームのサンプリングレートが異なる場合や、データ送受信の周期が変化する場合があるが、これらに柔軟に対応するよう、タイムワーピングを考慮することが重要となる。このタイムワーピングを考慮する距離関数としては、ダイナミックタイムワーピング(DTW: Dynamic Time Warping)が広く用いられている。
DTWは、蓄積されたシーケンスに対して用いられる距離関数であり、2つのシーケンス間の距離を最小化するように時間軸方向に伸長を行い、各要素同士をマッチングさせた計算により距離値を求め、類似か否かを、距離値と閾値εによって判定する。この距離値はDTW距離と呼ばれ、最適にシーケンス長を調整した後の距離の合計値で表され、動的計画法に基づくマトリックス(タイムワーピング行列)によって計算される。DTW距離の値が小さいほど2つのシーケンスは類似度が高く、0の場合は完全に一致していることを意味する。
図14はDTWの説明図である。図14(a)に示すように、2つのシーケンスX=(x,x,…,x)とシーケンスY=(y,y,…,y)とは、DTW距離を求める際、DTW距離が最小になるように対応付けがなされる。2つのシーケンスの長さが同じ場合でも異なる場合でも、DTWは各要素を適切に対応付けることができる。
図14(b)に示すように、DTW距離の計算に用いられるマトリックス(タイムワーピング行列)において、2つのシーケンス間で対応付けられたその組み合わせ(集合)はタイムワーピングパスと呼ばれ、ここでは色付け(黒塗り)されたセルとして示している。
DTWについて、図15を用いてさらに説明する。図15は、DTWによるタイムワーピング行列を例示した図である。図15において、シーケンスYは、固定長m(ここでは4)のデータであり、シーケンスの類似判断の元となるデータである。データストリームであるシーケンスXは、時々刻々と伸張している(データ量が増えている)シーケンスであり、シーケンスYに対する類似判断の対象となるデータである。
DTW距離は、タイムワーピング行列に基づいて計算することができる。ここで、長さnのシーケンスX=(x,x,…,x)と長さmのシーケンスY=(y,y,…,y)において、これらのDTW距離D(X,Y)は以下のように定義される。なお、i=1,2,…,n、j=1,2,…,mとする。
D(X,Y)=f(n,m) ・・・式(9)
f(i,j)=‖x−y‖+min{f(i,j−1),f(i−1,j),
f(i−1,j−1)} ・・・式(10)
f(0,0)=0 ・・・式(11)
f(i,0)=f(0,j)=∞ ・・・式(12)
式(9)は、DTW距離の定義である。式(10)は、具体的な計算式である。式(10)において、‖x−y‖は、2つの数値(xとy)の距離を表すものであり、例えば、ユークリッド距離やマンハッタン距離(L1距離)などが挙げられる。n次元空間において、a、bという2つの点の座標をa(a,a,…,a)、b(b,b,…,b)とし、また、(1≦k≦n)とすると、ユークリッド距離とは√(Σ(a−b)、マンハッタン距離とはΣ|a−b|で表される距離のことである。以下の具体例では、計算を容易にするために、‖x−y‖として、ユークリッド距離の二乗の値を使用する。なお、本発明は、ユークリッド距離の二乗の値を使用する場合に限定されず、他の距離を使用してもかまわない。
式(10)において、min{f(i,j−1),f(i−1,j),f(i−1,j−1)}は、{}内の3つの値のうち、最小のものを採用する、という意味である。式(11)および式(12)は、これらの3つの値を計算する際に使用する、タイムワーピング行列における境界条件である。このDTW距離を用いたタイムワーピング行列によれば、シーケンスYと類似するシーケンXの部分シーケンスを検出することができる。
例えば、シーケンスY=(11,6,9,4)と、シーケンスX=(12,6,10,6,5,1,…)のそれぞれとのDTW距離を計算すると、図15のタイムワーピング行列に示す値となる。ここで、図15のタイムワーピング行列のハッチング部分は、DTW距離「6」を計算するために辿ってきたルート(タイムワーピングパス)であり、このルートを辿ることで、DTW距離の計算の開始位置が分かる。つまり、このDTW距離の値が比較的小さいものが連なったタイムワーピングパスを見つけることで、シーケンスX=(12,6,10,6,5,1,…)から、シーケンスY=(11,6,9,4)に類似する部分シーケンス(ここでは部分シーケンス(12,6,10,6))を検出することができる。
このように、タイムワーピング行列は、DTWの関数の値(すなわち、式(10)におけるf(i,j)の値)を保持しており、これがDTWの基礎をなす。長さnのシーケンスXと長さmのシーケンスYの距離を求めようとすると、DTWはO(nm)の時間を要する。これは、DTWが2つのシーケンスのすべての要素を対応付けて計算を行うためであり、特に長いシーケンスを扱う場合には計算コストが著しく大きくなる。
つまり、この従来の手法を用いる場合、データストリームから類似部分シーケンスを検出するとき、あらゆるパターンの部分シーケンスとの比較を行う必要があるので、時刻が経過してデータストリームのデータが到着するたびにタイムワーピング行列を追加していく必要がある。すなわち、図15ではタイムワーピング行列を1つしか図示していないが、同様のタイムワーピング行列を時間の経過とともに次々と追加する必要がある。そのため、データストリームの増加とともに計算量やメモリ使用量が増大するという問題があった。
また、DTWを用いたシーケンスマッチングのためのアルゴリズムは数多く提案されているが、その多くは事前に用意された問い合わせシーケンスに類似するシーケンスを検出するものである。非特許文献1および非特許文献2では、DTWを用いたシーケンスマッチングにおいて計算コスト削減のための手法が提案されている。しかし、これらの手法は蓄積されたデータ集合のための手法であり、ストリーム処理には適していない。
また、DTWを用いたストリームのシーケンスマッチングについては、非特許文献3において、問い合わせシーケンスに類似する部分シーケンスを検出する手法が提案されている。しかし、このシーケンスマッチングのための従来手法は、用意された問い合わせシーケンスに類似する部分シーケンスを検出するものに過ぎない。
一方、特定の問い合わせシーケンスを用意せず、増え続けるストリームの中から類似する部分シーケンスペアを検出し続ける技術も重要視されている。非特許文献4や非特許文献5は、リアルタイムでのストリーム監視に焦点をあて、ストリーム間の相関を検出する手法を提案している。しかし、これらは、時間軸方向の調節がない距離尺度を用いており、タイムワーピングに対応していない。
本発明が扱うのは、データストリームからの類似部分シーケンスペア検出問題であり、具体的には「2つのデータストリームが与えられたとき、類似する部分シーケンスペアを、DTWに準じた手法(DTWと同等の手法)で検出する」ことである。この問題について、図13を用いて説明する。図13は、類似部分シーケンスペアの検出に使用されるデータストリーム(シーケンス)の例である。
図13の(a)と(b)に示すように、シーケンス#1は#11、#12、#14に、シーケンス#2は#22、#23に小さなスパイク(突出部)が存在するデータである。各スパイクの振幅はほぼ同じであるが、周期(時間幅)はそれぞれ異なっている。また、これらのシーケンスには3つの大きなスパイク(#13、#21、#24)が含まれており、これらについても周期は異なっている。
本発明が解決しようとする課題は、2つのシーケンス間の部分的な類似を見つけることである。例えば、部分シーケンスペア#11と#22、#11と#23、#13と#21、#13と#24は、シーケンス#1と#2の類似部分シーケンスペアである。これらのペアの周期は異なっているため、タイムワーピングを考慮しない場合、的確に検出することが困難である。
ここで、データストリームXは、時刻I=i,i,…,i,…で収集されるx,x,…,x,…の値からなる半無限長のシーケンスとして表記できる。xはiにおける最新のデータであり、時間の経過と共にnは増加する。X[i:i]をiからiまでの部分シーケンスであるとする。同様に、Yは、y,y,…,yの値からなるシーケンスであり、Y[j:j]をjからjまでの部分シーケンスであるとする。例えば、シーケンス#1をデータストリームX、シーケンス#2をデータストリームYとすると、部分シーケンス#11はX[1155:2712]、#22はY[6111:8361]と表せる。このとき、類似部分シーケンスペア検出問題は、次のように定義される。
[類似部分シーケンスペア検出]
2つのデータストリームXとY、類似判定のための閾値ε、類似部分シーケンス長の下限値ζが与えられたとき、次の条件を満たす類似部分シーケンスペアX[i:i]とY[j:j]を検出する。
1. X[i:i]とY[j:j]の平均距離値はε以下である。
2. X[i:i]とY[j:j]のシーケンス長はいずれもζ以上である。
ここで、平均距離値とは部分シーケンスX[i:i]とY[j:j]の1要素あたりの距離値を意味し、X[i:i]とY[j:j]の距離値/(X[i:i]とY[j:j]のタイムワーピングパス長)により求めるものとする。
閾値εおよび類似部分シーケンス長の下限値ζはユーザにより指定(設定)され、これらの条件に基づいて類似部分シーケンスペアが検出される。
この問題を従来技術であるDTWを用いて解決することを考える。DTWを用いてデータストリームから類似部分シーケンスペアX[i:i]とY[j:j]を検出する場合、O(nm)個のマトリックスを必要とする。これは、1≦i≦n−ζ+1,1≦j≦m−ζ+1の範囲で変化する各開始点から始まるマトリックスを作成する必要があるためである。これが、従来の一般的な方法である。本明細書ではこの方法をナイーブな手法と呼ぶ。
i,j番目のマトリックス(すなわち、時刻iと時刻jから始まるマトリックス)において、要素(k,l)の距離をdi,j(k,l)とする。ナイーブな手法では、XとYの部分シーケンスマッチングの距離は以下のように求められる。なお、i=1,2,…,n、k=1,2,…,n−i+1、j=1,2,…,m、l=1,2,…,m−j+1である。
D(X[i:i],Y[j:j])=dis,js(i−i+1,j−j+1) ・・・式(13)
i,j(k,l)=‖xi+k−1−yj+l−1‖+min{di,j(k,l−1),di,j(k−1,l),di,j(k−1,l−1)} ・・・式(14)
i,j(0,0)=0 ・・・式(15)
i,j(k,0)=di,j(0,l)=∞ ・・・式(16)
また、X[i:i]とY[j:j]の類似度を評価するための平均距離d’は、次のように求められる。なお、Wは部分シーケンスX[i:i]と部分シーケンスY[j:j]とのタイムワーピングパスの長さである。
d’=di,j(k,l)/W ・・・式(17)
E. J. Keogh: "Exact Indexing of Dynamic Time Warping," In Proceedings of the 28th International Conference on Very Large Data Base (VLDB2002), pp.406-417, 2002. S. W. Kim, S. Park, W. W. Chu: "An Index-based Approach for Similarity Search Supporting Time Warping in Large Sequence Database," In Proceedings of IEEE 17th International Conference on Data Engineering (ICDE2001), pp.607-614, 2001. Y. Sakurai, C. Faloutsos, and M. Yamamuro: "Stream Monitoring under the Time Warping Distance," In Proceedings of IEEE 23rd International Conference on Data Engineering (ICDE 2007), pp.1046-1055, 2007. S. Papadimitriou, J. Sun, and C. Faloutsos: "Streaming Pattern Discovery in Multiple Time-Series," In Proceedings of the 31th International Conference on Very Large Data Bases(VLDB2005), pp.697-708, 2005. Y. Zhu, D. Shasha: "StatStream: Statistical Monitoring of Thousands of Data Streams in Real Time," In Proceedings of the 28th International Conference on Very Large Data Bases (VLDB2002), pp.358-369, 2002.
しかしながら、DTWは固定長の問い合わせシーケンスに類似するシーケンスを検出するためのシーケンスマッチング手法であるため、この手法を使用すると、計算に必要となるマトリックスの数が時間の経過とともに増加する。そのため、毎時刻に更新する必要のある値はO(nm)またはO(nm)となり(マトリックスの数がO(nm)なので)、計算量やメモリ使用量が大幅に増加するという問題がある。
本発明は、前記問題に鑑みてなされたものであり、2つのデータストリームから類似する部分シーケンスのペアを検出するときの計算量やメモリ使用量の増加を抑制することを課題とする。
前記した課題を解決するため、本発明は、2つのデータストリームから、類似する部分シーケンスのペアを、2つの前記部分シーケンス同士の類似度スコアを示すタイムワーピング行列を用いて検出する類似部分シーケンス検出装置による類似部分シーケンス検出方法であって、前記類似部分シーケンス検出装置は、前記タイムワーピング行列を記憶する記憶部と、処理部と、を備えており、前記処理部は、前記2つのデータストリームのうちいずれかのデータストリームのデータの1つの要素を受信したとき、当該要素を含む前記データストリーム中の部分シーケンスと、他方の前記データストリーム中の部分シーケンスと、の類似度スコアを算出し、前記算出した類似度スコアと、その類似度スコアの算出に用いた2つの前記部分シーケンスの開始位置および終了位置と、を対応付けて前記記憶部の前記タイムワーピング行列に記憶し、前記記憶部のタイムワーピング行列に記憶された前記類似度スコアを用いて、類似する部分シーケンスのペアを検出して出力することを特徴とする。
また、本発明は、前記処理部が、前記2つのデータストリームの部分シーケンス同士の前記類似度スコアを算出するとき、2つの部分シーケンスX[i :i ]とY[j :j ]との類似度スコアS(X[i :i ],Y[j :j ])を、以下の式(1)〜式(5)により算出し、
S(X[i :i ],Y[j :j ])=s(i ,j ) ・・・式(1)
s(i,j)=max{0,2ε−‖x −y ‖+s best } ・・・式(2)
best =max{s(i,j−1),s(i−1,j),s(i−1,j−1)}
・・・式(3)
s(i,0)=0 ・・・式(4)
s(0,j)=0 ・・・式(5)
前記タイムワーピング行列に記憶する前記部分シーケンスX[i :i ]の開始位置i と、前記部分シーケンスY[j :j ]の開始位置j とを示すp(i,j)を、以下の式(7)により算出し、
p(i,j)={p(i,j−1) (if s best =s(i,j−1)),
p(i−1,j) (if s best =s(i−1,j)),
p(i−1,j−1)(if s best =s(i−1,j−1)),
(i,j) (if s best =0)} ・・・式(7)
前記開始位置i ,j を、以下の式(8)により算出することを特徴とする。
(i ,j )=p(i ,j ) ・・・式(8)
ただし、i=1,2,…,n、j=1,2,…,m、‖x −y ‖はx とy との間の距離を示す。
また、本発明は、前記処理部が、前記記憶部のタイムワーピング行列に記憶された前記類似度スコアを用いて、類似する部分シーケンスのペアを検出して出力する場合、
類似度スコアの平均値s’を、以下の式(6)により算出し、
s’=s(i,j)/W ・・・式(6)
前記算出した類似度スコアの平均値s’が所定の閾値ε以上であり、かつ、前記類似度スコアの算出に使用した2つの部分シーケンスの長さがいずれも所定の長さζ以上であるとき、それらの2つの前記部分シーケンスを、類似する部分シーケンスのペアとして検出して出力することを特徴とする。
ただし、Wは部分シーケンスX[i :i ]と部分シーケンスY[j :j ]とのタイムワーピングパスの長さを示す。
かかる発明によれば、2つのデータストリームから類似する部分シーケンスのペアを検出するとき、用いるタイムワーピング行列が単一で済むので、計算量やメモリ使用量の増加を抑制することができる。
また、かかる発明によれば、類似度スコアを具体的に適切に算出し、その類似度スコアと、その類似度スコアの算出に用いた2つの前記部分シーケンスの開始位置および終了位置と、を対応付けて前記タイムワーピング行列に記憶することができる。
また、かかる発明によれば、類似度スコアをその対応するタイムワーピングパスの長さで除算した平均値を用いることで、類似する部分シーケンスのペアをより正確に検出することができる。
また、本発明は、前記処理部が、前記算出した類似度スコアの平均値s’が所定の閾値ε以上であり、かつ、前記算出に使用した2つの部分シーケンスの長さがいずれも所定の長さζ以上である場合、当該2つの部分シーケンスを、類似部分シーケンスペア候補として前記記憶部に記憶し、前記記憶部に記憶された前記類似部分シーケンスペア候補のうち、前記タイムワーピングパスの少なくとも一部に重複しているものがあるとき、前記重複している類似部分シーケンスペア候補の中から、前記タイムワーピングパスが最長の類似部分シーケンスペア候補を選択し、当該選択した類似部分シーケンスペア候補である2つの前記部分シーケンスを、類似する部分シーケンスのペアとして出力することが望ましい。
かかる発明によれば、タイムワーピングパスの少なくとも一部が重複する類似部分シーケンスペアが複数あった場合、その中でタイムワーピングパスが最長の類似部分シーケンスペアを出力するので、ユーザに対して、冗長な情報を与えることなく、より有益な情報を提供できる。
また、本発明は、類似部分シーケンス検出方法をコンピュータに実行させるための類似部分シーケンス検出プログラムである。このようなプログラムによれば、類似部分シーケンス検出方法を一般的なコンピュータに実行させることができる。
本発明によれば、2つのデータストリームから類似する部分シーケンスのペアを検出するときの計算量やメモリ使用量の増加を抑制することができる。
以下、本発明を実施するための最良の形態(以下、実施形態という)を、第1実施形態および第2実施形態に分けて説明する。また、その後で、3つの実験結果について説明する。
≪第1実施形態≫
図1は、第1実施形態の類似部分シーケンス検出装置の構成図である。類似部分シーケンス検出装置1は、コンピュータ装置であり、入力部11、処理部12、記憶部13および出力部14を備える。
入力部11は、外部装置(不図示)やセンサ(不図示)からインターネットやLAN(Local Area Network)経由でデータストリームの入力を受け付けたり、キーボードやマウス等の入力装置(不図示)から類似部分シーケンスペア(以下、単に「類似部分シーケンス」ともいう。)の検出のための類似部分シーケンス検出条件の入力を受け付けたりする。この類似部分シーケンス検出条件は、例えば、データストリームから類似部分シーケンスを検出するときの部分シーケンス長の下限値ζ、類似度スコアの平均値の閾値ε等(詳細は後記)である。この入力部11は、インターネットやLAN経由でデータの送受信を行うための通信インタフェースや、入力装置等の外部装置との各種データの入出力を行うための入出力インタフェースにより実現される。
このような入力部11は、2つのデータストリームから類似部分シーケンスを検出するときに用いる類似部分シーケンス検出条件の入力を受け付ける検出条件入力部111と、データストリームの入力を受け付けるデータストリーム入力部112とを含んで構成される。
処理部12は、2つのデータストリームから類似部分シーケンスペアを検出するための各種演算処理を行うものであり、例えば、CPU(Central Processing Unit)が記憶部13のプログラムを実行することで実現される。この処理部12は、データストリーム処理部121を備え、データストリーム入力部112で受信したデータストリームに関して、記憶部13のタイムワーピングデータ記憶部132のタイムワーピング行列(マトリックス)を用いて、類似部分シーケンスペアを検出し、出力部14の類似部分シーケンス出力部141(後記)経由で外部へ出力する。なお、このデータストリーム処理部121は、2つのデータストリームから部分シーケンス同士の類似度スコアの平均値を計算するとき、スコアリング関数を用いる。
スコアリング関数は、類似部分シーケンスペアを検出するための類似判定手段である。部分シーケンス間の類似度は、2つのシーケンス間の各要素同士をマッチングするために時間軸方向に最適に伸長を行った後、スコアとして算出される。スコアリング関数はDTWと同様、動的計画法に基づくアプローチであるが、次の2つの点でDTWと異なる。
1つ目は、累積スコアの最大値を用いて類似部分シーケンスペアを求めることである。一方、DTWは、累積距離の最小値を用いて類似部分シーケンスペアを求める。
2つ目は、スコアリング関数のための“zero-resetting”を導入したことである。これは、もしマトリックスの累積スコアs(i,j)が負の値となった場合、この値を0(ゼロ)で置き換えること意味する。このアプローチは、バイオインフォマティックスの分野で提案されており、Smith-Watermanアルゴリズムなどに実装されている。バイオインフォマティックス分野におけるシーケンスは記号シーケンスを対象としているが、本実施形態でのスコアリング関数は数値シーケンスを対象としている点で異なる。
スコアを0で置き換えることは、終了点(i,j)における部分シーケンスXとYが、もはや類似部分シーケンス検出の定義を満たしていない、すなわち、全く類似していないことを意味する。そのため、0が連続する区間では、この区間の部分シーケンスペアが全く類似していないことを表す。“zero-resetting”により、部分シーケンスペアX[i:i](長さはL)とY[j:j](長さはL)の間の類似度を評価することができる。
以下、スコアリング関数等について、さらに具体的に説明する。スコアリング関数は、一方のデータストリームX=(x,x,…,x,…)と、他方のデータストリームY=(y,y,…,y,…)との類似度スコアの平均値を計算するための関数である。データストリーム処理部121は、いずれかのデータストリームのデータが1つ到着するたびに、このスコアリング関数により、データストリームXの部分シーケンスX[i:i]と、データストリームYの部分シーケンスY[j:j]の類似度スコアを計算(算出)する。
なお、このスコアリング関数により計算される類似度スコアは、式(1)〜式(5)に示すように、類似度が高ければ加算され、類似度が低ければ減算される仕組みになっており、類似度スコアが閾値ε以上となる部分シーケンス同士が、類似する部分シーケンス同士であることを意味する。この類似度スコアは、データストリーム処理部121が、タイムワーピング行列(図3〜図6参照)を用いて、部分シーケンスXと部分シーケンスYの各要素同士を対応させて計算する。
2つの前記部分シーケンスX[i:i]とY[j:j]との類似度スコアS(X[i:i],Y[j:j])は、以下の式(1)〜式(5)により算出される。なお、i=1,2,…,n、j=1,2,…,mとする。
S(X[i:i],Y[j:j])=s(i,j) ・・・式(1)
s(i,j)=max{0,2ε−‖x−y‖+sbest} ・・・式(2)
best=max{s(i,j−1),s(i−1,j),s(i−1,j−1)}
・・・式(3)
s(i,0)=0 ・・・式(4)
s(0,j)=0 ・・・式(5)
また、前記類似度スコアの平均値s’は、以下の式(6)により算出される。
s’=s(i,j)/W ・・・式(6)
ここで、εは、類似判定のための閾値である。式(1)は、類似度スコアの定義である。式(2)は、具体的な計算式である。式(2)において、‖x−y‖は、2つの数値(xとy)の距離を表すものであり、例えば、ユークリッド距離やマンハッタン距離(L1距離)などが挙げられるが、ここでは、ユークリッド距離の二乗の値を使用する。
式(2),(3)におけるmax{}は、{}内の値のうち、最大のものを採用する、という意味である。なお、式(4)および式(5)は、タイムワーピング行列における境界条件である。また、Wは部分シーケンスX[i:i]と部分シーケンスY[j:j]とのタイムワーピングパスの長さを示す。この類似度スコアを用いたタイムワーピング行列および類似度スコアの平均値s’を使用することで、シーケンスXとシーケンYにおける類似部分シーケンスのペアをより正確に検出することができる(詳細は後記)。
なお、式(2)に示すように、s(i,j)を計算する場合において、「2ε−‖x−y‖+sbest」の値が0より小さくなったときには、s(i,j)=0とする。このようにすることで、類似度スコアが0より小さくなった場合でも、それ以降の部分シーケンスの類似度スコアに影響を与えないようにすることができる。つまり、類似度スコアのより高い部分シーケンス同士のつながりを反映した類似度スコアの計算を行うことができる。
また、タイムワーピング行列に記憶させる部分シーケンスX[i:i]の開始位置iと、前記部分シーケンスY[j:j]の開始位置jとを示すp(i,j)は、以下の式(7)により算出することができる。
p(i,j)={p(i,j−1) (if sbest=s(i,j−1)),
p(i−1,j) (if sbest=s(i−1,j)),
p(i−1,j−1)(if sbest=s(i−1,j−1)),
(i,j) (if sbest=0)} ・・・式(7)
そして、開始位置i,jは、以下の式(8)により算出することができる。
(i,j)=p(i,j) ・・・式(8)
つまり、このタイムワーピング行列は、各要素に類似度スコアと、その類似度スコアの算出に用いた部分シーケンスX,Yの開始位置を保持することで、該当するタイムワーピングパスの開始位置を、過去に遡ることなく(過去のデータを保持することなく)認識することができる。
記憶部13は、2つのデータストリームから類似部分シーケンス検出を行うための各種データを記憶する。この記憶部13は、例えば、RAM(Random Access Memory)と、HDD(Hard Disk Drive)とにより実現される。この記憶部13は、検出条件記憶部131と、タイムワーピングデータ記憶部132とを含んで構成される。なお、破線で示した類似部分シーケンス候補記憶部133については、別途、第2実施形態で説明する。
検出条件記憶部131は、類似部分シーケンス検出条件を記憶する。この類似部分シーケンス検出条件は、2つのデータストリームから類似部分シーケンスのペアを検出するときの部分シーケンス長の下限値ζ、類似度スコアの平均値の閾値ε等を示す情報である。
タイムワーピングデータ記憶部132は、前記したタイムワーピング行列(図3〜図6参照)を記憶する。このタイムワーピング行列が単一であることが、類似部分シーケンス検出装置1の特徴の1つである。すなわち、1つのタイムワーピング行列の使用で類似部分シーケンスペアを検出することができるので、多数のタイムワーピング行列を使用する場合に比較して、計算量やメモリ使用量の増加を大幅に抑制することができる。また、オリジナルのデータストリームを保持する必要がなく、メモリ使用量の増加をさらに抑制することができる。
なお、図3〜図6では、受信したデータストリームのすべての要素のタイムワーピング行列を示しているが、このタイムワーピングデータ記憶部132に用意されるタイムワーピング行列は、外側(新しいデータ側)の2行2列分のデータ(図3のマトリックスではi=3,4、j=4,5の部分のデータ)があればよい。
出力部14は、データストリーム処理部121で検出された類似部分シーケンスを出力する類似部分シーケンス出力部141を含んで構成される。この出力部14は、前記した通信インタフェースや、出力装置等の外部装置との各種データの入出力を行うための入出力インタフェースにより実現される。
次に、類似部分シーケンス検出装置1の処理について説明する。図2は、第1実施形態の類似部分シーケンス検出装置1の処理を示すフローチャートである。ここでは、2つのデータストリームX(=x,…,x,…,x,…)と、データストリームy(=y,…,y,…,y,…)とにおける各要素が、順次与えられるものとする。
まず、データストリーム処理部121は、データストリーム入力部112経由で、時刻iにおいてデータxを受信する(ステップS11)。
次に、データストリーム処理部121は、jの値を0にリセットする(ステップS12)。
その後、データストリーム処理部121は、jの値をインクリメント(1増加)させながら、jの値がmになるまで、ステップS13〜S16の処理を繰り返す。
ステップS13において、データストリーム処理部121は、xとyの類似度スコアs(i,j)、類似度スコアの平均値s’、および、開始位置p(i,j)を、前記式(1)〜(7)を用いて計算する。
ステップS14において、データストリーム処理部121は、s’≧εかつL≧ζかつL≧ζの条件を満たすか否か、つまり、類似度スコアの平均値s’が所定の閾値ε以上であり、かつ、その類似度スコアs(i,j)の算出に使用した2つの部分シーケンスの長さがいずれも所定の長さζ以上であるか否か、判断する。
ステップS14でYesのとき、ステップS15において、データストリーム処理部121は、(i,j)にp(i,j)、iにi、jにj、の値をそれぞれ代入する。
ステップS16において、データストリーム処理部121は、i,i,j, j,s’の値を、類似部分シーケンス出力部141経由でユーザに対して出力する。
ステップS14でNoのとき、ステップS15およびステップS16をスキップする。
データストリーム処理部121は、データストリーム入力部112経由で、時刻jにおいてデータyを受信した場合(ステップS21)、ステップS12〜ステップS16の処理と同様にして、ステップS22〜ステップS26の処理を行う。
ステップS13〜S16の処理の後、あるいは、ステップS23〜S26の処理の後、データストリーム処理部121は、2つのデータストリームの受信が終了したか否か判断する(ステップS31)。データストリーム処理部121は、終了していなければ(ステップS31でNo)ステップS11あるいはステップS21に戻り、終了していれば(ステップS31でYes)処理を終了する。
次に、この図2のフローチャートの処理の具体例について説明する。図3〜図6は、その具体例の説明図である。この具体例では、2つのデータストリームX=(5,12,6,10,6,5,1)、y=(11,6,9,4,13,8,5)について、ε=3、ζ=4の条件の下、類似部分シーケンスペアを検出することを想定する。なお、前記したように、マトリックス(タイムワーピング行列)は、各要素(セル)に、類似度スコアと、その類似度スコアの算出に用いた部分シーケンスX,Yの開始位置を保持するものであるが、以下では、説明を容易にするために、各要素(セル)に、類似度スコアの平均値と前記開始位置を保持するものとして説明する。
データストリームXまたはYの1つの要素が到着した時点で、類似部分シーケンス検出装置1による処理が実行される。まず、i=4,j=5の時点、つまり、X=(5,12,6,10)、y=(11,6,9,4,13)のデータをすでに受信した場合のマトリックスは図3のようになる。各セルには類似度スコアの平均値s’と、その算出の開始点p(i,j)の情報が保持されており、上段に類似度スコアの平均値s’を、下段に開始点情報を示している。例えば、セル(4,3)の類似度スコアの平均値s’は4であり、部分シーケンスX[2:4]とY[1:3]の類似度スコアの平均値であることを意味する。
そして、時刻i=5においてx=6が到着した場合、図2のステップS11〜S16の処理が実行され、図4の色付け(網掛け)されたセルの各値が計算される。図4はi=5,j=5の時点におけるマトリックスである。このとき、丸印で囲ったセル(5,4)において、平均スコアがε(=3)以上、長さがいずれもζ(=4)以上となる部分シーケンスX[2:5]、Y[1:4]のペアが類似部分シーケンスペアとして検出される。
データストリームYの要素が到着した場合には、図2のステップS21〜S26の処理が実行される。データストリームXおよびYの各要素が到着した時点でこれらの処理が繰り返され、最終的なマトリックスは図5のようになる。図5はi=7,j=7の時点におけるマトリックスである(各数値の記載は省略)。図5に示すように、最終的に、丸印で囲った5つのセルに対応する部分シーケンスペアが類似部分シーケンスペアとして検出される。
ナイーブな手法では、類似部分シーケンスペアを検出するためにO(nm+nm)のメモリ量を使用し、単位時間あたりO(nm)(Xの要素が到着した場合)またはO(nm)(Yの要素が到着した場合)の距離値の更新が必要となる。一方、本実施形態では単一のマトリックスのみで類似部分シーケンスペアの検出が可能なため、O(m+n)のメモリ量を使用し、単位時間あたりO(m)(Xの要素が到着した場合)またはO(n)(Yの要素が到着した場合)の値しか更新しなくてよい。そのため、計算量(計算時間)やメモリ使用量の大幅な低減化を実現できる。
≪第2実施形態≫
次に、第2実施形態について説明する。前記した第1実施形態の類似部分シーケンス検出装置1によれば、類似部分シーケンスペア検出により出力される類似部分シーケンスペアには、タイムワーピングパスの少なくとも一部が重複するものも含まれる。例えば、図5で検出される類似部分シーケンスペアは、X[1:5]とY[4:7]のペア、X[1:6]とY[4:7]のペア、X[2:5]とY[1:4]のペア、X[2:6]とY[1:4]のペア、X[2:7]とY[1:4]のペアの5つであり、これらのタイムワーピングパスは図6のようになる。図6は、図5で検出される類似部分シーケンスペアのタイムワーピングパスを示す図である。
前記したように、タイムワーピングパスとは、2つの部分シーケンスのどの要素同士がマッチングしているのかを示すものである。図6から確認できるように、5つのシーケンスペアは大きく2つのグループに分類できる、すなわち、5つのタイムワーピングパスは異なる2つのグループに分類することができる。そこで、第2実施形態の類似部分シーケンス検出装置1では、タイムワーピングパスが重複する複数の類似部分シーケンスペアから、タイムワーピングパスが最長の類似部分シーケンスペアを1つ選択して検出する。ユーザヘの報知(データ出力)はその選択されたタイムワーピングパスが最長の類似部分シーケンスペアのみとすることにより、ユーザが重複する情報を受け取る事態を回避できる。図5の例では、X[1:6],Y[4:7]のペア、および、X[2:7],Y[1:4]のペアが、出力されるタイムワーピングパスが最長の類似部分シーケンスペアとなる。
第2実施形態の類似部分シーケンス検出装置1について、第1実施形態の場合との相違点を中心に説明する。第2実施形態の類似部分シーケンス検出装置1は、タイムワーピングパスの少なくとも一部が重複する複数の類似部分シーケンスペアから、最長の類似部分シーケンスペアを1つ選択して検出することを特徴とする。以下の説明において、前記した第1実施形態と同様の構成要素には同じ符号を付して、説明を省略する。
類似部分シーケンス検出装置1は、図1に示すように、記憶部13に類似部分シーケンス候補記憶部133を備える。この類似部分シーケンス候補記憶部133は、s’≧εかつL≧ζかつL≧ζの条件を満たす類似部分シーケンスペアの情報を1つ以上記録(蓄積)する。
このような類似部分シーケンス検出装置1の処理手順を、図7を用いて説明する。図7は、第2実施形態の類似部分シーケンス検出装置の処理を示すフローチャートである。
データストリーム処理部121は、ステップS15の後、i,i,j, j,s’の値を類似部分シーケンスペアの候補として、記憶部13の類似部分シーケンス候補記憶部133に記憶させる(ステップS17)。ステップS27についても同様である。
データストリーム処理部121は、ステップS13〜S17のループの後、あるいは、ステップS23〜S27のループの後、タイムワーピングパスの少なくとも一部が重複する複数の類似部分シーケンスペアのうち、タイムワーピングパスが最長となる類似部分シーケンスペアが決定したか否か判断する(ステップS41)。この判断は、タイムワーピング行列(マトリックス)の各セルの開始位置の情報を使用することで実行できる。つまり、例えば、タイムワーピングパスの少なくとも一部が重複する類似部分シーケンスペアが複数あった場合、マトリックスにおいて逐次更新するすべてのセルの開始位置の情報がそれらの複数の類似部分シーケンスペアのタイムワーピングパスの終了位置よりも後ろになっていれば、重複する類似部分シーケンスペアはもうそれ以上ないことになる。
ステップS41でYesのとき、データストリーム処理部121は、タイムワーピングパスが最長となる類似部分シーケンスペアを類似部分シーケンス出力部141経由でユーザに対して出力(ステップS42)し、ステップS31に移る。
このようにして、第2実施形態の類似部分シーケンス検出装置1によれば、タイムワーピングパスの少なくとも一部が重複する類似部分シーケンスペアが複数あった場合、その中でタイムワーピングパスが最長の類似部分シーケンスを出力するので、ユーザに対して、冗長な情報を与えることなく、より有益な情報(タイムワーピングパスが最長の類似部分シーケンス)を提供できる。
また、第1実施形態および第2実施形態の類似部分シーケンス検出方法を実行させるための類似部分シーケンス検出プログラムを作成すれば、そのプログラムを実行する一般的なコンピュータが類似部分シーケンス検出装置1として動作できる。
≪実験結果≫
次に、第1実施形態の類似部分シーケンス検出装置1を用いた処理の実験結果について説明する。実験結果を視覚的に把握するため、ここでは、散布図を用いる。例えば、図8は、図13のシーケンス#1と#2から類似部分シーケンスペアを検出した結果を表す散布図である。図8の散布図は、シーケンス#1と#2における類似部分シーケンスペアであるX[i:i]とY[j:j]における要素iとjを反映している。つまり、この図8における横軸はXの要素を、縦軸はYの要素を表し、部分シーケンスペアX[i:i]とY[j:j]が類似している場合、散布図の(i,j)の位置に点がプロットされる。
図8では、2つの実線で囲まれたそれぞれの部分が検出された小さなスパイクを、破線で囲まれた部分が検出された大きなスパイクを含んだ領域を、それぞれ表している。この図8では、2つのシーケンス間の類似部分シーケンスペアの周期性(出現間隔や出現時間幅)を確認することができる。
例えば、小さなスパイク#11と#22は類似しており、その関係は散布図において左の実線で囲まれた部分の一番左下に現れている。実線で囲まれた部分では、小さなスパイク同士の対応を表す6つの位置が規則的にプロットされており、#11や#22に類似する小さなスパイクが周期的に現れていることがわかる。シーケンス#1と#2では大小のそれぞれのスパイクの間隔が異なっているが、類似部分シーケンスペアの存在およびその周期性を確認することができる。
以下、図9〜図11について、同様にして散布図を作成することができる。
次に、実データを用いた実験結果を示す。各実験は、2GBのメモリ、3GHzのCPUを搭載したコンピュータ上で実施した。
図9において、(a)と(b)はホワイトノイズを持つ複数のサイン波から構成される人工データ(Sines)を示す図であり(縦軸は数値、横軸は時間)、(c)は実験結果の散布図である。
図9の(a)と(b)に示すように、Sines1とSines2は、含まれるサイン波の周期と、サイン波の現れる周期が、それぞれ異なっている。そして、図9(c)に示すように、本実施形態の類似部分シーケンス検出装置1によれば、すべてのサイン波と時間変化する周期性を完全に特定(表現)することができていることがわかる。つまり、Sines1にはサイン波が6つ、Sines2にはサイン波が5つあり、散布図には30個(=6×5)のプロット群が存在している。また、図9(c)の散布図において、各サイン波の周期の違いは傾きの違いとして表れていることが確認できる。
図10において、(a)と(b)は温度センサの計測値(Temperature)を示す図でありその温度は摂氏で表され(縦軸は温度、横軸は時間)、(c)は実験結果の散布図である。
図10の(a)と(b)におけるデータの取得間隔は約1分であり、これらのデータでは多くの時刻で計測値が欠けている。Temperature1とTemperature2は、天候によって、約18度から32度まで大きく変動する温度変化が連続して2つ表れるパターンを、それぞれ2つずつ含んでいる(破線部分参照)。図10(c)に示すように、本実施形態の類似部分シーケンス検出装置1では、これらの2つずつのパターンを見つけることに成功していることがわかる。つまり、図10(c)の散布図には4個(=2×2)のプロット群が存在している。
図11において、(a)と(b)はモーションキャプチャデータ(Mocap)を示す図であり、(c)は実験結果の散布図である。この2つのデータ(Mocap1とMocap2)は、被験者の各部位にマーカーを取り付け、取り付けた部位の角速度を1秒間に120回というサンプリング周期で測定したモーションキャプチャデータである。表の“Sec.”が実際のモーション時間に対応しており、被験者があるモーションを連続して行っていることを示す。
例えば、Mocap1では、被験者がwalking-running-jumping-…の順にモーションを行ったことを意味する。本実験では、二の腕・肘下・太もも・ふくらはぎの各部位に左右対称に取り付けられたマーカーから取得された8個の角速度データを選択し、8次元データをして使用している。これらのデータにはwalkingモーションが含まれており(表の色付けした部分)、各walkingモーションのデータ長は異なっている。図11(c)に示すように、本実施形態の類似部分シーケンス検出装置1では、walkingモーションがすべて検出されている様子が散布図から確認できる。つまり、Mocap1にはwalkingが3つ、Mocap2にもwalkingが3つあり、散布図には9個(=3×3)のプロット群が存在している。
なお、Mocap1およびMocap2における「Time」の数値と、散布図におけるプロット群の位置とに多少のずれが生じている部分があるようにも見える。しかし、それは、被験者によるモーションの切り替えが連続的な場合(一旦停止なし)と不連続な場合(一旦停止あり)とが混在していて、次のモーションが始まるまでを検出している(つまり、あるモーションの終了直後に、すぐ次のモーションが始まる場合と、被験者の動きが一旦(1,2秒)停止する場合とでは、類似スコアの減少速度が異なる)ことに起因するものであり、本手法の精度とは無関係である。
図12は、本実施形態による方法とナイーブな手法との計算時間に関する比較図である。データには人工データを用い、シーケンス長(横軸)のnとmを変化させている。図12では、マトリックスの更新と類似部分シーケンスペア検出の合計時間を平均し、計算時間として縦軸に示している。この実験結果から、本実施形態による方法がナイーブな手法と比べ、非常に高い性能を示している(処理の高速化を実現している)ことがわかる。つまり、計算量が、ナイーブな手法のO(nm+nm)(マトリックスの数がO(nm)なので)と比較して、本実施形態による方法はO(m+n)(マトリックスが単一なので)であり、大幅な低減化を達成している。
以上、本発明の実施形態について説明したが、本発明はこれに限定されるものではなく、その趣旨を変えない範囲で実施することができる。
その他、ハードウェア、ソフトウェアの具体的な構成について、本発明の主旨を逸脱しない範囲で適宜変更が可能である。
なお、データストリームは、映像やセンサネットワーク、金融など様々な分野で発生する。本発明はこれらのすべての分野に適用可能である。
第1実施形態の類似部分シーケンス検出装置の構成図である。 第1実施形態の類似部分シーケンス検出装置の処理を示すフローチャートである。 タイムワーピング行列の一例を示す図である。 タイムワーピング行列の一例を示す図である。 タイムワーピング行列の一例を示す図である。 タイムワーピング行列の一例を示す図である。 第2実施形態の類似部分シーケンス検出装置の処理を示すフローチャートである。 図13のシーケンスから類似部分シーケンスペアを検出した結果を表す散布図である。 (a)と(b)はホワイトノイズを持つ複数のサイン波から構成される人工データを示す図であり、(c)は実験結果の散布図である。 (a)と(b)は温度センサの計測値を示す図であり、(c)は実験結果の散布図である。 (a)と(b)はモーションキャプチャデータを示す図であり、(c)は実験結果の散布図である。 本実施形態による方法とナイーブな手法との計算時間に関する比較図である。 類似部分シーケンスペアの検出に使用されるデータストリームの例である。 DTWの説明図である。 DTWによるタイムワーピング行列を例示した図である。
符号の説明
1 類似部分シーケンス検出装置
11 入力部
12 処理部
13 記憶部
14 出力部
111 検出条件入力部
112 データストリーム入力部
121 データストリーム処理部
131 検出条件記憶部
132 タイムワーピングデータ記憶部
133 類似部分シーケンス候補記憶部
141 類似部分シーケンス出力部

Claims (5)

  1. 2つのデータストリームから、類似する部分シーケンスのペアを、2つの前記部分シーケンス同士の類似度スコアを示すタイムワーピング行列を用いて検出する類似部分シーケンス検出装置による類似部分シーケンス検出方法であって、
    前記類似部分シーケンス検出装置は、前記タイムワーピング行列を記憶する記憶部と、処理部と、を備えており、
    前記処理部は、
    前記2つのデータストリームのうちいずれかのデータストリームのデータの1つの要素を受信したとき、当該要素を含む前記データストリーム中の部分シーケンスと、他方の前記データストリーム中の部分シーケンスと、の類似度スコアを算出し、その際、
    2つの部分シーケンスX[i :i ]とY[j :j ]との類似度スコアS(X[i :i ],Y[j :j ])を、以下の式(1)〜式(5)により算出し、
    S(X[i :i ],Y[j :j ])=s(i ,j ) ・・・式(1)
    s(i,j)=max{0,2ε−‖x −y ‖+s best } ・・・式(2)
    best =max{s(i,j−1),s(i−1,j),s(i−1,j−1)}
    ・・・式(3)
    s(i,0)=0 ・・・式(4)
    s(0,j)=0 ・・・式(5)
    前記タイムワーピング行列に記憶する前記部分シーケンスX[i :i ]の開始位置i と、前記部分シーケンスY[j :j ]の開始位置j とを示すp(i,j)を、以下の式(7)により算出し、
    p(i,j)={p(i,j−1) (if s best =s(i,j−1)),
    p(i−1,j) (if s best =s(i−1,j)),
    p(i−1,j−1)(if s best =s(i−1,j−1)),
    (i,j) (if s best =0)} ・・・式(7)
    前記開始位置i ,j を、以下の式(8)により算出し、
    (i ,j )=p(i ,j ) ・・・式(8)
    前記算出した類似度スコアと、その類似度スコアの算出に用いた2つの前記部分シーケンスの開始位置および終了位置と、を対応付けて前記記憶部の前記タイムワーピング行列に記憶し、
    前記記憶部のタイムワーピング行列に記憶された前記類似度スコアを用いて、類似する部分シーケンスのペアを検出して出力し、その際、
    類似度スコアの平均値s’を、以下の式(6)により算出し、
    s’=s(i,j)/W ・・・式(6)
    前記算出した類似度スコアの平均値s’が所定の閾値ε以上であり、かつ、前記類似度スコアの算出に使用した2つの部分シーケンスの長さがいずれも所定の長さζ以上であるとき、それらの2つの前記部分シーケンスを、類似する部分シーケンスのペアとして検出して出力する
    ことを特徴とする類似部分シーケンス検出方法。
    ただし、i=1,2,…,n、j=1,2,…,m、‖x −y ‖はx とy との間の距離を示す。
    また、Wは部分シーケンスX[i :i ]と部分シーケンスY[j :j ]とのタイムワーピングパスの長さを示す。
  2. 前記処理部は、
    前記算出した類似度スコアの平均値s’が所定の閾値ε以上であり、かつ、前記算出に使用した2つの部分シーケンスの長さがいずれも所定の長さζ以上である場合、
    当該2つの部分シーケンスを、類似部分シーケンスペア候補として前記記憶部に記憶し、
    前記記憶部に記憶された前記類似部分シーケンスペア候補のうち、前記タイムワーピングパスの少なくとも一部に重複しているものがあるとき、前記重複している類似部分シーケンスペア候補の中から、前記タイムワーピングパスが最長の類似部分シーケンスペア候補を選択し、当該選択した類似部分シーケンスペア候補である2つの前記部分シーケンスを、類似する部分シーケンスのペアとして出力する
    ことを特徴とする請求項に記載の類似部分シーケンス検出方法。
  3. 請求項1または請求項に記載の類似部分シーケンス検出方法をコンピュータに実行させるための類似部分シーケンス検出プログラム。
  4. 2つのデータストリームから、類似する部分シーケンスのペアを、2つの前記部分シーケンス同士の類似度スコアを示すタイムワーピング行列を用いて検出する類似部分シーケンス検出装置であって、
    前記タイムワーピング行列を記憶する記憶部と、
    前記2つのデータストリームのうちいずれかのデータストリームのデータの1つの要素を受信したとき、当該要素を含む前記データストリーム中の部分シーケンスと、他方の前記データストリーム中の部分シーケンスと、の類似度スコアを算出し、その際、
    2つの部分シーケンスX[i :i ]とY[j :j ]との類似度スコアS(X[i :i ],Y[j :j ])を、以下の式(1)〜式(5)により算出し、
    S(X[i :i ],Y[j :j ])=s(i ,j ) ・・・式(1)
    s(i,j)=max{0,2ε−‖x −y ‖+s best } ・・・式(2)
    best =max{s(i,j−1),s(i−1,j),s(i−1,j−1)}
    ・・・式(3)
    s(i,0)=0 ・・・式(4)
    s(0,j)=0 ・・・式(5)
    前記タイムワーピング行列に記憶する前記部分シーケンスX[i :i ]の開始位置i と、前記部分シーケンスY[j :j ]の開始位置j とを示すp(i,j)を、以下の式(7)により算出し、
    p(i,j)={p(i,j−1) (if s best =s(i,j−1)),
    p(i−1,j) (if s best =s(i−1,j)),
    p(i−1,j−1)(if s best =s(i−1,j−1)),
    (i,j) (if s best =0)} ・・・式(7)
    前記開始位置i ,j を、以下の式(8)により算出し、
    (i ,j )=p(i ,j ) ・・・式(8)
    前記算出した類似度スコアと、その類似度スコアの算出に用いた2つの前記部分シーケンスの開始位置および終了位置と、を対応付けて前記記憶部の前記タイムワーピング行列に記憶し、
    前記記憶部のタイムワーピング行列に記憶された前記類似度スコアを用いて、類似する部分シーケンスのペアを検出して出力し、その際、
    類似度スコアの平均値s’を、以下の式(6)により算出し、
    s’=s(i,j)/W ・・・式(6)
    前記算出した類似度スコアの平均値s’が所定の閾値ε以上であり、かつ、前記類似度スコアの算出に使用した2つの部分シーケンスの長さがいずれも所定の長さζ以上であるとき、それらの2つの前記部分シーケンスを、類似する部分シーケンスのペアとして検出して出力する処理部と、
    を備えることを特徴とする類似部分シーケンス検出装置。
    ただし、i=1,2,…,n、j=1,2,…,m、‖x −y ‖はx とy との間の距離を示す。
    また、Wは部分シーケンスX[i :i ]と部分シーケンスY[j :j ]とのタイムワーピングパスの長さを示す。
  5. 前記処理部は、
    前記算出した類似度スコアの平均値s’が所定の閾値ε以上であり、かつ、前記算出に使用した2つの部分シーケンスの長さがいずれも所定の長さζ以上である場合、
    当該2つの部分シーケンスを、類似部分シーケンスペア候補として前記記憶部に記憶し、
    前記記憶部に記憶された前記類似部分シーケンスペア候補のうち、前記タイムワーピングパスの少なくとも一部に重複しているものがあるとき、前記重複している類似部分シーケンスペア候補の中から、前記タイムワーピングパスが最長の類似部分シーケンスペア候補を選択し、当該選択した類似部分シーケンスペア候補である2つの前記部分シーケンスを、類似する部分シーケンスのペアとして出力する
    ことを特徴とする請求項に記載の類似部分シーケンス検出装置。
JP2008042633A 2008-02-25 2008-02-25 類似部分シーケンス検出方法、類似部分シーケンス検出プログラム、および、類似部分シーケンス検出装置 Expired - Fee Related JP5060340B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008042633A JP5060340B2 (ja) 2008-02-25 2008-02-25 類似部分シーケンス検出方法、類似部分シーケンス検出プログラム、および、類似部分シーケンス検出装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008042633A JP5060340B2 (ja) 2008-02-25 2008-02-25 類似部分シーケンス検出方法、類似部分シーケンス検出プログラム、および、類似部分シーケンス検出装置

Publications (2)

Publication Number Publication Date
JP2009199507A JP2009199507A (ja) 2009-09-03
JP5060340B2 true JP5060340B2 (ja) 2012-10-31

Family

ID=41142907

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008042633A Expired - Fee Related JP5060340B2 (ja) 2008-02-25 2008-02-25 類似部分シーケンス検出方法、類似部分シーケンス検出プログラム、および、類似部分シーケンス検出装置

Country Status (1)

Country Link
JP (1) JP5060340B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5424269B2 (ja) * 2010-09-10 2014-02-26 株式会社日立製作所 局所対応抽出装置及び局所対応抽出方法
EP3249549B1 (en) 2015-01-22 2020-03-18 Mitsubishi Electric Corporation Time series data search device and time series data search program
CN107305501B (zh) * 2016-04-25 2020-11-17 百度在线网络技术(北京)有限公司 一种多流流式数据的处理方法和系统
JP7122960B2 (ja) 2018-12-27 2022-08-22 三菱電機株式会社 異常検出装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000305940A (ja) * 1999-04-21 2000-11-02 Nippon Telegr & Teleph Corp <Ntt> 時系列データ検索方法及び装置及び時系列データ検索プログラムを格納した記憶媒体

Also Published As

Publication number Publication date
JP2009199507A (ja) 2009-09-03

Similar Documents

Publication Publication Date Title
US10895454B2 (en) Movement line information generation system, movement line information generation method and movement line information generation program
KR101906859B1 (ko) 이상 서브시퀀스 검출 장치 및 방법
Hassani et al. Towards a mobile health context prediction: Sequential pattern mining in multiple streams
JP2011252844A (ja) データ処理装置、データ処理方法、およびプログラム
JP5060340B2 (ja) 類似部分シーケンス検出方法、類似部分シーケンス検出プログラム、および、類似部分シーケンス検出装置
JP2016110337A (ja) 経路情報処理装置、方法、及びプログラム
JP4939349B2 (ja) トレンド検出方法、トレンド検出プログラムおよびトレンド検出装置
Kulkarni et al. Mobidict: A mobility prediction system leveraging realtime location data streams
CN110992698A (zh) 基于Apriori支持度与行驶距离加权计算交叉口间关联程度的方法
US9674083B2 (en) Path calculation order deciding method, program and calculating apparatus
JPWO2014087590A1 (ja) 最適化装置、最適化方法および最適化プログラム
Zhang et al. Lightweight and accurate DNN-based anomaly detection at edge
Sankararaman et al. Computing similarity between a pair of trajectories
JP4801566B2 (ja) データストリーム監視装置、データストリーム監視方法、そのプログラムおよび記録媒体
CN116541721B (zh) 一种面向信令数据的定位与路网匹配方法及系统
JP2010198227A (ja) 類似部分シーケンス検出装置、類似部分シーケンス検出方法、および、類似部分シーケンス検出プログラム
Li et al. Similarity match in time series streams under dynamic time warping distance
Rafid et al. The Effect of LAB Color Space with NASNetMobile Fine-tuning on Model Performance for Crowd Detection
Moghtasedi et al. High-quality prediction of tourist movements using temporal trajectories in graphs
JP2014229110A (ja) 検索装置、検索方法および検索プログラム
Truong et al. Time series prediction using motif information
Li et al. Efficient Multi-source Contact Event Query Processing for Moving Objects
Li et al. Subspace estimation of distribution algorithms: To perturb part of all variables in estimation of distribution algorithms
Pehlivan et al. Anchor-free action proposal network with uncertainty estimation
JP5786879B2 (ja) 被写体追跡装置、被写体追跡方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100114

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110811

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120124

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120322

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120731

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120803

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150810

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees