(57)【要約】【課題】時系列データに含まれるイベントの種類数やイベント系列の長さが大きい場合でも、高速にイベントの出現パターンを抽出することを可能とする。【解決手段】イベントの時系列データから、イベントの出現するパターンを抽出するパターン抽出装置は、イベントの時系列データから隣接するイベントを取り出し、該隣接するイベントの各イベントをノードで表し、該隣接するイベント間の遷移方向と重みを有する有向リンクで前記ノードを接続し、同一のイベントを一つのノードで表し、同一の隣接するイベント間に複数の有向リンクがある場合にはそれらの重みを累積して一つの有向リンクとすることにより隣接イベントグラフを生成する。パターン抽出装置は、生成された隣接イベントグラフにおいて、有向リンクの重みに基づいて得られる評価値が所定値以下の有向リンクを切断する。【選択図】  図５
2014134991.tif 000002
【特許請求の範囲】
【請求項１】
イベントの時系列データから、イベントの出現するパターンを抽出するパターン抽出装置であって、
イベントの時系列データから隣接するイベントを取り出し、該隣接するイベントの各イベントをノードで表し、該隣接するイベント間の遷移方向と重みを有する有向リンクで前記ノードを接続し、同一のイベントを一つのノードで表し、同一の隣接するイベント間に複数の有向リンクがある場合にはそれらの重みを累積して一つの有向リンクとすることにより隣接イベントグラフを生成する生成手段と、
前記隣接イベントグラフにおいて、有向リンクの重みに基づいて得られる評価値が所定値以下の有向リンクを切断する切断手段と、を備えることを特徴とするパターン抽出装置。
【請求項２】
前記隣接イベントグラフにおいて、複数のパターンに含まれているノードを特定する特定手段と、
前記特定手段により特定されたノードを前記複数のパターンに応じた複数のノードに分離して前記隣接イベントグラフの有向リンクを更新する分離手段と、を更に備えることを特徴とする請求項１に記載のパターン抽出装置。
【請求項３】
前記隣接イベントグラフの各ノードについて、接続されている有向リンクの重みに基づいてノイズスコアを計算する計算手段と、
前記計算手段により計算されたノイズスコアに従ってノイズと判断したノードを除去し、前記隣接イベントグラフを再構築する除去手段をさらに有する請求項１または２に記載のパターン抽出装置。
【請求項４】
前記隣接イベントグラフの双方向に有向リンクを有する２つのノードを結合するか否かを、該双方向の有向リンクの重みに基づいて判定する判定手段と、
前記判定手段により結合すると判定された２つのノードを１つのノードに結合し、それぞれのノードが有していた隣接するノードへの有向リンクの重みを用いて該結合されたノードの有向リンクを設定することにより前記隣接イベントグラフを更新する結合手段をさらに有する請求項１乃至３のいずれか１項に記載のパターン抽出装置。
【請求項５】
前記特定手段は、前記隣接イベントグラフのノードについて、そのノードと隣接するノードを含む隣接ノード集合を共起性による類似度によりグルーピングすることにより前記複数のパターンとそれらに含まれるノードを特定することを特徴とする請求項２に記載のパターン抽出装置。
【請求項６】
前記切断手段で用いる前記評価値は、前記隣接イベントグラフにおける有向リンクの重み、または、有向リンクに接続するノードの出現回数に対する有向リンクの重みの割合、または、それらの両方を組み合わせて求めるスコアであることを特徴とする請求項１乃至５のいずれか１項に記載のパターン抽出装置。
【請求項７】
前記生成手段は、イベント間の発生時刻の差分に基づいて該イベント間の有向リンクの重みを設定することを特徴とする請求項１乃至６のいずれか１項に記載のパターン抽出装置。
【請求項８】
前記生成手段は、イベント間の有向リンクに固定値を設定することを特徴とする請求項１乃至６のいずれか１項に記載のパターン抽出装置。
【請求項９】
イベントの時系列データから、イベントの出現するパターンを抽出するパターン抽出装置の制御方法であって、
生成手段が、イベントの時系列データから隣接するイベントを取り出し、該隣接するイベントの各イベントをノードで表し、該隣接するイベント間の遷移方向と重みを有する有向リンクで前記ノードを接続し、同一のイベントを一つのノードで表し、同一の隣接するイベント間に複数の有向リンクがある場合にはそれらの重みを累積して一つの有向リンクとすることにより隣接イベントグラフを生成する生成工程と、
切断手段が、前記隣接イベントグラフにおいて、有向リンクの重みに基づいて得られる評価値が所定値以下の有向リンクを切断する切断工程と、を有することを特徴とするパターン抽出装置の制御方法。
【請求項１０】
コンピュータを、請求項１乃至８のいずれか１項に記載のパターン抽出装置の各手段として機能させるためのプログラム
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、時系列データから頻出するパターンを抽出するのに好適な、パターン抽出装置およびその制御方法に関する。
【背景技術】
【０００２】
時系列に並んだ膨大なデータを解析することによって、その中の埋もれた有用なパターンを抽出する方法が求められている。例えば、バスケット分析ではＰＯＳデータと顧客情報から、「商品Ａを購入し、次に商品Ｂを購入した顧客は、次に商品Ｃを購入する」のような顧客購買パターンを知ることが可能であり、商品の販売戦略に活用できる。また、オフィスでのファイル操作ログからユーザの典型的なファイル操作パターンを知ることが可能であり、ファイル操作のレコメンドなどにも活用出来る。
【０００３】
時系列データのマイニング技術としてシーケンシャルパターンマイニングが知られている。例えば、特許文献１、非特許文献１，２に記載の方法がある。これら従来手法では、アイテムとタイムスタンプ（時刻）又は出現順序を示す識別子からなるデータベースから、ユーザによって予め設定された支持度（出現頻度の全データに対する割合）の最小値（最小支持度）以上となる時系列パターンを抽出する。ある時系列パターンの支持度は、全データベース中でその時系列パターンを含むデータの割合である。最小支持度以上となる時系列パターンは頻出時系列パターンと呼ばれる。頻出時系列パターン抽出は、候補となる時系列パターン（候補時系列パターン）の作成とデータベーススキャンによるデータベース中に現れる該候補時系列パターンの頻度の数え上げを繰り返す方法が多く提案されている。このような方法はaprioriベースと呼ばれる。これら従来技術は、データベース中のデータの出現順序をそのまま捕らえた時系列パターンを抽出する。
【０００４】
しかし、実際のデータに含まれる時系列パターンとしては、出現順序をそのまま捉えた全順序な時系列パターンだけではなく、順序がない半順序な関係を含んだ時系列パターンが多く存在する。また、シーケンシャルパターンマイニングでは、解析の対象となるデータは、複数の時系列データに限られる。つまり、先のバスケット分析の例では、複数人の購買データから、何人かに見られる特徴的なパターンの抽出が可能であるが、一人の購買データから何回か現れる特徴的なパターンの抽出は出来ない。その場合、何らかの方法で、一人の購買データを複数に分割して解析を行う必要がある。
【０００５】
このようなシーケンシャルパターンマイニングの問題に鑑みて、エピソードマイニングという手法が提案されている。エピソードマイニングでは、データの種別をイベントと呼び、イベントをその発生時刻の順に並べたイベント系列が入力となる。エピソードマイニングの目的はこのイベント系列からエピソードと呼ばれる頻出する部分イベント系列を抽出することである。エピソードは、イベント間の順序が全て決まっているシリアルエピソード、イベント間に順序がないパラレルエピソード、そして、それらの複合であるジェネラルエピソードに大別される。イベントＡ、Ｂ、Ｃを含むエピソードの場合、例えば、パラレルエピソードは（Ａ、Ｂ、Ｃ）のように表し、シリアルエピソードはＡ→Ｂ→Ｃのように表し、ジェネラルエピソードは（Ａ、Ｂ）→Ｃのように表される。このようなエピソードマイニングの手法は、非特許文献３により提案され、その後、数多くの手法が提案されてきている。しかし、その提案された手法の多くは、シリアルエピソード、または、パラレルエピソードに限ってしか抽出することが出来ない。ジェネラルエピソードは、シリアルエピソードやパラレルエピソードを含む上位の汎用的なエピソードであり、実用的には有用なパターンとして、このジェネラルエピソードを抽出する方法が望まれている。
【０００６】
このようなジェネラルエピソードを抽出する方法として非特許文献４がある。非特許文献４では、先のシーケンシャルパターンマイニングの手法と同様に、aprioriベースの方法が提案されている。この方法のポイントは候補となるジェネラルエピソードの作成であり、非特許文献４ではサイズｎの頻出したジェネラルエピソード集合から、条件を満たすペアを全て取り出し、それらペアをマージすることでジェネラルエピソードの作成を行う。ペア１つにつきサイズｎ＋１のジェネラルエピソードの候補が３つ生成され、そこから制約を満たすものだけを最終的に、ｎ＋１の候補ジェネラルエピソード集合として生成する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第３３７３７１６号公報
【非特許文献】
【０００８】
【非特許文献１】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
【発明の概要】
【発明が解決しようとする課題】
【０００９】
非特許文献４記載の方法による大きな課題は、イベントの種類数、入力のイベント系列の長さ、最小支持度によって、候補となるジェネラルエピソードが組合せ爆発により膨大な数になり、データベーススキャンによる頻度計算に莫大な時間が掛かることである。例えば、１０種類のイベントがあるとき長さ３のエピソードは、パラレルエピソードで１２０、シリアルエピソードは７２０、そして、ジェネラルエピソードにおいては２２８０となる。実際のデータでは、イベントの種類数が１０ということは少なく、１００以上あることの方が普通である。その場合、組合せ爆発により現実的な時間でのパターン抽出が困難になる。
【００１０】
本発明は上記の課題に鑑みてなされたものであり、その目的は、時系列データに含まれるイベントの種類数やイベント系列の長さが大きい場合でも、高速にイベントの出現パターンを抽出することを可能とすることにある。
【課題を解決するための手段】
【００１１】
上記の目的を達成するための本発明の一態様によるパターン抽出装置は以下の構成を備える。すなわち、
イベントの時系列データから、イベントの出現するパターンを抽出するパターン抽出装置であって、
イベントの時系列データから隣接するイベントを取り出し、該隣接するイベントの各イベントをノードで表し、該隣接するイベント間の遷移方向と重みを有する有向リンクで前記ノードを接続し、同一のイベントを一つのノードで表し、同一の隣接するイベント間に複数の有向リンクがある場合にはそれらの重みを累積して一つの有向リンクとすることにより隣接イベントグラフを生成する生成手段と、
前記隣接イベントグラフにおいて、有向リンクの重みに基づいて得られる評価値が所定値以下の有向リンクを切断する切断手段と、を備える。
【発明の効果】
【００１２】
本発明によれば、時系列データに含まれるイベントの種類数やイベント系列の長さが大きい場合でも、高速にイベントの出現パターンを抽出することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】実施形態のシステムの構成例を示す図。
【図２】実施形態による装置の構成例を示す図。
【図３】実施形態の機能構成を示すブロック図。
【図４】実施形態におけるファイル操作履歴の例を示す図。
【図５】実施形態における頻出パターン抽出のフローチャート。
【図６】（ａ）実施形態におけるファイル操作履歴の例を示す図、（ｂ）実施形態におけるファイル操作履歴の例を示す図、（ｃ）実施形態におけるリンク強度関数の例を示す図。
【図７】実施形態における隣接イベントグラフ作成の例を示す図。
【図８】実施形態におけるノイズイベントの例を示す図。
【図９】実施形態におけるノイズリンクの例を示す図。
【図１０】（ａ）実施形態におけるパターン結合の例を示す図、（ｂ）実施形態におけるイベント分離の例を示す図。
【図１１】実施形態におけるイベント分離の例を示す図。
【図１２】実施形態におけるリンク強度の期待値の例を示す図。
【図１３】実施形態におけるパターン抽出の課題を説明する図。
【図１４】実施形態におけるイベント結合の例を示す図。
【発明を実施するための形態】
【００１４】
以下、添付の図面を参照して、本発明の好適な実施形態について説明する。
【００１５】
［第一実施形態］
第一実施形態による頻出パターン抽出方法の例を図面に基づいて説明する。本実施形態では、イベントをファイル操作とし、ファイル管理システムの一機能として頻出パターン抽出機能を設ける。抽出した頻出パターンは、ユーザのファイル操作のレコメンドや、パターンの可視化による業務改善や、異常行動の検知などに利用することが可能である。なお、本実施形態では、イベントとして、ファイル操作を対象としているがそれに限定されない。系列データであれば、離散データでも、連続データでも、すべてイベントに見なすことにより本発明を適用することが可能である。例えば、連続データの場合は、連続値を適当な範囲で区切り、範囲毎に適当な識別子を振ることで離散データに変換することができる。他の頻出パターン抽出の利用例としては、工場の障害ログからの原因検知や、Ｗｅｂ操作履歴からのユーザの振る舞い予測や、地震データの分析、侵入検知、撮像装置・印刷装置の操作履歴からの操作支援など多岐に渡る。
【００１６】
本実施形態によるシステム構成例でありファイル管理システムについて図１を用いて説明する。ファイル管理システムは、クライアントサーバモデルとして実現される。端末Ａ１０２、端末Ｂ１０３、端末Ｃ１０４、ファイル管理サーバ１０５はネットワーク１０１を介して接続されており、それぞれ相互間で各種情報の授受を実行する。ユーザはそれぞれ端末Ａ１０２、端末Ｂ１０３、端末Ｃ１０４上の専用のクライアントツールを用いて、ファイルの登録、閲覧、削除などのファイル操作を行うことができる。
【００１７】
図２は、図１に示したファイル管理システムを構成する各装置（端末Ａ１０２、端末Ｂ１０３、端末Ｃ１０４、ファイル管理サーバ１０５）の構成例を示すブロック図である。図２において、制御部２０１はＣＰＵ等で構成され、バス２０２を介してメモリ部２０３、大規模記憶部２０４、表示部２０５、入力部２０６、出力部２０７、ネットワーク接続部２０８に接続されている。メモリ部２０３はＲＡＭ等で構成される電子的な記憶装置である。制御部２０１はメモリ部２０３に配置されたプログラムおよびデータに従って動作するとともに、バス２０２を介して接続された各部を制御し、データの入出力をおこなう。大規模記憶部２０４は、ハードディスク、光学ディスク等のデータ蓄積装置である。
【００１８】
表示部２０５は、本システムを使用するユーザに対し、文書等を表示するディスプレイ装置を有する。入力部２０６は、表示部２０５の表示内容に連動した指示を入力するためのマウス、スティック、パッド等のポインティングデバイスを含む。タッチパネル機能付きディスプレイ等、表示部２０５と入力部２０６を兼ねる装置を用いてもよい。出力部２０７は、制御部２０１の制御下でデータを出力する。出力部２０７は、例えばデータを外部装置へ出力するためのインタフェースであり、データを紙に可視出力するプリンタデバイス等を接続することが可能である。ネットワーク接続部２０８は、ネットワーク１０１を介してデータを装置外から取り込んだり装置外に送信したりする為のネットワークインターフェースである。
【００１９】
なお、図２に示される各部はＰＣ等の汎用コンピュータ単体として構成しても良いし、あるいはＭＦＰ等の電子機器内に構築してもよい。また、互いに接続された複数のコンピュータやサーバ、およびディスプレイやＰＤＡ等の周辺機器の集合によって構築されてもよい。
【００２０】
図３は、ファイル管理サーバ１０５で実行される処理を実現するための機能構成を示すブロック図の例である。３０３〜３０９のそれぞれは、図２の制御部２０１が２０２〜２０８の各部と連携して所定の機能を実行するためのプログラムである。本実施形態では、ファイル管理サーバ１０５にファイル管理システム３０２を設け、ユーザ端末３０１に不図示のクライアントツールを設ける。ファイル管理システム３０２は、操作取得部３０３、ファイル管理部３０４、データベース３０５、操作履歴管理部３０６、操作履歴データベース３０７、情報送信部３０８、ワークフロー抽出部としての頻出パターン抽出部３０９を有する。なお、本実施形態ではファイル管理システム３０２の中にワークフロー抽出機能を組み込む形態を採用しているがこれに限定されるわけではない。それぞれの機能が単体で実施されてもよいし、他のシステムに組み込む形態形で実施されてもよい。
【００２１】
次に、図３の各部の処理について説明する。操作取得部３０３はユーザ端末３０１上のクライアントツールから入力されたファイル操作情報を受け取り、ファイル管理部３０４、操作履歴管理部３０６へファイル操作情報を伝達する。
【００２２】
ファイル管理部３０４は操作取得部３０３からファイル操作情報を受け取り、ファイル操作情報に基づきデータベース３０５と連携して所定のファイル操作処理を行う。ここで言うファイル操作とは、例えば、ファイルの新規登録や、オープン、コピー、削除、また、フォルダに対する操作などを指し、その処理内容は一般的なファイル管理システムと同様である。処理結果の情報は、情報送信部３０８を通じて、ユーザ端末３０１に送られ、ユーザ端末３０１上のクライアントツールに提供される。データベース３０５はファイル管理システム３０２で管理するファイルやフォルダの情報や、ファイル管理システム３０２を利用するユーザの情報などを格納したり、取得したりする。
【００２３】
操作履歴管理部３０６は操作取得部３０３からファイル操作情報を受け取り、操作履歴データベース３０７にファイル操作履歴としてファイル操作情報を格納する。ファイル操作履歴として操作履歴データベース３０７に登録されるファイル操作情報の例を図４に示す。ログＩＤ４０１は、ファイル操作情報を一意に識別するための記号である。時間４０２はファイル操作が行われた時間情報を表す。ユーザＩＤ４０３は、ファイル操作を行ったユーザを識別するための情報である。ファイルＩＤ４０４は、操作対象のファイルを識別するための情報である。操作イベント４０５は実行されたファイル操作イベントの種類を表す。なお、ここで挙げたファイル操作情報は一例であり、これに限定されるわけではない。以降、説明を簡単にするためにファイルに対する操作の記載を省略することがあるが、実際にはファイルとその操作はセットとして扱われ、ファイル操作が一致するとは、ファイルとその操作の両方が一致することを指している。
【００２４】
頻出パターン抽出部３０９は、操作履歴データベース３０７から操作履歴を取得し、解析を行うことで頻出するファイル操作パターンの抽出を行う。ここで抽出されたファイル操作パターンは、ワークフローとして可視化することで業務改善に役立てたり、ワークフローに沿ってユーザにファイル操作をレコメンドするなどに役立てたりすることが出来る。
【００２５】
続いて、頻出パターン抽出部３０９による頻出パターン抽出の処理について図５のフローチャートを用いて説明する。このフローチャートは、制御部２０１のＣＰＵがメモリ部２０３に格納されている制御プログラムを実行することにより実現される。
【００２６】
ステップＳ５０１では、制御部２０１は、操作履歴データベース３０７からファイル操作履歴を読み込み、隣接イベントグラフを作成する。隣接イベントグラフの作成方法について、図６（ａ）〜図７を用いて説明する。図６（ａ）はあるユーザのファイル操作履歴の一部を示している。イベントＩＤは図６（ｂ）に示すイベントテーブルにより管理されており、ファイルＩＤと操作をセットにして一意に識別出来るものである。
【００２７】
まず、制御部２０１は、ファイル操作履歴の先頭から、前後に並んだ２レコードを読み出す。図６（ａ）の例では、ログＩＤが１０００と１００１のレコード（イベント）がまず読み出される。次に、制御部２０１は、これら隣接するイベントの各々のをノードとして表し、それらノード間を、イベントの遷移方向と重みを有する有向リンクで接続する。まず、制御部２０１は、これらの２つのレコード間の発生時間の差分（ギャップ時間）からイベント間のリンク強度（重み）を計算する。リンク強度は、ギャップ時間の長さが短いほど高くなり、長いほど低くなるものがよく、例えば、図６（ｃ）に示すようなギャップ時間によって非線形に変化するようなシグモイド関数を用いても良いし、ギャップ時間の逆数を用いてもよい。また、ギャップ時間によらず定数（固定値）とすることも可能である。
【００２８】
次に、制御部２０１は、図７（ａ）のようにイベントをノードとし、発生順序に従って有向リンクを張り、ギャップ時間から求めたリンク強度を各リンクに付与して隣接イベントグラフを作成する。以降、レコードを１つずつずらして、同様の処理を繰り返していく。その際に、制御部２０１は、同一のイベントを一つのノードで表わし、同一の隣接するイベント間に複数の有向リンクがある場合にはそれらの強度（重み）を累積して一つの有向リンクで表すようにする。このような処理により、次に読み込んだレコードから図７（ｂ）、その次に読み込んだレコードから図７（ｃ）の隣接イベントグラフが作成され、最終的にログＩＤ１５０１まで読み込むことで、図７（ｄ）のような隣接イベントグラフが作成される。
【００２９】
ステップＳ５０２では、制御部２０１は、ステップＳ５０１で作成した隣接イベントグラフからノイズイベントを除去する。本実施形態では、イベント間の結びつきは前後関係しか見ないため、たまたま発生するノイズイベントが操作履歴の中に多く含まれる場合に本来のイベント間の結びつきを発見出来なくなる可能性が高まる。そこで、以下に説明するようにノイズイベントの除去を行う。
【００３０】
まず、ノイズイベントの定義について図８を用いて説明する。図８はある操作履歴を読み込んだときの隣接イベントグラフの一部である。図８（ａ）のイベントＸは操作履歴の中に３回出現し、イベントＸの前に発生したイベントは３種類あり、イベントＸの後に発生したイベントも３種類あることがわかる。また、リンク強度は接続されているイベントによらず同等となっている。このように、特定のイベントとの結びつきが弱いイベントＸは、頻出パターンと言えないためノイズイベントとする。逆に、図８（ｂ）のイベントＹのように、イベントＹの後には必ず特定のイベントが発生するイベントは、頻出パターンに含まれるイベントと言える。上述したノイズイベントの定義から、例えばイベントeiのノイズスコアを以下のような式で求める。
【００３１】
【数１】
2014134991.tif 000003
【００３２】
ここで、Niはイベントeiの出現回数を表し、Inlinki、Outlinkiはそれぞれ、イベントeiに接続するInlinkの集合、Outlinkの集合を表す。また、pjはlinkjのリンク強度をInlinkiに含まれる全linkのリンク強度の和で割ったものであり、qjはlinkjのリンク強度をOutlinkiに含まれる全linkのリンク強度の和で割ったものである。このノイズスコアは、Inlink、Outlinkごとに計算し小さい方をそのイベントのノイズスコアとしている。これは、パターンの始まりにあたるイベント、終わりにあたるイベントのノイズスコアが高くなるのを防ぐためである。このノイズスコアは、図８（ａ）のようなイベントの場合は１．０となり、図８（ｂ）のようなイベントの場合は０．０となる。すなわち、ノイズスコアが大きいほど、ノイズである可能性が大きいことを表す。
【００３３】
次に、このノイズスコアを用いたノイズイベントの除去について説明する。まず、隣接イベントグラフの全イベントについて、ノイズスコアを計算し、あらかじめ設定した閾値を超えたイベントをノイズイベントとして記録しておく。ノイズイベントが１つ以上発見された場合には、再度ステップＳ５０１と同様の手順で隣接イベントグラフを再構築する。ただし、その際には、ノイズイベントとして記録されているイベントについては、読み込みをスキップする。この処理により、ノイズイベント（ノイズスコアがあらかじめ設定した閾値を超えたイベント）が除去されることになる。以上を、ノイズイベントが新しく発見されなくなるまで繰り返し、ノイズイベントの除去を終了する。ほとんどの場合において、この繰り返し処理は数回のうちに収束するため、計算時間に大きな影響は与えない。
【００３４】
ステップＳ５０３では、制御部２０１は、隣接イベントグラフにおいて、有向リンクの重みに基づいて得られる評価値が所定値以下の有向リンクをノイズリンクとして切断する。抽出する頻出パターンはある程度イベント間の結びつきが強いものである必要がある。そこで、制御部２０１は、たとえば次の２つの指標を用いて結びつきが弱いリンク、すなわちノイズリンクを判定し、除去する。第１の指標はリンク強度の絶対値であり、第２の指標は、イベントの出現回数に対するリンク強度の割合である。ここで、イベントの出現回数とは、リンクに接続する２つのイベントの出現回数の小さい方とする。第１、第２の指標のそれぞれについて、図９を用いて説明する。例えば第１の指標であるリンク強度の絶対値が４未満のリンクをノイズリンクとすると、図９（ｂ）がノイズリンクとなる。また、第２の指標であるイベントの出現回数におけるリンク強度の割合が０．５未満のリンクをノイズリンクとすると、図９（ａ）と図９（ｃ）がノイズリンクとなる。実際にはこれらを組み合わせて用いるのが良い。例えば、リンク強度の絶対値が２未満、または、イベントの出現回数におけるリンク強度の割合が０．２未満のリンクをノイズリンクとすると、図９（ｃ）がノイズリンクとして除去される。
【００３５】
ステップＳ５０４では、制御部２０１は、隣接イベントグラフにおいて、複数のパターンに含まれているイベントを推定し、そのようなイベントを分離して隣接イベントグラフを更新する。操作履歴から前後関係だけを使って隣接イベントグラフを作成すると、複数のパターンに含まれるイベントを介して、それらのパターンが１つのグラフとしてまとまってしまう問題がある。例えば、操作履歴の中に、図１０（ｂ）に示すような３つのパターン、イベントＪ→イベントＫ→イベントＺ、イベントＯ→イベントＺ→イベントＰ、イベントＺ→イベントＳ→イベントＴが多く含まれていたとする。すると、前ステップまでの方法で隣接イベントグラフを作成すると図１０（ａ）のようなグラフが現れ、本来３つの別々のパターンであったものが１つのパターンとして抽出されてしまう。そこで、本ステップでは、複数のパターンに含まれているイベントを推定して、イベントの分離を行う。その方法について図１１を用いて説明する。
【００３６】
隣接イベントグラフの全イベントに対して以下の処理を行う。ここでは、図１０（ａ）のイベントＺを例に説明する。まず、イベントＺに接続するイベントを抽出し、これを隣接イベント集合（隣接ノード集合）とする。イベントＺの隣接イベント集合は図１１（ａ）に示すように、イベントＫ、Ｏ、Ｐ、Ｓである。この隣接イベント集合を、共起性を類似度としてクラスタリングする。ここでいう共起性とは、近い時間に一緒に出現しやすいかどうかを表したものである。図１１（ｂ）はイベントＺに関連付けられた隣接イベントペアの共起頻度情報である。例えば、一行目はイベントペア「Ｏ、Ｐ」の共起頻度が９であることを示し、これは、イベントＯ→イベントＺ→イベントＰ、または、イベントＰ→イベントＺ→イベントＯが９回観測されたことを表している。このようなイベントに関連付けられた隣接イベントペアの共起頻度情報は、ステップＳ５０１の隣接イベントグラフを作成する際に容易に作ることができる。
【００３７】
このイベントＺに関連付けられた隣接イベントペアの共起頻度情報から次のように隣接イベントペアの類似度を計算する。すなわち、隣接イベントペアに含まれる各イベントとイベントＺの間のリンク強度のうち小さい方で、隣接イベントペアの共起頻度を割ったものを隣接イベントペアの類似度とする。例えば、隣接イベントペアＯ、Ｐの類似度は、９／Ｍｉｎ（１０．０，９．０）＝１．０となる。
【００３８】
このような隣接イベントペアの類似度を用いて、隣接イベント集合に含まれるイベントをグルーピングする。本実施形態では、このようなグルーピングにクラスタリングの手法が用いられる。なお、クラスタリングの手法としては、階層型と非階層型の大きく２つに分かれるが、それらのいずれも本実施形態に適用可能であるが、本実施形態では、クラスタの数を予め定める必要のない階層型クラスタリングの手法を用いる。階層型クラスタリングの代表的な手法に、最短距離法、最長距離法、群平均法、ウォード法などがあるがどれを用いてもよい。なお、それぞれの手法の説明については本発明の本質ではないため省略する。例えば、図１１（ａ），（ｂ）の例では、隣接イベント集合Ｋ、Ｏ、Ｐ、Ｓは［（Ｏ、Ｐ）、（Ｋ）、（Ｓ）］の３つにクラスタリングされる。
【００３９】
最後にこのクラスタリングした隣接イベント集合を使って、イベントＺを分離する。クラスタリングされたそれぞれのイベントグループが独立したパターンと考えられるため、イベントグループの数分だけイベントＺをコピーし、各イベントグループ内に閉じてリンクを繋ぎかえることでイベントＺの分離を行う。分離を行った後の状態を図１１（ｃ）に示す。以上の処理を隣接イベントグラフの全イベントに対して行うことで、最終的に図１０（ｂ）に示すような本来の３つのパターンを得ることができる。
【００４０】
ステップＳ５０５では、隣接イベントグラフに対して、イベント間に順序関係がないものを探してそれらを結合していく。このようなことを行う理由について、図１２を用いて説明する。例えば、Ａ→（Ｂ、Ｃ、Ｄ）→（Ｅ、Ｆ）→Ｇのようなイベントの出現パターンについて考える。このパターンは、Ａの後に、Ｂ、Ｃ、Ｄが順不同で出現し、Ｂ、Ｃ、Ｄの全てが出現した後に、Ｅ、Ｆが順不同で出現し、Ｅ、Ｆの全てが出現した後にＧが出現することを表している。ここで、イベントＣについて、その前後に出現するイベントの出現確率を図１２に示す。イベントＣの前に出現しうるイベントはＡ、Ｂ、Ｄの３つであり、それらの出現確率はすべて１／３である。イベントＣの後に出現しうるイベントは、Ｂ、Ｄ、Ｅ、Ｆの４つであり、Ｂ、Ｄについてはそれぞれ出現確率１／３だが、Ｅ、Ｆについてはそれぞれ出現確率１／６になる。この出現確率は、Ａ→（Ｂ、Ｃ、Ｄ）→（Ｅ、Ｆ）→Ｇのパターンが１回観測された時の、それぞれのリンク強度の期待値にあたる。したがって、例えばＡ→（Ｂ、Ｃ、Ｄ）→（Ｅ、Ｆ）→Ｇのパターンが１２回観測されても、イベントＣからイベントＥやＦへのリンク強度は２しか期待できないということである。その結果、ステップＳ５０３で、ノイズリンクと判断されやすくなってしまう問題がある。
【００４１】
このような問題に対応するために、本ステップでは、隣接イベントグラフに対して、イベント間に順序関係がないものを探してそれらを結合していく。このような処理により、ステップＳ５０３でノイズリンクとして切断されたリンクのうち、半順序な関係にあるリンクを復活させる。まず、制御部２０１は、隣接イベントグラフの双方向に有向リンクを有する２つのノードを結合するか否かを、それら双方向の有向リンクの重みに基づいて判定する。そして、制御部２０１は、結合すると判定された２つのノードを１つのノードに結合し、それぞれのノードが有していた隣接するノードへの有向リンクの重みを用いて該結合されたノードの有向リンクを設定することにより隣接イベントグラフを更新する。この処理の具体的な実現例について、図１３、図１４を用いて説明する。
【００４２】
以下、Ａ→（Ｂ、Ｃ、Ｄ）→（Ｅ、Ｆ）→Ｇのパターンを用いて、このパターンが操作履歴にある程度の回数出現したものとして説明する。ステップＳ５０２までの処理の結果、図１３（ａ）に示す隣接イベントグラフが得られたとする。ここで実線により示されるリンク１６０１は、リンク強度の値が大きいことを表しており、破線で示されるリンク１６０２はリンク強度の値が小さいことを表している。この隣接イベントグラフからステップＳ５０３によりノイズリンクが除去されると、例えば、図１３（ｂ）のようになってしまい、これは図１２に示される元のパターンを表していない。そこで、隣接イベントグラフのすべてのイベントペアに対して、その間に順序関係があるかを調べ、順序関係がないと判断されたイベントペアに対してはイベントの結合を行う。イベント間に順序関係があるかどうかは、例えば、双方向に閾値以上のリンク強度のリンクを持つこととすればよい。または、イベントの出現回数を考慮して、双方向にリンク強度があり、かつ、その和をイベントの出現回数で割ったリンク強度の割合が閾値以上であることとしてもよい。あるいは、上述の双方向のリンク強度の和とリンク強度の割合の両方を用いて、イベント間の順序関係の有無を判断するようにしてもよい。
【００４３】
図１４（ａ）の隣接イベントグラフ（図１３（ａ）の隣接イベントグラフと同等）で、例えば、イベントＣ（１７０１）とイベントＤ（１７０２）が順序関係のないイベントペアとして見つかったとする。この場合、これらのイベントを結合することにより図１４（ｂ）のイベントＣ、Ｄ（１７０３）が得られる。その際に、隣接するイベントとのリンクを繋ぎ替えるのだが、イベントＡ（１７０７）からイベントＣ、Ｄ（１７０３）へのリンク１７０６のリンク強度には、結合前のそれぞれぞれのリンク１７０４、１７０５のリンク強度の和が付与される。
【００４４】
上記処理を、隣接イベントグラフから新たにイベント間に順序関係がないイベントペアが見つからなくなるまで繰り返して、本ステップの処理を終了する。この繰り返し処理の回数は、パターンに含まれるパラレルなサブパターンのサイズに比例し、ほとんどの場合、数回で収束する。最終的に図１４（ａ）から本ステップを行うことで、図１４（ｃ）の隣接イベントグラフが得られる。これは、元のＡ→（Ｂ、Ｃ、Ｄ）→（Ｅ、Ｆ）→Ｇのパターンを表したものとなる。
【００４５】
上述したステップＳ５０１〜Ｓ５０５の処理を行うことで得られた隣接イベントグラフが、最終的に頻出パターン抽出部３０９により抽出される頻出パターンである。
【００４６】
以上、第一実施形態における頻出パターン抽出方法を、ファイル管理システムにおけるファイル操作履歴からの頻出パターンの抽出という例で説明した。このように、本実施形態では、従来手法の様に、パターンの候補を生成し、データをスキャンして頻度を数え上げることを繰り返すという方法とは異なり、直接、データからパターンを構成する。そのため、イベントの種類数や、入力イベント系列の長さが大きい場合でも、高速にジェネラルエピソードの抽出が可能となる。実験では、従来手法に比べて本実施形態によるパターン抽出は、１０００倍以上高速に動作した。ただし、従来手法はユーザにより決められた最小頻度以上のパターンを漏れなく抽出するのに比べて、本実施形態では、ノイズなどの影響により漏れがないことを保証することは出来ない。しかし、従来手法は漏れがない代わりに、出力するパターンの数が膨大になりやすい問題がある。これは、最小頻度を低く設定することにより顕著に表れる。本実施形態は、ある程度の漏れを妥協し、確度の高いパターン適当数、高速に抽出することに特徴がある。
【００４７】
以上の処理によって抽出された頻出パターンは仕事の効率を向上させることに利用可能である。例えば、頻出パターンを可視化して業務の見直しに役立てたり、ワークフローシステム構築の参考にしたり、ユーザのファイル操作をナビゲートするファイル推薦を行ったりするなど幅広く利用可能である。また、本例に限らず、他の頻出パターン抽出の利用例としては、工場の障害ログからの原因検知や、Ｗｅｂ操作履歴からのユーザの振る舞い予測や、地震データの分析、侵入検知、撮像装置・印刷装置の操作履歴からの操作支援など、時系列データを扱う処理などに広く応用可能である。
【００４８】
［第二実施形態］
第一実施形態では、イベントをファイル操作とし、解析する時系列データとしてはイベントのタイプと発生時刻を含んでいたが、第二実施形態では、発生時刻を含んでいない場合への利用を説明する。この場合、ステップＳ５０１の隣接イベントグラフの生成の中で、イベント間のリンク強度を固定値（例えば、１．０）とすれば良い。つまり、イベント発生時刻のギャップ時間によらず、隣接したイベントは一律の相関があると見なせばよい。入力データが増えていくことで、何度も隣接したイベントはリンク強度が強まり、高い相関があると見なせるようになる。ギャップ時間によりリンク強度を変化させることは、データが少ないうちに有効であると考えられる。したがって、例えば、隣接イベントグラフの作成において、蓄積されているデータの数が所定の閾値より小さい場合には時間に依存したリンク強度を設定し、蓄積されているデータの数が所定の閾値以上の場合にはリンク強度に固定値を用いるようにしてもよい。
【００４９】
また、ギャップ時間以外にリンク強度を決める方法として、イベントの属性情報を使うことなども考えられる。例えば、イベントをファイル操作とした場合は、属性情報として、ファイル名や、作成者、作成日時などが使え、これら属性情報から相関を求め、相関が強い場合に高いリンク強度となるようにしてもよい。このように、リンク強度を決める際には、イベントの発生時刻や、属性情報など使える情報に応じてイベント間の相関を求め、その相関を反映するとよい。
【００５０】
［第三実施形態］
実施形態１では、ステップＳ５０１〜ステップＳ５０５までの処理をすべて実施したが、必ずしもすべての全ての処理を行わなければならないわけではない。たとえば、ステップＳ５０２、Ｓ５０４、Ｓ５０５を省略して、ステップＳ５０１（隣接イベントグラフの作成）とステップＳ５０３（ノイズリンクの切断）を実行することにより頻出パターンの抽出を行なってもよい。また、この場合、他のステップ（ステップＳ５０２、Ｓ５０４、Ｓ５０５）については、解析するデータと、そこに含まれていると予測されるパターンの特徴を踏まえることで選択するようにしてもよい。その場合、ユーザがステップＳ５０２、Ｓ５０４、Ｓ５０５のそれぞれの処理について実行するか否かを指定できるようにしてもよいし、時系列データの解析に基づいて制御部２０１が自動的に実行するか否かを設定できるようにしてもよい。
【００５１】
たとえば、解析するデータにノイズが多く含まれている場合には、ステップＳ５０２のノイズイベントの除去を行うことが望ましい。また、予測されるパターンとして、１つのイベントが複数のパターンに含まれる場合には、ステップＳ５０４のイベントの分離を行うことが望ましい。また、予測されるパターンとして、パターンの中のイベントが半順序な関係が多い場合には、ステップＳ５０５のイベントの結合を行うことが望ましい。なお、各ステップＳ５０２、Ｓ５０４、Ｓ５０５は、それを実施することによる精度の低下や、計算時間の増加は比較的小さい。そのため、解析するデータやそこに含まれていると予測されるパターンの特徴が不明な場合には、第一実施形態のようにすべてのステップＳ５０１〜Ｓ５０５までを行うのが良い。
【００５２】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウエア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2014134991.tif 000004
【図２】
2014134991.tif 000005
【図３】
2014134991.tif 000006
【図４】
2014134991.tif 000007
【図５】
2014134991.tif 000008
【図６】
2014134991.tif 000009
【図７】
2014134991.tif 000010
【図８】
2014134991.tif 000011
【図９】
2014134991.tif 000012
【図１０】
2014134991.tif 000013
【図１１】
2014134991.tif 000014
【図１２】
2014134991.tif 000015
【図１３】
2014134991.tif 000016
【図１４】
2014134991.tif 000017