首页 > 专利 > 杭州电子科技大学 > 一种基于上下文感知的多角度业务流程异常在线检测方法专利详情

一种基于上下文感知的多角度业务流程异常在线检测方法   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2020-08-11
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2020-12-25
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2021-03-30
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2040-08-11
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN202010801639.5 申请日 2020-08-11
公开/公告号 CN112052233B 公开/公告日 2021-03-30
授权日 2021-03-30 预估到期日 2040-08-11
申请年 2020年 公开/公告年 2021年
缴费截止日
分类号 G06F16/21G06N3/04G06Q10/10G06Q40/02 主分类号 G06F16/21
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 7
权利要求数量 8 非专利引证数量 1
引用专利数量 0 被引证专利数量 0
非专利引证 1、CN 111191897 A,2020.05.22CN 110994673 A,2020.04.10CN 110738349 A,2020.01.31孙笑笑等.基于依赖关联度的业务过程噪声日志过滤方法《.计算机集成制造系统》.2019,魏懿等.基于机器学习的流程异常预测方法《.计算机集成制造系统》.2019,;
引用专利 被引证专利
专利权维持 2 专利申请国编码 CN
专利事件 事务标签 公开、实质审查、授权
申请人信息
申请人 第一申请人
专利权人 杭州电子科技大学 当前专利权人 杭州电子科技大学
发明人 孙笑笑、沈沪军、俞东进、侯文杰 第一发明人 孙笑笑
地址 浙江省杭州市下沙高教园区 邮编 310018
申请人数量 1 发明人数量 4
申请人所在省 浙江省 申请人所在市 浙江省杭州市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
杭州君度专利代理事务所 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
杨舟涛
摘要
本发明公开了一种基于上下文感知的多角度业务流程异常在线检测方法。该方法借助重演技术来捕获当前执行实例的全局行为上下文和局部行为上下文,并结合实例的时间上下文和属性上下文作为检测模型的输入数据,从多个视角出发对当前执行实例可能存在的三类异常情况进行检测,即行为异常、时间异常和属性异常。这种异常检测方法有精度高、可解释性强等特点,能有效检测流程执行过程中的异常信息,及时通报相关人员采取相应的解决方案。区别于以往检测方法仅对流程执行数据进行事后分析的特点,本方法提出的异常检测方法适用于实时在线检测,具有更好的时效性。
  • 摘要附图
    一种基于上下文感知的多角度业务流程异常在线检测方法
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2021-03-30 授权
2 2020-12-25 实质审查的生效 IPC(主分类): G06F 16/21 专利申请号: 202010801639.5 申请日: 2020.08.11
3 2020-12-08 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.一种基于上下文感知的多角度异常检测方法,其特征在于包括以下步骤:
S
1.数据预处理:输入原始日志,将其划分为训练数据集和测试数据集,对训练数据集使用过程发现技术从中挖掘出Petri网流程模型PN;
S
2.上下文提取:首先利用重演技术基于步骤S1获得的Petri网流程模型PN对当前轨迹进行重演,得到局部行为上下文e.lbc和全局上下文e.gbc;然后对事件的属性进行处理,得到当前执行活动的时间上下文e.tcv和属性上下文e.dcv,两者共同构成活动的数据上下文,具体包含以下子步骤:
S
21.从PN中获取开始活动集合 结束活动集合 以及PN中的全部活动集合 并
初始化全局行为上下文向量vgbc为长度 的0向量,其中 为PN中库所节点的数量,第 位用于接收未知活动执行产生的托肯;
S
22.对日志中的事件根据其发生时间先后进行排序,得到按发生早晚排好序的事件列表Elist;
S
23.依次遍历Elist中的每个事件并根据事件的实例ID属性找到其所属的轨迹T;
S
24.对Elist中的每个事件判断其执行活动;
S
25.若当前事件的执行活动属于开始活动集 为开始活动,则执行以下操作:
(1)初始化当前活动的局部行为上下文向量vlbc为长度 的0向量;
(2)获得当前活动对应变迁节点的输入集合Spre和输出集合Spost;
(3)对Spre中的每个库所节点,将vlbc中该库所节点对应位置的数值加1,对vgbc执行相同的操作,然后将vlbc存储到当前事件e的属性e.lbc和当前轨迹T的属性T.lastState中,将vgbc存储到当前事件e的属性e.gbc中;
(4)对Spost中的每个库所节点,将Spre中库所节点的托肯转移到Spost的库所节点中,并对vlbc作出同样的转移,即该库所节点对应位置处的数值加1,被转移的库所节点对应位置处的数值减1,得到轨迹执行当前活动后的状态,并将其保存在当前轨迹T的属性T.nextState中;
S
26.若当前事件执行的活动不属于 但属于 为普通活动,则执行以下操作:
(1)当前活动的局部行为上下文向量vlbc为T.nexState,全局行为上下文向量vgbc为vgbc+T.nextState‑T.lastState;
(2)获得当前活动对应变迁节点的输入集合Spre和输出集合Spost;
(3)对Spre中的每个库所节点,将vlbc中该库所节点对应位置处的数值减1,然后将vlbc存储到当前事件e的属性e.lbc和当前轨迹T的属性T.lastState中,将vgbc存储到当前事件e的属性e.gbc中;
(4)对Spost中的每个库所节点,将Spre中库所节点的托肯转移到Spost的库所节点中,并对vlbc作出同样的转移,即该库所节点对应位置处的数值加1,被转移的库所节点对应位置处的数值减1,得到轨迹执行当前活动后的状态,并将其保存在当前轨迹T的属性T.nextState中;
S
27.若当前事件执行的活动不属于 则当前执行的活动在PN模型中未出现过,为意外活动,则执行以下操作:
(1)当前活动的局部行为上下文向量vlbc为T.nexState,全局行为上下文向量vgbc为vgbc+T.nextState‑T.lastState;
(2)将vlbc存储到当前事件e的属性e.lbc和当前轨迹T的属性T.lastState中,将vgbc存储到当前事件e的属性e.gbc中;
(3)对vlbc中 位置上的数值加1来表示该活动执行后的状态,然后将vlbc存储到当前轨迹T的属性T.nextState中;
S
28.若当前事件执行的活动属于结束活动集 则说明当前轨迹执行完毕,则执行以下步骤:
(1)从全局上下文vgbc中减去该轨迹带来的托肯,即vgbc=vgbc‑T.lastState;
(2)局部行为上下文向量vlbc仍为T.nexState,保存事件的局部行为上下文和全局行为上下文;
S
29.对Elist中的每个事件执行S24~S28的迭代过程,迭代结束后返回包含行为上下文属性的事件集Elist;
S
210.对事件发生的时间戳进行处理,得到当前执行活动的时间上下文e.tcv=[h,m,d,weekday,tsct,td],其中h,m,d,weekday分别表示该时间戳对应的小时、月份、天以及星期的信息,tsct表示当前时间戳距当前实例开始时间戳的时间间隔,其计算需要当前实例第一个执行活动的开始时间戳,td表示当前时间戳距当天凌晨的时间间隔;
S
211.对事件的其余属性根据其属性值是否为数值类型划分为类别属性和数值属性,对类别属性进行编码,然后与数值属性构成的向量合并得到属性上下文e.dcv;时间上下文和属性上下文构成了活动的数据上下文;
S
3.使用LSTM方法训练异常检测模型,具体包含以下步骤:
S
31.对事件日志中的每个事件进行编码,使用S2中获得的变量表示事件对应的完整上下文信息,该变量由上一阶段获得的e.lbc,e.gbc,e.tcv,e.dcv四个向量级联而成;
S
32.日志中的每条轨迹由一个二维矩阵表示,其中轨迹矩阵的每一行由其拥有的事件所对应的事件向量构成;
S
33.设置统一的长度对轨迹矩阵的行数进行限制,对于短的轨迹使用包含0的事件向量对其进行补充;
S
34.对于每条轨迹,人为增加三个标签分别对应其是否存在行为异常、事件异常以及属性异常,得到编码为如下形式的轨迹:
T=(xtri,[lbi,lti,lai])
其中xtri是第i条轨迹对应的轨迹矩阵,lbi,lti,lai∈(0,1)是其对应的异常标签即行为异常、时间异常和属性异常,若值为1则表明当前轨迹拥有此类异常,若值为0则说明没有此类异常;
S
35.对所有训练数据,执行S31~S34的操作,得到如下训练集:
其中n表示训练集中的轨迹总数;
S
36.以得到的训练集数据为基础,采用神经网络模型LSTM来训练异常检测模型,得到最终的异常检测模型;
S
4.进行待检测轨迹的异常检测,具体包含以下步骤:
S
41.对待检测的轨迹执行S2,获得其执行的上下文信息;
S
42.对待检测的轨迹执行S31~S34,得到编码后的轨迹;
S
43.将编码后的轨迹输入到由S3训练得到的异常检测模型中,得到最终的检测结果,并发送给相关人员进行进一步的判决。

2.根据权利要求1所述的一种基于上下文感知的多角度异常检测方法,其特征在于步骤S1中所述的过程发现技术采用Split Miner。

3.根据权利要求1所述的一种基于上下文感知的多角度异常检测方法,其特征在于步骤S1中所述的Petri网流程模型 其中 是
由全部库所节点组成的有限集合; 是由全部变迁节点组成的有限集合,且
满足 是活动的有限集合;
是一组有向弧,表示流程中变迁与库所之间的关系;
是一个映射函数,将每个变迁节点 与 中的单个活动或者和不可观
察到的活动⊥相映射;Minit表示Petri网的初始状态。

4.根据权利要求1所述的一种基于上下文感知的多角度异常检测方法,其特征在于步骤S211所述的类别属性特征的编码选用one‑hot编码,将其转化为由0和1构成的向量。

5.根据权利要求1所述的一种基于上下文感知的多角度异常检测方法,其特征在于步骤S33中所述的统一长度为最长轨迹的长度。

6.根据权利要求1所述的一种基于上下文感知的多角度异常检测方法,其特征在于步骤S36中所述采用神经网络模型LSTM来训练异常检测模型,包括两种方式,第一种是分别单独训练三种异常的检测模型,第二种架构是则是让三种异常检测模型共享隐藏层,但拥有各自独立的输出层。

7.根据权利要求1所述的一种基于上下文感知的多角度异常检测方法,其特征在于步骤S36所述的LSTM模型训练过程中随机搜索法来获取模型的最优参数。

8.根据权利要求1所述的一种基于上下文感知的多角度异常检测方法,其特征在于步骤S43所述的最终的检测结果和编码后的轨迹将被保存下来用于下次检测模型的增量更新,以助于提高检测模型检测的正确率。
说明书

技术领域

[0001] 本发明涉及业务流程管理中的异常检测领域,尤其涉及一种基于上下文感知的多角度业务流程异常在线检测方法。

背景技术

[0002] 随着业务流程的日益复杂化,传统严格约束的结构化业务流程管理方法逐渐无法应对一些复杂的、任务执行需要依赖人力决策的应用场景,如医院诊断流程、保险理赔流程等,为此部分企业启用了约束较为宽松的柔性业务流程管理技术来应对这类知识密集型的业务。柔性业务流程管理中的限制相对宽松,确保了业务流程管理系统的灵活性,但同时也导致了流程执行风险的增加,给业务流程的目标实现带来更多风险。通过异常检测技术可以有效检测流程执行中的异常,帮助相关人员及早发现潜在的执行风险进而采取相应的措施,对业务流程管理具有重要意义。
[0003] 近年来,业务流程管理的重心不再局限于对事件日志进行线下分析,而更加关注如何为业务流程的执行提供在线支持。但对正在执行的流程实例进行在线异常检测并非易事,需要从多个流程角度进行考虑,例如控制流角度(当前实例中活动的执行顺序是否正常)、时间角度(活动的执行时间是否异常,流程实例的总执行时间是否超过预期等)等。目前大多数异常检测的方法多从单一视角开展检测,存在异常检测不全面的问题。此外,大部分现有方法结果仅简单报告当前实例的执行是否异常,缺乏足够的解释信息帮助相关人员了解异常发生原因。

发明内容

[0004] 为了克服上述现有技术的不足,提出了一种基于上下文感知的多角度业务流程异常在线检测方法。本发明使用神经网络模型来解决业务流程中的异常检测问题,可有效解决上述问题。本发明具体采用的技术方案如下:
[0005] 一种基于上下文感知的多角度业务流程异常在线检测方法,包括以下步骤:
[0006] S1.数据预处理:输入原始日志,将其划分为训练数据集和测试数据集,对训练数据集使用过程发现技术从中挖掘出Petri网流程模型PN;
[0007] S2.上下文提取:首先利用重演技术基于步骤S1获得的Petri网流程模型PN 对当前轨迹进行重演,得到局部行为上下文e.lbc和全局上下文e.gbc;然后对事件的属性进行处理,得到当前执行活动的时间上下文e.tcv和属性上下文e.tcv,两者共同构成活动的数据上下文,具体包含以下子步骤:
[0008] S21.从PN中获取开始活动集合 结束活动集合 以及PN中的全部活动集合并初始化全局行为上下文向量vgbc为长度 的0向量,其中 为PN中库所节点的数量,第 位用于接收未知活动执行产生的托肯;
[0009] S22.对日志中的事件根据其发生时间先后进行排序,得到按发生早晚排好序的事件列表Elist;
[0010] S23.依次遍历Elist中的每个事件并根据事件的实例ID属性找到其所属的轨迹T;
[0011] S24.对Elist中的每个事件判断其执行活动;
[0012] S25.若当前事件的执行活动属于开始活动集 为开始活动,则执行以下操作:
[0013] (1)初始化当前活动的局部行为上下文向量vlbc为长度 的0向量;
[0014] (2)获得当前活动对应变迁节点的输入集合Spre和输出集合Spost;
[0015] (3)对Spre中的每个库所节点,将vlbc中该库所节点对应位置的数值加1,对vgbc执行相同的操作,然后将vlbc存储到当前事件e的属性e.lbc和当前轨迹T的属性T.lastState中,将vgbc存储到当前事件e的属性e.gbc中;
[0016] (4)对Spost中的每个库所节点,将Spre中库所节点的托肯转移到Spost的库所节点中,并对vlbc作出同样的转移,即该库所节点对应位置处的数值加1,被转移的库所节点对应位置处的数值减1,得到轨迹执行当前活动后的状态,并将其保存在当前轨迹T的属性T.nextState中;
[0017] S26.若当前事件执行的活动不属于 但属于 为普通活动,则执行以下操作:
[0018] (1)当前活动的局部行为上下文向量vlbc为T.nexState,全局行为上下文向量vgbc为vgbc+T.nextState‑T.lastState;
[0019] (2)获得当前活动对应变迁节点的输入集合Spre和输出集合Spost;
[0020] (3)对Spre中的每个库所节点,将vlbc中该库所节点对应位置处的数值减1,然后将vlbc存储到当前事件e的属性e.lbc和当前轨迹T的属性T.lastState中,将 vgbc存储到当前事件e的属性e.gbc中;
[0021] (4)对Spost中的每个库所节点,将Spre中库所节点的托肯转移到Spost的库所节点中,并对vlbc作出同样的转移,即该库所节点对应位置处的数值加1,被转移的库所节点对应位置处的数值减1,得到轨迹执行当前活动后的状态,并将其保存在当前轨迹T的属性T.nextState中;
[0022] S27.若当前事件执行的活动不属于 则当前执行的活动在PN模型中未出现过,为意外活动,则执行以下操作:
[0023] (1)当前活动的局部行为上下文向量vlbc为T.nexState,全局行为上下文向量vgbc为vgbc+T.nextState‑T.lastState;
[0024] (2)将vlbc存储到当前事件e的属性e.lbc和当前轨迹T的属性T.lastState中,将vgbc存储到当前事件e的属性e.gbc中;
[0025] (3)对vlbc中 位置上的数值加1来表示该活动执行后的状态,然后将vlbc存储到当前轨迹T的属性T.nextState中;
[0026] S28.若当前事件执行的活动属于结束活动集 则说明当前轨迹执行完毕,则执行以下步骤:
[0027] (1)从全局上下文vgbc中减去该轨迹带来的托肯,即vgbc=vgbc‑ T.lastState;
[0028] (2)局部行为上下文向量vlbc仍为T.nexState,保存事件的局部行为上下文和全局行为上下文;
[0029] S29.对Elist中的每个事件执行S24~S28的迭代过程,迭代结束后返回包含行为上下文属性的事件集Elist;
[0030] S210.对事件发生的时间戳进行处理,得到当前执行活动的时间上下文 e.tcv=[h,m,d,weekday,tsct,td],其中h,m,d,weekday分别表示该时间戳对应的小时、月份、天以及星期的信息,tsct表示当前时间戳距该实例开始时间戳的时间间隔,其计算需要当前实例第一个执行活动的开始时间戳,td表示当前时间戳距当天凌晨的时间间隔;
[0031] S211.对事件的其余属性根据其属性值是否为数值类型划分为类别属性和数值属性,对类别属性进行相应的编码,然后与数值属性构成的向量合并得到属性上下文e.dcv;时间上下文和属性上下文构成了活动的数据上下文;
[0032] S3.使用LSTM方法训练异常检测模型,具体包含以下步骤:
[0033] S31.对事件日志中的每个事件进行编码,使用S2中获得的变量表示事件对应的完整上下文信息,该变量由上一阶段获得的e.lbc,e.gbc,e.tcv,e.dcv四个向量级联而成;
[0034] S32.日志中的每条轨迹由一个二维矩阵表示,其中轨迹矩阵的每一行由其拥有的事件所对应的事件向量构成;
[0035] S33.设置统一的长度对轨迹矩阵的行数进行限制,对于短的轨迹使用包含0 的事件向量对其进行补充;
[0036] S34.对于每条轨迹,人为增加三个标签分别对应其是否存在行为异常、事件异常以及属性异常,得到编码为如下形式的轨迹:
[0037] T=(xtri,[lbi,lti,lai])
[0038] 其中xtri是第i条轨迹对应的轨迹矩阵,lbi,lti,lai∈(0,1)是其对应的异常标签即行为异常、时间异常和属性异常,若值为1则表明当前轨迹拥有此类异常,若值为0则说明没有此类异常;
[0039] S35.对所有训练数据,执行S31~S34的操作,得到如下训练集:
[0040]
[0041] 其中n表示训练集中的轨迹总数;
[0042] S36.以得到的训练集数据为基础,采用神经网络模型LSTM来训练异常检测模型,得到最终的异常检测模型;
[0043] S4.进行待检测轨迹的异常检测,具体包含以下步骤:
[0044] S41.对待检测的轨迹执行S2,获得其执行的上下文信息;
[0045] S42.对待检测的轨迹执行S31~S34,得到编码后的轨迹;
[0046] S43.将编码后的轨迹输入到由S3训练得到的异常检测模型中,得到最终的检测结果,并发送给相关人员进行进一步的判决。
[0047] 作为优选,步骤S1中所述的过程发现技术采用Split Miner。
[0048] 作为优选,步骤S1中所述的Petri网流程模型 其中是由全部库所节点组成的有限集合; 是由全部变迁节
点组成的有限集合,且满足 是活动的有限集
合; 是一组有向弧,表示流程中变迁与库所之间的关系;
是一个映射函数,将每个变迁节点 与 中的单个活动或者和不可观
察到的活动⊥相映射;Minit表示Petri 网的初始状态。
[0049] 作为优选,步骤S211所述的属性特征的编码选用one‑hot编码,将其转化为由0和1构成的向量。
[0050] 作为优选,步骤S36中所述采用神经网络模型LSTM来训练异常检测模型,包括两种方式,第一种是分别单独训练三种异常的检测模型,第二种架构是则是让三种异常检测模型共享隐藏层,但拥有各自独立的输出层。
[0051] 作为优选,步骤S36所述的LSTM模型训练过程中优选随机搜索法来获取模型的最优参数。
[0052] 作为优选,步骤S43所述的最终的检测结果和轨迹数据将被保存下来用于下次检测模型的增量更新,以助于提高检测模型检测的正确率。
[0053] 本发明使用重演技术来获取流程实例执行的行为上下文,并与属性上下文一起作为异常检测模型的输入,结合神经网络模型LSTM来构建最终的多角度异常检测模型,本法明具有如下收益:1、利用重演技术来获取流程执行的行为上下文提高了异常检测的精度;2、使用LSTM模型构建了多角度的检测模型,使得异常检测的结果具有一定的可解释性。

实施方案

[0060] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图对本发明进行进一步详细说明。
[0061] 相反,本发明涵盖任何由权利要求定义的在本发明的精髓和范围上做的替代、修改、等效方法以及方案。进一步,为了使公众对本发明有更好的了解,在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。
[0062] 如图1所示,本发明的一种基于上下文感知的多角度业务流程异常在线检测方法,包括以下步骤:
[0063] S1.数据预处理:输入原始日志,将其划分为训练数据集和测试数据集,对训练数据集使用过程发现技术Split  Miner从中挖掘出Petri网流程模型其中 是由全部库所节点组成的有限集
合; 是由全部变迁节点组成的有限集合,且满足
是活动的有限集合;
是一组有向弧,表示流程中变迁与库所之间的关系; 是一个映射函数,将每个变迁节点 与 中的单个活动或者和不可观察到的活动⊥相映射;Minit表示Petri网的初始状态;
[0064] S2.上下文提取:首先利用重演技术基于步骤S1获得的Petri网流程模型PN 对当前轨迹进行重演,得到局部行为上下文e.lbc和全局上下文e.gbc;然后对事件的属性进行处理,得到当前执行活动的时间上下文e.tcv和属性上下文e.tcv,两者共同构成活动的数据上下文,具体包含以下子步骤:
[0065] S21.从PN中获取开始活动集合 结束活动集合 以及PN中的全部活动集合并初始化全局行为上下文向量vgbc为长度 的0向量,其中 为PN中库所节点的数量,第 位用于接收未知活动执行产生的托肯;
[0066] S22.对日志中的事件根据其发生时间先后进行排序,得到按发生早晚排好序的事件列表Elist;
[0067] S23.依次遍历Elist中的每个事件并根据事件的实例ID属性找到其所属的轨迹T;
[0068] S24.对Elist中的每个事件判断其执行活动;
[0069] S25.若当前事件的执行活动属于开始活动集 为开始活动,则执行以下操作:
[0070] (1)初始化当前活动的局部行为上下文向量vlbc为长度 的0向量;
[0071] (2)获得当前活动对应变迁节点的输入集合Spre和输出集合Spost;
[0072] (3)对Spre中的每个库所节点,将vlbc中该库所节点对应位置的数值加1,对vgbc执行相同的操作,然后将vlbc存储到当前事件e的属性e.lbc和当前轨迹T的属性T.lastState中,将vgbc存储到当前事件e的属性e.gbc中;
[0073] (4)对Spost中的每个库所节点,将Spre中库所节点的托肯转移到Spost的库所节点中,并对vlbc作出同样的转移,即该库所节点对应位置处的数值加1,被转移的库所节点对应位置处的数值减1,得到轨迹执行当前活动后的状态,并将其保存在当前轨迹T的属性T.nextState中;
[0074] S26.若当前事件执行的活动不属于 但属于 为普通活动,则执行以下操作:
[0075] (1)当前活动的局部行为上下文向量vlbc为T.nexState,全局行为上下文向量vgbc为vgbc+T.nextState‑T.lastState;
[0076] (2)获得当前活动对应变迁节点的输入集合Spre和输出集合Spost;
[0077] (3)对Spre中的每个库所节点,将vlbc中该库所节点对应位置处的数值减1,然后将vlbc存储到当前事件e的属性e.lbc和当前轨迹T的属性T.lastState中,将 vgbc存储到当前事件e的属性e.gbc中;
[0078] (4)对Spost中的每个库所节点,将Spre中库所节点的托肯转移到Spost的库所节点中,并对vlbc作出同样的转移,即该库所节点对应位置处的数值加1,被转移的库所节点对应位置处的数值减1,得到轨迹执行当前活动后的状态,并将其保存在当前轨迹T的属性T.nextState中;
[0079] S27.若当前事件执行的活动不属于 则当前执行的活动在PN模型中未出现过,为意外活动,则执行以下操作:
[0080] (1)当前活动的局部行为上下文向量vlbc为T.nexState,全局行为上下文向量vgbc为vgbc+T.nextState‑T.lastState;
[0081] (2)将vlbc存储到当前事件e的属性e.lbc和当前轨迹T的属性T.lastState中,将vgbc存储到当前事件e的属性e.gbc中;
[0082] (3)对vlbc中 位置上的数值加1来表示该活动执行后的状态,然后将vlbc存储到当前轨迹T的属性T.nextState中;
[0083] S28.若当前事件执行的活动属于结束活动集 则说明当前轨迹执行完毕,则执行以下步骤:
[0084] (1)从全局上下文vgbc中减去该轨迹带来的托肯,即vgbc=vgbc‑ T.lastState;
[0085] (2)局部行为上下文向量vlbc仍为T.nexState,保存事件的局部行为上下文和全局行为上下文;
[0086] S29.对Elist中的每个事件执行S24~S28的迭代过程,迭代结束后返回包含行为上下文属性的事件集Elist;
[0087] S210.对事件发生的时间戳进行处理,得到当前执行活动的时间上下文 e.tcv=[h,m,d,weekday,tsct,td],其中h,m,d,weekday分别表示该时间戳对应的小时、月份、天以及星期的信息,tsct表示当前时间戳距该实例开始时间戳的时间间隔,其计算需要当前实例第一个执行活动的开始时间戳,td表示当前时间戳距当天凌晨的时间间隔;
[0088] S211.对事件的其余属性根据其属性值是否为数值类型划分为类别属性和数值属性,对类别属性进行one‑hot编码,然后与数值属性构成的向量合并得到属性上下文e.dcv;时间上下文和属性上下文构成了活动的数据上下文;
[0089] S3.使用LSTM方法训练异常检测模型,具体包含以下步骤:
[0090] S31.对事件日志中的每个事件进行编码,使用S2中获得的变量表示事件对应的完整上下文信息,该变量由上一阶段获得的e.lbc,e.gbc,e.tcv,e.dcv四个向量级联而成;
[0091] S32.日志中的每条轨迹由一个二维矩阵表示,其中轨迹矩阵的每一行由其拥有的事件所对应的事件向量构成;
[0092] S33.设置统一的长度对轨迹矩阵的行数进行限制,统一为最长轨迹的长度,对于短的轨迹使用包含0的事件向量对其进行补充;
[0093] S34.对于每条轨迹,人为增加三个标签分别对应其是否存在行为异常、事件异常以及属性异常,得到编码为如下形式的轨迹:
[0094] T=(xtri,[lbi,lti,lai])
[0095] 其中xtri是第i条轨迹对应的轨迹矩阵,lbi,lti,lai∈(0,1)是其对应的异常标签即行为异常、时间异常和属性异常,若值为1则表明当前轨迹拥有此类异常,若值为0则说明没有此类异常;
[0096] S35.对所有训练数据,执行S31~S34的操作,得到如下训练集:
[0097]
[0098] 其中n表示训练集中的轨迹总数;
[0099] S36.以得到的训练集数据为基础,采用神经网络模型LSTM来训练异常检测模型,得到最终的异常检测模型,其中采用LSTM来训练异常检测模型,包括两种方式,第一种是分别单独训练三种异常的检测模型,第二种架构是则是让三种异常检测模型共享隐藏层,但拥有各自独立的输出层;模型训练过程中优选随机搜索法来获取模型的最优参数。
[0100] S4.进行待检测轨迹的异常检测,具体包含以下步骤:
[0101] S41.对待检测的轨迹执行S2,获得其执行的上下文信息;
[0102] S42.对待检测的轨迹执行S31~S34,得到编码后的轨迹;
[0103] S43.将编码后的轨迹输入到由S3训练得到的异常检测模型中,得到最终的检测结果,并发送给相关人员进行进一步的判决。最终的检测结果和轨迹数据将被保存下来用于下次检测模型的增量更新,以助于提高检测模型检测的正确率。
[0104] 实施例
[0105] 本实施例步骤与具体实施方式相同,在此不再进行赘述。下面就部分实施过程和实施结果进行展示:
[0106] 数据源获取:本实施例所用的原始日志文件是从4TU研究数据中心获得的四个真实的业务流程产生的日志:Helpdesk,BPIC2012_A,BPIC2012_O, BPIC2012_W。其中Helpdesk来源于意大利某软件公司服务台的票务管理流程,剩余三个日志来源于荷兰某财政机构,记录了申请贷款业务的流程的相关信息,它们是三个相互交织的子流程。其中每个日志中的相关统计信息见表1。由于真实日志中未提供有关实际异常的信息,因此有必要生成人为异常。执行以下操作来生成人为异常数据。对于行为异常执行以下两种突变操作:(1)活动插入:随机选择一个活动插入到当前轨迹中;(2)调整活动执行顺序:将当前轨迹中的一个活动随机移动至轨迹的另一个位置。对于属性异常,从日志中随机选择事件并对其执行资源进行替换,新的执行资源在原有日志中从未执行过该类活动。对于时间异常数据,将执行以下两种标记:(1)活动执行时间异常:对同一类活动,将对事件日志中该类活动的执行时间进行统计,得到其分布图,并选择其中执行时间最久的部分事件进行异常标记;
(2)实例执行时间异常:首先根据实例中执行活动的种类对实例进行分类(即拥有相同执行活动集合的实例将被划分为同一类),然后分别统计出每一类中执行时间最久的部分实例进行异常标记。
[0107] 为了验证本发明技术方案的技术效果,选取常用的四个指标:准确率、精确率、召回率以及F1分数来衡量检测的性能。此外,本实施例分别使用两种不同架构方案的LSTM模型的效果,SingleM表示第一种模型架构方案(单一模型),ShareM表示第二种模型架构方案(共享模型)。同时为了验证提出的基于重演提取的行为上下文对检测结果的影响,为训练模型分别生成了两类数据样本,其中第一类样本(withBC)将包含本发明提出的行为上下文信息和数据上下文信息,而第二种样本(withoutBC)则仅包含数据上下文(以往的工作均只使用了数据上下文信息)。
[0108] 图3、4、5、6分别展示了在四个数据集上使用本发明方法进行三类异常检测的准确率、精确率、召回率以及F1分数的变化。由图中可以看到,加入本发明提出的行为上下文信息后,三类异常检测精度均有不同程度的提高,这证明了本发明提出的基于重演技术提取得到的行为上下文信息的有效性。另外,对于两种模型架构方案,由图可见,共享模型在大部分情况下检测效果比起单一模型的检测效果略好,这是因为通过共享隐藏层,可以让模型学习到三类异常之间的一些内部联系。
[0109] 此外,本实施例还选用了分类模型支持向量机(SVM),K邻近算法(KNN) 和决策树(DT)作为对比算法来进一步证明本发明提出方法的有效性。我们选择上轮实验中共效果最佳的检测模型ShareM(withBC),并使用召回率和F1分数作为衡量指标。实验结果如表2所示,其中最佳结果将以粗体标记。从表中可以看出,本发明方法在F1分数上均取得了最好的效果。这是因为LSTM可以学习同一实例中活动之间的远程依赖关系,并且可以将之前执行的重要信息保留,从而充分利用了上下文信息进行异常判断。在召回率上本发明方法对行为异常的检测均取得了最佳的效果,这是由于本发明提出的方法利用了重演技术来提取实例的行为上下文使得检测模型得到的信息更加全面。而在时间异常和属性异常的检测上,本发明方法仅在大部分数据集上取得了最优效果,这是因为属性异常和时间异常都属于点异常,它们与实例中执行活动的相关属性紧密相关,而过长的执行轨迹可能会导致一部分重要信息被忽视,进而影响了检测结果。
[0110] 表1四个真实数据集的统计信息表
[0111]
[0112] 表2为本发明方法和其他算法的检测结果对比结果
[0113]
[0114] 以上所述的实施例只是本发明的一种较佳的方案,然其并非用以限制本发明。有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型。因此凡采取等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。

附图说明

[0054] 图1为本发明方法的流程图;
[0055] 图2为采用神经网络模型LSTM来训练异常检测模型的两种方式;
[0056] 图3为本发明方法在准确率上的结果展示图;
[0057] 图4为本发明方法在精确率上的结果展示图;
[0058] 图5为本发明方法在召回率上的结果展示图;
[0059] 图6为本发明方法在F1分数上的结果展示图;
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号