プロセスマイニングの基本原理

Very basic principle of process mining algorithm

プロセスマイニングを初めて知った方から、

「イベントログから、どうやってプロセスの流れを示すフローチャートが作成できるのですか?」

という質問をいただくことがあります。

イベントログからフローチャート、すなわち「プロセスモデル」を作成する「アルゴリズム」は極めて技術的な内容であるため、最も基本となるポイントのみを解説したいと思います。

より深く、正確に理解したい方は、Aalst先生の著作、『Process Mining: Data Science in Action』、およびeラーニング講座(Coursera)をご覧ください。

さて、プロセスマイニングツールによってプロセスモデルを作成するために必要なイベントログのデータ項目は、以下の3つです。

  • 案件ID
  • アクティビティ
  • タイムスタンプ

案件IDは、たとえば経理部門での請求書処理プロセスの場合だと、1枚1枚の請求書番号が該当します。所定のプロセスはどの請求書についてののものかを特定するために必要なので案件IDと呼ばれます。

アクティビティは、プロセスを構成する手順を示します。請求書処理であれば、たとえば、「請求書受領」を起点として、「OCR読み込み」、「OCR変換データ確認」、「会計システムへのデータ登録」、「発注金額との突合せ確認」、「上長への支払い承認依頼」といったそれぞれの手順です。

タイムスタンプは、上記各手順が実行されたタイミングを「年月日時分」などの形式で記録されたデータを会計システムから抽出します。

つまり、これら3つのデータ項目には、ある個別の案件に対して、どのようなアクティビティ(操作)がいつ行われたかという情報が含まれているわけです。

プロセスマイニングツールに投入可能な、整備済のイベントログサンプル

ここからが問題です。この3つの項目が含まれたイベントログから、どうやってプロセスの流れを再現するのでしょうか。単純化して言えば、プロセスの流れとしては、アクテイビティの時間的前後関係しか考慮していません。つまり、アクテビティ「A」と「B」の2つがあったとして、AがBよりも早い時間に行われていればA→Bと続く流れになるという、非常に明白なロジックです。

ただし、たくさんの案件を複雑な手順で行っている現実の業務においては、様々な処理のパターンが起こりえます。

わかりやすいように、タイムスタンプを省いて、以下のような4つの案件が含まれたイベントログからのフローチャート作成を考えてみましょう。

CASE_1 (A,B,C)
CASE_2 (A,B,D)
CASE_3 (A,E,C)
CASE_4 (A,B,C,B,C)

ここで、アルファベットは各アクテイビティであり、(A,B,C)のログは、A→B→Cという時間的順番で行われたことを意味します。

まず、CASE_1のログからフローチャートを描きます。

シンプルですね。

次に、CASE_1に加えてCASE_2も考慮します。

A→B→Cだけでなく、A→B→Dというパタンも存在したことがわかったので、BからCとDに分岐するフローチャートが描かれました。

さらに、CASE_1、CASE_2、CASE_3の3つの案件を考慮したフローチャートです。

Aに続くのはBだけでなく、Eが続く手順もあるのでこのようなフローになります。

最後に、CASE_1からCASE_4までのすべてを考慮したプロセスモデルは以下の通りです。

B→Cだけでなく、C→Bと戻る手順も存在していることがわかります。手戻り発生です。

以上の例では4案件だけでしたが、実際の業務プロセス分析では数万件、数十万件の案件のイベントログに基づいて、上記のようなフローチャートを再構成していくわけです。

非常に複雑なプロセスの場合、すべての案件のパリエーションを表すと、ごちゃごちゃしたスパゲッティのような図になります。

そこで、発生頻度の少ないバリエーションを非表示化していき、頻度の多いパターンだけに絞り込んでいけば、典型的な業務手順が見えてきます。

最も発生頻度の高いプロセスモデルのことを「ハッピープロセス」と呼ぶ場合があります。ただ、典型的なプロセスではあるものの、だからといって必ずしも優れた、理想的なプロセスとは限らないことを留意しておく必要があります。

以上、イベントログからプロセスモデルを作成する基本的な考え方について単純化して説明してまいりました。Aalst先生の著作やeラーニング講座によれば、ベントログからフローチャートを作成するアルゴリズムは、非常に難しい課題を抱えていることがわかります。

アルゴリズム自体、アルファ―マイナー、ヒューリスティックマイナー、インダクティブマイナーなど、何種類もあります。そして、用いるアルゴリズムによって、同じイベントログであったとしても描かれるフローチャートの形は異なってくるのです。

商用ツールでは、各社とも最も現実の手順を反映できると考える独自のアルゴリズムをそれぞれ提供していますが、仮に同じイベントログだったとしても、ツールによって提示されるプロセスモデルが異なっている場合があるということを頭に留めておく必要があるでしょう。