[发明专利]一种基于上下文感知的多角度业务流程异常在线检测方法有效
| 申请号: | 202010801639.5 | 申请日: | 2020-08-11 |
| 公开(公告)号: | CN112052233B | 公开(公告)日: | 2021-03-30 |
| 发明(设计)人: | 孙笑笑;沈沪军;俞东进;侯文杰 | 申请(专利权)人: | 杭州电子科技大学 |
| 主分类号: | G06F16/21 | 分类号: | G06F16/21;G06N3/04;G06Q10/10;G06Q40/02 |
| 代理公司: | 杭州君度专利代理事务所(特殊普通合伙) 33240 | 代理人: | 杨舟涛 |
| 地址: | 310018*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 上下文 感知 角度 业务流程 异常 在线 检测 方法 | ||
1.一种基于上下文感知的多角度异常检测方法,其特征在于包括以下步骤:
S1.数据预处理:输入原始日志,将其划分为训练数据集和测试数据集,对训练数据集使用过程发现技术从中挖掘出Petri网流程模型PN;
S2.上下文提取:首先利用重演技术基于步骤S1获得的Petri网流程模型PN对当前轨迹进行重演,得到局部行为上下文e.lbc和全局上下文e.gbc;然后对事件的属性进行处理,得到当前执行活动的时间上下文e.tcv和属性上下文e.dcv,两者共同构成活动的数据上下文,具体包含以下子步骤:
S21.从PN中获取开始活动集合结束活动集合以及PN中的全部活动集合并初始化全局行为上下文向量vgbc为长度的0向量,其中为PN中库所节点的数量,第位用于接收未知活动执行产生的托肯;
S22.对日志中的事件根据其发生时间先后进行排序,得到按发生早晚排好序的事件列表Elist;
S23.依次遍历Elist中的每个事件并根据事件的实例ID属性找到其所属的轨迹T;
S24.对Elist中的每个事件判断其执行活动;
S25.若当前事件的执行活动属于开始活动集为开始活动,则执行以下操作:
(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中;
S26.若当前事件执行的活动不属于但属于为普通活动,则执行以下操作:
(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中;
S27.若当前事件执行的活动不属于则当前执行的活动在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中;
S28.若当前事件执行的活动属于结束活动集则说明当前轨迹执行完毕,则执行以下步骤:
(1)从全局上下文vgbc中减去该轨迹带来的托肯,即vgbc=vgbc-T.lastState;
(2)局部行为上下文向量vlbc仍为T.nexState,保存事件的局部行为上下文和全局行为上下文;
S29.对Elist中的每个事件执行S24~S28的迭代过程,迭代结束后返回包含行为上下文属性的事件集Elist;
S210.对事件发生的时间戳进行处理,得到当前执行活动的时间上下文e.tcv=[h,m,d,weekday,tsct,td],其中h,m,d,weekday分别表示该时间戳对应的小时、月份、天以及星期的信息,tsct表示当前时间戳距当前实例开始时间戳的时间间隔,其计算需要当前实例第一个执行活动的开始时间戳,td表示当前时间戳距当天凌晨的时间间隔;
S211.对事件的其余属性根据其属性值是否为数值类型划分为类别属性和数值属性,对类别属性进行编码,然后与数值属性构成的向量合并得到属性上下文e.dcv;时间上下文和属性上下文构成了活动的数据上下文;
S3.使用LSTM方法训练异常检测模型,具体包含以下步骤:
S31.对事件日志中的每个事件进行编码,使用S2中获得的变量表示事件对应的完整上下文信息,该变量由上一阶段获得的e.lbc,e.gbc,e.tcv,e.dcv四个向量级联而成;
S32.日志中的每条轨迹由一个二维矩阵表示,其中轨迹矩阵的每一行由其拥有的事件所对应的事件向量构成;
S33.设置统一的长度对轨迹矩阵的行数进行限制,对于短的轨迹使用包含0的事件向量对其进行补充;
S34.对于每条轨迹,人为增加三个标签分别对应其是否存在行为异常、事件异常以及属性异常,得到编码为如下形式的轨迹:
T=(xtri,[lbi,lti,lai])
其中xtri是第i条轨迹对应的轨迹矩阵,lbi,lti,lai∈(0,1)是其对应的异常标签即行为异常、时间异常和属性异常,若值为1则表明当前轨迹拥有此类异常,若值为0则说明没有此类异常;
S35.对所有训练数据,执行S31~S34的操作,得到如下训练集:
其中n表示训练集中的轨迹总数;
S36.以得到的训练集数据为基础,采用神经网络模型LSTM来训练异常检测模型,得到最终的异常检测模型;
S4.进行待检测轨迹的异常检测,具体包含以下步骤:
S41.对待检测的轨迹执行S2,获得其执行的上下文信息;
S42.对待检测的轨迹执行S31~S34,得到编码后的轨迹;
S43.将编码后的轨迹输入到由S3训练得到的异常检测模型中,得到最终的检测结果,并发送给相关人员进行进一步的判决。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州电子科技大学,未经杭州电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010801639.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种被动式放线电气控制系统
- 下一篇:水位安全监测系统





