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

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

Info

Publication number
JP5033155B2
JP5033155B2 JP2009041308A JP2009041308A JP5033155B2 JP 5033155 B2 JP5033155 B2 JP 5033155B2 JP 2009041308 A JP2009041308 A JP 2009041308A JP 2009041308 A JP2009041308 A JP 2009041308A JP 5033155 B2 JP5033155 B2 JP 5033155B2
Authority
JP
Japan
Prior art keywords
partial sequence
pair
partial
score
similarity score
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
JP2009041308A
Other languages
English (en)
Other versions
JP2010198227A (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 JP2009041308A priority Critical patent/JP5033155B2/ja
Publication of JP2010198227A publication Critical patent/JP2010198227A/ja
Application granted granted Critical
Publication of JP5033155B2 publication Critical patent/JP5033155B2/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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、ストリームマイニングにおいて類似部分シーケンスペアを検出する技術に関する。
データストリーム(以下、単に「ストリーム」ともいう。)とは、ネットワークから高速に流れてくる大量のデータのことである。ストリームマイニングとは、時系列として表現されるデータストリームから役に立つ情報を素早く見つけ出す技術である。ストリームマイニングは、単にデータベースに蓄えられた大規模データを分析するものではなく、増え続けるデータの流れをリアルタイムに分析し、監視するための技術である。そして、増え続ける大規模なデータを分析するため、また、ユーザに情報をリアルタイムに提供するため、ストリームマイニングの技術は高速化と省メモリ化を図る必要がある。
ストリーム監視においては、シーケンスマッチング技術が必要とされる。シーケンスマッチングでは、例えば、2つのデータシーケンス間の類似度を距離(距離値)として表し、この距離を用いて類似度を判断する。これまでも多くのシーケンスマッチング技術が提案されてきたが、その多くは蓄積されたデータセットを対象としたものである。例えば、データベースに蓄積されたシーケンスに対して問い合わせシーケンスに類似する部分的なシーケンス(部分シーケンス)を検出する手法などである。
また、シーケンスマッチング技術では、データストリームのサンプリングレートなどによって、データストリームと問合せシーケンスの間や、2つのデータストリームの間で、相対的な経時速度が異なることがあるので、データの時間軸方向の伸縮も考慮に入れたマッチングを行うことが望ましい。
これらについて、図12を用いて説明する。図12は、類似部分シーケンスペアの検出に使用されるデータストリーム(シーケンス)の例である。図12の(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]と表せる。
この時間軸方向の伸縮を考慮する距離関数としては、ダイナミックタイムワーピング(DTW:Dynamic Time Warping)が広く用いられている。DTWは、蓄積されたシーケンスに対して用いられる距離関数であり、2つのシーケンス間の距離を最小化するように時間軸方向に伸長を行い、各要素同士をマッチングさせた計算により距離値を求め、類似か否かを、距離値と閾値によって判定する。この距離値はDTW距離と呼ばれ、最適にシーケンス長を調整した後の距離の合計値で表され、動的計画法に基づくタイムワーピング行列によって計算される。DTW距離の値が小さいほど2つのシーケンスは類似度が高く、DTW距離の値が「0」の場合は2つのシーケンスが完全に一致していることを意味する。
図13は、DTWの説明図である。図13(a)に示すように、2つのシーケンスX=(x,x,…,xi,…,x)とシーケンスY=(y,y,…,y,…,y)に関して、DTW距離を求める際、DTW距離が最小になるように対応付けがなされる。2つのシーケンスの長さが同じ場合でも異なる場合でも、DTWは各要素を適切に対応付けることができる。
図13(b)に示すように、DTW距離の計算に用いられるタイムワーピング行列において、2つのシーケンス間で対応付けられたその組み合わせ(集合)はタイムワーピングパスと呼ばれ、ここでは色付け(黒塗り)されたセルとして示している。
DTW距離について、さらに説明する。長さnのシーケンスX=(x,x,…,x)と長さmのシーケンスY=(y,y,…,y)において、これらのDTW距離D(X,Y)は以下の式(1)〜(4)によって算出される。なお、i=1,2,…,n、j=1,2,…,mとする。
D(X,Y)=f(n,m) ・・・式(1)
f(i,j)=‖x−y‖+min{f(i,j−1),
f(i−1,j),
f(i−1,j−1)}・・・式(2)
f(0,0)=0 ・・・式(3)
f(i,0)=f(0,j)=∞ ・・・式(4)
式(1)は、DTW距離の定義である。式(2)は、具体的な計算式である。式(2)において、‖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|で表される距離のことである。
式(2)において、min{f(i,j−1),f(i−1,j),f(i−1,j−1)}は、{}内の3つの値のうち、最小のものを採用する、という意味である。式(3)および式(4)は、これらの3つの値を計算する際に使用する、タイムワーピング行列における境界条件である。このDTW距離を用いたタイムワーピング行列によれば、シーケンスYと類似するシーケンスXの部分シーケンスを検出することができる。
例えば、特許文献1では、DTWによってストリームのシーケンスマッチングを行う手法が提案されている。特許文献2や非特許文献1,2では、リアルタイムでのストリーム監視に焦点をあて、ストリーム間の相関を検出する手法が提案されている。また、非特許文献3では、ストリームから部分シーケンスペアを検出する手法が提案されている。
特開2008−134706号公報 特開2007−150484号公報
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. M. Toyoda, Y. Sakurai and T. Ichikawa: "Identifying similar subsequences in Data stream", In Proceedings of the 19th International Conference on Database and Expert Systems Applications (DEXA2008), Lecture Note in Computer Science Vol. 5181, pp. 210-224
しかしながら、特許文献1の技術は、問合せシーケンスに類似する部分シーケンスをストリームから検出するものであり、それ以外の類似を見つけるには大きな計算コストがかかる。また、特許文献2や非特許文献1,2の技術は、時間軸方向の調節がない距離尺度を用いており、2つのデータストリームのサンプリングレートが異なる場合などに類似している部分シーケンスを見つけることができないことがある。
非特許文献3の技術は、時間軸方向の伸縮を考慮し、問合せシーケンスを用いることなくストリームから類似する部分シーケンスのペアを検出するものであり、類似する部分シーケンスのペアを柔軟に見つけることができる。しかし、類似判定には独自の距離関数を用いており、DTWのように広く用いられ、その効果の有用性も認知されている距離関数を用いた場合との検出結果が異なる。すなわち、実験で用いられている以外のデータセットに適用した場合の効果が保証されていないものであった。
また、DTWは、計算コストが高いことが知られている。例えば、長さnのシーケンスXと長さmのシーケンスYの距離を求めようとすると、DTWはO(mn)の時間を要する。これは、DTWが2つのシーケンスのすべての要素を対応付けて計算を行うためであり、特に長いシーケンスを扱う場合には計算コストが著しく大きくなる。つまり、DTWの場合、データストリームから類似部分シーケンスを検出するとき、あらゆるパターンの部分シーケンスとの比較を行う必要があるので、時刻が経過してデータストリームのデータが到着するたびにタイムワーピング行列を追加するとともに、すべてのタイムワーピング行列を更新する必要がある。本明細書では、この方法をナイーブな手法と呼ぶ。
ナイーブな手法では、i,j番目の行列(すなわち、データストリームXの時刻iとデータストリームYの時刻jから始まる行列)において、要素(k,l)の距離をdi,j(k,l)とすると、XとYの部分シーケンスマッチングの距離D(X[i:i],Y[j:j])は、前記した式(1)〜(4)のように、以下の式(5)〜(9)によって算出される。なお、i=1,2,…,n、p=1,2,…,n−i+1、j=1,2,…,m、q=1,2,…,m−j+1である。また、式7(2)において、dbest={di,j(p,q−1),di,j(p−1,q),di,j(p−1,q−1)}は、{}内の3つの値のうち、ベスト(例えば最小)のものを採用する、という意味である。
D(X[i:i],Y[j:j])=dis,js(l,l)・・・式(5)
i,j(p,q)=‖xi+p−1−yj+q−1‖+dbest ・・・式(6)
best={di,j(p,q−1),
i,j(p−1,q),
i,j(p−1,q−1)} ・・・式(7)
i,j(0,0)=0 ・・・式(8)
i,j(p,0)=di,j(0,q)=∞ ・・・式(9)
ナイーブな手法では、各時刻で新たな行列を作成するため、O(mn)個の行列を必要とする。また、1つのタイムワーピング行列に対し、XとYのそれぞれの要素について、タイムワーピング行列の2列(すなわち、現在の列と直前の列)がDTW距離を計算するために必要になる。そのため、毎時刻に更新する必要のある値はO(mn)またはO(mn)となり、つまり、単位時間あたりO(mn+mn)個の値を更新することになり、計算コスト(計算量やメモリ使用量)が大幅に増加するという問題がある。
そこで、本発明は、前記問題を解決するためのものであり、2つのデータストリームから、従来のDTW手法と比較して、同等の精度で、かつ、少ない計算コストで、類似する部分シーケンスのペアを検出することを課題とする。
前記した課題を解決するため、本発明は、2つのデータストリームから、類似する部分シーケンスのペアを、2つの部分シーケンス同士のDTW距離と相互変換可能な類似度スコアを行列要素とする単一のスコア行列を用いて検出する類似部分シーケンス検出装置であって、スコア行列、および、所定の閾値を記憶する記憶部と、2つのデータストリームのいずれかのデータの1つの要素を受信したとき、当該要素を含むデータストリーム中の部分シーケンスと、他方のデータストリーム中の部分シーケンスと、の類似度スコアを算出し、算出した類似度スコアと、その類似度スコアの算出に用いた2つの部分シーケンスの開始位置および終了位置と、を対応付けて記憶部のスコア行列に記憶し、記憶部のスコア行列に記憶された類似度スコアが所定の閾値以上である部分シーケンスのペアを類似する部分シーケンスのペアと判定し、この類似する部分シーケンスのペアを適合する部分シーケンスのペアとして検出する処理部と、を備える。処理部は、類似度スコアのいずれかを算出するとき、スコア行列において当該類似度スコアと隣接し2つのデータストリームのいずれかあるいは両方に関して1つ前の時刻に対応する3つの類似度スコアのうちの最大の類似度スコアを取得し、当該取得した最大の類似度スコアに対して、対象の2つの部分シーケンスにおける対応するデータの要素同士の差の大きさに応じた値を減算するとともに、取得した最大の類似度スコアの算出に使用した2つの部分シーケンスの長さに比べたときの当該類似度スコアの算出に使用した2つの部分シーケンスの長さの伸びに応じた数値を加算することで、当該類似度スコアを算出することを特徴とする。
かかる発明によれば、2つのデータストリームから、類似する部分シーケンスのペアを、2つの部分シーケンス同士のDTW距離と相互変換可能な類似度スコアと所定の閾値とを用いて、適合する部分シーケンスのペアとして検出することで、従来のDTW手法と比較して、同等の精度を保証できる。また、単一のスコア行列を用いることで、従来のDTW手法と比較して、少ない計算コストで済む。
また、本発明は、処理部が、適合する部分シーケンスのペアを検出したとき、当該適合する部分シーケンスのペアの類似度スコアと2つの部分シーケンスの長さとに基づいてDTW距離を算出することを特徴とする。
かかる発明によれば、適合する部分シーケンスのペアの類似度スコアをDTW距離に変換することで、ユーザは、従来のDTW手法を使用したときと変わらない結果を得ることができる。
また、本発明は、処理部が、類似度スコアの算出に用いた2つの部分シーケンスの開始位置を記憶部のスコア行列に記憶するとき、取得した最大の類似度スコアの算出に用いた2つの部分シーケンスの開始位置を、類似度スコアの算出に用いた2つの部分シーケンスの開始位置として記憶部のスコア行列に記憶し、適合する部分シーケンスのペアを検出するとき、記憶部のスコア行列を参照して、所定の閾値以上の類似度スコアに対応する開始位置を特定することを特徴とする。
かかる発明によれば、取得した最大の類似度スコアの算出に用いた2つの部分シーケンスの開始位置を引き継ぐことで、類似度スコアの算出と同時に開始位置を特定することができる。
また、本発明は、所定の閾値が、適合する部分シーケンスのペアの2つの部分シーケンスの長さの下限値として予め設定された値に、データストリームの種類に応じて予め設定された所定の係数を乗算した値であり、処理部は、適合する部分シーケンスのペアを検出するとき、当該所定の閾値を用いることで、下限値以上の長さの適合する部分シーケンスのペアを検出することを特徴とする。
かかる発明によれば、前記所定の閾値を用いて、下限値以上の長さの適合する部分シーケンスのペアを検出することで、短すぎて意味の少ない部分シーケンスのペアの検出を回避し、ユーザの真の要求に沿った部分シーケンスのペアを検出することができる。
また、本発明は、処理部が、類似度スコアが所定の閾値以上である複数の部分シーケンスのペアを、複数の適合する部分シーケンスのペアとして記憶部に記憶し、記憶部に記憶された複数の適合する部分シーケンスのペアのうち、算出に使用したスコア行列における行列要素の少なくとも一部に重複しているものがあるとき、重複している複数の適合する部分シーケンスのペアの中から、類似度スコアが最大の適合する部分シーケンスのペアを、最適な部分シーケンスのペアとして検出することを特徴とする。
かかる発明によれば、算出に使用したスコア行列における行列要素の少なくとも一部が重複している複数の適合する部分シーケンスのペアの中から類似度スコアが最大のものを検出することで、ユーザに対して、冗長性の少ない有益な情報を提供するとともに、検出速度の低下を抑制することができる。
また、本発明は、処理部が、重複している複数の適合する部分シーケンスのペアの中から、類似度スコアが最大の適合する部分シーケンスのペアを、最適な部分シーケンスのペアとして検出するとき、スコア行列において、類似度スコアがその時点で最大の適合する部分シーケンスのペアの終了位置より後の行および列のいずれにおいても、開始位置が当該最大の適合する部分シーケンスのペアの開始位置と一致する部分シーケンスのペアが1つもないと判定した場合、当該最大の適合する部分シーケンスのペアを最適な部分シーケンスのペアとして検出することを特徴とする。
かかる発明によれば、スコア行列において、類似度スコアがその時点で最大の適合する部分シーケンスのペアの終了位置より後の行および列のいずれにおいても、開始位置が当該最大の適合する部分シーケンスのペアの開始位置と一致する部分シーケンスのペアが1つもないと判定した場合、当該最大の適合する部分シーケンスのペアを最適な部分シーケンスのペアとして検出することで、検出漏れを確実に回避し、早期に報知することができる。
また、本発明は、類似部分シーケンス検出方法をコンピュータに実行させるための類似部分シーケンス検出プログラムである。このようなプログラムによれば、類似部分シーケンス検出方法を一般的なコンピュータに実行させることができる。
本発明によれば、2つのデータストリームから、従来のDTW手法と比較して、同等の精度で、かつ、少ない計算コストで、類似する部分シーケンスのペアを検出することができる。
本実施形態の類似部分シーケンス検出装置の構成図である。 第1の部分シーケンスペア検出処理(適合する部分シーケンスペアの検出処理)を示すフローチャートである。 第2の部分シーケンスペア検出処理(最適な部分シーケンスペアの検出処理)を示すフローチャートである。 候補配列への格納処理を示すフローチャートである。 最適な部分シーケンスペアの報知処理を示すフローチャートである。 スコア行列の例を示す図である。 (a)と(b)はホワイトノイズを持つ複数のサイン波から構成される人工データ(Sines#1とSines#2)を示す図であり(縦軸は数値、横軸は時間)、(c)は実験結果の散布図である。 (a)と(b)は大小のスパイクから構成される人工データ(Spikes#1とSpikes#2)を示す図であり(縦軸は数値、横軸は時間)、(c)は実験結果の散布図である。 (a)と(b)は自動車の交通量(Automobile traffic)の時系列データ(Traffic#1とTraffic#2)を示す図であり(縦軸は数値、横軸は時間)、(c)はその散布図である。 (a)はメールサイト(Mail site)のアクセス数を10秒毎に記録したデータセットであり、(b)はブログサイト(Blog site)のアクセス数を10秒毎に記録したデータセットであり、(c)はその散布図である。 (a)と(b)は1日毎の太陽の黒点数(Sunspots#1とSunspots#2)を記録したデータを示す図であり(縦軸は数値、横軸は時間)、(c)はその散布図である。 本実施形態による部分シーケンスマッチングの様子を示す模式図である。 データストリームからの類似部分シーケンスペアの検出例である。 DTWの説明図である。
以下、図面を参照(言及図以外の図も適宜参照)して、本発明を実施するための形態(以下、実施形態という。)について説明する。ここでは、本実施形態のポイント、具体的な実施形態、実験結果の順で説明する。
≪本実施形態のポイント≫
本実施形態の目的は、次の式(10)を満たす部分シーケンスペアを検出することである。
D(X[i:i],Y[j:j])≦εL(l,l) ・・・式(10)
前記したように、D(X[i:i],Y[j:j])はXの部分シーケンスとYの部分シーケンスのDTW距離である。しかし、本実施形態では、DTW距離を直接計算するのではなく類似度スコア(以下、単に「スコア」ともいう。詳細は後記)を計算することで、従来のDTW手法と比較して、同等の精度で、かつ、少ない計算コストで、類似する部分シーケンスのペアを検出することができる。
ここで、L(l,l)は部分シーケンスペアの長さを表す関数である。本実施形態では、2つの部分シーケンスの平均長であるL(l,l)=(l+l)/2を用いるが、他の長さでもかまわない(すなわち、L(l,l)=max(l+l),L(l,l)=min(l+l)などでもよい)。つまり、DTW距離は、対応付けられた要素間の距離の合計で表されるため、部分シーケンス長が長くなるにつれてその値は大きくなる。そのため、類似判定に使用する閾値も部分シーケンス長に比例することが望ましいと考えられるので、εL(l,l)を用いて判定を行なう。なお、εは、データストリームの種類に応じて予め設定される所定の係数である。
また、以下の「具体的な実施形態」における第1の部分シーケンスペア検出処理(適合する部分シーケンスペアの検出処理)(図2A参照)では、意味の少ないシーケンスの排除を実現する。従来のDTWではシーケンス長の極端に短い適合ペアを検出する可能性がある。しかしながら、データストリームのような半無限長のシーケンスを考えた場合、極端に短いシーケンスはあまり意味を持たないことが多い。例えば、データストリームXとYのシーケンス長が50000である場合に、適合した部分シーケンスX[i:i]とY[j:j]の長さが「2」と「4」である場合、これらを見ただけで有用な情報が得られるとは言いがたい。すなわち、検出する部分シーケンスの長さは、ユーザの要求に応じて決定する。
そして、以下の「具体的な実施形態」における第2の部分シーケンスペア検出処理(最適な部分シーケンスペアの検出処理)(図2B参照)では、重複シーケンスの排除をさらに実現する。部分シーケンスX[i:i]とY[j:j]が類似する時、その部分シーケンスペアと一部の区間が重複する他の多くの部分シーケンス同士も類似と判断されることがある。ここで、重複には、主に次の2つのケースが考えられる。1つは、開始位置が異なる2つ以上の部分シーケンスペアのワーピングパスが途中から重複する場合である。もう1つは、重複したワーピングパスが途中から分離する場合である。
そこで、一部重複する複数の部分シーケンスペアの中から最も類似度の高い部分シーケンスペアを検出することを考える。これは、(a)重複する部分シーケンスペアは冗長な情報である、(b)不必要な結果についてもユーザに報知することでアルゴリズムの処理速度が低下する、という2つの理由のためである。
すなわち、本実施形態の目的をさらに具体的に表現すると、次の通りである。
2つのシーケンスXとY、所定の係数ε、部分シーケンス長の下限値lminが与えられた時、次の条件を満たす部分シーケンスペアX[i:i]とY[j:j]を検出する。
(条件1)D(X[i:i],Y[j:j])≦ε(L(l,l)−lmin
(条件2)ワーピングパスが重複する部分シーケンスペアのグループの中で、
D(X[i:i],Y[j:j])−ε(L(l,l)−lmin)が最小値をとる。
以下、条件1を満たすものを「適合する部分シーケンスペア」と呼び、その検出については「具体的な実施形態」における第1の部分シーケンスペア検出処理(図2A参照)で具体的に説明する。
また、条件1と条件2の両方の条件を満たすものを「最適な部分シーケンスペア」と呼び、その検出については「具体的な実施形態」における第2の部分シーケンスペア検出処理(図2B参照)で具体的に説明する。
さらに、本実施形態では、類似度スコアを計算する関数をシーケンスマッチングに導入する。ナイーブな手法では、毎時刻、新しいタイムワーピング行列を作成する。そのようなO(mn)のオーダの個数の行列を必要とするナイーブな手法を用いる代わりに、本実施形態では、スコアリング関数を用いてXとYの部分シーケンスペアの類似度スコアを単一の行列を用いて計算する。このスコアリング関数は以下の特徴を持つ。
(特徴1)スコアリング関数は非負(「0」以上)の類似度スコアを出力する。
(特徴2)スコアリング関数の操作はDTW距離に関して可逆(相互変換可能な関係)である。
スコア計算はDTWの距離計算と同様に動的計画法に基づいて行うが、その違いはDTWが最小の累積距離を計算して求めるのに対し、本実施形態が提案するスコアリング関数は最大の類似度スコアを計算して求めることにある。すなわち、類似したシーケンスペアは高い類似度スコアを示す。類似度スコアは非負であり、スコア行列の類似度スコアがもし負と算出されれば「0」に置き換えられる(詳細は後記)。つまり、前記した条件1を満たす可能性のない部分シーケンスペアについては、スコア行列の中で初期化される。この性質によって、適合する部分シーケンスペアを効率的に追い求めることが可能となる。ここで、図11は、スコア行列を用いた部分シーケンスマッチングの様子を示す模式図である。図11では、スコア行列において、複数の最適な部分シーケンスペアのワーピングパスが色付け(黒塗り)されたセルとして示されている。
≪具体的な実施形態≫
まず、類似部分シーケンス検出装置1の構成について説明する。図1に示すように、類似部分シーケンス検出装置1は、入力部11、処理部12、記憶部13および出力部14を備え、例えば、コンピュータ装置によって実現される。
入力部11は、外部装置(不図示)やセンサ(不図示)からインターネットやLAN(Local Area Network)経由でデータストリームの入力を受け付けたり、キーボードやマウス等の入力装置(不図示)から類似部分シーケンスペア(以下、単に「類似部分シーケンス」ともいう。)の検出のための類似部分シーケンス検出条件の入力を受け付けたりする。この類似部分シーケンス検出条件は、例えば、適合する部分シーケンスペアの長さの下限値lmin(ユーザによって予め設定。つまり、L(l,l)がlmin以上であるペアを検出する。)、データストリームの種類に応じて予め設定された所定の係数ε等(詳細は後記)である。この入力部11は、インターネットやLAN経由でデータの送受信を行うための通信インタフェースや、入力装置等の外部装置との各種データの入出力を行うための入出力インタフェースにより実現される。
このような入力部11は、2つのデータストリームから適合する部分シーケンスペアを検出するときに用いる類似部分シーケンス検出条件の入力を受け付ける検出条件入力部111と、データストリームの入力を受け付けるデータストリーム入力部112とを含んで構成される。
処理部12は、2つのデータストリームから適合する部分シーケンスペアを検出するための各種演算処理を行うものであり、例えば、CPU(Central Processing Unit)が記憶部13に格納されたプログラムを実行することで実現される。この処理部12は、データストリーム処理部121を備え、データストリーム入力部112で受信したデータストリームに関して、記憶部13のスコアリングデータ記憶部132のスコア行列を用いて、適合する部分シーケンスペアを検出し、出力部14の類似部分シーケンス出力部141(後記)経由で外部へ出力する。なお、このデータストリーム処理部121は、2つのデータストリームから部分シーケンス同士の類似度スコアを計算するとき、前記したスコアリング関数を用いる。
以下、スコアリング関数等について、さらに具体的に説明する。スコアリング関数は、一方のシーケンスX=(x,x,…,x)と、他方のシーケンスY=(y,y,…,y)との類似度スコアを計算するための関数である。データストリーム処理部121は、いずれかのデータストリームのデータが1つ到着するたびに、このスコアリング関数により、データストリームXの部分シーケンスX[i:i]と、データストリームYの部分シーケンスY[j:j]の類似度スコアを計算(算出)する。
2つのシーケンスX=(x,…,x,…,x)とY=(y,…,y,…,y)とが与えられた時、2つの部分シーケンスX[i:i]とY[j:j]との類似度スコアV(X[i:i],Y[j:j])は、以下の式(11)〜式(13)によって算出される。なお、i=1,2,…,n、j=1,2,…,mとする。
V(X[i:i],Y[j:j])=v(i,j) ・・・式(11)
v(i,j)=max{0,
ε+v(i,j−1)−‖x−y‖,
ε+v(i−1,j)−‖x−y‖,
ε+v(i−1,j−1)−‖x−y‖}
・・・式(12)
v(0,0)=v(i,0)=v(0,j)=0 ・・・式(13)
ここで、εは、前記した所定の係数である。式(11)は、類似度スコアの定義である。式(12)は、具体的な計算式である。式(12)において、‖x−y‖は、2つの数値(xとy)の距離を表すものであり、例えば、ユークリッド距離やマンハッタン距離(L1距離)などが挙げられるが、以下の具体例では、計算を容易にするために、ユークリッド距離の二乗の値を使用する。
式(12)におけるmax{}は、{}内の値のうち、最大のものを採用する、という意味である。なお、式(13)は、スコア行列における境界条件である。なお、式(12)に示すように、v(i,j)を計算する場合において、{}内の値のうち「0」以外の最大のものが「0」より小さくなったときには、v(i,j)=0とする。このようにすることで、類似度スコアが「0」より小さく算出された場合でも「0」に置き換え、それ以降の部分シーケンスの類似度スコアに影響を与えないようにすることができる。つまり、類似度スコアのより高い部分シーケンス同士のつながりを反映した類似度スコアの計算を継続することができる。
換言すると、適合する部分シーケンスペアを効率的に追い求めるため、類似度スコアは負の値になってしまう事態を避けるべく「0」に初期化され、現在のセルからスコアを再計算する。これは、「0」に初期化しなければ類似度スコアが負の値になってしまうような場合は、セル(i,j)で終了するXとYの部分シーケンスペアがもはや前記した条件1を満たす可能性がないことを意味する。そのため、これまでのスコアを引き継がず、そのセル(i,j)から始まる新たなマッチング処理を開始する。ナイーブな手法が単位時間あたりO(mn+mn)個の距離値を更新するのに対し、このスコアリング関数はO(m+n)のスコア値しか更新しないため、計算コストの大幅な低減化につながる。
また、スコアリング関数の操作はDTW距離に関して可逆(相互変換可能な関係)である。式(12)においてw,w,wはLによって決定される重みである。すでに述べたように、DTW距離の閾値は部分シーケンス長L(l,l)に比例する。例えば、L(l,l)=(l+l)/2であれば、w=w=1/2,w=1となる。これは、スコア行列において垂直方向または水平方向の要素が引き継がれた場合、部分シーケンス長L(l,l)は「1/2」増加し、対角方向の要素が引き継がれた場合、部分シーケンス長L(l,l)は「1」増加するためである。スコア行列の中での各ワーピングパス上の重み(すなわちw,w,w)の合計は、L(l,l)と等しくなるように設計されており、スコアリング関数の操作がDTW距離に関して可逆であるという関係が保証される。なお、L(l,l)=max(l,l)であれば、l>lの場合はw=w=1,w=0となり、l<lの場合はw=w=1,w=0となり、l=lの場合はw=1,w=w=0となる。L(l,l)=min(l,l)についても同様に重みを決定することができる。
また、スコア行列は、どの部分シーケンスペアが最大スコアを出力したのかを判断するために、部分シーケンスペアの開始位置の情報を保持する。これは、データストリーム処理に対応するために重要となる。検出すべき部分シーケンスペアX[i:i]とY[j:j]については、スコアv(i,j)と開始位置s(i,j)がスコア行列のセル(i,j)に保存される。s(i,j)は、X[i:i]とY[j:j]のマッチングの開始位置(i,j)を指し示す。スコア行列のスコア値と部分シーケンスペアの開始位置は同時に更新される。このことによって、どの部分シーケンスのペアがスコアの最大値を出力したのかをストリーム処理の間も認識することができる。具体的には開始位置s(i,j)を以下の式(14)のように求める。
s(i,j)=
{s(i,j−1) (if v(i,j−1)>0 かつ
v(i,j)=wε+v(i,j−1)−‖x−y‖),
s(i−1,j) (if v(i−1,j)>0 かつ
v(i,j)=wε+v(i−1,j)−‖x−y‖),
s(i−1,j−1)(if v(i−1,j−1)>0 かつ
v(i,j)=wε+v(i−1,j−1)−‖x−y‖),
(i,j) (if その他)}
・・・式(14)
つまり、このスコア行列は、各行列要素に、類似度スコアと、その類似度スコアの算出に用いた部分シーケンスX,Yの開始位置の情報とを保持することで、該当するパスの開始位置を、過去に遡ることなく(過去のデータを保持することなく)認識することができる。
スコア計算において、垂直方向、水平方向、対角方向のいずれかの行列要素が選択された場合(すなわち、v(i,j−1),v(i−1,j),v(i−1,j−1)のいずれかがv(i,j)に算出に使用された場合)、選択されたその行列要素が保持している開始位置が引き継がれる。スコア行列においていずれの方向の行列要素も「0」である場合、開始位置として(i,j)が選択される。
記憶部13は、2つのデータストリームから適合する部分シーケンスペアを検出するための各種データや処理部12の動作プログラムなどを記憶する。この記憶部13は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)などにより実現される。この記憶部13は、検出条件記憶部131と、スコアリングデータ記憶部132と、類似部分シーケンス候補記憶部133とを含んで構成される。
検出条件記憶部131は、類似部分シーケンス検出条件を記憶する。この類似部分シーケンス検出条件は、例えば、前記したデータストリームから適合する部分シーケンスペアを検出するときの部分シーケンス長の下限値lmin(ユーザによって予め設定)、データストリームの種類に応じて予め設定された所定の係数ε等である。
スコアリングデータ記憶部132は、スコア行列(図5参照)などのスコアリングに必要なデータを記憶する。
類似部分シーケンス候補記憶部133は、算出に使用したスコア行列における行列要素の少なくとも一部が重複している複数の適合する部分シーケンスペアのうちのその時点で最適なものを記憶する。
出力部14は、データストリーム処理部121で検出された適合する部分シーケンスペアを出力する類似部分シーケンス出力部141を含んで構成される。この出力部14は、前記した通信インタフェースや、出力装置等の外部装置との各種データの入出力を行うための入出力インタフェースにより実現される。
次に、スコアリング関数とスコア行列とのデータストリーム処理への適用について説明する。本実施形態では単一のスコア行列しか使わないため、単位時間あたりO(m+n)のスコア値と開始位置を更新するだけで最適な部分シーケンスペアX[i:i]とY[j:j]を検出することができる。また、この処理アルゴリズムはデータストリーム処理の中でも検出漏れを起こさないように注意深く設計されている。スコアリング関数の操作はDTW距離に関して可逆(相互変換可能な関係)である。出力結果の厳密性(従来のDTW手法との精度的な整合性)を保証するため、本実施形態ではこの可逆性を利用する。
処理の概要を説明すると、まず、X[i:i]とY[j:j]の開始位置(i,j)と終了位置(i,j)、類似度スコアV(X[i:i],Y[j:j])を求める。そして、類似度スコアと部分シーケンス長から以下の式(15)のようにX[i:i]とY[j:j]のDTW距離D(X[i:i],Y[j:j])を計算し、適合する部分シーケンスペアとして出力する。
D(X[i:i],Y[j:j])=
εL(l,l)−V(X[i:i],Y[j:j]) ・・・式(15)
また、同様に、前記した条件1と条件2は、それぞれ、次の条件3と条件4と等価である。双方の計算により同一のワーピングパスが選択されるのは明らかだからである。本実施形態では、条件3と条件4を用いて類似判断を行う。
(条件3)V(X[i:i],Y[j:j])≧εlmin
(条件4)ワーピングパスが重複する部分シーケンスペアのグループの中で、V(X[i:i],Y[j:j])−εlminが最大値をとる。
次に、類似部分シーケンス検出装置1の具体的な処理について説明する。ここでは、2つのデータストリームX(=x,…,x,…,x,…)と、データストリームy(=y,…,y,…,y,…)とにおける各要素が、順次与えられるものとする。ここでは、まず、前記した条件1を満たすための第1の部分シーケンスペア検出処理(適合する部分シーケンスペアの検出処理)(図2A参照)について説明する。その後、前記した条件1と条件2の両方の条件を満たすための第2の部分シーケンスペア検出処理(最適な部分シーケンスペアの検出処理)(図2B参照)について説明する。
図2Aに示すように、まず、データストリーム処理部121は、データストリーム入力部112経由で、時刻iにおいてデータxを受信する(ステップS11)。
次に、データストリーム処理部121は、jの値を「0」にリセットする(ステップS12)。
その後、データストリーム処理部121は、jの値をインクリメント(「1」増加)させながら、jの値がmになるまで、ステップS13〜S17の処理を繰り返す。
ステップS14において、データストリーム処理部121は、xとyの類似度スコアC’=v(n,j)、開始位置C’=s(n,j)、および、終了位置C’=(n,j)を、前記式(11)〜(14)を用いて計算する。
ステップS15において、データストリーム処理部121は、C’≧εlminの条件を満たすか否かを判断し、この条件を満たす場合(Yes)、ステップS1601に進み、この条件を満たさない場合(No)、ステップS17に進む。
ステップS1601において、データストリーム処理部121は、その類似度スコアCをDTW距離dminに変換する(dmin=εL(l,l)−C’)。
次に、ステップS1602において、データストリーム処理部121は、ステップS1601で算出したDTW距離dmin、それに対応する開始位置C’および終了位置C’を類似部分シーケンス出力部141経由でユーザに報知する。
また、データストリーム処理部121は、データストリーム入力部112経由で、時刻jにおいてデータyを受信した場合(ステップS21)、ステップS12〜ステップS17の処理と同様にして、ステップS22〜ステップS27の処理を行う。
ステップS13〜S17の後、あるいは、ステップS23〜S27の処理の後、データストリーム処理部121は、2つのデータストリームの受信が終了したか否か判断し(ステップS19)、終了していなければ(No)、ステップS11あるいはステップS21に戻り、終了していれば(Yes)、処理を終了する。
このように、類似度スコアではなくDTW距離を算出して出力することで、従来のDTW手法と同じ結果を出力することができる。
次に、第2の部分シーケンスペア検出処理(最適な部分シーケンスペアの検出処理)について説明する。なお、第1の部分シーケンスペア検出処理(適合する部分シーケンスペアの検出処理)と同じ処理については同じステップ番号(例えば「ステップS11」)を付し、説明を適宜省略する。
図2Bに示すように、ステップS11〜S14の処理の後、ステップS15でYesの場合、ステップS16において、データストリーム処理部121は、候補配列への格納処理を行う(詳細は図3で後記)。
また、データストリーム処理部121は、データストリーム入力部112経由で、時刻jにおいてデータyを受信した場合(ステップS21)、ステップS12〜ステップS17の処理と同様にして、ステップS22〜ステップS27の処理を行う。
ステップS13〜S17の後、あるいは、ステップS23〜S27の処理の後、
ステップS18において、データストリーム処理部121は、最適な部分シーケンスペアの報知処理を行う(詳細は図4で後記)。
その後、データストリーム処理部121は、2つのデータストリームの受信が終了したか否か判断し(ステップS19)、終了していなければ(No)、ステップS11あるいはステップS21に戻り、終了していれば(Yes)、処理を終了する。
次に、候補配列への格納処理(図2BのステップS16)について説明する。なお、以下、候補配列(候補集合の配列)Sとは、区間の一部が重複する部分シーケンスペアの集合ごとにその時点で最適な1つずつの部分シーケンスペアの情報を格納する配列を表す。また、類似度スコア、開始位置および終了位置に関して、C’,C’およびC’は候補配列へ格納する前の段階の変数を表し、C,CおよびCは候補配列へ格納した後の段階の変数を表す。
図3に示すように、開始位置C’が候補配列Sに含まれないか否かを判断し(ステップS161)、含まれない場合(Yes)、ステップS162に進み、含まれる場合(No)、ステップS163に進む。
ステップS162において、データストリーム処理部121は、その部分シーケンスペアの類似度スコアC’、開始位置C’および終了位置C’を、類似度スコアC、開始位置Cおよび終了位置Cとして候補配列Sに格納する。その部分シーケンスペアと区間の一部が重複する部分シーケンスペアの集合がないからである。
ステップS163〜S166において、データストリーム処理部121は、部分シーケンスペアごとにステップS164,S165の処理を行う。
ステップS164において、データストリーム処理部121は、ある部分シーケンスペアについて、その部分シーケンスペアが属する(区間一部重複の)集合において(つまり、例えばC’=Cの条件を満たし)、類似度スコアC’がそれまでの類似度スコアC以上か否か(つまり、C’≧Cか否か)を判断し、その条件を満たせば(Yes)、ステップS165に進み、その条件を満たさなければ(No)、ステップS166に進む。
ステップS165において、データストリーム処理部121は、その部分シーケンスペアの類似度スコアでC(最大スコア)を更新し(C:=C’)、併せて、終了位置C’も更新する(C:=C’)。このように、区間一部重複の集合ごとに最大の類似度スコアとそれに対応する部分シーケンスペアの情報を1つずつ格納することで、後にユーザに対して冗長性の少ない有益な情報を提供することができる。つまり、区間一部重複の複数の部分シーケンスペアという冗長な情報をユーザに提供する事態を回避できる。
ステップS162およびS166の後、データストリーム処理部121は処理を終了する。
次に、最適な部分シーケンスペアの報知処理(図2BのステップS18)について説明する。図4に示すように、ステップS181〜S186において、データストリーム処理部121は、候補配列Sの各要素(類似度スコアC、開始位置Cおよび終了位置Cのセット)についての処理を行う。
ステップS182において、データストリーム処理部121は、ある要素について、その後出現する部分シーケンスペアによって置き換わることがないか(つまり、∀,s(i,m)≠C、かつ、∀,s(n,j)≠Cを満たすか)否かを判断し、Yesの場合はステップS183に進み、Noの場合はステップS186に進む。
ステップS183において、データストリーム処理部121は、その類似度スコアCをDTW距離dminに変換する(dmin=εL(l,l)−C)。
ステップS184において、データストリーム処理部121は、ステップS183で算出したDTW距離dmin、それに対応する開始位置Cおよび終了位置Cを類似部分シーケンス出力部141経由でユーザに報知する。
ステップS185において、データストリーム処理部121は、ステップS184で報知した情報に対応するC,C,Cを候補配列Sから削除する。
このように、類似度スコアではなくDTW距離を算出して出力することで、従来のDTW手法と同じ結果を出力することができる。
次に、スコア行列の具体例について説明する。図5に示すように、X=(5,12,6,10,6,5,21),Y=(11,6,9,4,2,9,13)の2つのシーケンスの場合について考える。ここでは、係数ε=14,適合する部分シーケンスペアの下限値lmin=3を設定した場合に計算されるスコア行列を示している。各セル(i,j)に、スコアs(i,j)と開始位置p(i,j)が保持される。色付け(網掛け)された4つのセルは前記した条件1を満たす部分シーケンスペア(適合する部分シーケンスペア)を表している。その中で、濃く色付け(網掛け)されたセル(x-=5,y=4の位置のセル)は、前記した条件1および条件2を満たす部分シーケンスペア(最適な部分シーケンスペア)を表している。
ここで、図5のスコア行列を参照してストリーム処理の動作を説明する。説明を単純にするために、xとyが交互に到着すると想定する。i=5において、s(5,4)=50≧εlmin(=14×3=42)となる(2,1)から始まる適合する部分シーケンスペアX[2:5]とY[1:4]を検出する(図2BのステップS15でYes)。j=5において、条件を満たす部分シーケンスペアは検出されないが、これから出現する適合する部分シーケンスペアが最適な部分シーケンスペアになる可能性があるため(図4のステップS182でNo)、X[2:5]とY[1:4]を最適な部分シーケンスペアとして報知しない。そして、i=6において、最適な部分シーケンスペアX[2:6]とY[1:4]を検出する(図2BのステップS15でYes)。最終的にj=7において、これから出現するものは最適な部分シーケンスペアになる可能性がないことが確認でき(図4のステップS182でYes)、類似度スコアをDTW距離に変換し(図4のステップS183)、この部分シーケンスペアを報知する(図4のステップS184)。
ここで、前記した図4のステップS182でYesとなる判断についてさらに説明すると、図5のスコア行列において、i=7の列とj=7の行のいずれにおいても、(2,1)から始まる部分シーケンスペアが1つもないことから、(2,1)から始まりその時点で類似度スコアが最大の部分シーケンスペアX[2:6]とY[1:4]をj=7の時点で最適な部分シーケンスのペアと判断することができる。従来のDTW手法の場合は複数の行列から検出される開始位置の異なる適合する部分シーケンス同士の重複を調べる必要があったが、本実施形態による単一のスコア行列の場合は図5を参照してもわかるように開始位置が一致するか否かの判断だけで最適な部分シーケンスペアを特定することができる。
なお、図5では、受信したデータストリームのすべての要素のスコア行列を示しているが、スコアリングデータ記憶部132に記憶されるスコア行列は、外側(新しいデータ側)の2行2列分のデータ(図5のスコア行列ではi=6,7、j=6,7の部分のデータ)があればよい。
ナイーブな手法では、適合する部分シーケンスペアを検出するためにO(mn+mn)のメモリ量を使用し、単位時間あたりO(mn)(Xの要素が到着した場合)またはO(mn)(Yの要素が到着した場合)の距離値の更新が必要となる。一方、本実施形態では単一のスコア行列のみで適合する部分シーケンスペアの検出が可能なため、O(m+n)のメモリ量を使用し、単位時間あたりO(m)(Xの要素が到着した場合)またはO(n)(Yの要素が到着した場合)の値しか更新しなくてよい。そのため、計算量(計算時間)やメモリ使用量の大幅な低減化を実現できる。
また、本実施形態では、用いるスコア行列が単一なので、従来のDTW手法よりも少ない計算コストで済む。また、従来のDTW手法では2つの部分シーケンスの長さに関係なく一定の閾値を用いて類似判断を行っていたが、2つの部分シーケンスの長さに比例して閾値も増加させるのが原理的に好ましく、本実施形態では、当該長さの伸びに応じた数値の加算によって、閾値は実際には一定でも増加させたのと同等の効果が期待できる。
≪実験結果≫
次に、本実施形態の類似部分シーケンス検出装置1を用いた処理の実験結果について説明する。なお、各実験は、4GBのメモリと2GHzのCPUを搭載したコンピュータ上で実施した。また、実験には実データと人工データを使用した。実験結果を視覚的に把握するため、ここでは、散布図を用いる。散布図では、データストリームXとYにおける最適な部分シーケンスペアであるX[i:i]とY[j:j]のワーピングパスを描画する。なお、散布図において、横軸はXの要素を、縦軸はYの要素を表す。そして、そのプロットされた点の集合や周期を見ることで、最適な部分シーケンスペアの存在や特徴を把握することができる。
図6を参照して、ホワイトノイズを持つ複数のサイン波から構成される人工データの場合について説明する。図6の(a)と(b)に示すように、Sines#1とSines#2は、含まれるサイン波の周期と、サイン波の現れる間隔が、それぞれ異なっている。そして、図6の(c)の散布図に示すように、本実施形態の類似部分シーケンス検出装置1によれば、すべてのサイン波と時間変化する周期性を完全に特定(表現)することができていることがわかる。つまり、Sines#1にはサイン波が6つ、Sines#2にもサイン波が6つあり、散布図には36個(=6×6)のプロット群が存在している。具体的には、例えば、図6の(c)の散布図の左下部分のプロットを見ると、Sines#1における時間「0〜約2500」の部分のサイン波と、Sines#2における時間「0〜約4000」の部分のサイン波とが類似していることがわかる。また、図6の(c)の散布図において、各サイン波の周期の違いは傾きの違いとして表れていることが確認できる。
図7を参照して、大小のスパイク(突出部)から構成される人工データの場合について説明する。なお、図7の(a)と(b)におけるスパイクとスパイクの間のデータは、ランダムウォーク関数を用いて異なる長さで生成し、各スパイクの周期も元なっている。図7の(c)の散布図から、大小のスパイクを完全に検出している様子が確認できる。各スパイクの周期の違いは描画の長さの違いとして現れており、幅の広いスパイクは描画長が長く、幅の狭いスパイクは描画長が短い。
図8を参照して、自動車の交通量の時系列データ(Automobile trafficデータ)の場合について説明する。図8の(a)と(b)において、1日の周期と朝夕のラッシュアワーを示す半日周期が存在する。時間単位の交通量はバースト的であり、ホワイトノイズとみなすことができる。図8の(c)の散布図からわかるように、本実施形態の類似部分シーケンス検出装置1は、高周波である時間単位の交通量に惑わされることなく、1日の周期を高精度で検出することに成功している。散布図において、描画線が連続していることと、それらが一定間隔で現れていることが、1日の周期が繰り返されている様子を表している。また、描画線同士の間隔が日の周期と対応しており、Automobile trafficデータの特徴がよく反映されている。
図9を参照して、Webデータのアクセス数の場合について説明する。なお、メールサイト(Mail site)とブログサイト(Blog site)以外のサイトも含めて実験を行い、サイト毎にアクセスパターンが異なる中、本実施形態の類似部分シーケンス検出装置1によって最適な部分シーケンスペアが検出されたのがメールサイトとブログサイトのアクセスパターンである。図9の(a)と(b)からわかるように、これらの2つのデータはアクセス数のスケールが若干異なるが、朝からアクセスが上昇し夜にかけてピークを迎えるという、よく似た1日の周期が存在する。図9の(c)の散布図から、これらの周期性の検出にほぼ成功していることが確認される。なお、図8の(c)の場合と異なり、図9の(c)のプロット群は曲がりくねった線となっている。これは、データシーケンスの要素同士を時間軸方向に伸張させながら最適に対応付けられたためであり、時間軸方向の伸縮を考慮するという特徴によって検出された最適な部分シーケンスペアであることがわかる。
図10を参照して、太陽の黒点数の場合について説明する。太陽の黒点の数には周期性があることがよく知られており、太陽の活動とも密接に関連している。太陽活動が活発な時は黒点が多く出現し、逆に太陽活動が不活発な時は黒点が減少する。図10の(a)と(b)からわかるように、この変化は約11年の周期で増減する。図10の(c)の散布図から、黒点数の各周期の増減を区別し、類似する変化を示す周期を捉えることに成功していることがわかる。
以上、本発明の実施形態について説明したが、本発明はこれに限定されるものではなく、その趣旨を変えない範囲で実施することができる。
例えば、‖x−y‖として、ユークリッド距離の二乗の値を使用したが、ユークリッド距離などの他の距離を使用してもかまわない。
その他、ハードウェア、ソフトウェアの具体的な構成について、本発明の主旨を逸脱しない範囲で適宜変更が可能である。
なお、データストリームは、映像やセンサネットワーク、金融など様々な分野で発生する。本発明はこれらのすべての分野に適用可能である。
1 類似部分シーケンス検出装置
11 入力部
12 処理部
13 記憶部
14 出力部
111 検出条件入力部
112 データストリーム入力部
121 データストリーム処理部
131 検出条件記憶部
132 スコアリングデータ記憶部
133 類似部分シーケンス候補記憶部
141 類似部分シーケンス出力部

Claims (13)

  1. 2つのデータストリームから、類似する部分シーケンスのペアを、2つの前記部分シーケンス同士のDTW(Dynamic Time Warping)距離と相互変換可能な類似度スコアを行列要素とする単一のスコア行列を用いて検出する類似部分シーケンス検出装置であって、
    前記スコア行列、および、所定の閾値を記憶する記憶部と、
    前記2つのデータストリームのいずれかのデータの1つの要素を受信したとき、当該要素を含む前記データストリーム中の部分シーケンスと、他方の前記データストリーム中の部分シーケンスと、の類似度スコアを算出し、
    前記算出した類似度スコアと、その類似度スコアの算出に用いた2つの前記部分シーケンスの開始位置および終了位置と、を対応付けて前記記憶部のスコア行列に記憶し、
    前記記憶部のスコア行列に記憶された前記類似度スコアが前記所定の閾値以上である部分シーケンスのペアを類似する部分シーケンスのペアと判定し、この類似する部分シーケンスのペアを適合する部分シーケンスのペアとして検出する処理部と、を備え、
    前記処理部は、
    前記類似度スコアのいずれかを算出するとき、
    前記スコア行列において当該類似度スコアと隣接し前記2つのデータストリームのいずれかあるいは両方に関して1つ前の時刻に対応する3つの前記類似度スコアのうちの最大の類似度スコアを取得し、
    当該取得した最大の類似度スコアに対して、対象の2つの前記部分シーケンスにおける対応するデータの要素同士の差の大きさに応じた値を減算するとともに、
    前記取得した最大の類似度スコアの算出に使用した2つの前記部分シーケンスの長さに比べたときの当該類似度スコアの算出に使用した2つの前記部分シーケンスの長さの伸びに応じた数値を加算することで、当該類似度スコアを算出する
    ことを特徴とする類似部分シーケンス検出装置。
  2. 前記処理部は、
    前記適合する部分シーケンスのペアを検出したとき、
    当該適合する部分シーケンスのペアの類似度スコアと2つの部分シーケンスの長さとに基づいてDTW距離を算出する
    ことを特徴とする請求項1に記載の類似部分シーケンス検出装置。
  3. 前記処理部は、
    前記類似度スコアの算出に用いた2つの前記部分シーケンスの開始位置を前記記憶部のスコア行列に記憶するとき、前記取得した最大の類似度スコアの算出に用いた2つの前記部分シーケンスの開始位置を、前記類似度スコアの算出に用いた2つの前記部分シーケンスの開始位置として前記記憶部のスコア行列に記憶し、
    前記適合する部分シーケンスのペアを検出するとき、前記記憶部のスコア行列を参照して、前記所定の閾値以上の前記類似度スコアに対応する開始位置を特定する
    ことを特徴とする請求項1または請求項2に記載の類似部分シーケンス検出装置。
  4. 前記所定の閾値は、前記適合する部分シーケンスのペアの2つの部分シーケンスの長さの下限値として予め設定された値に、前記データストリームの種類に応じて予め設定された所定の係数を乗算した値であり、
    前記処理部は、
    前記適合する部分シーケンスのペアを検出するとき、当該所定の閾値を用いることで、前記下限値以上の長さの適合する部分シーケンスのペアを検出する
    ことを特徴とする請求項3に記載の類似部分シーケンス検出装置。
  5. 前記処理部は、
    前記類似度スコアが前記所定の閾値以上である複数の部分シーケンスのペアを、複数の適合する部分シーケンスのペアとして前記記憶部に記憶し、
    前記記憶部に記憶された複数の前記適合する部分シーケンスのペアのうち、算出に使用した前記スコア行列における行列要素の少なくとも一部に重複しているものがあるとき、前記重複している複数の適合する部分シーケンスのペアの中から、前記類似度スコアが最大の適合する部分シーケンスのペアを、最適な部分シーケンスのペアとして検出する
    ことを特徴とする請求項4に記載の類似部分シーケンス検出装置。
  6. 前記処理部は、
    前記重複している複数の適合する部分シーケンスのペアの中から、前記類似度スコアが最大の適合する部分シーケンスのペアを、最適な部分シーケンスのペアとして検出するとき、
    前記スコア行列において、前記類似度スコアがその時点で最大の適合する部分シーケンスのペアの終了位置より後の行および列のいずれにおいても、開始位置が当該最大の適合する部分シーケンスのペアの開始位置と一致する部分シーケンスのペアが1つもないと判定した場合、当該最大の適合する部分シーケンスのペアを最適な部分シーケンスのペアとして検出する
    ことを特徴とする請求項5に記載の類似部分シーケンス検出装置。
  7. 2つのデータストリームから、類似する部分シーケンスのペアを、2つの前記部分シーケンス同士のDTW(Dynamic Time Warping)距離と相互変換可能な類似度スコアを行列要素とする単一のスコア行列を用いて検出する類似部分シーケンス検出装置による類似部分シーケンス検出方法であって、
    前記類似部分シーケンス検出装置は、
    前記スコア行列、および、所定の閾値を記憶する記憶部と、
    前記2つのデータストリームのいずれかのデータの1つの要素を受信したとき、当該要素を含む前記データストリーム中の部分シーケンスと、他方の前記データストリーム中の部分シーケンスと、の類似度スコアを算出し、
    前記算出した類似度スコアと、その類似度スコアの算出に用いた2つの前記部分シーケンスの開始位置および終了位置と、を対応付けて前記記憶部のスコア行列に記憶し、
    前記記憶部のスコア行列に記憶された前記類似度スコアが前記所定の閾値以上である部分シーケンスのペアを類似する部分シーケンスのペアと判定し、この類似する部分シーケンスのペアを適合する部分シーケンスのペアとして検出する処理部と、を備えており、
    前記処理部は、
    前記類似度スコアのいずれかを算出するとき、
    前記スコア行列において当該類似度スコアと隣接し前記2つのデータストリームのいずれかあるいは両方に関して1つ前の時刻に対応する3つの前記類似度スコアのうちの最大の類似度スコアを取得し、
    当該取得した最大の類似度スコアに対して、対象の2つの前記部分シーケンスにおける対応するデータの要素同士の差の大きさに応じた値を減算するとともに、
    前記取得した最大の類似度スコアの算出に使用した2つの前記部分シーケンスの長さに比べたときの当該類似度スコアの算出に使用した2つの前記部分シーケンスの長さの伸びに応じた数値を加算することで、当該類似度スコアを算出する
    ことを特徴とする類似部分シーケンス検出方法。
  8. 前記処理部は、
    前記適合する部分シーケンスのペアを検出したとき、
    当該適合する部分シーケンスのペアの類似度スコアと2つの部分シーケンスの長さとに基づいてDTW距離を算出する
    ことを特徴とする請求項7に記載の類似部分シーケンス検出方法。
  9. 前記処理部は、
    前記類似度スコアの算出に用いた2つの前記部分シーケンスの開始位置を前記記憶部のスコア行列に記憶するとき、前記取得した最大の類似度スコアの算出に用いた2つの前記部分シーケンスの開始位置を、前記類似度スコアの算出に用いた2つの前記部分シーケンスの開始位置として前記記憶部のスコア行列に記憶し、
    前記適合する部分シーケンスのペアを検出するとき、前記記憶部のスコア行列を参照して、前記所定の閾値以上の前記類似度スコアに対応する開始位置を特定する
    ことを特徴とする請求項7または請求項8に記載の類似部分シーケンス検出方法。
  10. 前記所定の閾値は、前記適合する部分シーケンスのペアの2つの部分シーケンスの長さの下限値として予め設定された値に、前記データストリームの種類に応じて予め設定された所定の係数を乗算した値であり、
    前記処理部は、
    前記適合する部分シーケンスのペアを検出するとき、当該所定の閾値を用いることで、前記下限値以上の長さの適合する部分シーケンスのペアを検出する
    ことを特徴とする請求項9に記載の類似部分シーケンス検出方法。
  11. 前記処理部は、
    前記類似度スコアが前記所定の閾値以上である複数の部分シーケンスのペアを、複数の適合する部分シーケンスのペアとして前記記憶部に記憶し、
    前記記憶部に記憶された複数の前記適合する部分シーケンスのペアのうち、算出に使用した前記スコア行列における行列要素の少なくとも一部に重複しているものがあるとき、前記重複している複数の適合する部分シーケンスのペアの中から、前記類似度スコアが最大の適合する部分シーケンスのペアを、最適な部分シーケンスのペアとして検出する
    ことを特徴とする請求項10に記載の類似部分シーケンス検出方法。
  12. 前記処理部は、
    前記重複している複数の適合する部分シーケンスのペアの中から、前記類似度スコアが最大の適合する部分シーケンスのペアを、最適な部分シーケンスのペアとして検出するとき、
    前記スコア行列において、前記類似度スコアがその時点で最大の適合する部分シーケンスのペアの終了位置より後の行および列のいずれにおいても、開始位置が当該最大の適合する部分シーケンスのペアの開始位置と一致する部分シーケンスのペアが1つもないと判定した場合、当該最大の適合する部分シーケンスのペアを最適な部分シーケンスのペアとして検出する
    ことを特徴とする請求項11に記載の類似部分シーケンス検出方法。
  13. 請求項7ないし請求項12のいずれか1項に記載の類似部分シーケンス検出方法をコンピュータに実行させるための類似部分シーケンス検出プログラム。
JP2009041308A 2009-02-24 2009-02-24 類似部分シーケンス検出装置、類似部分シーケンス検出方法、および、類似部分シーケンス検出プログラム Expired - Fee Related JP5033155B2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2010198227A JP2010198227A (ja) 2010-09-09
JP5033155B2 true JP5033155B2 (ja) 2012-09-26

Family

ID=42822905

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP5033155B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6061714B2 (ja) * 2013-02-12 2017-01-18 公立大学法人会津大学 類似系列区間検出装置および類似系列区間検出プログラム
JP7204584B2 (ja) * 2019-06-14 2023-01-16 ルネサスエレクトロニクス株式会社 異常検知システム、異常検知装置および異常検知方法
KR102511137B1 (ko) * 2022-06-20 2023-03-17 대한민국 크로마토그램 이미지의 유사도 분석방법 및 시스템

Also Published As

Publication number Publication date
JP2010198227A (ja) 2010-09-09

Similar Documents

Publication Publication Date Title
WO2021051945A1 (zh) 服务器性能监控方法、装置、计算机设备及存储介质
JP6725700B2 (ja) 異常なユーザ行動関連アプリケーションデータを検出するための方法、装置、およびコンピュータ読み取り可能な媒体
Chandola et al. Outlier detection: A survey
Olszewski Fraud detection using self-organizing map visualizing the user profiles
Wang et al. Research on Healthy Anomaly Detection Model Based on Deep Learning from Multiple Time‐Series Physiological Signals
Deshmukh et al. Intrusion detection system by improved preprocessing methods and Naïve Bayes classifier using NSL-KDD 99 Dataset
KR101906859B1 (ko) 이상 서브시퀀스 검출 장치 및 방법
JP3762840B2 (ja) 類似事例に基づく予測を行う予測装置および方法
CN112508085A (zh) 基于感知神经网络的社交网络链路预测方法
JP5033155B2 (ja) 類似部分シーケンス検出装置、類似部分シーケンス検出方法、および、類似部分シーケンス検出プログラム
CN114202123A (zh) 业务数据预测方法、装置、电子设备及存储介质
Huynh et al. Efficient integration of multi-order dynamics and internal dynamics in stock movement prediction
Carmona-Poyato et al. A new approach for optimal time-series segmentation
CN113807452B (zh) 一种基于注意力机制的业务过程异常检测方法
JP4939349B2 (ja) トレンド検出方法、トレンド検出プログラムおよびトレンド検出装置
Mehrmolaei et al. A brief survey on event prediction methods in time series
Sakthivel et al. Wireless sensor network based anomaly detection using SVM-RFE-MRMR
CN116186603A (zh) 异常用户的识别方法及装置、计算机存储介质、电子设备
CN115567305A (zh) 基于深度学习的顺序网络攻击预测分析方法
US8930362B2 (en) System and method for streak discovery and prediction
Wang et al. Genie in the model: Automatic generation of human-in-the-loop deep neural networks for mobile applications
JP2008134706A (ja) データストリーム監視装置、データストリーム監視方法、そのプログラムおよび記録媒体
Olszewski et al. Employing self-organizing map for fraud detection
JP4202339B2 (ja) 類似事例に基づく予測を行う予測装置および方法
Kumari et al. Performance interpretation of machine learning based classifiers for e-healthcare system in fog computing network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101215

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110819

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: 20120626

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: 20120629

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150706

Year of fee payment: 3

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