いまさら聞けないプロセスマイニング入門

# プロセスマイニングとは？
企業における既存の業務プロセス改善に繋げるため、業務ログデータをもとにプロセスを可視化・分析し、改善ポイントを見つけるための手法のひとつです。

（正確な記憶ではありませんが）もう10年以上も前には既にプロセスマイニングという概念は世の中にあったと思うので、いまさらどうした？という気もしなくもないのですが、近年のAI技術の発達に伴って、再注目の予感がしています。
理由のひとつは、AI技術を取り込むことによるマイニング/洞察力のアップが挙げられます。従来はデータの「可視化」が主要な機能だったと思うのですが、これにAI技術が加わることによって、思いもよらない洞察を得ることができたり、業務改善後の予測データを出力することができるなど、新しい価値を生み出すことができるのではないかと思います。
もうひとつの理由は、プロセスマイニングによって明確になった改善ポイントに対して、AIあるいはRPAなど、近年発達してきたテクノロジーを活用したさまざまな打ち手の選択肢が増えてきたという点が挙げられます。仮に10年前では自動化が難しかったようなポイントについて、現在ならばより適切な打ち手を講じ、業務改善効果を上げることができるのではないかと思います。

以上のような背景もあり、いまさらながらプロセスマイニングに入門してみようと思い立ちました。

# プロセスマイニングの全体像
プロセスマイニングの実現には、専用のツールを利用するのが一般的と思われます。
プロセスマイニングツールがやってくれることを、非常にざっくりと言い表すと、「AS ISの業務プロセスデータをインプットとして、可視化されたデータをアウトプットする」という部分なので、前提としてはAS IS業務プロセスデータが用意できることが必須です。また、アプトプットを眺めただけでは何の成果も生み出せていないので、プロセスマイニングツールのアウトプットを活用し、TO BEの業務プロセスを描き、実現する部分は、人が頑張る必要があると思います。

以下の図のように、プロセスマイニングの全体像を整理してみました。
![ProcessMining全体図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1544580/42142b32-b307-27e2-9f86-067682ba7547.png)

プロセスマイニングの商用ツールはいくつか存在すると思いますが、当記事では[IBMプロセス・マイニング](https://www.ibm.com/jp-ja/cloud/cloud-pak-for-business-automation/process-mining "IBMプロセス・マイニング")を例に、プロセスマイニングツールでできる事を整理してみたいと思います。

# IBMプロセス・マイニング機能紹介
サンプルの業務データを用いて、基本的な機能を紹介していきます。
※2022年3月現在の挙動となります。将来的に、機能の仕様や画面イメージが変更される可能性がありますのでご了承ください。

**業務ログデータの取り込みと、項目マッピング**
CSV形式等に整形済みの業務ログデータを、IBMプロセス・マイニングにアップロードし取り込みます。
![ProcessMining_upload.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1544580/7b4679b3-a8b3-3006-fea3-9a80093c925e.png)


取り込んだCSVデータの各カラムを、プロセス・マイニング側の項目にマッピングしていきます。
下図の例では、「Req_Line_ID」というカラムが、個々の業務単位を識別するIDとなっているため、このカラムを「Process id」と紐づけます。
（操作感としては、カラムと、項目を、順にクリックするだけで、簡単に紐づけられました）
![ProcessMining_mapping.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1544580/87d08700-4bca-8c3b-4fd8-851f6593c588.png)

同様の操作にて、プロセスマイニングに必要な項目に対応するカラムを紐づけていきます。
最低限、「Process id」「Activity」「Start time」の項目が紐づけられていれば、プロセスマイニングは実行できます。
（その他「Resource」は担当者、「Role」は部署や役割を示すものであり、これらの情報もあればより詳細な分析ができると考えられます）

**プロセス・マイニング実行**
項目マッピングが完了したら、「Visualize your process」ボタンをポチっとすると、自動的に分析が始まり、結果が可視化されます。
![ProcessMining_start.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1544580/0f9b167a-fde5-4801-b77b-f9a2be67a2e0.png)

**分析モデル（頻度ビュー）**
分析モデルが表示されます。（まさに、それっぽいですね）
まずは、Frequency（頻度）のビューがデフォルトで表示されています。
各アクティビティの箱が、処理される流れに沿って矢印で繋がっており、業務プロセスの全体像を鳥瞰できるビューになっています。
アクティビティを示す箱の色の濃さ、またアクティビティ同士の関係性を示す矢印の太さが、その業務の発生頻度の高さを相対的に示しています。
![ProcessMining_view.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1544580/027d7093-6552-600d-dbb7-c356888424e6.png)

なお、鳥瞰のためのビューなので、デフォルトでアクティビティは全量表示されていません！
登場するアクティビティをすべて表示させてしまうと、スパゲッティのカオス状態になってしまい、とても見通しの悪いモデルになってしまうでしょう。（参考までに、可視化するアクティビティの割合を増やした場合を以下に例示します、ぐちゃぐちゃしていますね。）
頻度の高いアクティビティに絞って可視性を高くし、全体像を把握しやすくすることがお勧めの利用方法と言えます。

![ProcessMining_model_bad.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1544580/f2d6fe69-6f5b-8888-19f3-ad506dabda1c.png)

**分析モデル（所要時間ビュー）**
Average durationのビューに切り替えると、分析の切り口が変わります。
各アクティビティの箱と矢印は、かかった時間（の平均）を示します。このビューを参照することによって、業務プロセス全体のボトルネックを発見しやすくなります。
![AverageDuration.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1544580/0297f5d5-ae22-d9be-9e6f-def8b4566ae7.png)



**ダッシュボード**
ダッシュボードは分析結果を、さまざまな切り口で表示してくれます。

*サマリー*
![ProcessMining_summary.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1544580/50c9739a-1c26-17fe-2e4b-2c073c745b4f.png)

*アクティビティにかかった時間*
アクティビティごとに、かかった時間が紫の横棒グラフで示されています。（背景のグレーの折れ線は、アクティビティの発生頻度）
![ProcessMining_duration.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1544580/44183dda-b208-de53-a404-82c7be7accf5.png)

*パフォーマンス詳細分析*
特定のアクティビティについて、時系列の詳細データを確認することができます。
![PM_dashboard.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1544580/77f44fa7-a0f6-e20e-067d-ce9692a4576e.png)


**BPMN**
BPMN(ビジネスプロセスモデリング表記法)のビューを参照できます。
![ProcessMining_BPMN.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1544580/e06247b9-e75d-20a7-f27e-0d5008f072d2.png)

Rule Discoveryのメニューをクリックし実行すると、実業務データを元にビジネスルールを発掘してくれます。
![RuleDiscovery.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1544580/ba320ede-2024-c095-a6b8-2550b387f7d0.png)


**Activity Map**
誰がどのアクティビティを実行しているか、を可視化します。
（中央の四角がアクティビティ、周囲に円状にマップされているのが担当者を表しています。担当者の色は、所属チームを表します。）
![Activity map.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1544580/91f0661c-f6a4-c2e8-21e3-33ddd6d13abd.png)

チームが担当しているアクティビティを絞り込んだり、
![ActivityMap_team.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1544580/5cf52fee-472c-13bc-d0d9-8edfd3289a23.png)
また、各アクティビティを担当している人を特定したりという使い方ができます。
![ActivityMap_resouce.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1544580/155e7f7e-fe66-12a6-b28c-bab87bd43e8f.png)


**Social net**
担当者間の関わりを可視化できます。
![socialnet.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1544580/502ebfc0-6448-8fcc-b807-8cfed13966e5.png)

Doing similar tasksというSocial modelを選択すると、どの担当者たちが似たタスクを行っているかを分析できます。
![DoingSimilarTasks.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1544580/62fc77f6-bf5d-17df-2c58-ab1a5dd3e7f5.png)

例えば、オレンジ色のチーム（Procurement）の担当者に混じって、1人別のチーム（Secretary）の担当者が中心的に動いていることに気付きます。この担当者を支点にドリルダウンし、実態のプロセスの動きを把握することができます。（良くも悪くも、この担当者が管轄外の業務を遂行することによって、プロセス全体のパフォーマンスを維持しているのかもしれません）
![socialnet_details.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1544580/fa0d8cf9-ef5e-d211-bdb7-c999fb6aeb9e.png)


# まとめ
この記事では、IBMプロセス・マイニングのツールを使ってできることを、サンプルデータによる実行例を交えて紹介しました。
まずは業務ログデータをツールに投入するだけで、さまざまな切り口で分析ができそうだということが分かりました。
今回紹介しきれなかったですが、業務ログデータに加えて「リファレンスモデル」を定義してあげると、理論と実態の適合性の分析や、TO BEプロセスによってどれくらい工数を削減できるかのシミュレーションなどを行うこともできるようです。