过程挖掘

官方信息技术老师·28 页·深入(追求细节与边界)·0 次浏览·2 天前
流程发现事件日志一致性检查偏差分析

过程挖掘:从数据到洞察

看完你能亲手从事件日志还原真实流程并定位偏差根源

按 空格/→ 演示下一步

1 / 28 页

全部页面点击任意一页,跳回舞台从这页播放

流程发现事件日志一致性检查偏差分析

过程挖掘:从数据到洞察

看完你能亲手从事件日志还原真实流程并定位偏差根源

1第 1 页 · 过程挖掘:从数据到洞察

什么是过程挖掘

上一页我们看到,IT 系统每天都在记录海量操作数据。但光看这些数据本身,没人能直接告诉你'业务到底是怎么跑的'。过程挖掘要做的事,就是从日志里把真实流程'画'出来。

事件日志
记录每一步操作:案例 ID、活动名、时间戳
活动轨迹
按案例 ID 把离散事件串成一条完整路径
过程发现
算法从轨迹集归纳出能代表真实流程的模型
一致性检查
把日志放回模型,比对实际跑法与理想路径的差异
航班黑匣子对应 →事件日志

黑匣子记录每次操作的'谁、几点、做了什么',事后能完整还原飞行轨迹

2第 2 页 · 什么是过程挖掘

事件日志的结构

想象你打客服投诉一单外卖。客服先问订单号,再问"什么时候下的单、中间出了什么问题"——这三项信息凑齐,一条事件日志就成型了。

案例ID
一个流程实例的唯一编号,如一笔订单号、一个患者号
活动
这一步做了什么,如"付款""发货",承载业务语义
时间戳
动作发生的时刻,精确到秒或毫秒,决定顺序能否还原
医院病历本对应 →事件日志

病历的"患者编号-检查项目-检查日期"对应"案例ID-活动-时间戳"

3第 3 页 · 事件日志的结构

过程挖掘的输入与输出

沿箭头方向读:左上事件日志出发,往右下走完分叉分析,落到可执行流程再回流。

图解渲染中…
a1过程挖掘的输入:MXML/XES 等事件日志b1Alpha、Heuristic、Inductive 等算法c1用 Petri 网、BPMN 表示的过程d1把模型放回真实日志比对,找偏差
4第 4 页 · 过程挖掘的输入与输出

过程挖掘三大任务

有了事件日志,接下来能做什么?过程挖掘回答了三类问题:流程长什么样、实际跑偏没、还能怎么改。

发现
从日志中自动重建出实际发生的流程模型
一致性检查
拿实际流程和预设模型对比,定位偏差
增强
用日志里的时间、资源、频率丰富已有模型
交警分析路口对应 →过程挖掘三任务

记录车迹画路线图=发现,比对规划找违章=一致性检查,叠加拥堵更新路况=增强

5第 5 页 · 过程挖掘三大任务

发现-重构-增强的区分

左输入、中任务、右输出,三条链路横向对比三种任务的输入输出差异。

图解渲染中…
EL事件日志:唯一必有的输入,记录真实发生的事PM过程模型:已有模型,重构与增强才需要O1发现的产物:从零生成的新流程模型O2重构的产物:日志与模型的偏差诊断
6第 6 页 · 发现-重构-增强的区分

ProM框架

前几页讲了过程挖掘的几类任务和算法。但这么多算法,跑在哪里、谁来兜底?答案是 ProM——埃因霍温理工大学主导的开源框架。

开源血统
埃因霍温理工大学Wil van der Aalst团队主导
插件架构
平台仅提供骨架,各算法以独立插件形式插入
任务全覆盖
同一平台集成发现、合规检查、增强等算法
自由扩展
研究者可发布自己的算法插件,推动生态发展
手机应用商店对应 →ProM框架

商店只提供下载入口和运行环境,真正干活的是第三方App

7第 7 页 · ProM框架

PM4Py库

ProM 启动慢、和 Python 数据栈割裂。要在 Python 里做过程挖掘,PM4Py 是绕不开的——它把三大任务装进 Pythonic API。

出身与定位
Fraunhofer FIT 团队主导开源,与过程挖掘学术前沿同步
API 入口
import pm4py 即可调用,覆盖发现、合规性、增强三大任务
数据结构
事件日志用 pandas DataFrame 表示,无缝对接 Python 数据栈
算法支持
Alpha、Inductive、Heuristic、ILP miner 等主流发现算法齐全
边界与局限
少数前沿插件仅 ProM 有;可视化能力弱于 ProM
ProM 桌面工坊对应 →PM4Py Python 工具箱

工坊啥都有但启动慢,工具箱精选主流算法、贴 Python 流程

8第 8 页 · PM4Py库

ProM vs PM4Py

ProM 是点鼠标的桌面软件,PM4Py 是写代码的 Python 库——一个让人「看」,一个让人「做」。

ProM(桌面工具)
  • 形态:桌面 GUI 应用,靠点击和拖拽操作
  • 场景:探索分析、教学演示、快速原型
  • 扩展:通过插件市场安装各类算法包
PM4Py(编程库)
  • 形态:Python 库,靠 import 与函数调用
  • 场景:自动化批处理、生产流水线、系统集成
  • 扩展:与 pandas、sklearn 等生态无缝衔接
想直观探索、试算法、学概念——选 ProM;要做自动化、嵌入系统、处理大规模日志——选 PM4Py。两者常配合使用。
9第 9 页 · ProM vs PM4Py

PM4Py快速上手

python

5行核心代码,从XES日志直出Petri网模型

代码高亮加载中…

『读日志-挖模型-看模型』三步走,Alpha算法封装在一行调用里,把研究代码变成即用工具。

10第 10 页 · PM4Py快速上手

其他工具概览

ProM 与 PM4Py 是开源‘框架级’工具,要写代码才能用。企业实战更需要开箱即用、面向业务人员的产品——三个代表性工具登场。

Celonis
商业化平台标杆,云端部署,与 SAP/ERP 深度联动做执行管理
Disco
面向业务人员,拖拽式快速上手,桌面单机工具
Apromore
学术血统开源版本,增强分析更强,兼顾研究场景
选代步工具对应 →工具定位

重活企业选Celonis轿车,便捷分析选Disco单车,研究定制选Apromore

11第 11 页 · 其他工具概览

α算法的诞生

前页我们说过,发现任务的目标是从日志「重构」出流程模型。1999年之前,没人给出过可行的算法——直到Van der Aalst提出α算法,第一个真正能跑的发现方法。

提出者与时间
Wil van der Aalst,1999年博士论文中首次给出
输入与输出
输入:事件日志;输出:Petri网(工作流网)
核心思想
从迹的先后关系中提炼四种序:因果、并行、选择、无关
历史地位
过程发现的开山之作,后续算法均受其启发
已知局限
对噪声、循环、隐式任务、重复活动敏感
从足迹推断行走路线对应 →α算法从日志推断流程

日志里的活动顺序就是地面足迹,模型是还原出的路线

12第 12 页 · α算法的诞生

α算法的执行步骤

α 算法从事件日志中提炼四种活动关系,逐步过滤出最终模型所需的依赖信息。

1
扫描日志
逐条追踪事件轨迹,记录所有 a 后面紧跟 b 的活动对,建立直接跟随关系
2
提取因果
在直接跟随对中,挑出单向成对的活动,作为模型的因果连接
3
识别并行
双向都能直接跟随的活动对,构成可互换执行的并行关系
4
筛选无关
既无因果也无并行的活动对,构成互斥的选择关系
13第 13 页 · α算法的执行步骤

α算法的优缺点

上下结构:中心是α算法,向下分「能处理」与「不能处理」两支。

图解渲染中…
c1A→B 后必跟 Cc2A 后可选 B 或 Cc3A 后 B/C 可任意顺序d1长度 1 或 2 的循环
14第 14 页 · α算法的优缺点

启发式挖掘算法

上一页提到 α 算法碰到噪音就乱套——两条活动偶尔错位就可能拼出根本不存在的回路。启发式挖掘换了个思路:与其相信每一次出现,不如看谁出现的次数够多。

直接跟随频率
统计活动 a 后紧跟 b 的次数 |a>b|,替代 α 的二元判断
依赖度公式
用正向反向频率差比,算出 a→b 的依赖强度 ∈ [-1,1]
频率阈值
设门槛过滤低于阈值的关系,把偶发误触当作噪音丢弃
识别并发与回路
频率接近且互相跟随→并发;a→b 与 b→a 频率都高→短回路
嘈杂咖啡馆听朋友说话对应 →启发式挖掘筛选行为

大脑自动加强反复出现的声音、忽略偶发杂音;算法也只信高频的跟随关系

dep(a,b)=abbaab+ba+1dep(a,b) = \frac{|a \succ b| - |b \succ a|}{|a \succ b| + |b \succ a| + 1}
15第 15 页 · 启发式挖掘算法

基于区域的算法

α 算法在并发、循环上失灵,启发式挖掘只是近似。我们需要既精确又能驾驭复杂结构的方法——基于区域的算法绕开局部回溯,靠「分块-建模」直击全局。

构建状态空间
从日志构造变迁系统:节点是行为状态,边是活动
划分区域
按事件语言性质把状态切块,每块前后集必须闭合
区域生成库所
一个区域对应一个库所,跨区域的活动连线组成 Petri 网
胜任复杂结构
并发、循环、长距离依赖都能精确还原,突破 α 算法局限
地图行政区划对应 →状态空间划分

行政区=库所,区间通道=变迁,整张地图=一张 Petri 网

16第 16 页 · 基于区域的算法

Inductive Miner

上一个算法靠复杂的集合运算做区域切割。有没有更直接的方式,对着日志一通"切",保证产出的模型不会卡死、不会漏活动?——Inductive Miner 就走这条路线。

递归切分日志
从最外层开始,把日志一层一层切成子日志,直到每个子集只剩一个活动
四类基本运算符
顺序(→)、并发(∧)、选择(×)、循环(↺),每层只能是其中之一
输出是过程树
天然嵌套的块结构,模型不会卡死也不会漏活动
基于频次切割
统计直接跟随关系的频次,据此判断该如何切
拼乐高积木对应 →归纳式挖掘

大块按图纸分小积木,每块只能是几种标准形状之一(顺序/并发/选择/循环),最终拼成完整模型

17第 17 页 · Inductive Miner

算法的选择决策树

同一份日志跑不同算法,结果可能天差地别——选型比调参更关键。

形式化保证派
  • 适用:日志干净、噪音极少
  • 代表:Inductive Miner、α 算法
  • 输出模型必有合理结构
鲁棒实用派
  • 适用:日志含噪、缺失或并发
  • 代表:启发式挖掘、模糊挖掘
  • 容错强但可能漏掉真实结构
日志干净、追求结构正确性时选 Inductive Miner;现实含噪、需要抗干扰时选启发式挖掘。
18第 18 页 · 算法的选择决策树

过程发现与模型增强

前几页我们挖出了过程模型,但都是「基础款」——只覆盖最显著路径。你手里拿着这张图,最近却在街上看到几条新修的路——日志里有,但模型没标。模型增强就是把这些路径补回模型。

增强的定义
在已有过程模型上融入日志揭示的新行为
修补新路径
日志有但模型未覆盖的轨迹,加入模型
频率与时间
为边补充执行次数、等待时长等统计
前提检查
先做一致性检查,定位偏差再增强
增强的边界
必须有日志证据,不能凭空创造路径
老地图更新对应 →过程模型增强

老地图对应已有模型,新修道路对应日志中真实走过的新路径

19第 19 页 · 过程发现与模型增强

时控过程挖掘

前页把流程当静态快照——但同一组织今年的流程和去年可能截然不同。规则在变、组织在调整,漂移是常态。

过程漂移
同一活动的执行方式随时间发生变化
时窗切片
把日志按时间段切成若干快照,分别建模
漂移检测
比较相邻快照的距离,定位变化点
演化模式
渐变、骤变、周期性复发三类典型漂移
城市卫星图逐年比对对应 →时控过程挖掘

每年一张快照比对,看哪里变了、怎么变的

Wi={eLtie.t<ti+1}W_i = \{e \in L \mid t_i \le e.t < t_{i+1}\}
20第 20 页 · 时控过程挖掘

资源感知的过程挖掘

上一页我们从时间维度看清了流程节奏,但流程终究由人执行——谁是关键角色?哪些人配合最密切?组织结构是怎样的?这些问题需要从日志的资源字段里挖掘。

资源识别
从事件日志的资源字段提取执行者,建立人员清单
角色挖掘
按资源活动模式聚类,发现职能岗位
组织挖掘
依据协作与汇报关系重构组织结构
社交网络
基于交接频次构建人际网络,找出枢纽人物
公司人事档案对应 →资源感知的过程挖掘

员工名册对应资源识别,岗位对应角色挖掘,部门树对应组织挖掘

21第 21 页 · 资源感知的过程挖掘

一致性检测

我们从日志发现模型,又给它加上时间、资源维度。但一个尖锐的问题浮现:发现的模型真的反映了现实吗?就像根据 GPS 轨迹画出城市地图后,还得拿真实路况去比对验证。

拟合度
实际日志中的轨迹有多大比例能被模型完整走通
精确度
模型描述的行为中有多少是日志里真实出现过的
泛化度
模型对未见过但合理的未来行为留有多少空间
简洁度
同等拟合下结构越简单越好,符合奥卡姆剃刀
主流技术
Token Replay 与 Alignments,后者追求最少代价移动
工厂质检对应 →一致性检测

蓝图对应模型、产品对应日志,质检就是量出产品偏离图纸多远

22第 22 页 · 一致性检测

当前面临的主要挑战

真实业务的事件日志远比教科书示例复杂——传感器噪声、流程随业务演进、千万级事件规模,都让算法从论文走向落地时举步维艰。

噪声与异常
日志中混入漏记、重复、错序事件,算法需识别并过滤
概念漂移
流程随时间演变,旧模型需持续检测更新以匹配当前路径
大规模日志
亿级事件下传统发现算法时间与内存爆炸,需流式或增量计算
真实城市的摄像头数据对应 →工业事件日志

天气抖动=噪声;道路改线=漂移;数据堆积=规模

23第 23 页 · 当前面临的主要挑战

与Petri网深度结合

前面我们学了α算法、Inductive Miner等,它们输出模型形态各异。但有一种"通用语"贯穿整个过程挖掘——Petri网。它既是发现的"靶模型",也是分析与验证的天然载体。

形式语义完备
有严格数学定义,可证明可推理,不只是图形
原生并发建模
用token显式表达并行分支,无需额外扩展
可执行可重放
token游戏支持模拟与回放,支撑一致性检查
分析工具成熟
可达性、不变量、活性等技术可直接复用
通用交换格式
ProM、PM4Py等多以Petri网作为模型互通桥梁
象棋对弈记录对应 →Petri网token重演

每步落子对应token沿弧流动,可逐手回放检验是否合规

24第 24 页 · 与Petri网深度结合

深度学习与过程挖掘

传统过程发现算法再精巧,最终都交出一张"能看清"的 Petri 网。但当日志高维稀疏、并发海量时,符号算法的天花板就到了。神经网络开辟另一条路:放弃显式模型,换取对复杂模式的拟合能力。

日志即序列
把事件日志视为序列语料:活动是词,轨迹是句子
预测型任务
下一活动、时间戳、剩余时间、异常检测都是序列预测问题
序列模型主力
LSTM/GRU 捕捉短程依赖,Transformer 建模长程与全局结构
从显式到隐式
不再生成 Petri 网这类可读模型,而是输出网络权重——可拟合但难解释
学外语背语法对应 →神经网络学过程

语法规则对应显式 Petri 网,语感对应网络权重——前者能讲清,后者只能模仿

25第 25 页 · 深度学习与过程挖掘

自测:过程挖掘核心概念

点击作答

某医院已有标准化就诊模型,团队希望:① 确认实际执行是否按设计进行;② 依据真实数据修正模型偏差。这两个目标分别对应哪两项过程挖掘任务?

26第 26 页 · 自测:过程挖掘核心概念

知识要点回顾

  • 事件日志是过程挖掘的唯一事实来源
  • 发现·一致性·增强三大任务构成持续优化闭环
  • 算法选择是工程决策,没有银弹
  • 前沿方向都在让过程挖掘贴近真实世界
  • ProM偏研究探索,PM4Py偏工程落地
延伸主题:一致性检测实战端到端过程挖掘项目LLM辅助事件日志分析
27第 27 页 · 知识要点回顾

课后思考

先自己琢磨,再对照参考答案。问题没有标准答案,看的是思考路径。

1为什么过程挖掘把'事件日志'当成第一公民?没有完整日志还能得出可靠结论吗?

参考答案日志是唯一直接接地的证据。多数算法要求每条trace完整;残缺日志得imputation或换启发式/ILP,但置信度必然打折。

2如果你的业务数据存在大量并发和循环,α算法能跑出像样的模型吗?为什么?

参考答案α算法对并发友好、对短循环(<2长度)直接拒识。真实业务日志里短循环极常见——这正是Inductive Miner与启发式挖掘存在的理由。

3当深度学习被引入过程挖掘,原本'可解释'的优势还能保住吗?代价是什么?

参考答案DL预测准但过程黑盒。折中思路:DL做发现、符号算法做增强;或用attention近似解释。可解释性从'白盒'退到'可追溯',是这门学科的当下交易。

28第 28 页 · 课后思考
过程挖掘 · 知识图解