JP6263487B2 - プロセス抽出装置、プロセス抽出方法、及びプログラム - Google Patents
プロセス抽出装置、プロセス抽出方法、及びプログラム Download PDFInfo
- Publication number
- JP6263487B2 JP6263487B2 JP2015041452A JP2015041452A JP6263487B2 JP 6263487 B2 JP6263487 B2 JP 6263487B2 JP 2015041452 A JP2015041452 A JP 2015041452A JP 2015041452 A JP2015041452 A JP 2015041452A JP 6263487 B2 JP6263487 B2 JP 6263487B2
- Authority
- JP
- Japan
- Prior art keywords
- branch point
- event log
- branch
- subprocess
- sub
- 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
Links
Images
Description
本発明は、プロセス抽出装置、プロセス抽出方法、及びプログラムに関する。
大規模化・構成機器の多様化が進むITネットワークシステムにおいて、システム上で発生する故障事例が多様化しており、発生した異常の原因究明と対処判断とが従来よりも困難になっている。一方で、あらゆる故障事例を解決可能なエキスパートと呼ばれるオペレータは、運用管理すべきシステムの数と比較して圧倒的に少ない。また、近年では特に運用管理の対象となるシステムの大規模化と運用期間の長期化が進んだため、特定の個人のエキスパートのみの活動に依存したシステム運用は困難である。そのため、高いスキルを持つエキスパートによる故障回復手順を、オペレーションチーム全体へ共有する手段が求められている。ここでは、エキスパートを含むオペレータらによる、問題の見極めから対処完了までの一連の故障回復手順を、プロセスと定義する。
一般に、プロセスは、問題が複雑であるほど暗黙知であることが多い。そのため、プロセスの獲得には、オペレータ自身も把握していない情報を得る手段が必要となる。これに対し、オペレータの行動をイベントログと呼ばれるデータとして蓄積し、複数のイベントログの集合からオペレータ自身も把握していない定型的な一連の手順を特定のモデル形式で抽出する、プロセスマイニングと呼ばれる手法があり(例えば、非特許文献1参照)、マイニング用のアプリケーションが存在する(例えば、非特許文献2参照)。
非特許文献2に示されているプロセスマイニング手法は、イベントログから単一のプロセスのみを抽出することを前提としており、複数の異なる事象に対する問題解決の記録が含まれる、故障対応時の操作履歴のようなイベントログへの適用は困難である。例えば、あるWebサーバが接続不可となった場合の対処を考える。Webサーバに接続不可の場合、オペレータは、まず、pingコマンド等で外部端末からWebサーバに疎通可能かどうかを確認する。疎通不可能であれば、オペレータは、Webサーバの配置場所に赴き原因確認を行う。疎通可能ならば、オペレータは、原因となるアプリケーションをログ確認等によって特定する。アプリケーションが原因であれば、オペレータは、当該アプリケーションに応じた負荷を下げる対処を行う。
上記の例の場合、Webサーバ接続不可という同一の異常発生であっても、複数の原因が存在し、また原因ごとに取るべき対処が異なる。これらの複数の原因と各原因に対する対処との違いを考慮して予めイベントログを原因別に分類することは、原因を特定する手段が無いために困難である。そのため、イベントログを蓄積するデータベースには、複数の原因事例と対処事例とが混在している。
一方で、異なるアプリケーションの故障回復手順であっても、同一の作業が含まれる場合がある。例えば、Webサーバ接続不可の原因が、暴走したアプリケーションである場合、再発防止の対処はアプリケーションごとに異なるが、いずれの場合でも「システムの再起動」という作業が含まれ得る。また、実際のシステム運用では、「装置起動ランプ点灯状態の確認」のような、故障原因に依らず実施が必要な作業も多く存在する。
更に、実際のイベントログにおいては、イベントログの欠損及びノイズとなる作業が含まれる。例えば、故障原因の特定時における、原因ではないアプリケーションのステータス確認等は、作業を実施するオペレータによって実施の有無が異なる。
上記のような事情を考慮せずに、図1に例示されるイベントログの集合を用いて非特許文献3に記載された手法でプロセスを構成した結果が、図2である。図2では、異常要因に対する異なる2つの対処が絡み合ったプロセスが生成されており、プロセスの途中で実施すべき対処について、2度の判断がオペレータに求められる。
図1のような、異なる対処が混在したイベントログに対して従来手法を適用した場合、異なるサブプロセスが混ざり、直感的な原因の違いの把握が困難となる。なお、非特許文献3に記載された手法は、イベントログの集合を入力にして、与えられたイベントログを出力可能な、状態及び遷移数の最も少ない状態遷移グラフを出力する、という手法である。
W.M.P. van der Aalst, "Process Mining: Discovery, Conformance and Enhancement of Business Processes". Springer, Berlin (2011), pp.125-156
Process Mining, http://www.processmining.org/prom/start
W.M.P. van der Aalst; T. Weijters; L. Maruster, "Workflow mining: discovering process models from event logs," IEEE Transactions on Knowledge and Data Engineering, vol.16, no.9, pp.1128-1142, September 2004
A.J.M.M. Weijters; J.T.S. Ribeiro, "Flexible Heuristics Miner (FHM)," 2011 IEEE Symposium on Computational Intelligence and Data Mining (CIDM), pp.310-317, 11-15 April 2011
Ulrike Luxburg, A tutorial on spectral clustering, Statistics and Computing, vol. 17, Issue 4, pp. 395-416, December 2007
W.M.P. van der Aalst; Christian Stahl, "Modeling Business Processes: A Petri Net-Oriented Approach", MIT Press, 2011, pp.91-127
渡邉暁, 木村達明, 豊野剛, 石橋圭介, "トラブルチケットにおける作業手順の構造化手法", 電子情報通信学会ソサイエティ大会, 2014
Dan Pelleg; Andrew W. Moore, X-means: Extending K-means with Efficient Estimation of the Number of Clusters. In Proceedings of the Seventeenth International Conference on Machine Learning (ICML '00), pp. 727-734., 2000
故障対応業務のように、原因を特定し、各原因に応じた対処を行う業務の場合、サブプロセスへの分岐点は、図3に示されるような、エキスパートが原因を特定するに至った分岐点を陽に含み、原因特定後の対処に係るサブプロセスが合流しないようなプロセスが獲得されることが望ましい。しかしながら、そのようなプロセス中のサブプロセスへの分岐点を抽出するのは従来の技術では困難であった。
本発明は、上記の点に鑑みてなされたものであって、異なるサブプロセスが混在するイベントログからプロセスが変化する分岐点と分岐後のサブプロセスを獲得可能とすることを目的とする。
そこで上記課題を解決するため、イベントログ列の集合からプロセスを抽出するプロセス抽出装置は、前記イベントログ列の集合に基づいて、前記プロセスの分岐点となる可能性のある1以上の分岐点候補を獲得する獲得部と、前記分岐点候補ごとに前記各イベントログ列における分岐先の部分イベントログ列の集合を抽出し、抽出された部分イベントログ列の集合から分岐先のサブプロセスを獲得し、前記プロセスに関して要求される条件に対する最適化問題を、前記各分岐点候補と前記分岐点候補ごとに獲得されたサブプロセスとに関して解くことで、前記分岐点候補の中から前記プロセスの分岐点を選択する選択部と、を有する。
異なるサブプロセスが混在するイベントログからプロセスが変化する分岐点と分岐後のサブプロセスを獲得可能とすることができる。
以下、図面に基づいて本発明の実施の形態を説明する。本実施の形態において、プロセスとは、エキスパートを含むオペレータらによる、ネットワークシステム等のコンピュータシステムの故障派生時における、問題の見極めから対処完了までの一連の故障回復手順をいう。エキスパートとは、あらゆる故障事例を解決可能なエキスパートと呼ばれるオペレータである。
本実施の形態において、図5及び図6に示されるプロセス抽出装置10は、エキスパート等の行動が記録されたイベントログから、当該行動が変化した、プロセスの分岐点を得る問題を、最適化問題として定式化し、最適な分岐点集合及びサブプロセス集合を獲得する。サブプロセスとは、プロセスを分岐点に区切ることにより形成される、プロセスの構成要素となる部分的なプロセスをいう。
まず、本実施の形態で解くべき問題を定式化する。
プロセス抽出装置10に対する入力として、イベントログ列集合Lが与えられているとする。このとき、イベントログ列集合Lは以下に示すようなデータである。
L={Tr(1),Tr(2),...,Tr(|L|)}
但し、Tr(i)はi番目の入力イベントログ列である。また、|・|は集合・の要素数を表す。入力イベントログ列Tr(i)は、イベントログが並べられた以下のデータであり、例えば、或る一つの故障回復手順に対応する。
Tr(i)=e(i) 1e(i) 2...e(i) |Tri|
e(i) j∈Aは、i番目の入力イベントログ列のj番目のイベントログを示し、Tr(i)のイベントログ数を|Tri|とする。A={a1,...,a|A|}は、入力イベントログ列に含まれ得るイベントログの集合であり、イベントログの種類数、即ち、Aの要素数は、|A|である。
L={Tr(1),Tr(2),...,Tr(|L|)}
但し、Tr(i)はi番目の入力イベントログ列である。また、|・|は集合・の要素数を表す。入力イベントログ列Tr(i)は、イベントログが並べられた以下のデータであり、例えば、或る一つの故障回復手順に対応する。
Tr(i)=e(i) 1e(i) 2...e(i) |Tri|
e(i) j∈Aは、i番目の入力イベントログ列のj番目のイベントログを示し、Tr(i)のイベントログ数を|Tri|とする。A={a1,...,a|A|}は、入力イベントログ列に含まれ得るイベントログの集合であり、イベントログの種類数、即ち、Aの要素数は、|A|である。
次に、イベントログを並べた列である、サブプロセス集合Pを以下に定義する。
P(k)=e(k) 1e(k) 2...e(k) |Pk|
e(k) x∈Aは、k番目のサブプロセス集合P(k)におけるx番目のイベントログを示す。また、|Pk|は、P(k)のイベントログ数を示す。なお、ここでは、サブプロセスがイベントログの系列データとなっているが、実際のサブプロセス集合Pは、有限オートマトンやPetri−net等で表現される、状態遷移であることも考えられる(非特許文献1、非特許文献6参照)。
P(k)=e(k) 1e(k) 2...e(k) |Pk|
e(k) x∈Aは、k番目のサブプロセス集合P(k)におけるx番目のイベントログを示す。また、|Pk|は、P(k)のイベントログ数を示す。なお、ここでは、サブプロセスがイベントログの系列データとなっているが、実際のサブプロセス集合Pは、有限オートマトンやPetri−net等で表現される、状態遷移であることも考えられる(非特許文献1、非特許文献6参照)。
本実施の形態の目的の一つは、イベントログ列集合Lを生成し得るサブプロセス集合P={P(1),...,P(|P|)}を獲得することである。但し、|P|はサブプロセスの数を表す。
また、入力イベントログ列Tri∈Lに対し、いずれのサブプロセスの後に、いずれのサブプロセスが実行されるかを示す、i番目の入力イベントログ列に対応する分岐点集合B(i)を、次のように定義する。
B(i)={(b(i) 1,f(i) 1,t(i) 1),...,(b(i) |Bi|,f(i) |Bi|,t(i) |Bi|)}
但し、b(i) j∈{1,...,Ti}は、分岐点の直前のイベントログの番号を、f(i) j∈Pは、分岐前のサブプロセスを、t(i) j∈Pは、分岐後のサブプロセスを示す。なお、イベントログの番号とは、入力イベントログ列Triの先頭からの当該イベントログの位置(すなわち、何番目のイベントログであるのか)を示す数値である。
B(i)={(b(i) 1,f(i) 1,t(i) 1),...,(b(i) |Bi|,f(i) |Bi|,t(i) |Bi|)}
但し、b(i) j∈{1,...,Ti}は、分岐点の直前のイベントログの番号を、f(i) j∈Pは、分岐前のサブプロセスを、t(i) j∈Pは、分岐後のサブプロセスを示す。なお、イベントログの番号とは、入力イベントログ列Triの先頭からの当該イベントログの位置(すなわち、何番目のイベントログであるのか)を示す数値である。
また、|Bi|は、i番目の入力イベントログ列に対する分岐点の数である。本実施の形態は、入力されるイベントログ列集合Lから、サブプロセス集合Pを獲得するとともに、各イベントログ列に対する分岐点集合の集合B={B(1),…,B(|L|)}を獲得する。
以下に、プロセス抽出装置10への入力情報及びプロセス抽出装置10からの出力情報の一例を示す。
入力として、イベントログ列集合L={Tr(1)=uvwxy,Tr(2)=uvyz}が与えられたとする。このとき、
|L|=2,
e(1) 2=v,e(1) 3=w,e(2) 4=z,
A={u,v,w,x,y,z},|A|=6,
である。なお、ここでは符号化して表現しているが、実際には各イベントログが、u="CPU負荷状態を確認する"、v="Webサーバのログを確認する"等のように、何らかの作業やシステムログを示す。
|L|=2,
e(1) 2=v,e(1) 3=w,e(2) 4=z,
A={u,v,w,x,y,z},|A|=6,
である。なお、ここでは符号化して表現しているが、実際には各イベントログが、u="CPU負荷状態を確認する"、v="Webサーバのログを確認する"等のように、何らかの作業やシステムログを示す。
ここでは、イベントログ列集合Lからとり得るサブプロセス集合のうち、サブプロセス集合中のイベントログ数ΣK k=1wkが最も少ないサブプロセス集合を考え、サブプロセス集合P={P(1)=uv,P(2)=wxy,P(3)=yz}を得たとする。このとき、
|P|=3,
B={B(1),B(2)},
B(1)={(2,P(1),P(2))},
B(2)={(2,P(1),P(3))},
|B1|=|B2|=1,
と表記できる。
|P|=3,
B={B(1),B(2)},
B(1)={(2,P(1),P(2))},
B(2)={(2,P(1),P(3))},
|B1|=|B2|=1,
と表記できる。
上記のイベントログ列集合L、サブプロセス集合P、及び分岐点集合Bを用いると、イベントログ列を示すプロセスは、図4のように表現可能となる。イベントログ列集合Lのみを用いてα−algorithmと呼ばれる非特許文献3の手法により生成される図2のプロセス等と比較すると、図4に示されるプロセスでは、異なるサブプロセスへの遷移が明確にプロセス上に表現される。
以上より、本実施の形態のプロセス抽出装置10は、上記の例のような、入力となるイベントログ列L(i)∈Lに対して、分岐点集合B及びサブプロセス集合Pを得るコンピュータある。本問題は、最適化問題として一般化可能である。
(B,P)=argmax(B*,P*)S(L,B*,P*) ・・・(1)
なお、上記では、イベントログ数ΣK k=1|Pk|が最も少ないサブプロセス集合を得ることを条件として、サブプロセス集合P及び分岐点集合Bが獲得されたが、本実施の形態の特長は、入力されるイベントログ列集合Lにおいて、抽出されるプロセスに関して要求される条件に対する分岐点集合B及びサブプロセス集合Pを自動的に得られるという点であり、要求される条件、並びに要求される条件に合ったサブプロセス及び分岐点を得る手法は問わない。式(1)のスコア関数Sの定義によって、獲得される分岐点集合B及びサブプロセス集合Pを自由に変化させることが可能である。例えば、任意のサブプロセス中のイベントログp(k) xから全てのイベントログへの情報エントロピーを最大化する問題と定義して、スコア関数Sを次のように表せる。
S(L,B,P)=Σp(k1)x1∈PΣp(k2)x2∈PE(p(k1) x1,p(k2) x2)
E(p(k1) x1,p(k1) x1)=−Pr(p(k2) x2|p(k1) x1)logPr(p(k2) x2|p(k1) x1)
Pr(p(k2) x2|p(k1) x1)=count(p(k2) x2,p(k1) x1)/count(p(k1) x1)
但し、count(p(k1) x1)は、イベントログ列集合Lにおけるp(k1) x1の出現回数を、count(p(k2) x2,p(k1) x1)は、p(k2) x2とp(k1) x1とが共に出現するイベントログ列の回数を表すものとする。また、簡略化のためサブプロセス集合Pに含まれる任意のサブプロセスにおけるイベントログ全ての集合を、p(k) x∈Pと表記している。
(B,P)=argmax(B*,P*)S(L,B*,P*) ・・・(1)
なお、上記では、イベントログ数ΣK k=1|Pk|が最も少ないサブプロセス集合を得ることを条件として、サブプロセス集合P及び分岐点集合Bが獲得されたが、本実施の形態の特長は、入力されるイベントログ列集合Lにおいて、抽出されるプロセスに関して要求される条件に対する分岐点集合B及びサブプロセス集合Pを自動的に得られるという点であり、要求される条件、並びに要求される条件に合ったサブプロセス及び分岐点を得る手法は問わない。式(1)のスコア関数Sの定義によって、獲得される分岐点集合B及びサブプロセス集合Pを自由に変化させることが可能である。例えば、任意のサブプロセス中のイベントログp(k) xから全てのイベントログへの情報エントロピーを最大化する問題と定義して、スコア関数Sを次のように表せる。
S(L,B,P)=Σp(k1)x1∈PΣp(k2)x2∈PE(p(k1) x1,p(k2) x2)
E(p(k1) x1,p(k1) x1)=−Pr(p(k2) x2|p(k1) x1)logPr(p(k2) x2|p(k1) x1)
Pr(p(k2) x2|p(k1) x1)=count(p(k2) x2,p(k1) x1)/count(p(k1) x1)
但し、count(p(k1) x1)は、イベントログ列集合Lにおけるp(k1) x1の出現回数を、count(p(k2) x2,p(k1) x1)は、p(k2) x2とp(k1) x1とが共に出現するイベントログ列の回数を表すものとする。また、簡略化のためサブプロセス集合Pに含まれる任意のサブプロセスにおけるイベントログ全ての集合を、p(k) x∈Pと表記している。
以下、プロセス抽出装置10について、具体的に説明する。図5は、本発明の実施の形態におけるプロセス抽出装置のハードウェア構成例を示す図である。図5のプロセス抽出装置10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、及びインタフェース装置105等を有する。
プロセス抽出装置10での処理を実現するプログラムは、CD−ROM等の記録媒体101によって提供される。プログラムを記憶した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従ってプロセス抽出装置10に係る機能を実行する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。
図6は、本発明の実施の形態におけるプロセス抽出装置の機能構成例を示す図である。図6において、プロセス抽出装置10は、初期化部11、分岐点存在判定部12、分岐点候補獲得部13、分岐点選択部14、終了条件判定部15、及び出力部16等を有する。これら各部は、プロセス抽出装置10にインストールされる1以上のプログラムが、CPU104に実行させる処理により実現される。プロセス抽出装置10は、また、イベントログ列集合記憶部17を利用する。イベントログ列集合記憶部17は、例えば、補助記憶装置102、又はプロセス抽出装置10にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
イベントログ列集合記憶部17には、プロセスの抽出処理の入力となる、イベントログ列の集合(イベントログ列集合)が記憶されている。入力となるイベントログ列は、作業に該当するID化されたログの系列データであれば、どのようなものでも構わない。例えば、ITマネジメントシステムにおける、或る故障に関して記録された、オペレータの入力コマンドの系列データ等がイベントログ列であってもよい。また、非特許文献7によって出力された、作業履歴の各作業がID化されたデータを用いて、自然言語のデータを元にしたイベントログが用いられてもよい。更に、システム動作が記録されたsyslog等、人間の行動に対する記録でなく情報が、イベントログ列として用いられてよい。但し、イベントログ列集合は、異なるサブプロセスが混在するイベントログの集合であるとする。なお、プロセスの抽出処理とは、実質的に、プロセスの分岐点及びプロセスを構成するサブプロセスの抽出処理に相当する。
初期化部11は、プロセスの抽出処理における初期化処理を実行する。例えば、初期化部11によって、イベントログ列集合記憶部17に記憶されているイベントログ列集合が読み込まれる。
分岐点存在判定部12は、分岐点の探索対象内における、分岐点の有無を判定する。最初に分岐点の探索対象とされるのは、初期化部11によって読み込まれたイベントログ列集合である。
分岐点候補獲得部13は、イベントログ列集合に基づいて、プロセスの分岐点の候補である1以上の分岐点候補を獲得する。
分岐点選択部14は、分岐点候補ごとに各イベントログ列における分岐先の部分イベントログ列の集合を抽出し、抽出された部分イベントログ列の集合から分岐先のサブプロセスを獲得し、抽出されるプロセスに関して要求される条件に対する最適化問題を、各分岐点候補と分岐点候補ごとに獲得されたサブプロセスとに関して解くことで、分岐点候補の中から前記プロセスの分岐点を選択する。なお、分岐点の選択によってサブプロセスも獲得される。すなわち、当該分岐点として選択された分岐点候補に関して獲得されたサブプロセスが、目的とされるサブプロセスである。
終了条件判定部15は、分岐点存在判定部12、分岐点候補獲得部13、及び分岐点選択部14による再帰的な処理について、終了条件が満たされたか否かを判定する。
出力部16は、獲得された分岐点及びサブプロセスを示す情報を出力する。
以下、プロセス抽出装置10が実行する処理手順について説明する。図7は、プロセス抽出装置が実行する処理手順の一例を説明するためのフローチャートである。上記の問題は、特にサブプロセス集合Pのとり得る組み合わせが指数的に増大するため、最適解を得るための計算量は膨大となる。そこで、以下では近似解の計算方法の一例として、図7に基づいて、分岐後のイベントログ列から再帰的に分岐点を探索し、分岐点集合Bを順次得る手法を、詳細に説明する。
ステップS101において、初期化部11は、初期化処理を実行する。初期化処理において、イベントログ列集合記憶部17からイベントログ列集合が読み込まれ、読み込まれたイベントログ列集合がLとされる。また、分岐点探索対象L*=Lとされる。また、分岐点集合B={}、サブプロセス集合P={}とされる。更に、終了条件パラメータθ等が読み込まれる。
続いて、分岐点存在判定部12は、分岐点探索対象L*中に分岐点が存在する可能性の有無を判定する(ステップS102)。例えば、分岐点探索対象L*のイベントログ列数|L*|≦θならば、分岐点が無いと判定されてもよい。
分岐点が存在する可能性が無いと判定された場合(ステップS102でNo)、分岐点選択部14は、分岐点探索対象L*からサブプロセスを獲得し、獲得されたサブプロセスをサブプロセス集合Pに追加する(ステップS108)。サブプロセス集合Pの獲得方法は、所定の方法に限定されない。例えば、非特許文献3や非特許文献4等のプロセスマイニング手法が適用されてサブプロセスが獲得されてもよい。
分岐点が存在する可能性が有ると判定された場合(ステップS102でYes)、分岐点候補獲得部13は、分岐点の候補(以下、「分岐点候補c」とう。)の集合である分岐点候補集合Cを獲得する(ステップS103)。分岐点候補の獲得方法は、所定の方法に限定されない。例えば、イベントログ集合の要素e∈Aの全てが分岐点候補cとされてもよい。なお、分岐点候補集合Cを構成する各分岐点候補cの値は、ログ番号である。例えば、イベントログ列集合L={Tr(1)=uvwxy,Tr(2)=uvyz}が与えられている場合において、イベントログ集合の要素e∈Aの全てが分岐点候補cとされる場合、分岐点候補集合C={1,2,3,4}となる。
続く、ステップS104及びS105において、分岐点選択部14は、ステップS103において獲得された分岐点候補集合Cにおける各分岐点候補cの中から最適分岐点を選択するための処理を実行する。最適分岐点とは、分岐点として確定される分岐点候補cをいう。
最適分岐点の選択方法は、抽出されるプロセスに関して要求される条件によって異なる。当該条件は、図7の開始時に、パラメータとして入力されてもよい。ここでは、分岐後の各イベントログへの遷移確率エントロピーが最小化されれば、分岐後のサブプロセスがまとまりのあるイベントログの集合になるという仮定に基づき、情報エントロピーを最小化する分岐点候補cが最適分岐点として選択される例について説明する。
ステップS104において、分岐点選択部14は、各分岐点候補cにおける分岐先サブプロセスを決定するための処理を実行する。各分岐点候補cにおける分岐先サブプロセスの決定方法の一例については、図8を用いて説明する。
図8は、分岐先サブプロセスの決定方法の一例を説明するためのフローチャートである。図8において、ステップS201〜S206は、分岐点候補cごとに実行される。以下、処理対象とされている分岐点候補cを、「対象候補」という。
ステップS201において、分岐点選択部14は、各入力イベントログ列Tr(i)から、対象候補以前の部分イベントログ列を抽出する。抽出された部分イベントログ列の集合を、Tr(i) pre∈L*preと表す。例えば、5つの入力イベントログ列Tr(i)から抽出される部分イベントログ列の数は、5(すなわち、Tr(i) preの要素数は、5)である。
続いて、分岐点選択部14は、各入力イベントログ列Tr(i)から、対象候補の直後以降の部分イベントログ列を抽出する。抽出された部分イベントログ列の集合を、Tr(i) pos∈L*posと表す。例えば、5つの入力イベントログ列Tr(i)から抽出される部分イベントログ列の数は、5(Tr(i) posの要素数は、5)である。
続いて、分岐点選択部14は、L*posの要素(Tr(i) pos)をκ個にクラスタリングする(ステップS203)。各クラスタは、分岐後の各イベントログ列の遷移先サブプロセスに対応するイベントログ列である。ここで、分岐点候補c(m)におけるTr(i) pos∈L*posのクラスタリング結果を、CL(m)={L(m) 1,…,L(m) κ}と表現する。
なお、クラスタ数κは、事前パラメータとして設定されてもよいし、非特許文献8に記載された手法等が用いられて自動的に決定されてもよい。また、クラスタリング方法も所定の方法に限定されない。例えば、グラフカットを最小化するクラスタリング手法として、Spectral Clustering(非特許文献5参照)等が利用されてもよい。
続いて、分岐点選択部14は、各クラスタL(m) κ∈CL(m)それぞれについて、1つのサブプロセスP(m) κを獲得する(ステップS204)。サブプロセスの獲得方法は、所定の方法に限定されない。例えば、非特許文献3や非特許文献4等に記載されたプロセスマイニング手法が利用されてもよい。
続いて、分岐点選択部14は、イベントログ列集合L*preについても、ステップS204と同様の方法で、1つのサブプロセスP(m) preを獲得する(ステップS205)。すなわち、L*preについては、クラスタリングは行われずに(或いは、L*preが一つのクラスとして扱われて)、サブプロセスP(m) preが獲得される。
続いて、分岐点選択部14は、対象候補で分岐した場合の分岐点候補集合を、例えば、以下の演算によって全分岐点候補c(m)に関する分岐点候補集合B(i)(m)に追加することにより、分岐点候補集合B(i)(m)を更新する(ステップS206)。
B(i)(m)=B(i)(m)∪{(c(m),Ppre,P(i)(m) κ)}。
但し、P(i)(m) κは分岐点以降の部分イベントログ列Tr(i)に該当するサブプロセスを示す。
B(i)(m)=B(i)(m)∪{(c(m),Ppre,P(i)(m) κ)}。
但し、P(i)(m) κは分岐点以降の部分イベントログ列Tr(i)に該当するサブプロセスを示す。
したがって、例えば、ステップS204において獲得されるサブプロセスP(m) preの数が、3であれば、3個の要素が、B(i)(m)に追加される。この3個の要素に関して、Ppreの値は、共通である。
上記したステップS201〜ステップS206が実行されることで、分岐点候補集合B(i)(m)には、各分岐点候補cで分岐した場合の情報が登録される。
図7に戻る。ステップS104に続いて、分岐点選択部14は、分岐点候補集合B(i)(m)に属する各分岐点候補において分岐した場合のスコアを計算し、分岐点候補集合B(i)(m)の中から、最適分岐点を選択する(ステップS105)。すなわち、分岐を行なった場合のサブプロセス集合P(m)={P(m) pre}∪{P(m) 1,…,P(m) κ}について、以下のスコア関数Sを最小化する最適分岐点B*及びサブプロセスP*が獲得される。
(B*,P*)=argmax(B (m) ,P (m) )S(L,B(m),P(m))
続いて、終了条件判定部15は、ステップS105において選択された最適分岐点B*が、終了条件を満たすか否かを判定する(ステップS106)。終了条件は、所定のものに限定されない。例えば、S(L,B*,P*)が、閾値γを超えていなければ終了条件が充足されてもよい。また、分岐後のクラスタ数κ=1であれば終了条件が充足されてもよい。
(B*,P*)=argmax(B (m) ,P (m) )S(L,B(m),P(m))
続いて、終了条件判定部15は、ステップS105において選択された最適分岐点B*が、終了条件を満たすか否かを判定する(ステップS106)。終了条件は、所定のものに限定されない。例えば、S(L,B*,P*)が、閾値γを超えていなければ終了条件が充足されてもよい。また、分岐後のクラスタ数κ=1であれば終了条件が充足されてもよい。
終了条件が満たされない場合(ステップS106でNo)、終了条件判定部15は、ステップS105において選択された最適分岐点B*を分岐点集合Bに追加し、更に、サブプロセス集合PをP=P∪{P* pre}∪{P* 1,…,P* κ}として更新する(ステップS107)。続いて、L* κ∈CL*全てに対し、再帰的にステップS102以降が実行される。すなわち、最適分岐点B*として選択された分岐点候補に関して得られた各クラスタのそれぞれが、新たな探索対象L*とされて、再帰的にステップS102以降が実行される。
一方、終了条件が満たされた場合(ステップS106でYes)、分岐点集合B及びサブプロセス集合Pの更新は行われない。当該処理が再帰的に呼び出された処理であれば、呼び出し元の処理の制御が返却される。当該処理が、再帰的に呼び出された処理でない場合(大元の処理である場合)、出力部16が、分岐点集合B及びサブプロセス集合Pの内容を出力してもよい。
例えば、各イベントログ列に対する、分岐点集合B及びサブプロセス集合Pがユーザに提示されてもよい。ユーザはイベントログ中に存在するサブプロセスと、サブプロセスを実行するための分岐条件を見ることが可能となり、提示された情報を、例えば、故障発生時の対応フローチャートの生成等に用いることができる。
なお、イベントログ列集合Lの入力と、分岐点集合B及びサブプロセス集合Pの提示は、同期的に行われなくてもよい。
上述したように、本実施の形態によれば、イベントログ中のプロセスの分岐点及びサブプロセスの抽出を実現し、複数の異なるサブプロセスが含まれるイベントログに対するプロセスマイニングを実現可能とすることができる。すなわち、異なるサブプロセスが混在するイベントログからプロセスが変化する分岐点と、分岐後のサブプロセスを獲得可能とすることができる。
なお、本実施の形態において、分岐点候補獲得部13は、獲得部の一例である。分岐点選択部14は、選択部の一例である。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
10 プロセス抽出装置
11 初期化部
12 分岐点存在判定部
13 分岐点候補獲得部
14 分岐点選択部
15 終了条件判定部
16 出力部
17 イベントログ列集合記憶部
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
B バス
11 初期化部
12 分岐点存在判定部
13 分岐点候補獲得部
14 分岐点選択部
15 終了条件判定部
16 出力部
17 イベントログ列集合記憶部
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
B バス
Claims (7)
- イベントログ列の集合からプロセスを抽出するプロセス抽出装置であって、
前記イベントログ列の集合に基づいて、前記プロセスの分岐点となる可能性のある1以上の分岐点候補を獲得する獲得部と、
前記分岐点候補ごとに前記各イベントログ列における分岐先の部分イベントログ列の集合を抽出し、抽出された部分イベントログ列の集合から分岐先のサブプロセスを獲得し、前記プロセスに関して要求される条件に対する最適化問題を、前記各分岐点候補と前記分岐点候補ごとに獲得されたサブプロセスとに関して解くことで、前記分岐点候補の中から前記プロセスの分岐点を選択する選択部と、
を有することを特徴とするプロセス抽出装置。 - 前記選択部によって前記分岐点として選択された前記分岐点候補に関して抽出された前記部分イベントログ列の集合について、再帰的に分岐点を探索する、
ことを特徴とする請求項1記載のプロセス抽出装置。 - 前記選択部は、前記部分イベントログ列をクラスタリングすることにより得られるクラスタごとに、前記サブプロセスを獲得する、
ことを特徴とする請求項1又は2記載のプロセス抽出装置。 - イベントログ列の集合からプロセスを抽出するプロセス抽出方法であって、
コンピュータが、
前記イベントログ列の集合に基づいて、前記プロセスの分岐点の候補である1以上の分岐点候補を獲得する獲得手順と、
前記分岐点候補ごとに前記各イベントログ列における分岐先の部分イベントログ列の集合を抽出し、抽出された部分イベントログ列の集合から分岐先のサブプロセスを獲得し、前記プロセスに関して要求される条件に対する最適化問題を、前記各分岐点候補と前記分岐点候補ごとに獲得されたサブプロセスとに関して解くことで、前記分岐点候補の中から前記プロセスの分岐点を選択する選択手順と、
を実行することを特徴とするプロセス抽出方法。 - 前記選択手順において前記分岐点として選択された前記分岐点候補に関して抽出された前記部分イベントログ列の集合について、再帰的に分岐点を探索する、
ことを特徴とする請求項4記載のプロセス抽出方法。 - 前記選択手順は、前記部分イベントログ列をクラスタリングすることにより得られるクラスタごとに、前記サブプロセスを獲得する、
ことを特徴とする請求項4又は5記載のプロセス抽出方法。 - 請求項4乃至6いずれか一項記載のプロセス抽出方法を、コンピュータに実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015041452A JP6263487B2 (ja) | 2015-03-03 | 2015-03-03 | プロセス抽出装置、プロセス抽出方法、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015041452A JP6263487B2 (ja) | 2015-03-03 | 2015-03-03 | プロセス抽出装置、プロセス抽出方法、及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016162291A JP2016162291A (ja) | 2016-09-05 |
JP6263487B2 true JP6263487B2 (ja) | 2018-01-17 |
Family
ID=56846972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015041452A Active JP6263487B2 (ja) | 2015-03-03 | 2015-03-03 | プロセス抽出装置、プロセス抽出方法、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6263487B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10049569B2 (en) | 2005-10-31 | 2018-08-14 | Wavetronix Llc | Detecting roadway targets within a multiple beam radar system |
USRE48781E1 (en) | 2001-09-27 | 2021-10-19 | Wavetronix Llc | Vehicular traffic sensor |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5343608B2 (ja) * | 2009-02-18 | 2013-11-13 | 富士ゼロックス株式会社 | 業務管理支援装置、業務管理支援プログラム、業務管理支援システム、情報処理装置、及び文書管理装置 |
US20130139164A1 (en) * | 2011-11-28 | 2013-05-30 | Sap Ag | Business Process Optimization |
-
2015
- 2015-03-03 JP JP2015041452A patent/JP6263487B2/ja active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE48781E1 (en) | 2001-09-27 | 2021-10-19 | Wavetronix Llc | Vehicular traffic sensor |
US10049569B2 (en) | 2005-10-31 | 2018-08-14 | Wavetronix Llc | Detecting roadway targets within a multiple beam radar system |
US10276041B2 (en) | 2005-10-31 | 2019-04-30 | Wavetronix Llc | Detecting roadway targets across beams |
Also Published As
Publication number | Publication date |
---|---|
JP2016162291A (ja) | 2016-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111682954B (zh) | 管理微服务的网络的方法、系统和计算机可读介质 | |
US11126493B2 (en) | Methods and systems for autonomous cloud application operations | |
US10423647B2 (en) | Descriptive datacenter state comparison | |
US11294754B2 (en) | System and method for contextual event sequence analysis | |
US11243973B2 (en) | Automated scalable contextual data collection and extraction system | |
US10929771B2 (en) | Multimodal, small and big data, machine tearing systems and processes | |
US20160085399A1 (en) | Real Time Streaming Analytics Platform | |
CN113950665A (zh) | 使用序列提取的机器人过程自动化(rpa)的过程理解 | |
US20140067360A1 (en) | System And Method For On-Demand Simulation Based Learning For Automation Framework | |
CN111669281B (zh) | 告警分析方法、装置、设备及存储介质 | |
US10225155B2 (en) | Network anomaly detection | |
US20220222266A1 (en) | Monitoring and alerting platform for extract, transform, and load jobs | |
CN111859047A (zh) | 一种故障解决方法及装置 | |
JP2006244404A (ja) | 障害復旧システム、障害復旧装置、ルール作成方法、および障害復旧プログラム | |
JP6263487B2 (ja) | プロセス抽出装置、プロセス抽出方法、及びプログラム | |
US20180173687A1 (en) | Automatic datacenter state summarization | |
WO2019165456A1 (en) | Automated scalable contextual data collection and extraction system | |
JP6332284B2 (ja) | 分散環境モデル用モデル検査装置、分散環境モデル用モデル検査方法及びプログラム | |
Tapia-Flores et al. | Discovering Process Models from Incomplete Event Logs using Conjoint Occurrence Classes. | |
JP2015118562A (ja) | スクリプト管理プログラム、スクリプト管理装置及びスクリプト管理方法 | |
CN111338609B (zh) | 信息获取方法、装置、存储介质及终端 | |
US11868744B2 (en) | Estimation of features corresponding to extracted commands used to divide code of software | |
KR20220029004A (ko) | 클라우드 기반 딥러닝 작업의 수행시간 예측 시스템 및 방법 | |
US9753743B2 (en) | Identifying a common action flow | |
US20210303363A1 (en) | Method for Distributing Sub-applications of a Certain Application Among Computers of Platforms of at Least Two Different Levels |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20161031 |
|
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: 20171212 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20171218 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6263487 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |