JP6047017B2 - パターン抽出装置および制御方法 - Google Patents

パターン抽出装置および制御方法 Download PDF

Info

Publication number
JP6047017B2
JP6047017B2 JP2013003111A JP2013003111A JP6047017B2 JP 6047017 B2 JP6047017 B2 JP 6047017B2 JP 2013003111 A JP2013003111 A JP 2013003111A JP 2013003111 A JP2013003111 A JP 2013003111A JP 6047017 B2 JP6047017 B2 JP 6047017B2
Authority
JP
Japan
Prior art keywords
event
adjacent
events
link
node
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
JP2013003111A
Other languages
English (en)
Other versions
JP2014134991A (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2013003111A priority Critical patent/JP6047017B2/ja
Priority to US14/146,371 priority patent/US9792388B2/en
Publication of JP2014134991A publication Critical patent/JP2014134991A/ja
Application granted granted Critical
Publication of JP6047017B2 publication Critical patent/JP6047017B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/29Graphical models, e.g. Bayesian networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0201Market modelling; Market analysis; Collecting market data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/19Recognition using electronic means
    • G06V30/196Recognition using electronic means using sequential comparisons of the image signals with a plurality of references
    • G06V30/1983Syntactic or structural pattern recognition, e.g. symbolic string recognition
    • G06V30/1988Graph matching

Description

本発明は、時系列データから頻出するパターンを抽出するのに好適な、パターン抽出装置およびその制御方法に関する。
時系列に並んだ膨大なデータを解析することによって、その中の埋もれた有用なパターンを抽出する方法が求められている。例えば、バスケット分析ではPOSデータと顧客情報から、「商品Aを購入し、次に商品Bを購入した顧客は、次に商品Cを購入する」のような顧客購買パターンを知ることが可能であり、商品の販売戦略に活用できる。また、オフィスでのファイル操作ログからユーザの典型的なファイル操作パターンを知ることが可能であり、ファイル操作のレコメンドなどにも活用出来る。
時系列データのマイニング技術としてシーケンシャルパターンマイニングが知られている。例えば、特許文献1、非特許文献1,2に記載の方法がある。これら従来手法では、アイテムとタイムスタンプ(時刻)又は出現順序を示す識別子からなるデータベースから、ユーザによって予め設定された支持度(出現頻度の全データに対する割合)の最小値(最小支持度)以上となる時系列パターンを抽出する。ある時系列パターンの支持度は、全データベース中でその時系列パターンを含むデータの割合である。最小支持度以上となる時系列パターンは頻出時系列パターンと呼ばれる。頻出時系列パターン抽出は、候補となる時系列パターン(候補時系列パターン)の作成とデータベーススキャンによるデータベース中に現れる該候補時系列パターンの頻度の数え上げを繰り返す方法が多く提案されている。このような方法はaprioriベースと呼ばれる。これら従来技術は、データベース中のデータの出現順序をそのまま捕らえた時系列パターンを抽出する。
しかし、実際のデータに含まれる時系列パターンとしては、出現順序をそのまま捉えた全順序な時系列パターンだけではなく、順序がない半順序な関係を含んだ時系列パターンが多く存在する。また、シーケンシャルパターンマイニングでは、解析の対象となるデータは、複数の時系列データに限られる。つまり、先のバスケット分析の例では、複数人の購買データから、何人かに見られる特徴的なパターンの抽出が可能であるが、一人の購買データから何回か現れる特徴的なパターンの抽出は出来ない。その場合、何らかの方法で、一人の購買データを複数に分割して解析を行う必要がある。
このようなシーケンシャルパターンマイニングの問題に鑑みて、エピソードマイニングという手法が提案されている。エピソードマイニングでは、データの種別をイベントと呼び、イベントをその発生時刻の順に並べたイベント系列が入力となる。エピソードマイニングの目的はこのイベント系列からエピソードと呼ばれる頻出する部分イベント系列を抽出することである。エピソードは、イベント間の順序が全て決まっているシリアルエピソード、イベント間に順序がないパラレルエピソード、そして、それらの複合であるジェネラルエピソードに大別される。イベントA、B、Cを含むエピソードの場合、例えば、パラレルエピソードは(A、B、C)のように表し、シリアルエピソードはA→B→Cのように表し、ジェネラルエピソードは(A、B)→Cのように表される。このようなエピソードマイニングの手法は、非特許文献3により提案され、その後、数多くの手法が提案されてきている。しかし、その提案された手法の多くは、シリアルエピソード、または、パラレルエピソードに限ってしか抽出することが出来ない。ジェネラルエピソードは、シリアルエピソードやパラレルエピソードを含む上位の汎用的なエピソードであり、実用的には有用なパターンとして、このジェネラルエピソードを抽出する方法が望まれている。
このようなジェネラルエピソードを抽出する方法として非特許文献4がある。非特許文献4では、先のシーケンシャルパターンマイニングの手法と同様に、aprioriベースの方法が提案されている。この方法のポイントは候補となるジェネラルエピソードの作成であり、非特許文献4ではサイズnの頻出したジェネラルエピソード集合から、条件を満たすペアを全て取り出し、それらペアをマージすることでジェネラルエピソードの作成を行う。ペア1つにつきサイズn+1のジェネラルエピソードの候補が3つ生成され、そこから制約を満たすものだけを最終的に、n+1の候補ジェネラルエピソード集合として生成する。
特許第3373716号公報
R. Agrawal, R. Srikant, "Mining Sequential Patterns: Generalizations and Performance Implements", in proceedings of International Conference on Extending Database Technology, 1996 J. Pei, J. Han, A. Behzad, H. Pinto, "Prefix Span: Mining Sequential Patterns Efficiently by Prefix Projected Pattern Growth", in proceedings of International Conference on Data Enginerring, 2001 H. Mannila, H. Toivonen, and A.I. Verkamo. "Discovery of frequent episodes in event sequences", Data Mining and Knowledge Discovery, 1(3):259-289, 1997. Avinash Achar, Srivatsan Laxman, Raajay Viswanathan, P. S. Sastry, "Discovering injective episodes with general partial orders", Data Mining and Knowledge Discovery, Volume 25,Issue 1, pp 67-108, July 2012
非特許文献4記載の方法による大きな課題は、イベントの種類数、入力のイベント系列の長さ、最小支持度によって、候補となるジェネラルエピソードが組合せ爆発により膨大な数になり、データベーススキャンによる頻度計算に莫大な時間が掛かることである。例えば、10種類のイベントがあるとき長さ3のエピソードは、パラレルエピソードで120、シリアルエピソードは720、そして、ジェネラルエピソードにおいては2280となる。実際のデータでは、イベントの種類数が10ということは少なく、100以上あることの方が普通である。その場合、組合せ爆発により現実的な時間でのパターン抽出が困難になる。
本発明は上記の課題に鑑みてなされたものであり、その目的は、時系列データに含まれるイベントの種類数やイベント系列の長さが大きい場合でも、高速にイベントの出現パターンを抽出することを可能とすることにある。
上記の目的を達成するための本発明の一態様によるパターン抽出装置は以下の構成を備える。すなわち、
イベントの時系列データから、イベントの出現するパターンを抽出するパターン抽出装置であって、
イベントの時系列データから隣接するイベントを取り出し、該隣接するイベントの各イベントをノードで表し、該隣接するイベント間の遷移方向と重みを有する有向リンクで前記ノードを接続し、同一のイベントを一つのノードで表し、同一の隣接するイベント間に複数の有向リンクがある場合にはそれらの重みを累積して一つの有向リンクとすることにより隣接イベントグラフを生成する生成手段と、
前記隣接イベントグラフにおいて、有向リンクの重みに基づいて得られる評価値が所定値以下の有向リンクを切断する切断手段と、を備える。
本発明によれば、時系列データに含まれるイベントの種類数やイベント系列の長さが大きい場合でも、高速にイベントの出現パターンを抽出することが可能となる。
実施形態のシステムの構成例を示す図。 実施形態による装置の構成例を示す図。 実施形態の機能構成を示すブロック図。 実施形態におけるファイル操作履歴の例を示す図。 実施形態における頻出パターン抽出のフローチャート。 (a)実施形態におけるファイル操作履歴の例を示す図、(b)実施形態におけるファイル操作履歴の例を示す図、(c)実施形態におけるリンク強度関数の例を示す図。 実施形態における隣接イベントグラフ作成の例を示す図。 実施形態におけるノイズイベントの例を示す図。 実施形態におけるノイズリンクの例を示す図。 (a)実施形態におけるパターン結合の例を示す図、(b)実施形態におけるイベント分離の例を示す図。 実施形態におけるイベント分離の例を示す図。 実施形態におけるリンク強度の期待値の例を示す図。 実施形態におけるパターン抽出の課題を説明する図。 実施形態におけるイベント結合の例を示す図。
以下、添付の図面を参照して、本発明の好適な実施形態について説明する。
[第一実施形態]
第一実施形態による頻出パターン抽出方法の例を図面に基づいて説明する。本実施形態では、イベントをファイル操作とし、ファイル管理システムの一機能として頻出パターン抽出機能を設ける。抽出した頻出パターンは、ユーザのファイル操作のレコメンドや、パターンの可視化による業務改善や、異常行動の検知などに利用することが可能である。なお、本実施形態では、イベントとして、ファイル操作を対象としているがそれに限定されない。系列データであれば、離散データでも、連続データでも、すべてイベントに見なすことにより本発明を適用することが可能である。例えば、連続データの場合は、連続値を適当な範囲で区切り、範囲毎に適当な識別子を振ることで離散データに変換することができる。他の頻出パターン抽出の利用例としては、工場の障害ログからの原因検知や、Web操作履歴からのユーザの振る舞い予測や、地震データの分析、侵入検知、撮像装置・印刷装置の操作履歴からの操作支援など多岐に渡る。
本実施形態によるシステム構成例でありファイル管理システムについて図1を用いて説明する。ファイル管理システムは、クライアントサーバモデルとして実現される。端末A102、端末B103、端末C104、ファイル管理サーバ105はネットワーク101を介して接続されており、それぞれ相互間で各種情報の授受を実行する。ユーザはそれぞれ端末A102、端末B103、端末C104上の専用のクライアントツールを用いて、ファイルの登録、閲覧、削除などのファイル操作を行うことができる。
図2は、図1に示したファイル管理システムを構成する各装置(端末A102、端末B103、端末C104、ファイル管理サーバ105)の構成例を示すブロック図である。図2において、制御部201はCPU等で構成され、バス202を介してメモリ部203、大規模記憶部204、表示部205、入力部206、出力部207、ネットワーク接続部208に接続されている。メモリ部203はRAM等で構成される電子的な記憶装置である。制御部201はメモリ部203に配置されたプログラムおよびデータに従って動作するとともに、バス202を介して接続された各部を制御し、データの入出力をおこなう。大規模記憶部204は、ハードディスク、光学ディスク等のデータ蓄積装置である。
表示部205は、本システムを使用するユーザに対し、文書等を表示するディスプレイ装置を有する。入力部206は、表示部205の表示内容に連動した指示を入力するためのマウス、スティック、パッド等のポインティングデバイスを含む。タッチパネル機能付きディスプレイ等、表示部205と入力部206を兼ねる装置を用いてもよい。出力部207は、制御部201の制御下でデータを出力する。出力部207は、例えばデータを外部装置へ出力するためのインタフェースであり、データを紙に可視出力するプリンタデバイス等を接続することが可能である。ネットワーク接続部208は、ネットワーク101を介してデータを装置外から取り込んだり装置外に送信したりする為のネットワークインターフェースである。
なお、図2に示される各部はPC等の汎用コンピュータ単体として構成しても良いし、あるいはMFP等の電子機器内に構築してもよい。また、互いに接続された複数のコンピュータやサーバ、およびディスプレイやPDA等の周辺機器の集合によって構築されてもよい。
図3は、ファイル管理サーバ105で実行される処理を実現するための機能構成を示すブロック図の例である。303〜309のそれぞれは、図2の制御部201が202〜208の各部と連携して所定の機能を実行するためのプログラムである。本実施形態では、ファイル管理サーバ105にファイル管理システム302を設け、ユーザ端末301に不図示のクライアントツールを設ける。ファイル管理システム302は、操作取得部303、ファイル管理部304、データベース305、操作履歴管理部306、操作履歴データベース307、情報送信部308、ワークフロー抽出部としての頻出パターン抽出部309を有する。なお、本実施形態ではファイル管理システム302の中にワークフロー抽出機能を組み込む形態を採用しているがこれに限定されるわけではない。それぞれの機能が単体で実施されてもよいし、他のシステムに組み込む形態形で実施されてもよい。
次に、図3の各部の処理について説明する。操作取得部303はユーザ端末301上のクライアントツールから入力されたファイル操作情報を受け取り、ファイル管理部304、操作履歴管理部306へファイル操作情報を伝達する。
ファイル管理部304は操作取得部303からファイル操作情報を受け取り、ファイル操作情報に基づきデータベース305と連携して所定のファイル操作処理を行う。ここで言うファイル操作とは、例えば、ファイルの新規登録や、オープン、コピー、削除、また、フォルダに対する操作などを指し、その処理内容は一般的なファイル管理システムと同様である。処理結果の情報は、情報送信部308を通じて、ユーザ端末301に送られ、ユーザ端末301上のクライアントツールに提供される。データベース305はファイル管理システム302で管理するファイルやフォルダの情報や、ファイル管理システム302を利用するユーザの情報などを格納したり、取得したりする。
操作履歴管理部306は操作取得部303からファイル操作情報を受け取り、操作履歴データベース307にファイル操作履歴としてファイル操作情報を格納する。ファイル操作履歴として操作履歴データベース307に登録されるファイル操作情報の例を図4に示す。ログID401は、ファイル操作情報を一意に識別するための記号である。時間402はファイル操作が行われた時間情報を表す。ユーザID403は、ファイル操作を行ったユーザを識別するための情報である。ファイルID404は、操作対象のファイルを識別するための情報である。操作イベント405は実行されたファイル操作イベントの種類を表す。なお、ここで挙げたファイル操作情報は一例であり、これに限定されるわけではない。以降、説明を簡単にするためにファイルに対する操作の記載を省略することがあるが、実際にはファイルとその操作はセットとして扱われ、ファイル操作が一致するとは、ファイルとその操作の両方が一致することを指している。
頻出パターン抽出部309は、操作履歴データベース307から操作履歴を取得し、解析を行うことで頻出するファイル操作パターンの抽出を行う。ここで抽出されたファイル操作パターンは、ワークフローとして可視化することで業務改善に役立てたり、ワークフローに沿ってユーザにファイル操作をレコメンドするなどに役立てたりすることが出来る。
続いて、頻出パターン抽出部309による頻出パターン抽出の処理について図5のフローチャートを用いて説明する。このフローチャートは、制御部201のCPUがメモリ部203に格納されている制御プログラムを実行することにより実現される。
ステップS501では、制御部201は、操作履歴データベース307からファイル操作履歴を読み込み、隣接イベントグラフを作成する。隣接イベントグラフの作成方法について、図6(a)〜図7を用いて説明する。図6(a)はあるユーザのファイル操作履歴の一部を示している。イベントIDは図6(b)に示すイベントテーブルにより管理されており、ファイルIDと操作をセットにして一意に識別出来るものである。
まず、制御部201は、ファイル操作履歴の先頭から、前後に並んだ2レコードを読み出す。図6(a)の例では、ログIDが1000と1001のレコード(イベント)がまず読み出される。次に、制御部201は、これら隣接するイベントの各々のをノードとして表し、それらノード間を、イベントの遷移方向と重みを有する有向リンクで接続する。まず、制御部201は、これらの2つのレコード間の発生時間の差分(ギャップ時間)からイベント間のリンク強度(重み)を計算する。リンク強度は、ギャップ時間の長さが短いほど高くなり、長いほど低くなるものがよく、例えば、図6(c)に示すようなギャップ時間によって非線形に変化するようなシグモイド関数を用いても良いし、ギャップ時間の逆数を用いてもよい。また、ギャップ時間によらず定数(固定値)とすることも可能である。
次に、制御部201は、図7(a)のようにイベントをノードとし、発生順序に従って有向リンクを張り、ギャップ時間から求めたリンク強度を各リンクに付与して隣接イベントグラフを作成する。以降、レコードを1つずつずらして、同様の処理を繰り返していく。その際に、制御部201は、同一のイベントを一つのノードで表わし、同一の隣接するイベント間に複数の有向リンクがある場合にはそれらの強度(重み)を累積して一つの有向リンクで表すようにする。このような処理により、次に読み込んだレコードから図7(b)、その次に読み込んだレコードから図7(c)の隣接イベントグラフが作成され、最終的にログID1501まで読み込むことで、図7(d)のような隣接イベントグラフが作成される。
ステップS502では、制御部201は、ステップS501で作成した隣接イベントグラフからノイズイベントを除去する。本実施形態では、イベント間の結びつきは前後関係しか見ないため、たまたま発生するノイズイベントが操作履歴の中に多く含まれる場合に本来のイベント間の結びつきを発見出来なくなる可能性が高まる。そこで、以下に説明するようにノイズイベントの除去を行う。
まず、ノイズイベントの定義について図8を用いて説明する。図8はある操作履歴を読み込んだときの隣接イベントグラフの一部である。図8(a)のイベントXは操作履歴の中に3回出現し、イベントXの前に発生したイベントは3種類あり、イベントXの後に発生したイベントも3種類あることがわかる。また、リンク強度は接続されているイベントによらず同等となっている。このように、特定のイベントとの結びつきが弱いイベントXは、頻出パターンと言えないためノイズイベントとする。逆に、図8(b)のイベントYのように、イベントYの後には必ず特定のイベントが発生するイベントは、頻出パターンに含まれるイベントと言える。上述したノイズイベントの定義から、例えばイベントeiのノイズスコアを以下のような式で求める。
Figure 0006047017
ここで、Niはイベントeiの出現回数を表し、Inlinki、Outlinkiはそれぞれ、イベントeiに接続するInlinkの集合、Outlinkの集合を表す。また、pjはlinkjのリンク強度をInlinkiに含まれる全linkのリンク強度の和で割ったものであり、qjはlinkjのリンク強度をOutlinkiに含まれる全linkのリンク強度の和で割ったものである。このノイズスコアは、Inlink、Outlinkごとに計算し小さい方をそのイベントのノイズスコアとしている。これは、パターンの始まりにあたるイベント、終わりにあたるイベントのノイズスコアが高くなるのを防ぐためである。このノイズスコアは、図8(a)のようなイベントの場合は1.0となり、図8(b)のようなイベントの場合は0.0となる。すなわち、ノイズスコアが大きいほど、ノイズである可能性が大きいことを表す。
次に、このノイズスコアを用いたノイズイベントの除去について説明する。まず、隣接イベントグラフの全イベントについて、ノイズスコアを計算し、あらかじめ設定した閾値を超えたイベントをノイズイベントとして記録しておく。ノイズイベントが1つ以上発見された場合には、再度ステップS501と同様の手順で隣接イベントグラフを再構築する。ただし、その際には、ノイズイベントとして記録されているイベントについては、読み込みをスキップする。この処理により、ノイズイベント(ノイズスコアがあらかじめ設定した閾値を超えたイベント)が除去されることになる。以上を、ノイズイベントが新しく発見されなくなるまで繰り返し、ノイズイベントの除去を終了する。ほとんどの場合において、この繰り返し処理は数回のうちに収束するため、計算時間に大きな影響は与えない。
ステップS503では、制御部201は、隣接イベントグラフにおいて、有向リンクの重みに基づいて得られる評価値が所定値以下の有向リンクをノイズリンクとして切断する。抽出する頻出パターンはある程度イベント間の結びつきが強いものである必要がある。そこで、制御部201は、たとえば次の2つの指標を用いて結びつきが弱いリンク、すなわちノイズリンクを判定し、除去する。第1の指標はリンク強度の絶対値であり、第2の指標は、イベントの出現回数に対するリンク強度の割合である。ここで、イベントの出現回数とは、リンクに接続する2つのイベントの出現回数の小さい方とする。第1、第2の指標のそれぞれについて、図9を用いて説明する。例えば第1の指標であるリンク強度の絶対値が4未満のリンクをノイズリンクとすると、図9(b)がノイズリンクとなる。また、第2の指標であるイベントの出現回数におけるリンク強度の割合が0.5未満のリンクをノイズリンクとすると、図9(a)と図9(c)がノイズリンクとなる。実際にはこれらを組み合わせて用いるのが良い。例えば、リンク強度の絶対値が2未満、または、イベントの出現回数におけるリンク強度の割合が0.2未満のリンクをノイズリンクとすると、図9(c)がノイズリンクとして除去される。
ステップS504では、制御部201は、隣接イベントグラフにおいて、複数のパターンに含まれているイベントを推定し、そのようなイベントを分離して隣接イベントグラフを更新する。操作履歴から前後関係だけを使って隣接イベントグラフを作成すると、複数のパターンに含まれるイベントを介して、それらのパターンが1つのグラフとしてまとまってしまう問題がある。例えば、操作履歴の中に、図10(b)に示すような3つのパターン、イベントJ→イベントK→イベントZ、イベントO→イベントZ→イベントP、イベントZ→イベントS→イベントTが多く含まれていたとする。すると、前ステップまでの方法で隣接イベントグラフを作成すると図10(a)のようなグラフが現れ、本来3つの別々のパターンであったものが1つのパターンとして抽出されてしまう。そこで、本ステップでは、複数のパターンに含まれているイベントを推定して、イベントの分離を行う。その方法について図11を用いて説明する。
隣接イベントグラフの全イベントに対して以下の処理を行う。ここでは、図10(a)のイベントZを例に説明する。まず、イベントZに接続するイベントを抽出し、これを隣接イベント集合(隣接ノード集合)とする。イベントZの隣接イベント集合は図11(a)に示すように、イベントK、O、P、Sである。この隣接イベント集合を、共起性を類似度としてクラスタリングする。ここでいう共起性とは、近い時間に一緒に出現しやすいかどうかを表したものである。図11(b)はイベントZに関連付けられた隣接イベントペアの共起頻度情報である。例えば、一行目はイベントペア「O、P」の共起頻度が9であることを示し、これは、イベントO→イベントZ→イベントP、または、イベントP→イベントZ→イベントOが9回観測されたことを表している。このようなイベントに関連付けられた隣接イベントペアの共起頻度情報は、ステップS501の隣接イベントグラフを作成する際に容易に作ることができる。
このイベントZに関連付けられた隣接イベントペアの共起頻度情報から次のように隣接イベントペアの類似度を計算する。すなわち、隣接イベントペアに含まれる各イベントとイベントZの間のリンク強度のうち小さい方で、隣接イベントペアの共起頻度を割ったものを隣接イベントペアの類似度とする。例えば、隣接イベントペアO、Pの類似度は、9/Min(10.0,9.0)=1.0となる。
このような隣接イベントペアの類似度を用いて、隣接イベント集合に含まれるイベントをグルーピングする。本実施形態では、このようなグルーピングにクラスタリングの手法が用いられる。なお、クラスタリングの手法としては、階層型と非階層型の大きく2つに分かれるが、それらのいずれも本実施形態に適用可能であるが、本実施形態では、クラスタの数を予め定める必要のない階層型クラスタリングの手法を用いる。階層型クラスタリングの代表的な手法に、最短距離法、最長距離法、群平均法、ウォード法などがあるがどれを用いてもよい。なお、それぞれの手法の説明については本発明の本質ではないため省略する。例えば、図11(a),(b)の例では、隣接イベント集合K、O、P、Sは[(O、P)、(K)、(S)]の3つにクラスタリングされる。
最後にこのクラスタリングした隣接イベント集合を使って、イベントZを分離する。クラスタリングされたそれぞれのイベントグループが独立したパターンと考えられるため、イベントグループの数分だけイベントZをコピーし、各イベントグループ内に閉じてリンクを繋ぎかえることでイベントZの分離を行う。分離を行った後の状態を図11(c)に示す。以上の処理を隣接イベントグラフの全イベントに対して行うことで、最終的に図10(b)に示すような本来の3つのパターンを得ることができる。
ステップS505では、隣接イベントグラフに対して、イベント間に順序関係がないものを探してそれらを結合していく。このようなことを行う理由について、図12を用いて説明する。例えば、A→(B、C、D)→(E、F)→Gのようなイベントの出現パターンについて考える。このパターンは、Aの後に、B、C、Dが順不同で出現し、B、C、Dの全てが出現した後に、E、Fが順不同で出現し、E、Fの全てが出現した後にGが出現することを表している。ここで、イベントCについて、その前後に出現するイベントの出現確率を図12に示す。イベントCの前に出現しうるイベントはA、B、Dの3つであり、それらの出現確率はすべて1/3である。イベントCの後に出現しうるイベントは、B、D、E、Fの4つであり、B、Dについてはそれぞれ出現確率1/3だが、E、Fについてはそれぞれ出現確率1/6になる。この出現確率は、A→(B、C、D)→(E、F)→Gのパターンが1回観測された時の、それぞれのリンク強度の期待値にあたる。したがって、例えばA→(B、C、D)→(E、F)→Gのパターンが12回観測されても、イベントCからイベントEやFへのリンク強度は2しか期待できないということである。その結果、ステップS503で、ノイズリンクと判断されやすくなってしまう問題がある。
このような問題に対応するために、本ステップでは、隣接イベントグラフに対して、イベント間に順序関係がないものを探してそれらを結合していく。このような処理により、ステップS503でノイズリンクとして切断されたリンクのうち、半順序な関係にあるリンクを復活させる。まず、制御部201は、隣接イベントグラフの双方向に有向リンクを有する2つのノードを結合するか否かを、それら双方向の有向リンクの重みに基づいて判定する。そして、制御部201は、結合すると判定された2つのノードを1つのノードに結合し、それぞれのノードが有していた隣接するノードへの有向リンクの重みを用いて該結合されたノードの有向リンクを設定することにより隣接イベントグラフを更新する。この処理の具体的な実現例について、図13、図14を用いて説明する。
以下、A→(B、C、D)→(E、F)→Gのパターンを用いて、このパターンが操作履歴にある程度の回数出現したものとして説明する。ステップS502までの処理の結果、図13(a)に示す隣接イベントグラフが得られたとする。ここで実線により示されるリンク1601は、リンク強度の値が大きいことを表しており、破線で示されるリンク1602はリンク強度の値が小さいことを表している。この隣接イベントグラフからステップS503によりノイズリンクが除去されると、例えば、図13(b)のようになってしまい、これは図12に示される元のパターンを表していない。そこで、隣接イベントグラフのすべてのイベントペアに対して、その間に順序関係があるかを調べ、順序関係がないと判断されたイベントペアに対してはイベントの結合を行う。イベント間に順序関係があるかどうかは、例えば、双方向に閾値以上のリンク強度のリンクを持つこととすればよい。または、イベントの出現回数を考慮して、双方向にリンク強度があり、かつ、その和をイベントの出現回数で割ったリンク強度の割合が閾値以上であることとしてもよい。あるいは、上述の双方向のリンク強度の和とリンク強度の割合の両方を用いて、イベント間の順序関係の有無を判断するようにしてもよい。
図14(a)の隣接イベントグラフ(図13(a)の隣接イベントグラフと同等)で、例えば、イベントC(1701)とイベントD(1702)が順序関係のないイベントペアとして見つかったとする。この場合、これらのイベントを結合することにより図14(b)のイベントC、D(1703)が得られる。その際に、隣接するイベントとのリンクを繋ぎ替えるのだが、イベントA(1707)からイベントC、D(1703)へのリンク1706のリンク強度には、結合前のそれぞれぞれのリンク1704、1705のリンク強度の和が付与される。
上記処理を、隣接イベントグラフから新たにイベント間に順序関係がないイベントペアが見つからなくなるまで繰り返して、本ステップの処理を終了する。この繰り返し処理の回数は、パターンに含まれるパラレルなサブパターンのサイズに比例し、ほとんどの場合、数回で収束する。最終的に図14(a)から本ステップを行うことで、図14(c)の隣接イベントグラフが得られる。これは、元のA→(B、C、D)→(E、F)→Gのパターンを表したものとなる。
上述したステップS501〜S505の処理を行うことで得られた隣接イベントグラフが、最終的に頻出パターン抽出部309により抽出される頻出パターンである。
以上、第一実施形態における頻出パターン抽出方法を、ファイル管理システムにおけるファイル操作履歴からの頻出パターンの抽出という例で説明した。このように、本実施形態では、従来手法の様に、パターンの候補を生成し、データをスキャンして頻度を数え上げることを繰り返すという方法とは異なり、直接、データからパターンを構成する。そのため、イベントの種類数や、入力イベント系列の長さが大きい場合でも、高速にジェネラルエピソードの抽出が可能となる。実験では、従来手法に比べて本実施形態によるパターン抽出は、1000倍以上高速に動作した。ただし、従来手法はユーザにより決められた最小頻度以上のパターンを漏れなく抽出するのに比べて、本実施形態では、ノイズなどの影響により漏れがないことを保証することは出来ない。しかし、従来手法は漏れがない代わりに、出力するパターンの数が膨大になりやすい問題がある。これは、最小頻度を低く設定することにより顕著に表れる。本実施形態は、ある程度の漏れを妥協し、確度の高いパターン適当数、高速に抽出することに特徴がある。
以上の処理によって抽出された頻出パターンは仕事の効率を向上させることに利用可能である。例えば、頻出パターンを可視化して業務の見直しに役立てたり、ワークフローシステム構築の参考にしたり、ユーザのファイル操作をナビゲートするファイル推薦を行ったりするなど幅広く利用可能である。また、本例に限らず、他の頻出パターン抽出の利用例としては、工場の障害ログからの原因検知や、Web操作履歴からのユーザの振る舞い予測や、地震データの分析、侵入検知、撮像装置・印刷装置の操作履歴からの操作支援など、時系列データを扱う処理などに広く応用可能である。
[第二実施形態]
第一実施形態では、イベントをファイル操作とし、解析する時系列データとしてはイベントのタイプと発生時刻を含んでいたが、第二実施形態では、発生時刻を含んでいない場合への利用を説明する。この場合、ステップS501の隣接イベントグラフの生成の中で、イベント間のリンク強度を固定値(例えば、1.0)とすれば良い。つまり、イベント発生時刻のギャップ時間によらず、隣接したイベントは一律の相関があると見なせばよい。入力データが増えていくことで、何度も隣接したイベントはリンク強度が強まり、高い相関があると見なせるようになる。ギャップ時間によりリンク強度を変化させることは、データが少ないうちに有効であると考えられる。したがって、例えば、隣接イベントグラフの作成において、蓄積されているデータの数が所定の閾値より小さい場合には時間に依存したリンク強度を設定し、蓄積されているデータの数が所定の閾値以上の場合にはリンク強度に固定値を用いるようにしてもよい。
また、ギャップ時間以外にリンク強度を決める方法として、イベントの属性情報を使うことなども考えられる。例えば、イベントをファイル操作とした場合は、属性情報として、ファイル名や、作成者、作成日時などが使え、これら属性情報から相関を求め、相関が強い場合に高いリンク強度となるようにしてもよい。このように、リンク強度を決める際には、イベントの発生時刻や、属性情報など使える情報に応じてイベント間の相関を求め、その相関を反映するとよい。
[第三実施形態]
実施形態1では、ステップS501〜ステップS505までの処理をすべて実施したが、必ずしもすべての全ての処理を行わなければならないわけではない。たとえば、ステップS502、S504、S505を省略して、ステップS501(隣接イベントグラフの作成)とステップS503(ノイズリンクの切断)を実行することにより頻出パターンの抽出を行なってもよい。また、この場合、他のステップ(ステップS502、S504、S505)については、解析するデータと、そこに含まれていると予測されるパターンの特徴を踏まえることで選択するようにしてもよい。その場合、ユーザがステップS502、S504、S505のそれぞれの処理について実行するか否かを指定できるようにしてもよいし、時系列データの解析に基づいて制御部201が自動的に実行するか否かを設定できるようにしてもよい。
たとえば、解析するデータにノイズが多く含まれている場合には、ステップS502のノイズイベントの除去を行うことが望ましい。また、予測されるパターンとして、1つのイベントが複数のパターンに含まれる場合には、ステップS504のイベントの分離を行うことが望ましい。また、予測されるパターンとして、パターンの中のイベントが半順序な関係が多い場合には、ステップS505のイベントの結合を行うことが望ましい。なお、各ステップS502、S504、S505は、それを実施することによる精度の低下や、計算時間の増加は比較的小さい。そのため、解析するデータやそこに含まれていると予測されるパターンの特徴が不明な場合には、第一実施形態のようにすべてのステップS501〜S505までを行うのが良い。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウエア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

Claims (10)

  1. イベントの時系列データから、イベントの出現するパターンを抽出するパターン抽出装置であって、
    イベントの時系列データから隣接するイベントを取り出し、該隣接するイベントの各イベントをノードで表し、該隣接するイベント間の遷移方向と重みを有する有向リンクで前記ノードを接続し、同一のイベントを一つのノードで表し、同一の隣接するイベント間に複数の有向リンクがある場合にはそれらの重みを累積して一つの有向リンクとすることにより隣接イベントグラフを生成する生成手段と、
    前記隣接イベントグラフにおいて、有向リンクの重みに基づいて得られる評価値が所定値以下の有向リンクを切断する切断手段と、を備えることを特徴とするパターン抽出装置。
  2. 前記隣接イベントグラフにおいて、複数のパターンに含まれているノードを特定する特定手段と、
    前記特定手段により特定されたノードを前記複数のパターンに応じた複数のノードに分離して前記隣接イベントグラフの有向リンクを更新する分離手段と、を更に備えることを特徴とする請求項1に記載のパターン抽出装置。
  3. 前記隣接イベントグラフの各ノードについて、接続されている有向リンクの重みに基づいてノイズスコアを計算する計算手段と、
    前記計算手段により計算されたノイズスコアに従ってノイズと判断したノードを除去し、前記隣接イベントグラフを再構築する除去手段をさらに有する請求項1または2に記載のパターン抽出装置。
  4. 前記隣接イベントグラフの双方向に有向リンクを有する2つのノードを結合するか否かを、該双方向の有向リンクの重みに基づいて判定する判定手段と、
    前記判定手段により結合すると判定された2つのノードを1つのノードに結合し、それぞれのノードが有していた隣接するノードへの有向リンクの重みを用いて該結合されたノードの有向リンクを設定することにより前記隣接イベントグラフを更新する結合手段をさらに有する請求項1乃至3のいずれか1項に記載のパターン抽出装置。
  5. 前記特定手段は、前記隣接イベントグラフのノードについて、そのノードと隣接するノードを含む隣接ノード集合を共起性による類似度によりグルーピングすることにより前記複数のパターンとそれらに含まれるノードを特定することを特徴とする請求項2に記載のパターン抽出装置。
  6. 前記切断手段で用いる前記評価値は、前記隣接イベントグラフにおける有向リンクの重み、または、有向リンクに接続するノードの出現回数に対する有向リンクの重みの割合、または、それらの両方を組み合わせて求めるスコアであることを特徴とする請求項1乃至5のいずれか1項に記載のパターン抽出装置。
  7. 前記生成手段は、イベント間の発生時刻の差分に基づいて該イベント間の有向リンクの重みを設定することを特徴とする請求項1乃至6のいずれか1項に記載のパターン抽出装置。
  8. 前記生成手段は、イベント間の有向リンクに固定値を設定することを特徴とする請求項1乃至6のいずれか1項に記載のパターン抽出装置。
  9. イベントの時系列データから、イベントの出現するパターンを抽出するパターン抽出装置の制御方法であって、
    生成手段が、イベントの時系列データから隣接するイベントを取り出し、該隣接するイベントの各イベントをノードで表し、該隣接するイベント間の遷移方向と重みを有する有向リンクで前記ノードを接続し、同一のイベントを一つのノードで表し、同一の隣接するイベント間に複数の有向リンクがある場合にはそれらの重みを累積して一つの有向リンクとすることにより隣接イベントグラフを生成する生成工程と、
    切断手段が、前記隣接イベントグラフにおいて、有向リンクの重みに基づいて得られる評価値が所定値以下の有向リンクを切断する切断工程と、を有することを特徴とするパターン抽出装置の制御方法。
  10. コンピュータを、請求項1乃至8のいずれか1項に記載のパターン抽出装置の各手段として機能させるためのプログラム
JP2013003111A 2013-01-11 2013-01-11 パターン抽出装置および制御方法 Active JP6047017B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013003111A JP6047017B2 (ja) 2013-01-11 2013-01-11 パターン抽出装置および制御方法
US14/146,371 US9792388B2 (en) 2013-01-11 2014-01-02 Pattern extraction apparatus and control method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013003111A JP6047017B2 (ja) 2013-01-11 2013-01-11 パターン抽出装置および制御方法

Publications (2)

Publication Number Publication Date
JP2014134991A JP2014134991A (ja) 2014-07-24
JP6047017B2 true JP6047017B2 (ja) 2016-12-21

Family

ID=51165984

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013003111A Active JP6047017B2 (ja) 2013-01-11 2013-01-11 パターン抽出装置および制御方法

Country Status (2)

Country Link
US (1) US9792388B2 (ja)
JP (1) JP6047017B2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5928165B2 (ja) * 2012-06-01 2016-06-01 富士通株式会社 異常遷移パターン検出方法、プログラム及び装置
WO2015128896A1 (ja) * 2014-02-26 2015-09-03 三菱電機株式会社 攻撃検知装置、攻撃検知方法、及び攻撃検知プログラム
WO2016045734A1 (en) * 2014-09-25 2016-03-31 Siemens Aktiengesellschaft Control apparatus of an automation system
JP6511971B2 (ja) * 2015-06-05 2019-05-15 富士ゼロックス株式会社 情報処理装置及びプログラム
JP6251216B2 (ja) * 2015-06-15 2017-12-20 日本電信電話株式会社 パターン検出装置、パターン検出方法およびパターン検出プログラム
US10430721B2 (en) * 2015-07-27 2019-10-01 Pivotal Software, Inc. Classifying user behavior as anomalous
US10567479B2 (en) 2015-08-05 2020-02-18 Facebook, Inc. Managing a device cloud
US10348798B2 (en) * 2015-08-05 2019-07-09 Facebook, Inc. Rules engine for connected devices
US10541958B2 (en) 2015-08-05 2020-01-21 Facebook, Inc. Controlling a device cloud
US10412160B2 (en) 2015-08-05 2019-09-10 Facebook, Inc. Controlling a device cloud
US10425392B2 (en) 2015-08-05 2019-09-24 Facebook, Inc. Managing a device cloud
US10417224B2 (en) * 2017-08-14 2019-09-17 Palantir Technologies Inc. Time series database processing system
US20190114339A1 (en) * 2017-10-17 2019-04-18 Microsoft Technology Licensing, Llc Identifying patterns within a set of events that includes time series data
JP7040003B2 (ja) * 2017-12-26 2022-03-23 富士通株式会社 グラフ生成方法、情報処理装置およびグラフ生成プログラム
US11354320B2 (en) * 2018-10-11 2022-06-07 International Business Machines Corporation Determining causes of events in data
JP7347547B2 (ja) 2020-01-28 2023-09-20 日本電気株式会社 イベント分析支援装置、イベント分析支援方法、及びプログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5819266A (en) 1995-03-03 1998-10-06 International Business Machines Corporation System and method for mining sequential patterns in a large database
JP2004102681A (ja) * 2002-09-10 2004-04-02 Fujitsu Ltd 行動データ表示方法および行動データ表示装置
JP4746850B2 (ja) * 2004-06-21 2011-08-10 富士通株式会社 パターン生成プログラム
US8924794B2 (en) * 2008-02-21 2014-12-30 Hewlett-Packard Development Company, L.P. Method and computer program product for forecasting system behavior
US8200682B2 (en) * 2008-04-22 2012-06-12 Uc4 Software Gmbh Method of detecting a reference sequence of events in a sample sequence of events
US8122069B2 (en) * 2008-07-09 2012-02-21 Hewlett-Packard Development Company, L.P. Methods for pairing text snippets to file activity
US20100241647A1 (en) * 2009-03-23 2010-09-23 Microsoft Corporation Context-Aware Query Recommendations
US8689172B2 (en) * 2009-03-24 2014-04-01 International Business Machines Corporation Mining sequential patterns in weighted directed graphs
US8626835B1 (en) * 2010-10-21 2014-01-07 Google Inc. Social identity clustering

Also Published As

Publication number Publication date
JP2014134991A (ja) 2014-07-24
US9792388B2 (en) 2017-10-17
US20140201133A1 (en) 2014-07-17

Similar Documents

Publication Publication Date Title
JP6047017B2 (ja) パターン抽出装置および制御方法
US11405301B1 (en) Service analyzer interface with composite machine scores
CN104461842B (zh) 基于日志相似性来处理故障的方法和装置
CN102239458B (zh) 可视化数据元素之间的关系
JP5092165B2 (ja) データ構築方法とシステム
JP6919569B2 (ja) ログ分析システム、方法、及び記録媒体
JP2013143039A (ja) 頻出パターン抽出装置、頻出パターン抽出方法、及びプログラム
JP2011138422A (ja) 行動パターン検出装置、行動パターン検出方法及び行動パターン検出プログラム
JP2009104591A (ja) ウェブ文書クラスタリング方法およびシステム
JP7103496B2 (ja) 関連スコア算出システム、方法およびプログラム
JP5588811B2 (ja) データ分析支援システム及び方法
WO2019225125A1 (ja) データ処理装置およびデータ処理方法
WO2014034383A1 (ja) 情報処理装置、レコード位置情報特定方法および情報処理プログラム
JP2014164618A (ja) 頻出パターン抽出装置、頻出パターン抽出方法及びプログラム
US9552415B2 (en) Category classification processing device and method
JP2010033456A (ja) 計算機システム、情報収集支援装置及び情報収集支援方法
JP2019204246A (ja) 学習データ作成方法及び学習データ作成装置
Ting et al. Constructing a cloud computing based social networks data warehousing and analyzing system
CN103020095B (zh) 信息处理设备和信息处理方法
JP2011100208A (ja) 行動推定装置、行動推定方法および行動推定プログラム
JP5615593B2 (ja) 電子文書管理装置、表示方法、表示プログラムおよび記録媒体
JP2011248534A (ja) グラフパターンを用いたネットワーク分析装置、ネットワーク分析方法、およびネットワーク分析用プログラム
US20150032749A1 (en) Method of creating classification pattern, apparatus, and recording medium
CN107958022A (zh) 一种万维网日志挖掘的方法
WO2011016281A2 (ja) ベイジアンネットワーク構造学習のための情報処理装置及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161003

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161118

R151 Written notification of patent or utility model registration

Ref document number: 6047017

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151