JP6251216B2 - パターン検出装置、パターン検出方法およびパターン検出プログラム - Google Patents

パターン検出装置、パターン検出方法およびパターン検出プログラム Download PDF

Info

Publication number
JP6251216B2
JP6251216B2 JP2015120544A JP2015120544A JP6251216B2 JP 6251216 B2 JP6251216 B2 JP 6251216B2 JP 2015120544 A JP2015120544 A JP 2015120544A JP 2015120544 A JP2015120544 A JP 2015120544A JP 6251216 B2 JP6251216 B2 JP 6251216B2
Authority
JP
Japan
Prior art keywords
event
range
episode
time
events
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.)
Active
Application number
JP2015120544A
Other languages
English (en)
Other versions
JP2017004437A (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 JP2015120544A priority Critical patent/JP6251216B2/ja
Publication of JP2017004437A publication Critical patent/JP2017004437A/ja
Application granted granted Critical
Publication of JP6251216B2 publication Critical patent/JP6251216B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、パターン検出装置、パターン検出方法およびパターン検出プログラムに関する。
ネットワークから収集されるログデータには、購買履歴やシステムログ等、イベントとそのイベントが起こった時刻が記録されたイベントシーケンスと呼ばれるデータが多数含まれている。このイベントシーケンスから有益なパターンを見つけるマイニング技術として、エピソードマイニングが知られている。エピソードマイニングにおいては、イベントシーケンスに繰り返し現れるエピソードと呼ばれる頻出パターンを検知する。
エピソードは、システムログにおけるマシンや機器間の処理の流れ、または購買ログにおけるユーザの購入した時系列アイテム等を表している。エピソードはデータのトレンドを知るための重要な指標であり、エピソードにより、イベントシーケンスを単純かつ簡単に解釈することができるようになり、データのトレンドを知ることができるようになる。
従来のエピソードマイニングとしては、全データのバッチ処理を行う方法が知られている(例えば、非特許文献1または2を参照)。また、リアルタイムのイベントストリームを対象としたエピソードマイニングとして、最新のデータを含む一定範囲にウィンドウを設け、ウィンドウを一定幅ずつスライドさせ、ウィンドウ内のエピソードを検出する方法が知られている。具体的には、前述のウィンドウ内のイベントシーケンスをバッチと呼ばれる単位に区切り、バッチ内のエピソードに対し、蓄積されたイベントシーケンスに対する手法を用いて、エピソードのカウンティングを実行し、さらにバッチ間で各エピソードの出現回数を合計し、上位のエピソードを頻出エピソードとして提示する方法が知られている(例えば、非特許文献3を参照)。また、ウィンドウ内の各時刻のイベントを最初の要素としたエピソードを保持することで、ウィンドウ内に含まれるminimal occurrence-basedな頻出エピソードを出力する方法が知られている(例えば、非特許文献4を参照)。
"Discovery of frequent episodes in event sequences", Data Mining and Knowledge Discovery, Volume 1, Issue 3, pp 259-289, 1997 "Discovering frequent episodes and learning hidden Markov models: a formal connection", IEEE Transactions on Knowledge and Data Engineering, Volume 17, Issue 11, pp.1505-1517, 2005 "Efficient Episode Mining of Dynamic Event Streams", 10th IEEE International Conference on Data Mining, pp. 605-614, 2012 "Online Frequent Episode Mining", 31th IEEE Inter national conference on Data engineering, 2015
しかしながら、従来のエピソードマイニングには、イベントストリームから効率的にエピソードを得ることができないという問題があった。
例えば、非特許文献1または2に記載された技術においては、イベントが削除されることは想定されていないため、新たなイベントが追加されるたびにウィンドウ内のすべての要素を1つのイベントシーケンスとして捉え、各手法を用いてエピソードを探す必要があった。この時、新たに追加される要素数よりもウィンドウの方が長いため、1度の処理に要する時間が長くなってしまうという問題が生じる。
また、非特許文献3に記載された技術においては、バッチにまたがるエピソードは検出できないため、ウィンドウ内の厳密なエピソードは把握できないという問題がある。また、非特許文献4に記載の技術においては、ウィンドウ内のすべてのイベントを最初の要素としたエピソードを保持する必要があるため、ウィンドウの長さや候補数に比例して必要なメモリや処理時間が増大してしまうという問題がある。
本発明のパターン検出装置は、イベントの発生を時系列順に並べたイベントシーケンスにおいて、所定の範囲において発生したイベント、または、前記範囲において発生する所定のイベントを始点とし、所定のイベントを終点とするイベントの組合せの出現回数をカウントし、前記範囲を前記イベントシーケンスの所定方向に移動させるたびに、前記範囲に追加された各イベント、または、前記範囲に追加された各イベントを終点とする各イベントの組合せの出現回数である追加出現回数をカウントするとともに、前記範囲から削除された各イベント、または、前記範囲から削除された各イベントを始点とする各イベントの組合せの出現回数である削減出現回数をカウントするカウント部と、前記カウント部によってカウントされたイベントまたはイベントの組合せの出現回数から前記追加出現回数の加算を行い、該追加出現回数が加算されたイベントまたはイベントの組合せの出現回数から前記削減出現回数の減算を行う加減部と、イベントまたはイベントの組合せの出現回数が所定の閾値以上である場合、該イベントまたはイベントの組合せを抽出する抽出部と、を有することを特徴とする。
本発明のパターン検出方法は、パターン検出装置で実行されるパターン検出方法であって、イベントの発生を時系列順に並べたイベントシーケンスにおいて、所定の範囲において発生したイベント、または、前記範囲において発生する所定のイベントを始点とし、所定のイベントを終点とするイベントの組合せの出現回数をカウントし、前記範囲を前記イベントシーケンスの所定方向に移動させるたびに、前記範囲に追加された各イベント、または、前記範囲に追加された各イベントを終点とする各イベントの組合せの出現回数である追加出現回数をカウントするとともに、前記範囲から削除された各イベント、または、前記範囲から削除された各イベントを始点とする各イベントの組合せの出現回数である削減出現回数をカウントするカウント工程と、前記カウント工程によってカウントされたイベントまたはイベントの組合せの出現回数から前記追加出現回数の加算を行い、該追加出現回数が加算されたイベントまたはイベントの組合せの出現回数から前記削減出現回数の減算を行う加減工程と、イベントまたはイベントの組合せの出現回数が所定の閾値以上である場合、該イベントまたはイベントの組合せを抽出する抽出工程と、を含んだことを特徴とする。
本発明によれば、イベントストリームから効率的にエピソードを得ることができる。
図1は、第1の実施形態に係るパターン検出装置の構成の一例を示す図である。 図2は、イベントシーケンスの一例を示す図である。 図3は、イベントシーケンスのカウンティング方法の例を示す図である。 図4は、イベントシーケンスの各カウンティング方法によるカウント結果の例を示す図である。 図5は、ウィンドウのスライドについて説明するための図である。 図6は、ウィンドウのスライドについて説明するための図である。 図7は、第1の実施形態に係るパターン検出装置によるイベントの位置ビットブロックの作成方法の一例を示す図である。 図8は、第1の実施形態に係るパターン検出装置によるマスク演算の一例を示す図である。 図9は、第1の実施形態に係るパターン検出装置によるタイムビットブロックの作成方法の一例を示す図である。 図10は、第1の実施形態に係るパターン検出装置によるエピソードの位置ビットブロックの作成方法の一例を示す図である。 図11は、第1の実施形態に係るパターン検出装置によるスケッチの作成方法の一例を示す図である。 図12は、第1の実施形態に係るパターン検出装置によるスケッチの更新方法の一例を示す図である。 図13は、第1の実施形態のエピソード拡張処理を示すフローチャートである。 図14は、第1の実施形態のスケッチ生成処理を示すフローチャートである。 図15は、第1の実施例の概要を示す図である。 図16は、第1の実施例におけるbackward操作を説明するための図である。 図17は、第1の実施例におけるbackward操作におけるエピソード拡張を説明するための図である。 図18は、第1の実施例におけるforward操作を説明するための図である。 図19は、第1の実施例の処理を示すフローチャートである。 図20は、第1の実施例のbackward操作の処理を示すフローチャートである。 図21は、第1の実施例のforward操作の処理を示すフローチャートである。 図22は、第2の実施例の概要を示す図である。 図23は、第2の実施例におけるbackward操作を説明するための図である。 図24は、第2の実施例におけるbackward操作を説明するための図である。 図25は、第2の実施例におけるforward操作を説明するための図である。 図26は、第2の実施例におけるforward操作を説明するための図である。 図27は、プログラムが実行されることにより、パターン検出装置が実現されるコンピュータの一例を示す図である。
以下に、本願に係るパターン検出装置、パターン検出方法およびパターン検出プログラムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本願に係るパターン検出装置、パターン検出方法およびパターン検出プログラムが限定されるものではない。
[第1の実施形態の構成]
まず、図1を用いて、第1の実施形態に係るパターン検出装置の構成について説明する。図1は、第1の実施形態に係るパターン検出装置の構成の一例を示す図である。図1に示すように、パターン検出装置1は、制御部2、記憶部3および抽出部4を有する。また、制御部2は、カウント部10、スケッチ処理部20および加減部30を有する。なお、記憶部3は、各エピソードの頻度および後述するスケッチ等を記憶する。以降、制御部2の各部の構成について詳細に説明する。
パターン検出装置1のカウント部10は、イベントの発生を時系列順に並べたイベントシーケンスにおいて、所定の範囲において発生したイベント、または、範囲において発生する所定のイベントを始点とし、所定のイベントを終点とするイベントの組合せの出現回数をカウントし、範囲をイベントシーケンスの所定方向に移動させるたびに、範囲に追加された各イベント、または、範囲に追加された各イベントを終点とする各イベントの組合せの出現回数である追加出現回数をカウントするとともに、範囲から削除された各イベント、または、範囲から削除された各イベントを始点とする各イベントの組合せの出現回数である削減出現回数をカウントする。そして、加減部30は、カウント部10によってカウントされたイベントまたはイベントの組合せの出現回数から追加出現回数の加算を行い、該追加出現回数が加算されたイベントまたはイベントの組合せの出現回数から削減出現回数の減算を行う。そして、抽出部4は、イベントまたはイベントの組合せの出現回数が所定の閾値以上である場合、該イベントまたはイベントの組合せを抽出する。
具体的に、以降の説明において、所定の範囲とはウィンドウのことを指し、イベントの組合せとはエピソードのことを指している。また、追加出現回数および削減出現回数は、backward操作により得られる出現回数およびforward操作によって得られる出現回数と対応している。
(エピソードマイニングの概要)
ここで、エピソードマイニングの概要について説明する。まず、パターン検出装置1の検出対象となるイベントシーケンスおよび検出の際に用いられるウィンドウについて説明する。図2を用いて、イベントシーケンスについて説明する。図2は、イベントシーケンスの一例を示す図である。図2に示すように、イベントシーケンスとは、イベントおよびそのイベントが起きた時刻を含んだデータを時系列に並べたものである。図2の例では、例えば11:20にaというイベントが発生し、11:21にbというイベントが発生したことを示している。
なお、図2の例では、1つの時刻に対して1つのイベントが対応しているが、1つの時刻に対して複数のイベントが対応していてもよい。また、イベントシーケンスは必ずしも時刻を含んだものでなくてもよく、例えば、イベントのみが時刻順で並べられているものであってもよい。
具体的に、イベントとして扱う対象は、購買履歴やシステムログ等様々なものが考えられる。例えば、購買履歴をイベントとする場合は、「Aという商品を買った」というイベントをa、「Bという商品を買った」というイベントをbとしてもよい。また、システムログをイベントとする場合は、「あるファイルを参照した」というイベントをa、「あるファイルを削除した」というイベントをbとすることもできる。
また、以降の説明においては、イベントシーケンスに含まれる順序を考慮したイベントの集合をエピソードと呼ぶ。なお、エピソードに含まれるイベントは1つであってもよい。また、エピソードに含まれるイベントの個数を長さとする。例えば、図2において、長さ3のエピソードとして、例えば<a,c,d>、<a,a,c>等が存在する。エピソードは、イベントシーケンスの中に繰り返し出現する。そして、パターン検出装置1は、エピソードの出現回数をカウントする。
また、エピソードのとらえ方の違いにより、複数のカウンティング方法がある。ここで、図3および図4を用いて、各カウンティング方法について説明する。図3は、イベントシーケンスのカウンティング方法の例を示す図である。また、図4は、イベントシーケンスの各カウンティング方法によるカウント結果の例を示す図である。図3に示すように、まず、window-basedでは、ウィンドウ幅Txが与えられた時、エピソードαが少なくとも1回含まれている幅Txのウィンドウの数がカウントされる。また、minimal occurrence-basedでは、エピソードαが時刻tsからteに存在し、その時間内に他のαが存在しない時、時刻tsからteはminimal windowであり、このminimal windowの数がカウントされる。
また、non-overlappedでは、長さNのエピソードα<ν1, … ,νN>が異なる位置にある時、それぞれの存在をh1,h2とすると、以下の式(1−1)または式(1−2)が成り立つ時、αの2つの存在はnon-overlappedであり、non-overlappedなαの存在が最大となるときの存在数がカウントされる。
Figure 0006251216
また、distinct occurrence-basedでは、長さNのエピソードα<ν1, … ,νN>が異なる位置にある時、それぞれの存在をh1,h2とすると、以下の式(2)が成り立つ時、αの2つの存在はdistinctであり、これらdistinctなαの存在が最大となる時の存在数がカウントされる。
Figure 0006251216
また、head-basedでは、ウィンドウ幅Txが与えられた時、ウィンドウの左端が開始点であるエピソードαを含む幅Txのウィンドウ数がカウントされる。図4に示すようにこれらの方法によって<A,B,A>というエピソードをカウントすると、各方法によってカウントされる数が異なる。
第1の実施形態において、パターン検出装置1は、イベントストリームを対象としてウィンドウを一定幅ずつスライドさせることによりエピソードマイニングを行う。図5を用いてウィンドウを用いたエピソードマイニングについて説明する。図5は、ウィンドウのスライドについて説明するための図である。まず、一般的なエピソードマイニングにおいては、イベントシーケンス、長さの閾値lmin、頻度の閾値min_supが与えられた時、頻度がmin_sup以上かつ長さがlmin以上であるエピソードが全て検出される。なお、具体的なカウンティング方法については前述の各カウンティング方法のいずれかを用いるものであってよい。
これに対して、第1の実施形態においては、パターン検出装置1は、継続時間の閾値τ、ウィンドウサイズ、即ちウィンドウ内に含まれるイベントの数Wがさらに与えられる。そして、パターン検出装置1は、エピソードの継続時間がτ以内かつ頻度がmin_supおよび長さがlmin以上であるウィンドウ内のエピソードを検出する。なお、前述の通り、イベントシーケンスには時刻が含まれない場合もある。この場合は、τは継続数、即ちエピソードの検出範囲を示す連続するイベントの個数であるものとする。
さらに、この場合は、スライド幅Rが設定されており、最新データの到着等に合わせてウィンドウはRだけスライドする。そして、図5に示すように、スライドによってウィンドウの範囲に含まれなくなる古いイベント集合およびウィンドウの範囲に新たに含まれることとなる新しいイベント集合が発生する。以降の説明において、スライドによってウィンドウの範囲に含まれなくなったイベントを削除されたイベント、逆に、ウィンドウに新たに含まれるようになったイベントを追加されたイベントと呼ぶ。
図6を用いて、ウィンドウのスライドの具体例について説明する。図6は、ウィンドウのスライドについて説明するための図である。図6においては、ウィンドウサイズWを8、スライド幅Rを4とした場合に、ウィンドウがW1に示す位置からW2に示す位置に移動したものとする。この場合、11:20〜11:24のイベントは範囲外となるため、W1においてこれらのイベントは削除され、また、これらのイベントを含むエピソードはカウントされなくなる。逆に、11:36〜11:42のイベントは新たに範囲内となるため、これらのイベントが追加され、また、これらのイベントを含むエピソードがカウントされるようになる。
(カウント部)
引き続き図1を用いて、パターン検出装置1の構成について説明する。図1に示すように、カウント部10は、エピソード拡張部11を有する。さらに、エピソード拡張部11は、イベント位置ビットブロック作成部111、マスク演算部112、継続時間符号化部113、およびエピソード位置ビットブロック作成部114を有する。
まず、エピソード拡張部11の各部の概要について説明する。イベント位置ビットブロック作成部111は、イベントの種類の数をm、範囲に含まれるイベントの数をnとするm×n行列であって、i番目の種類のイベントが範囲のj番目の位置に存在する場合は、行列の成分aijの値を1とし、存在しない場合は行列の成分aijの値を0とすることで各成分の値が決定される行列であるイベント位置ビットブロックを作成する。
また、マスク演算部112は、イベント位置ビットブロックの各イベントに対応する行ベクトルであるイベント位置ビットベクトルから、成分の値が1である位置を示す番号をidとして取得し、長さがnのベクトルであって、範囲が移動した場合において該範囲から削除されたイベントのうち最後に発生したイベント、または、該範囲に追加されたイベントのうち最初に発生したイベントからidが示す位置までの値が0、idが示す位置より先の値が1であるベクトルであるマスクビットベクトルを、イベントおよびid毎に作成する。
また、継続時間符号化部113は、長さがnのベクトルであって、idが示す位置から、範囲が移動した場合において該範囲から削除されたイベントのうち最後に発生したイベントから時系列と逆方向、または、該範囲に追加されたイベントのうち最初に発生したイベントから時系列順の方向かつイベントシーケンスにおける所定の継続時間の範囲に含まれる位置の成分の値が1、それ以外の位置の値が0であるベクトルであるタイムビットベクトルを作成し、マスクビットベクトルとタイムビットベクトルの論理積であるタイムマスクビットベクトルを作成する。
また、エピソード位置ビットブロック作成部114は、第1のイベントに基づいて作成されたタイムマスクビットベクトルと、第2のイベントに基づいて作成されたイベント位置ビットベクトルとの論理積の集合であるエピソード位置ビットブロックを作成する。そして、カウント部10は、イベントに対応するエピソード位置ビットブロックにおける値が1である成分の数を、該イベントを始点または終点とするエピソードの出現回数としてカウントする。
カウント部10は、全体としてイベントシーケンスのウィンドウ内に含まれるエピソードをカウントする。また、加減部30は、カウント部10がカウントした出現回数に基づく頻度を記憶部3に保存する。また、加算部31は頻度の加算を行う。そして、減算部32は頻度の減算を行う。エピソード拡張部11は、所定の手順に従って、あるイベントに他のイベントを接続させ、エピソードの拡張を行う。以降、エピソード拡張部11の各部について詳細に説明する。
エピソード拡張部11のイベント位置ビットブロック作成部111は、図7に示すように、ウィンドウ内のイベントの位置をビットで符号化し、位置ビットブロックを作成する。図7は、第1の実施形態に係るパターン検出装置によるイベントの位置ビットブロックの作成方法の一例を示す図である。図7の例では、スライド幅Rを4としている。そして、位置ビットブロックには、例えば、イベントaが、ウィンドウ内のイベントシーケンスの1、8、9番目に存在していることが示されている。また、位置ビットブロックには、イベントbが、ウィンドウ内のイベントシーケンスの2、11番目に存在していることが示されている。
以降、イベント位置ビットブロック作成部111において作成された位置ビットブロックをイベント位置ビットブロックと呼ぶ。また、イベント位置ビットブロックのようにビット符号により構成されたブロックから、あるイベントについて1行を取り出したものをビットベクトルと呼ぶ。また、図中にビットベクトルとして例が示されている場合であっても、複数のイベントに拡張して考えることができる場合は、ビットブロックとして説明する場合もある。
エピソード拡張部11のマスク演算部112は、位置ビットブロックに含まれるあるイベントの位置ビットベクトルに対してマスク演算を行う。マスク演算部112は、イベントxのイベント位置ビットブロックにおける位置ビットベクトルP(x)と、P(x)におけるビットが1である要素の番号idが与えられた時に、式(3)に従ってマスク演算を行う。ここで、式(3)は、idまでの要素を0、以降の要素を1とすることを示している。
Figure 0006251216
図8を用いて、マスク演算によって得られる結果について説明する。図8は、第1の実施形態に係るパターン検出装置によるマスク演算の一例を示す図である。この場合、図7に示すイベント位置ビットブロックから、イベントbの位置ビットベクトルとして010000000010が得られる。そして、idを2としてマスク演算を行った結果、001111111111が得られる。同様に、各イベントおよび各idについてもマスク演算を行う。なお、イベントbについては、2の他に11がidとなり得る。また、イベントaについては、1、8、9がidになり得る。以降、マスク演算によって得られた結果のベクトルをマスクビットベクトルと呼ぶ。
エピソード拡張部11の継続時間符号化部113は、まず、エピソードの継続時間をビット化し、タイムビットベクトルを作成する。そして、タイムビットベクトルとマスクビットベクトルの論理積をタイムマスクビットベクトルとして算出する。
タイムビットベクトルは、イベントxの位置ビットベクトルにおけるビットが1である要素の番号idが与えられた時に、式(4)に従ってidの時間から継続時間τの間のビットを1、それ以外を0で符号化することで得られる。
Figure 0006251216
そして、式(5)に示すように、タイムビットベクトルとマスクビットベクトルの論理積を算出する。図9の例では、τを10分に設定し、タイムビットベクトルとして011111100000が得られる。図9は、第1の実施形態に係るパターン検出装置によるタイムビットブロックの作成方法の一例を示す図である。また、タイムビットベクトルとマスクビットベクトルの論理積としてタイムマスクベクトル001111100000が得られる。
Figure 0006251216
エピソード拡張部11のエピソード位置ビットブロック作成部114は、エピソード単位の位置ビットブロックであるエピソード位置ビットブロックを作成する。図10を用いて、イベントbについて、長さ2のエピソードのエピソード位置ビットブロックを作成する場合の例について説明する。図10は、第1の実施形態に係るパターン検出装置によるエピソードの位置ビットブロックの作成方法の一例を示す図である。イベントbの位置ビットベクトルより、イベントbのタイムマスクビットベクトルを作成する手順は前述の通りである。ここで、イベントbのタイムマスクビットベクトルと、イベントfの位置ビットベクトルの論理積を算出することで、<b,f>というエピソードの位置ビットブロックを得ることができる。
さらに、長さ3以上のエピソードに対しては、長さ2のエピソード位置ビットブロックに対し前述の手順を適用することにより、エピソードの拡張を行うことができ、長さ3のエピソード位置ビットブロックを得ることができる。同様に、長さnのエピソード位置ブロックが得られれば、エピソード拡張による長さn+1のエピソード位置ビットブロックを得ることができる。
そして、例えば、カウント部10は、得られたエピソード位置ビットブロックにおいて、ビットが1である箇所をカウントすることで、各エピソードの出現回数をカウントする。また、エピソード拡張部11は、各手順において所定の条件を満たさないイベントやエピソードをエピソード拡張の対象から除外することもできる。また、ウィンドウのスライドによって発生する追加イベントまたは削除イベントのみをエピソード拡張の対象としてもよい。
例えば、カウント部10および加減部30は、ウィンドウのスライドが発生した場合に下記のような処理を行ってもよい。即ち、エピソード拡張部11は追加イベントを終点とするエピソードに対してエピソード拡張を行う。そして、加算部31は得られたエピソードの数を基に頻度を加算する。また、エピソード拡張部11は削除イベントを始点とするエピソードに対してエピソード拡張を行う。そして、減算部32は、得られたエピソードの数を基に頻度を減算する。
スケッチ処理部20は、ウィンドウが一定のスライド幅ずつ移動する場合に、イベント位置ビットブロックをスライド幅毎に時間ブロックに分割し、時間ブロックの桁数のビット列が取り得る各値に対して、正の整数で表されるIDを設定し、時間ブロック毎に、IDの最大値より大きい素数であって、互いに異なる素数を割り当て、素数の積を法として、時間ブロック毎のIDとペアになる解を中国の剰余定理に基づいて算出する。
(スケッチ処理部)
スケッチ処理部20の処理について具体例を挙げて説明する。スケッチ処理部20は、カウント部10で生成される位置ビットブロックを、式(6)に示す中国の剰余定理(CRT:Chinese Remainder Theorem)に基づく圧縮構造、即ちスケッチに変換して記憶部3に保存する。そして、剰余演算により、スライド幅単位で位置ビットブロックを復元する。また、スケッチ処理部20は、ウィンドウのスライドに伴い、追加イベントおよび削除イベントを反映させ、スケッチの更新を行う。
Figure 0006251216
なお、中国の剰余定理は、全ての自然数は1つ以上の素数の積として表せ、その表し方は積の順序を除いてただ一通りに表すことができるという素因数分解の一意性(Unique Factorization Theorem)に基づいている。そして、スケッチ処理部20は、各位置ビットベクトルを一の値で表す。
図11に示すように、スケッチ生成部21は、位置ビットブロックに基づいてスケッチを作成する。図11は、第1の実施形態に係るパターン検出装置によるスケッチの作成方法の一例を示す図である。図11の(1)に示すように、スケッチ生成部21は、まずスライド幅単位で取り得るビット列に対してIDラベルを付与する。この場合、スライド幅が4であるので、取り得るビット列は0000〜1111の16通りである。例えば、0000というビットブロックには1、0011というビットブロックには4が付与される。
次に、(2)に示すように、ウィンドウ内のイベントをスライド幅R単位で区切り、時間ブロックに分割し、それぞれに対してIDラベルの最大値より大きい値の素数を設定する。素数の値や割当てる順番は問わないが、計算の観点から小さい値から順番に割り当てることが望ましい。この場合は、IDラベルの最大値が16であり、16より大きい素数である17から始まり、19、23、…、43と割り当てていく。
そして、(3)に示すように、ウィンドウ内の各イベントの位置ビットブロックを(1)で設定したIDラベルを基に変換する。そして、(4)に示すように、イベント毎に時間ブロックの素数で割った余りがその時間ブロックにおけるビットブロックのIDとなるような値Skを中国の剰余定理で求め、スケッチとして記憶部3に保存する。
そして、スケッチ更新部22は、図12に示すように、ウィンドウのスライドが発生した場合は、追加イベントの情報および削除イベントの情報によって記憶部3に保存されているスケッチを更新する。図12は、第1の実施形態に係るパターン検出装置によるスケッチの更新方法の一例を示す図である。この場合、スケッチ更新部22は、混合基数表記によるCRTを用いる。
まず、Skは、混合基数表記によって式(7−1)のように表すことができる。なお、式(7−1)のSkは式(7−2)に示す合同式を満たす。また、c0,…,cr-2は式(7−3)に示す条件を満たす。
Figure 0006251216
まず、スケッチ追加部221は、位置を表すビット列を変換したIDがbr、時間ブロックを表す素数がmrである追加イベントが与えられた場合、式(8−1)に従って新たなスケッチであるSk’を算出する。また、式(8−1)におけるCr-1は、式(8−2)の合同式を解くことで求められる。
Figure 0006251216
また、削除イベントが生じた場合は、スケッチは、式(9−1)の合同式で示されるSkから、式(9−2)の合同式で示されるSk’に変化する。この時、スケッチ削除部222は、位置を表すビット列を変換したIDがbr、時間ブロックを表す素数がmrである削除イベントが与えられた場合、式(9−3)に従って新たなスケッチであるSk’を算出する。即ち、Sk’は、式(9−3)において、Skをm2…mrで割った余りである。
Figure 0006251216
また、抽出部4は、出現回数が所定の閾値以上であるエピソードを頻出パターンとして、抽出する。
[第1の実施形態の処理]
図13を用いて、エピソード拡張部11の処理について説明する。図13は、第1の実施形態のエピソード拡張処理を示すフローチャートである。まず、イベント位置ビットブロック作成部111は、イベント毎の位置ビットブロックを作成し、ビットブロック符号化を行う(ステップS11)。次に、マスク演算部112は、各イベントのidに基づいてマスク演算を行い、マスクビットブロックを作成する(ステップS12)。
そして、継続時間符号化部113は、継続時間τに基づいてタイムビットブロックを作成し、マスクビットブロックとの論理積を取ることでタイムマスクビットブロックを作成する(ステップS13)。最後に、エピソード位置ビットブロック作成部114は、タイムマスクビットブロックと、後に続くイベントのイベント位置ビットブロックの論理積を取ることで、エピソード位置ビットブロックを作成し、エピソード拡張を行う(ステップS14)。
図14を用いて、スケッチ生成部21の処理について説明する。図14は、第1の実施形態のスケッチ生成処理を示すフローチャートである。まず、スケッチ生成部21は、スライド幅単位で取り得るビット列に対してIDラベルを付与する(ステップS21)。次に、スケッチ生成部21は、ウィンドウ内のイベントをスライド幅単位で区切り、それぞれに素数を設定する(ステップS22)。そして、スケッチ生成部21は、位置ビットブロックを、位置ビットブロックを構成するビット列に対して付与されたIDラベルを基に変換する(ステップS23)。最後に、スケッチ生成部21は、中国の剰余定理によりスケッチを算出し保存する(ステップS24)。
[第1の実施例]
ここで、具体的な処理を例に挙げて、本発明の第1の実施形態の実施例である第1の実施例について説明する。まず、図15を用いて、第1の実施例の概要について説明する。図15は、第1の実施例の概要を示す図である。図15に示すように、第1の実施例においては、min_supを3、lminを2、τを10分と設定する。そして、この時(a−b,3),(a−b−f,3),(a−c,4),(a−c−f,3),(a−f,3),(b−c−f,3),(b−f,3),(c−f,4)が結果として得られる。なお、例えば(a−b−f,3)とは、エピソード<a,b,f>の頻度が3であることを示している。また、第1の実施例において、パターン検出装置1は、ウィンドウのスライドが発生した場合、追加イベントに対してはbackward操作を行い、削除イベントに対してはforward操作を行う。また、backward操作およびforward操作は、主にカウント部10によって行われる。そして、加減部30の加算部31および減算部32はカウント結果に基づいて頻度を更新する。
また、この時、τを継続時間ではなく継続数としてもよい。その場合、例えば、τ=3個とすると、図15の左端のイベントaから開始するエピソードは左から3個の範囲に含まれるa,b,cから構成されるエピソードとなる。この場合も同様に、各イベントから開始するエピソードのうち、頻度がmin_sup以上、長さがlmin以上となるエピソードおよびその頻度が結果として得られる。
(backward操作)
backward操作において、カウント部10は、追加ブロックに含まれるイベントをそれぞれ単一のイベントから構成されるエピソードとして頻度をカウントし加算する。次に、スケッチ処理部20は、各要素の位置ビットブロックのスケッチを更新する。そして、カウント部10は、追加ブロックの各要素に対し、追加ブロックの要素および継続時間の逆方向の範囲内の要素をエピソードの先頭に追加するエピソード拡張を行い、その頻度をカウントし更新する。なお、追加ブロックとは、ウィンドウのスライドによって追加されたイベントの集合である。また、この場合、カウント部10のエピソード拡張部11は、第1の実施形態で説明したエピソード拡張と逆方向のエピソード拡張を行う。
図16等を用いて、backward操作の具体的な手順を説明する。図16は、第1の実施例におけるbackward操作を説明するための図である。また、図17は、第1の実施例におけるbackward操作におけるエピソード拡張を説明するための図である。まず、エピソード拡張部11は、追加ブロックに含まれるイベント{a,c,b,f}のイベント位置ビットブロックを作成する。この時、加算部31は、追加ブロックに含まれる各イベントのみで構成されるエピソード<a>,<c>,<b>,<f>の頻度を加算する。また、スケッチ更新部22は追加ブロックをスケッチに追加し更新する。この時、スケッチ更新部22は、追加されたイベント以外のイベントのスケッチには0ビットブロックを追加し更新する。さらに、カウント部10は、追加ブロックに含まれるイベントをADDに格納しておく。
そして、カウント部10は、追加ブロックの最初の時刻から継続時間τ以内の位置に含まれる全てのイベントを、スケッチを基に探しCHKに格納する。そして、エピソード拡張部11は、ADDに含まれるイベントに対して、ADDまたはCHKに含まれるイベントを前に追加するエピソード拡張を行う。そして、加算部31は、各条件を満たすエピソードが存在する場合、頻度を加算する。さらに、エピソード拡張部11は、これらの処理を、ADDに含まれる全てのイベントに対し、拡張したエピソードが存在しなくなるまで繰り返し行う。
ここで、逆方向のエピソード拡張について説明する。まず、図16に示すように、<a>のマスクビットベクトルは、右端からaが現れる位置までを0、それ以降を1としている。また、<a>のタイムビットベクトルは、R2の4ビット目から、継続時間τ以内の左側の範囲が1となっている。このように、backward操作においては、エピソード拡張部11は、図8および図9の例とは逆方向のエピソード拡張を行う。さらに図17に示すように、例えば、逆方向のエピソード拡張によって得られた<a>のタイムビットマスクベクトルと<f>のイベント位置ビットベクトルの論理積を取ることで、<f,a>のエピソード位置ビットベクトルが得られる。さらに、図17に示す手順により、<c,f,a>のエピソード位置ビットベクトルが得られる。
(forward操作)
forward操作において、カウント部10は、削除ブロックに含まれるイベント{a,b,c,d}をそれぞれ単一のイベントから構成されるエピソードとして頻度をカウントし減算する。そして、エピソード拡張部11は、削除ブロックの各要素に対し、削除ブロックの要素および継続時間の順方向の範囲内の要素をエピソードの末尾に追加するエピソード拡張を行い、その頻度をカウントし更新する。最後に、スケッチ処理部20は、各要素の位置ビットブロックのスケッチを更新する。なお、削除ブロックとは、ウィンドウのスライドによって削除されたイベントの集合である。
図18等を用いて、forward操作の具体的な手順を説明する。図18は、第1の実施例におけるforward操作を説明するための図である。まず、カウント部10は、スケッチから、ゼロビットブロックでないイベントを探し、DELに格納する。この時、減算部32は、削除ブロックに含まれる各イベント、即ちDELに格納されたイベントのみで構成されるエピソード<a>,<b>,<c>,<d>の頻度を減算する。
そして、カウント部10は、追加ブロックの最初の時刻から継続時間τ以内の位置に含まれる全てのイベントを、スケッチを基に探しCHKに格納する。そして、エピソード拡張部11は、DELに含まれるイベントに対して、DELまたはCHKに含まれるイベントを後に追加するエピソード拡張を行う。そして、減算部32は、各条件を満たすエピソードが存在する場合、頻度を減算する。さらに、エピソード拡張部11は、これらの処理を、DELに含まれる全てのイベントに対し、拡張したエピソードが存在しなくなるまで繰り返し行う。なお、forward操作において、エピソード拡張部11は、図8〜10等で説明した順方向のエピソード拡張を行う。
(第1の実施例の処理)
図19等を用いて、第1の実施例の処理について説明する。まず、図19を用いて処理の全体的な流れについて説明する。図19は、第1の実施例の処理を示すフローチャートである。図19に示すように、まず、ウィンドウがスライドされる(ステップS31)。そして、カウント部10は、backward操作を行う(ステップS32)。また、カウント部10等は、forward操作を行う(ステップS33)。なお、backward操作およびforward操作の順序は逆であってもよいし、また、同時に非同期で行われるようにしてもよい。以降、backward操作およびforward操作の処理について説明する。
図20を用いてbackward操作について説明する。図20は、第1の実施例のbackward操作の処理を示すフローチャートである。図20に示すように、まず、カウント部10は、追加ブロックに含まれるイベントをADDに格納し、イベント位置ビットブロックを作成し、該イベントのみからなるエピソードの頻度を更新する(ステップS321)。そして、スケッチ処理部20は、追加されたイベントをスケッチに追加し更新する(ステップS322)。
そして、カウント部10は、追加ブロックの最初の時刻から継続時間以内の位置に含まれるイベントを探索し、CHKに格納する(ステップS323)。この場合、時系列の逆方向に向かって探索が行われる。そして、エピソード拡張部11は、ADD∩CHKであるイベントのエピソード拡張を行い、存在する場合はエピソードリストに加算する(ステップS324)。なお、エピソードリストとは、エピソードおよびエピソードの頻度を一覧にしたリストであり、記憶部3に保存されるようにしてもよい。
そして、エピソード拡張部11は、拡張エピソードがある場合(ステップS325、Yes)は、さらにエピソード拡張および加算を行う。そして、エピソード拡張部11は、拡張エピソードがなくなるまで(ステップS325、No)エピソード拡張および加算を繰り返し、その後処理を終了する。
図21を用いて、forward操作について説明する。図21は、第1の実施例のforward操作の処理を示すフローチャートである。図21に示すように、まず、カウント部10は、削除ブロックに含まれるゼロビットでないイベントを探索し、DELに格納し、該イベントのみからなるエピソードの頻度を更新する(ステップS331)。そして、カウント部10は、削除ブロックの最後の時刻から継続時間以内の位置に含まれるイベントを探索し、CHKに格納する(ステップS332)。この場合、時系列方向に向かって探索が行われる。
そして、エピソード拡張部11は、DELに含まれるイベントを、DEL∩CHKであるイベントでエピソード拡張を行い、存在する場合はエピソードリストを減算する(ステップS333)。
そして、エピソード拡張部11は、拡張エピソードがある場合(ステップS334、Yes)は、さらにエピソード拡張および減算を行う。そして、エピソード拡張部11は、拡張エピソードがなくなるまで(ステップS334、No)エピソード拡張および減算を繰り返し、その後スケッチの更新を行い(ステップS335)、処理を終了する。
[第2の実施例]
次に、第2の実施例について説明する。第2の実施例においては、図3に示す、non-overlappedなエピソードのカウンティングを行う。第2の実施例においては、基本的な構成および処理は第1の実施例と同様である。第2の実施例において、カウント部10は、重複エピソードを排除するために、カウントしたエピソードの時間情報を保持し、保持した区間と重複するエピソードの頻度を更新しないようにする。
即ち、第2の実施例において、加減部30は、カウント部10が追加出現回数をカウントした追加されたイベントまたは追加されたイベントを終点とするエピソードの時刻の区間が、最後にカウントした追加されたイベントまたは追加されたイベントを終点とするエピソードの時刻の区間と重複しない場合に、追加出現回数の加算を行う。また、加減部30は、カウント部10が追加出現回数をカウントした削除されたイベントまたは削除されたイベントを始点とするエピソードの時刻の区間が、範囲をイベントシーケンスの所定方向に移動させた後最初にカウントしたイベントを始点とするエピソードの時刻の区間と重複しない場合に、削減出現回数の減算を行う。
なお、カウント部10は、イベントの追加の場合は、最後にカウントしたエピソードの該当区間を保持し、イベントの削除の場合は、最初にカウントしたエピソードの該当区間を保持する。また、エピソード拡張部11は、頻度を更新しなかったエピソードについても、エピソード拡張を行う。なぜなら、エピソードの開始点が前のマッチの開始点よりも後である場合、持続時間の関係で後から始まる方がより長いエピソードが見つかる可能性があるためである。
まず、図22を用いて、第2の実施例の概要について説明する。図22は、第2の実施例の概要を示す図である。図22に示すように、第2の実施例においては、min_supを2、lminを2、τを10分と設定する。そして、この時(a−b,2),(a−b−f,2),(a−c,2),(a−c−f,2),(a−f,2),(b−f,2),(c−f,3),(f−c,2)が結果として得られる。
(backward操作)
図23および図24を用いて、backward操作の具体的な手順を説明する。図23および24は、第2の実施例におけるbackward操作を説明するための図である。まず、図23に示すように、{f,c,f,a}というイベントブロックが追加された場合、カウント部10は、ADDに{f,c,a}を格納し、CHKに{a,b,c,d}を格納する。この時、ADD∩CHKには{a,b,c,d,f}が含まれることになる。そして、例えば、イベントaに対してイベントcを追加するエピソード拡張を行うと、エピソード<c,a>が得られる。これは、図23に示す11:27のcと11:35のaに対応しており、最後にカウントしたエピソードの該当区間として11:27-11:35が保持される。
次に、図24に示すように、{a,c,b,f}というイベントブロックがさらに追加された場合、カウント部10は、ADDに{a,c,b,f}を格納し、CHKに{c,f,a}を格納する。この時、ADD∩CHKには{a,b,c,f}が含まれることになる。そして、イベントaに対してイベントcを追加するエピソード拡張を行うと、エピソード<c,a>が得られる。これは、図24に示す11:27のcと11:36のaに対応しており、保持している区間11:27-11:35と重複するため、頻度の更新は行われない。その後、さらにエピソード拡張が行われる。
(forward操作)
図25および図26を用いて、forward操作の具体的な手順を説明する。図25および26は、第2の実施例におけるforward操作を説明するための図である。まず、図25に示すように、{a,b,c,d}というイベントブロックが削除された場合、カウント部10は、DELに{a,b,c,d}を格納し、CHKに{f,c}を格納する。この時、DEL∩CHKには{a,b,c,d,f}が含まれることになる。そして、例えば、イベントcに対してイベントfを追加するエピソード拡張を行うと、エピソード<c,f>が得られる。これは、図25に示す11:23のcと11:26のfに対応しており、最初にカウントしたエピソードの該当区間として11:23-11:26が保持される。
次に、図26に示すように、{f,c,f,a}というイベントブロックがさらに削除された場合、カウント部10は、DELに{f,c,a}を格納し、CHKに{a,c,b,f}を格納する。この時、DEL∩CHKには{a,b,c,f}が含まれることになる。そして、イベントcに対してイベントfを追加するエピソード拡張を行うと、エピソード<c,a>が得られる。これは、図26に示す11:27のcと11:30のfに対応しており、保持している区間11:23-11:26と重複しないため、頻度の更新が行われ、保持区間が11:27-11:30に更新される。
[効果]
カウント部10は、イベントシーケンスにおいて、ウィンドウにおいて発生したイベントおよびエピソードの出現回数をカウントし、ウィンドウをイベントシーケンスの所定方向に移動させるたびに、追加されたイベントまたは追加されたイベントを終点とするエピソードの出現回数である追加出現回数をカウントし、削除されたイベントまたは削除されたイベントを始点とするエピソードの出現回数である削減出現回数をカウントする。加減部30は、出現回数に追加出現回数の加算を行い、削減出現回数の減算を行う。また、抽出部4は、イベントまたはエピソードの出現回数が所定の閾値以上である場合、該イベントまたはイベントの組合せを抽出する。これにより、エピソードのリスト出現回数の差分更新が可能となり、イベントストリームから効率的にエピソードを得ることができる。
イベント位置ビットブロック作成部111は、イベントの種類の数をm、範囲に含まれるイベントの数をnとするm×n行列であって、i番目の種類のイベントが範囲のj番目の位置に存在する場合は、行列の成分aijの値を1とし、存在しない場合は行列の成分aijの値を0とすることで各成分の値が決定される行列であるイベント位置ビットブロックを作成する。また、マスク演算部112は、イベント位置ビットブロックの各イベントに対応する行ベクトルであるイベント位置ビットベクトルから、成分の値が1である位置を示す番号をidとして取得し、長さがnのベクトルであって、範囲が移動した場合において該範囲から削除されたイベントのうち最後に発生したイベント、または、該範囲に追加されたイベントのうち最初に発生したイベントからidが示す位置までの値が0、idが示す位置より先の値が1であるベクトルであるマスクビットベクトルを、イベントおよびid毎に作成する。
また、継続時間符号化部113は、長さがnのベクトルであって、idが示す位置から、範囲が移動した場合において該範囲から削除されたイベントのうち最後に発生したイベントから時系列と逆方向、または、該範囲に追加されたイベントのうち最初に発生したイベントから時系列順の方向かつイベントシーケンスにおける所定の継続時間の範囲に含まれる位置の成分の値が1、それ以外の位置の値が0であるベクトルであるタイムビットベクトルを作成し、マスクビットベクトルとタイムビットベクトルの論理積であるタイムマスクビットベクトルを作成する。
また、エピソード位置ビットブロック作成部114は、第1のイベントに基づいて作成されたタイムマスクビットベクトルと、第2のイベントに基づいて作成されたイベント位置ビットベクトルとの論理積の集合であるエピソード位置ビットブロックを作成する。そして、カウント部10は、イベントに対応するエピソード位置ビットブロックにおける値が1である成分の数を、該イベントを始点または終点とするエピソードの出現回数としてカウントする。これにより、ウィンドウの移動に対応した効率的な出現回数のカウントが可能となる。
スケッチ処理部20は、ウィンドウが一定のスライド幅ずつ移動する場合に、イベント位置ビットブロックをスライド幅毎に時間ブロックに分割し、時間ブロックの桁数のビット列が取り得る各値に対して、正の整数で表されるIDを設定し、時間ブロック毎に、IDの最大値より大きい素数であって、互いに異なる素数を割り当て、素数の積を法として、時間ブロック毎のIDとペアになる解を中国の剰余定理に基づいて算出する。これにより、位置ビットブロックの効率的な圧縮が可能となり、また、差分のみの更新が可能となる。
加減部30は、カウント部10が追加出現回数をカウントした追加されたイベントまたは追加されたイベントを終点とするエピソードの時刻の区間が、最後にカウントした追加されたイベントまたは追加されたイベントを終点とするエピソードの時刻の区間と重複しない場合に、追加出現回数の加算を行う。また、加減部30は、カウント部10が追加出現回数をカウントした削除されたイベントまたは削除されたイベントを始点とするエピソードの時刻の区間が、範囲をイベントシーケンスの所定方向に移動させた後最初にカウントしたイベントを始点とするエピソードの時刻の区間と重複しない場合に、削減出現回数の減算を行う。これにより、non-overlapped basedなカウンティング方法によるカウントが可能となる。
[その他の実施形態]
Aprioriの性質が成り立つカウンティングに対してはさらに効率の良いカウンティングを行うことができる。Aprioriの性質とは、あるエピソードαがmin_supを満たすためには、αを構成するすべてのサブエピソードもmin_supを満たす、というものである。例えば、<a,b,c>というエピソードがmin_supである3を満たすためには、サブエピソード<a>,<b>,<c>,<a,b>,<a,c>,<b,c>の頻度も3以上でなければならない。
なお、第2の実施例のカウンティングにおいては、Aprioriの性質が成り立つため、min_supを超えたイベントのみでエピソード拡張を行うことで、所定の頻度以上のエピソードを抽出したい場合には、追加・削除される全てのイベントをチェックする必要がなくなる。
[システム構成等]
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPU(Central Processing Unit)および当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、本実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[プログラム]
図27は、プログラムが実行されることにより、パターン検出装置が実現されるコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
メモリ1010は、ROM(Read Only Memory)1011およびRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、パターン検出装置の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、パターン検出装置における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093およびプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093およびプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
1 パターン検出装置
2 制御部
3 記憶部
4 抽出部
10 カウント部
11 エピソード拡張部
20 スケッチ処理部
21 スケッチ生成部
22 スケッチ更新部
30 加減部
31 加算部
32 減算部
111 イベント位置ビットブロック作成部
112 マスク演算部
113 継続時間符号化部
114 エピソード位置ビットブロック作成部
221 スケッチ追加部
222 スケッチ削除部

Claims (6)

  1. イベントの発生を時系列順に並べたイベントシーケンスにおいて、前記イベントの種類の数をm、所定の範囲に含まれるイベントの数をnとするm×n行列であって、i番目の種類のイベントが前記範囲のj番目の位置に存在する場合は、前記行列の成分aijの値を1とし、存在しない場合は前記行列の成分aijの値を0とすることで各成分の値が決定される行列であるイベント位置ビットブロックを作成するイベント位置ビットブロック作成部と、
    前記イベント位置ビットブロックの各イベントに対応する行ベクトルであるイベント位置ビットベクトルから、成分の値が1である位置を示す番号をidとして取得し、長さがnのベクトルであって、前記範囲が移動した場合において該範囲から削除されたイベントのうち最後に発生したイベント、または、該範囲に追加されたイベントのうち最初に発生したイベントから前記idが示す位置までの値が0、前記idが示す位置より先の値が1であるベクトルであるマスクビットベクトルを、前記イベントおよび前記id毎に作成するマスク演算部と、
    長さがnのベクトルであって、前記idが示す位置から、前記範囲が移動した場合において該範囲から削除されたイベントについては時系列順の方向、または、該範囲に追加されたイベントのうち最初に発生したイベントについては時系列と逆方向かつ前記イベントシーケンスにおける所定の継続時間の範囲に含まれる位置の成分の値が1、それ以外の位置の値が0であるベクトルであるタイムビットベクトルを作成し、前記マスクビットベクトルと前記タイムビットベクトルの論理積であるタイムマスクビットベクトルを作成する継続時間符号化部と、
    第1のイベントに基づいて作成された前記タイムマスクビットベクトルと、第2のイベントに基づいて作成された前記イベント位置ビットベクトルとの論理積の集合であるエピソード位置ビットブロックを作成するエピソード位置ビットブロック作成部と、
    前記イベントに対応するエピソード位置ビットブロックにおける値が1である成分の数を、該イベントを始点または終点とするエピソードの出現回数としてカウントすることにより、前記範囲において発生したイベント、または、前記範囲において発生する所定のイベントを始点とし、所定のイベントを終点とするイベントの組合せの出現回数をカウントし、前記範囲を前記イベントシーケンスの所定方向に移動させるたびに、前記範囲に追加された各イベント、または、前記範囲に追加された各イベントを終点とする各イベントの組合せの出現回数である追加出現回数をカウントするとともに、前記範囲から削除された各イベント、または、前記範囲から削除された各イベントを始点とする各イベントの組合せの出現回数である削減出現回数をカウントするカウント部と、
    前記カウント部でカウントされたエピソードに基づいて、前記追加出現回数の加算および前記削減出現回数の減算を行う加減部と、
    イベントまたはイベントの組合せの出現回数が所定の閾値以上である場合、該イベントまたはイベントの組合せを抽出する抽出部と、
    を有することを特徴とするパターン検出装置。
  2. 前記加減部は、前記カウント部によってカウントされたイベントまたはイベントの組合せの出現回数から前記追加出現回数の加算を行い、該追加出現回数が加算されたイベントまたはイベントの組合せの出現回数から前記削減出現回数の減算を行うことを特徴とする請求項1に記載のパターン検出装置。
  3. 前記加減部は、
    前記カウント部が前記追加出現回数をカウントした前記範囲に追加された各イベント、または、前記範囲に追加された各イベントを終点とする各イベントの組合せの区間が、最後にカウントした前記範囲に追加された各イベント、または、前記範囲に追加された各イベントを終点とする各イベントの組合せの区間と重複しない場合に、前記追加出現回数の加算を行い、
    前記カウント部が前記追加出現回数をカウントした前記範囲から削除された各イベント、または、前記範囲から削除された各イベントを始点とする各イベントの組合せの区間が、前記範囲を前記イベントシーケンスの所定方向に移動させた後最初にカウントした前記範囲から削除された各イベント、または、前記範囲から削除された各イベントを始点とする各イベントの組合せの区間と重複しない場合に、前記削減出現回数の減算を行うことを特徴とする請求項1に記載のパターン検出装置。
  4. 前記範囲が一定のスライド幅ずつ移動する場合に、前記イベント位置ビットブロックを前記スライド幅毎に時間ブロックに分割し、前記時間ブロックの桁数のビット列が取り得る各値に対して、正の整数で表されるIDを設定し、前記時間ブロック毎に、前記IDの最大値より大きい素数であって、互いに異なる素数を割り当て、前記素数の積を法として、前記時間ブロック毎の前記IDとペアになる解を中国の剰余定理に基づいて算出するスケッチ処理部をさらに有することを特徴とする請求項1から3のいずれか1項に記載のパターン検出装置。
  5. パターン検出装置で実行されるパターン検出方法であって、
    イベントの発生を時系列順に並べたイベントシーケンスにおいて、前記イベントの種類の数をm、所定の範囲に含まれるイベントの数をnとするm×n行列であって、i番目の種類のイベントが前記範囲のj番目の位置に存在する場合は、前記行列の成分aijの値を1とし、存在しない場合は前記行列の成分aijの値を0とすることで各成分の値が決定される行列であるイベント位置ビットブロックを作成するイベント位置ビットブロック作成工程と、
    前記イベント位置ビットブロックの各イベントに対応する行ベクトルであるイベント位置ビットベクトルから、成分の値が1である位置を示す番号をidとして取得し、長さがnのベクトルであって、前記範囲が移動した場合において該範囲から削除されたイベントのうち最後に発生したイベント、または、該範囲に追加されたイベントのうち最初に発生したイベントから前記idが示す位置までの値が0、前記idが示す位置より先の値が1であるベクトルであるマスクビットベクトルを、前記イベントおよび前記id毎に作成するマスク演算工程と、
    長さがnのベクトルであって、前記idが示す位置から、前記範囲が移動した場合において該範囲から削除されたイベントについては時系列順の方向、または、該範囲に追加されたイベントのうち最初に発生したイベントについては時系列と逆方向かつ前記イベントシーケンスにおける所定の継続時間の範囲に含まれる位置の成分の値が1、それ以外の位置の値が0であるベクトルであるタイムビットベクトルを作成し、前記マスクビットベクトルと前記タイムビットベクトルの論理積であるタイムマスクビットベクトルを作成する継続時間符号化工程と、
    第1のイベントに基づいて作成された前記タイムマスクビットベクトルと、第2のイベントに基づいて作成された前記イベント位置ビットベクトルとの論理積の集合であるエピソード位置ビットブロックを作成するエピソード位置ビットブロック作成工程と、
    前記イベントに対応するエピソード位置ビットブロックにおける値が1である成分の数を、該イベントを始点または終点とするエピソードの出現回数としてカウントすることにより、前記範囲において発生したイベント、または、前記範囲において発生する所定のイベントを始点とし、所定のイベントを終点とするイベントの組合せの出現回数をカウントし、前記範囲を前記イベントシーケンスの所定方向に移動させるたびに、前記範囲に追加された各イベント、または、前記範囲に追加された各イベントを終点とする各イベントの組合せの出現回数である追加出現回数をカウントするとともに、前記範囲から削除された各イベント、または、前記範囲から削除された各イベントを始点とする各イベントの組合せの出現回数である削減出現回数をカウントするカウント工程と、
    前記カウント工程でカウントされたエピソードに基づいて、前記追加出現回数の加算および前記削減出現回数の減算を行う加減工程と、
    イベントまたはイベントの組合せの出現回数が所定の閾値以上である場合、該イベントまたはイベントの組合せを抽出する抽出工程と、
    を含んだことを特徴とするパターン検出方法。
  6. コンピュータを、請求項1から4のいずれか1項に記載のパターン検出装置として機能させるためのパターン検出プログラム。
JP2015120544A 2015-06-15 2015-06-15 パターン検出装置、パターン検出方法およびパターン検出プログラム Active JP6251216B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015120544A JP6251216B2 (ja) 2015-06-15 2015-06-15 パターン検出装置、パターン検出方法およびパターン検出プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015120544A JP6251216B2 (ja) 2015-06-15 2015-06-15 パターン検出装置、パターン検出方法およびパターン検出プログラム

Publications (2)

Publication Number Publication Date
JP2017004437A JP2017004437A (ja) 2017-01-05
JP6251216B2 true JP6251216B2 (ja) 2017-12-20

Family

ID=57751808

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015120544A Active JP6251216B2 (ja) 2015-06-15 2015-06-15 パターン検出装置、パターン検出方法およびパターン検出プログラム

Country Status (1)

Country Link
JP (1) JP6251216B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110457595B (zh) * 2019-08-01 2023-07-04 腾讯科技(深圳)有限公司 突发事件报警方法、装置、系统、电子设备及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4326258A (en) * 1980-01-31 1982-04-20 Ncr Canada Ltd - Ncr Canada Ltee Method and apparatus for reducing the gray scale resolution of a digitized image
JPH07239697A (ja) * 1994-02-28 1995-09-12 Toshiba Corp 信号の合成および分解装置
JP5673394B2 (ja) * 2011-06-30 2015-02-18 富士通株式会社 データ抽出方法及びデータ抽出装置
JP6047017B2 (ja) * 2013-01-11 2016-12-21 キヤノン株式会社 パターン抽出装置および制御方法
JP6107495B2 (ja) * 2013-07-16 2017-04-05 富士通株式会社 照合方法および照合プログラム

Also Published As

Publication number Publication date
JP2017004437A (ja) 2017-01-05

Similar Documents

Publication Publication Date Title
US20200411138A1 (en) Compressing, storing and searching sequence data
US8326885B2 (en) Frequent changing pattern extraction device
US9792388B2 (en) Pattern extraction apparatus and control method therefor
CN111078754B (zh) 基于海量时空数据的频繁轨迹提取方法及其挖掘系统
US20170206458A1 (en) Computer-readable recording medium, detection method, and detection apparatus
US10572318B2 (en) Log analysis apparatus, log analysis system, log analysis method and computer program
US11328176B2 (en) Information processing apparatus, information processing method, and storage medium
US8335757B2 (en) Extracting patterns from sequential data
JP6251216B2 (ja) パターン検出装置、パターン検出方法およびパターン検出プログラム
Nam et al. Nonsmooth algorithms and nesterov's smoothing technique for generalized fermat--torricelli problems
CN108170799A (zh) 一种海量数据的频繁序列挖掘方法
JP5798095B2 (ja) ログ生成則作成装置及び方法
JP5711677B2 (ja) 監視情報分析装置及び方法
KR102153161B1 (ko) 확률 그래프 기반의 서열 데이터 연관성 학습 방법 및 시스템
JP5456715B2 (ja) データ特定装置、データ特定方法及びデータ特定プログラム
JP2009070065A (ja) トレンド検出方法、トレンド検出プログラムおよびトレンド検出装置
WO2019178733A1 (zh) 大规模数据集的频繁项集挖掘方法、装置、设备及介质
US20160253221A1 (en) Pagerank algorithm lock analysis
CN108243058B (zh) 一种基于告警定位故障的方法和装置
JP2019086979A (ja) 情報処理装置、情報処理方法及びプログラム
CN110941793A (zh) 一种网络流量数据填充方法、装置、设备及存储介质
JP4394964B2 (ja) データ圧縮装置、データ復元装置、テンプレート生成装置およびデータ圧縮システム
JP2008159015A (ja) 頻出パターン発見装置および頻出パターン発見方法
JP2014229110A (ja) 検索装置、検索方法および検索プログラム
Junior et al. Incremental mining of frequent sequences in environmental sensor data

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161028

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170905

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171106

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171124

R150 Certificate of patent or registration of utility model

Ref document number: 6251216

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150