国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于上下文感知的多角度業(yè)務(wù)流程在線異常檢測方法

2021-10-11 13:09:22孫笑笑侯文杰沈滬軍應(yīng)鈺柯俞東進(jìn)
關(guān)鍵詞:日志實(shí)例軌跡

孫笑笑,侯文杰,沈滬軍,應(yīng)鈺柯,俞東進(jìn)+

(1.杭州電子科技大學(xué) 計(jì)算機(jī)學(xué)院,浙江 杭州 310018;2.復(fù)雜系統(tǒng)建模與仿真教育部重點(diǎn)實(shí)驗(yàn)室,浙江 杭州 310018)

0 引言

隨著業(yè)務(wù)流程的日益復(fù)雜化,傳統(tǒng)嚴(yán)格約束的結(jié)構(gòu)化業(yè)務(wù)流程管理方法逐漸無法應(yīng)對(duì)一些復(fù)雜的、任務(wù)執(zhí)行需要依賴人力決策的應(yīng)用場景,如醫(yī)院診斷流程、保險(xiǎn)理賠流程等[1],為此部分企業(yè)啟用了約束較為寬松的柔性業(yè)務(wù)流程管理技術(shù)來應(yīng)對(duì)這類知識(shí)密集型的業(yè)務(wù)。柔性業(yè)務(wù)流程管理中的限制相對(duì)寬松,確保了業(yè)務(wù)流程管理系統(tǒng)的靈活性,但同時(shí)也導(dǎo)致流程執(zhí)行風(fēng)險(xiǎn)的增加,給業(yè)務(wù)流程的目標(biāo)實(shí)現(xiàn)帶來更多風(fēng)險(xiǎn)[2]。通過異常檢測技術(shù)[3-4]可以有效檢測流程執(zhí)行中的異常,幫助相關(guān)人員及早發(fā)現(xiàn)潛在的執(zhí)行風(fēng)險(xiǎn),進(jìn)而采取相應(yīng)的措施,對(duì)業(yè)務(wù)流程管理具有重要意義。

近年來,業(yè)務(wù)流程管理的重心不再局限于對(duì)事件日志進(jìn)行線下分析,而更加關(guān)注如何為業(yè)務(wù)流程的執(zhí)行提供在線支持。但對(duì)正在執(zhí)行的流程實(shí)例進(jìn)行在線異常檢測并非易事,需要從多個(gè)流程角度進(jìn)行考慮,例如控制流角度[5-7](當(dāng)前實(shí)例中活動(dòng)的執(zhí)行順序是否正常)、時(shí)間角度[8](活動(dòng)的執(zhí)行時(shí)間是否異常,流程實(shí)例的總執(zhí)行時(shí)間是否超過預(yù)期等)等。目前,大多數(shù)異常檢測的方法多從單一視角開展檢測,存在異常檢測不全面的問題。此外,大部分現(xiàn)有方法結(jié)果僅簡單報(bào)告當(dāng)前實(shí)例的執(zhí)行是否異常,缺乏足夠的解釋信息幫助相關(guān)人員了解異常發(fā)生原因。

針對(duì)以上問題,本文提出一種基于上下文感知的多角度業(yè)務(wù)流程在線異常檢測方法。為了讓相關(guān)人員詳細(xì)了解當(dāng)前異常發(fā)生的原因,本文將業(yè)務(wù)流程中的異常情況分為行為異常、時(shí)間異常和屬性異常3類。其中:行為異常從控制流視角出發(fā),主要關(guān)注活動(dòng)執(zhí)行順序的正確性,如流程執(zhí)行過程中由于某個(gè)錯(cuò)誤的操作而導(dǎo)致活動(dòng)被重復(fù)執(zhí)行;時(shí)間異常從時(shí)間視角出發(fā),主要關(guān)注活動(dòng)的持續(xù)時(shí)間以及實(shí)例總的執(zhí)行時(shí)間是否合理,如當(dāng)活動(dòng)執(zhí)行的持續(xù)時(shí)間是平時(shí)的幾倍或?qū)嵗目倛?zhí)行時(shí)間超過預(yù)期等;屬性異常從實(shí)例的其他屬性值出發(fā),主要關(guān)注屬性狀態(tài)是否正常,如從資源屬性上看,若活動(dòng)a被從未執(zhí)行過它的資源r執(zhí)行,這就屬于偏離原有預(yù)設(shè)的行為,將被視為屬性異常情況。此外,為了更好地模擬當(dāng)前實(shí)例的真實(shí)執(zhí)行環(huán)境,本文借助重演技術(shù)從事件日志中捕獲了當(dāng)前實(shí)例執(zhí)行的行為上下文和數(shù)據(jù)上下文,并將其與深度學(xué)習(xí)方法相結(jié)合,建立了實(shí)時(shí)異常檢測模型,有效提高了異常檢測的性能。

1 相關(guān)工作

傳統(tǒng)的業(yè)務(wù)流程異常檢測通常借助一致性檢查技術(shù)[5-7]來實(shí)現(xiàn),即通過將日志中記錄的執(zhí)行軌跡與標(biāo)準(zhǔn)的參考流程模型進(jìn)行對(duì)齊,進(jìn)而檢測是否存在異常。該類方法需要借助一個(gè)標(biāo)準(zhǔn)的參考流程模型,用來表征流程中全部的正常執(zhí)行情況。如果不存在標(biāo)準(zhǔn)模型,則需要借助流程發(fā)現(xiàn)技術(shù)從事件日志中挖掘流程模型,但因?yàn)檎鎸?shí)應(yīng)用場景下的日志中通常包含異常執(zhí)行信息,所以挖掘得到的模型并不完全標(biāo)準(zhǔn),這限制了該類方法的應(yīng)用。BEZERRA等[9]提出3種改進(jìn)的異常檢測方法:閾值算法、迭代算法和采樣算法。其中:閾值算法通過設(shè)置一個(gè)異常閾值,并將一致性低于閾值的軌跡歸為異常軌跡來實(shí)現(xiàn)異常檢測;迭代算法則通過多次迭代并在每次迭代中刪除一致性最低的軌跡來達(dá)到過濾異常的效果;采樣算法通過采樣來減少日志中包含異常軌跡的可能性,這一方法基于一個(gè)樸素的假設(shè)即日志中所包含的異常數(shù)據(jù)是少量的,因此通過采樣得到的數(shù)據(jù)可以近似看成是不包含異常的,最后通過從采樣日志中挖掘參考模型進(jìn)行下一步的一致性檢查。但以上3種方法都需要人為設(shè)置相關(guān)參數(shù),因此方法的通用性不強(qiáng)。此外,一致性檢查技術(shù)大都只能從控制流的角度觀察異常,其目標(biāo)是確保流程的執(zhí)行沒有偏離,即流程中活動(dòng)的執(zhí)行順序沒有出現(xiàn)異常,而忽略了存儲(chǔ)在日志中大量的其他相關(guān)數(shù)據(jù),這些數(shù)據(jù)可能存在某些不易發(fā)現(xiàn)的潛在風(fēng)險(xiǎn)。

不同于上述方法,ROGGE-SOLTI等[8]提出一種基于貝葉斯模型的異常檢測方法,但該方法關(guān)注活動(dòng)執(zhí)行時(shí)間的異常檢測,并未考慮流程執(zhí)行中可能出現(xiàn)的其他異常。MANNHARDT等[10]提出一種利用多種成本函數(shù)實(shí)現(xiàn)的多角度一致性檢查技術(shù),可以檢測活動(dòng)執(zhí)行順序和活動(dòng)部分屬性的異常情況,但該方法需要借助一個(gè)標(biāo)準(zhǔn)的參考模型來實(shí)現(xiàn)異常檢測。NGUYEN等[11]分別比較了使用決策樹、K最近鄰(K-Nearest Neighbor,KNN)和神經(jīng)網(wǎng)絡(luò)3種方法來檢測異常的精度,但其效果衡量指標(biāo)只有一種,實(shí)驗(yàn)結(jié)果并不全面。對(duì)于其他領(lǐng)域的異常檢測工作,PIMENTEL等[12]對(duì)近年來提出的異常檢測方法進(jìn)行了詳細(xì)的介紹和比較,并將其分為5類方法:基于概率論的檢測方法、基于距離的檢測方法、基于重構(gòu)的檢測方法、基于領(lǐng)域的檢測方法和基于信息論的檢測方法。其中:基于概率論的檢測方法是基于對(duì)數(shù)據(jù)生成概率密度函數(shù)的估計(jì);基于距離的檢測方法包括聚類或最近鄰方法;基于重構(gòu)的檢測方法可以在沒有先驗(yàn)假設(shè)的情況下對(duì)數(shù)據(jù)分布進(jìn)行建模,其思想是訓(xùn)練一個(gè)能夠重建正常行為但不能重建異常行為的模型;基于領(lǐng)域的檢測方法在不依賴于訓(xùn)練集中數(shù)據(jù)分布的屬性的情況下,僅使用最接近的數(shù)據(jù)來確定新穎性邊界的位置;基于信息論的檢測方法一般會(huì)假設(shè)數(shù)據(jù)的潛在分布,基于信息論的新穎性檢測方法往往要用一個(gè)敏感的度量來檢測出數(shù)據(jù)集中新點(diǎn)的影響,如何選取信息理論測量方法是該類方法的主要缺點(diǎn)。

2 相關(guān)定義

2.1 事件日志

事件日志是由軌跡組成的一個(gè)集合,其中每條軌跡代表業(yè)務(wù)流程的一次執(zhí)行,每條軌跡又由多個(gè)事件構(gòu)成,每個(gè)事件記錄流程執(zhí)行某一活動(dòng)的全部信息。業(yè)務(wù)流程事件日志中的相關(guān)概念的形式化定義如下:

定義1事件。 事件是事件日志中的最小單位,通常使用元組e=(a,caseID,eventID,ts,te,r,attr1,…,attrm)表示,其中:a為該事件對(duì)應(yīng)的活動(dòng)屬性,caseId為該事件所屬實(shí)例的id屬性,eventID為事件id屬性,ts為事件的開始時(shí)間戳屬性,te為事件的結(jié)束時(shí)間戳屬性,r是事件的執(zhí)行資源屬性,attr1,…,attrm為事件所擁有的一些額外屬性,這些屬性通常隨著流程的不同有所區(qū)別。日志中的全部事件構(gòu)成事件集E。

定義3前綴軌跡。 前綴軌跡是流程軌跡σ=的前l(fā)個(gè)事件構(gòu)成的有序序列,其形式表達(dá)為PTr(σ,l)=,其中l(wèi)表示截取事件在流程軌跡中的下標(biāo),也代表前綴軌跡的長度。

2.2 Petri網(wǎng)

Petri網(wǎng)是二部圖的一個(gè)子類,由庫所和變遷兩類節(jié)點(diǎn)組成。其中:庫所節(jié)點(diǎn)用圓圈表示,變遷節(jié)點(diǎn)用矩形表示,兩種節(jié)點(diǎn)之間使用有向弧連接。

定義5輸入集合,輸出集合。 對(duì)于PN中的任意節(jié)點(diǎn)o(變遷節(jié)點(diǎn)或庫所節(jié)點(diǎn)),使用Upost(o)={j|(o,j)∈Arc}來表示其輸出節(jié)點(diǎn)集合,使用Upre(o)={j|(j,o)∈Arc}來表示其輸入節(jié)點(diǎn)集合。其中:庫所節(jié)點(diǎn)的輸入和輸出集合中只包含變遷節(jié)點(diǎn),變遷節(jié)點(diǎn)的輸入和輸出集合中只包含庫所節(jié)點(diǎn)。

定義6使能狀態(tài),點(diǎn)火規(guī)則。 如果一個(gè)變遷滿足其輸入集合中的庫所均含有至少一個(gè)托肯,則該變遷節(jié)點(diǎn)處于使能狀態(tài),公式如下:

?pj∈Upre(ti),m(pj)≥1#。

(1)

處于使能狀態(tài)的變遷可以被觸發(fā),觸發(fā)后該變遷的輸入集合中所有庫所的托肯數(shù)量減一,輸出集合中所有庫所的托肯數(shù)量加一,該規(guī)則即點(diǎn)火規(guī)則。

2.3 長短期記憶網(wǎng)絡(luò)

作為循環(huán)神經(jīng)網(wǎng)絡(luò)[13](Recurrent Neural Networks,RNN)的一種變體,長短期記憶網(wǎng)絡(luò)[14](Long Short-Term Memory network , LSTM)成功地克服了RNN存在的部分缺陷,被廣泛應(yīng)用于語音識(shí)別、圖片描述、自然語言處理等領(lǐng)域。如圖1所示,在t時(shí)刻,LSTM單元的輸入有3個(gè):當(dāng)前時(shí)刻的輸入值xt、上一時(shí)刻LSTM單元的輸出值ht-1以及上一時(shí)刻的單元狀態(tài)Ct-1;LSTM單元的輸出有兩個(gè):當(dāng)前時(shí)刻LSTM單元輸出值ht和當(dāng)前時(shí)刻的單元狀態(tài)Ct。LSTM之所以能克服遠(yuǎn)距離依賴是其利用3個(gè)門實(shí)現(xiàn)了對(duì)長期狀態(tài)的控制。其中,遺忘門(forget gate)決定了上一時(shí)刻的單元狀態(tài)將有多少保留到當(dāng)前時(shí)刻;輸入門(input gate)決定了當(dāng)前時(shí)刻輸入中將有多少有用信息被保存到單元狀態(tài)中;輸出門(output gate)用來控制單元狀態(tài)中有多少將被輸出作為當(dāng)前的輸出值。通過這3個(gè)門控,遠(yuǎn)距離的重要信息將被保存下來并作用到當(dāng)前的輸出值運(yùn)算中。

3 方法描述

本文提出一種基于上下文感知的多角度異常檢測方法(Multi-perspective online Anomaly Detection method based on Context awareness,MADC),利用流程發(fā)現(xiàn)、軌跡重演、深度學(xué)習(xí)等相關(guān)技術(shù)得到一個(gè)最終的檢測模型,實(shí)現(xiàn)對(duì)行為異常、時(shí)間異常和屬性異常3類異常的在線檢測。MADC的整體框架如圖2所示,主要包括4個(gè)階段:預(yù)處理階段、上下文提取階段、模型訓(xùn)練階段和異常檢測階段。下面對(duì)每個(gè)階段進(jìn)行詳細(xì)闡述。

3.1 預(yù)處理階段

在預(yù)處理階段,事件日志將被劃分為訓(xùn)練集和測試集。本文將日志中發(fā)生時(shí)間較早的80%案例數(shù)據(jù)選為訓(xùn)練集,剩余的20%案例數(shù)據(jù)選為測試集,值得注意的是訓(xùn)練集中是包含異常執(zhí)行案例的。

預(yù)處理階段首先對(duì)訓(xùn)練集使用過程發(fā)現(xiàn)技術(shù)Split Miner[15]挖掘出用Petri網(wǎng)表示的流程模型。Split Miner是近年來新提出的一種流程發(fā)現(xiàn)算法,可以利用事件日志自動(dòng)挖掘出完備的Petri網(wǎng)模型來表征業(yè)務(wù)流程。Split Miner相較現(xiàn)有的流程發(fā)現(xiàn)技術(shù)在性能上有較大的提升,其操作簡單、執(zhí)行時(shí)間快,是目前從事件日志中自動(dòng)獲取具備較高適應(yīng)性和精度的流程模型的最佳算法之一[16]。預(yù)處理階段獲得的Petri網(wǎng)模型將在后面的階段被使用。

3.2 上下文提取階段

在上下文提取階段,本文對(duì)日志中的上下文進(jìn)行了初步細(xì)化,大體劃分為兩類:

(1)行為上下文,它考慮的是流程中活動(dòng)執(zhí)行順序的上下文信息,即從控制流的視角觀察到的當(dāng)前活動(dòng)執(zhí)行的上下文信息。本文中行為上下文又包括局部行為上下文和全局行為上下文,其中局部行為上下文用來表示實(shí)例當(dāng)前的狀態(tài),全局上下文用來表示流程當(dāng)前的執(zhí)行狀態(tài)。

(2)數(shù)據(jù)上下文,它囊括了所有非控制流視角觀察到的活動(dòng)上下文信息,主要通過日志中的事件屬性獲取得到。數(shù)據(jù)上下文有效地彌補(bǔ)了行為上下文信息的單一性,本文主要考慮從組織視角和時(shí)間視角觀察到的數(shù)據(jù)上下文信息。

3.2.1 行為上下文

行為上下文的提取主要借助于第一階段獲得的Petri網(wǎng)模型結(jié)合軌跡重演方法來實(shí)現(xiàn)。具體地,首先使用兩個(gè)長度為(|P|+1)的向量vlbc和vgbc分別表示局部行為上下文和全局行為上下文。其中向量vlbc和vgbc中的第i位對(duì)應(yīng)于PN中第i個(gè)庫所中托肯的數(shù)量分布情況。不同的是vlbc表示的是單個(gè)實(shí)例獨(dú)立執(zhí)行時(shí)托肯在PN中的分布情況,而vgbc表示當(dāng)前流程中所有一同執(zhí)行的實(shí)例所產(chǎn)生的托肯分布情況。|P|+1位是用于接收未知活動(dòng)執(zhí)行產(chǎn)生的托肯,因?yàn)闇y試數(shù)據(jù)中可能包含了訓(xùn)練數(shù)據(jù)中未曾出現(xiàn)的活動(dòng)。此外,本文對(duì)Petri網(wǎng)的點(diǎn)火規(guī)則進(jìn)行了調(diào)整,即使用新的規(guī)則完成軌跡的重演過程。具體地,改變了使能狀態(tài)的條件,當(dāng)變遷節(jié)點(diǎn)對(duì)應(yīng)的活動(dòng)被執(zhí)行,就認(rèn)為該變遷節(jié)點(diǎn)已經(jīng)是使能狀態(tài),而并不需要嚴(yán)格滿足式(1)。隨后將執(zhí)行點(diǎn)火規(guī)則完成庫所中托肯的轉(zhuǎn)移,并得到軌跡在當(dāng)前活動(dòng)執(zhí)行完之后的狀態(tài)(即下一活動(dòng)開始執(zhí)行的行為上下文)。此外,本文允許vlbc和vgbc對(duì)應(yīng)位置的托肯數(shù)量為負(fù)整數(shù)。

算法1行為上下文提取。

輸入: 事件日志L,Petri網(wǎng)PN=;

輸出: Elist//包含行為上下文信息的事件集。

01:As=getStartActivity(PN);Ae=getEndActivity(PN); APN=getActivitySet(PN)

02:Elist=SortEventByStartTime(L); vgbc=zeros(|P|+1)

03:FOREACH event e in ElistDO

04:T=getCurrentTraceByID(e.c)

05: IF e.a in AsDO

06:vlbc=zeros(|P|+1); Spre=Upre(F(e.a)); Spost=Upre(F(e.a))

07: FOREACH place p in SpreDO

08: Ip=getPlaceIndex(p);vlbc[Ip]=vlbc[Ip]+1; vgbc[Ip]=vgbc[Ip]+1

09: e.lbc=vlbc; e.gbc=vgbc; T.lastState=vlbc

10: ENDFOREACH

11: FOREACH place p in SpostDO

12: Ip=getPlaceIndex(p); vlbc[Ip]=vlbc[Ip]+1; T.nextState=vlbc

13:ENDFOREACH

14: ELSE IF e.a in APNDO

15: vlbc=T.nexState; vgbc=vgbc+T.nextState-T.lastState

16: e.lbc=vlbc; e.gbc=vgbc

17: Spre=Upre(F(e.a)) ; Spost=Upre(F(e.a))

18: FOREACH place p in SpreDO

19: Ip=getPlaceIndex(p); vlbc[Ip]=vlbc[Ip]-1;

20: ENDFOREACH

21: FOREACH place p in SpostDO

22: Ip=getPlaceIndex(p); vlbc[Ip]=vlbc[Ip]+1;

23: ENDFOREACH

24: T.lastState=T.nextState; T.nextState=vlbc

25: ELSE DO

26: vlbc=T.nextState; vgbc=vgbc+T.nextState-T.lastState

27: e.lbc=vlbc; e.gbc=vgbc; vlbc[|P|+1]=vlbc[|P|+1]+1

28: T.lastState=T.nextState; T.nextState=vlbc

29: ENDIF

30: IF e.a in AeDO

31: vgbc=vgbc-T.lastState

32: ENDIF

33:ENDFOREACH

34:RETURN Elist

依次遍歷Elist中的每個(gè)事件并根據(jù)事件的實(shí)例ID屬性找到其所屬的軌跡T。然后對(duì)Elist中的每個(gè)事件執(zhí)行以下迭代過程:對(duì)當(dāng)前事件執(zhí)行的活動(dòng)進(jìn)行判斷,并根據(jù)判斷結(jié)果執(zhí)行不同的操作。

最后,迭代結(jié)束,返回包含行為上下文屬性的事件集Elist。

3.2.2 數(shù)據(jù)上下文

由于行為上下文僅從控制流視角觀察當(dāng)前實(shí)例的執(zhí)行,而事件日志中還記錄了許多其他的信息,這些信息也可以為異常檢測提供重要指示。例如時(shí)間屬性可以幫助相關(guān)人員檢測超時(shí)異常、資源屬性可以幫助相關(guān)人員檢測非法執(zhí)行異常等。

本文提出的數(shù)據(jù)上下文主要包括時(shí)間上下文和屬性上下文。通常事件的時(shí)間屬性僅提供一個(gè)時(shí)間戳,因此本文對(duì)活動(dòng)發(fā)生的時(shí)間戳進(jìn)行了分析和處理,使其時(shí)間信息更加豐富,得到當(dāng)前執(zhí)行活動(dòng)的時(shí)間上下文e.tcv=[h,m,d,weekday,tsct,td]。其中:h,m,d,weekday分別表示該時(shí)間戳對(duì)應(yīng)的小時(shí)、月份、天以及星期的信息;tsct表示當(dāng)前時(shí)間戳距該實(shí)例開始時(shí)間戳的時(shí)間間隔,其計(jì)算需要當(dāng)前實(shí)例第一個(gè)執(zhí)行活動(dòng)的開始時(shí)間戳;td表示當(dāng)前時(shí)間戳距當(dāng)天凌晨的時(shí)間間隔。對(duì)于事件的其余屬性,如常見的活動(dòng)名、資源等,根據(jù)其屬性值是否為數(shù)值劃分為類別屬性和數(shù)值屬性。其中類別屬性使用one-hot編碼技術(shù)對(duì)其進(jìn)行編碼進(jìn)一步轉(zhuǎn)換為由0和1構(gòu)成的向量,并與數(shù)值屬性構(gòu)成的向量合并得到屬性上下文e.dcv。

3.3 模型訓(xùn)練階段

為便于模型訓(xùn)練,需要對(duì)日志數(shù)據(jù)進(jìn)行相應(yīng)的編碼。對(duì)于日志中的每個(gè)事件,使用一個(gè)向量來表示其完整的上下文信息,該向量由上一階段獲得的e.lbc(局部行為上下文)、,e.gbc(全局行為上下文)、e.tcv(時(shí)間上下文)、e.dcv(屬性上下文)共4個(gè)向量級(jí)聯(lián)而成。相應(yīng)地,日志中的每條(前綴)軌跡都由一個(gè)二維矩陣表示,其中軌跡矩陣的每一行均由其擁有的事件所對(duì)應(yīng)的事件向量構(gòu)成。此外,由于(前綴)軌跡的長度各異,將統(tǒng)一設(shè)置長度來限制軌跡矩陣的行數(shù)(通常使用最長的軌跡的長度)。對(duì)于短的軌跡,本文使用僅包含0的事件向量對(duì)其進(jìn)行填充,這些0數(shù)據(jù)將在模型訓(xùn)練的過程中被忽略。由于本文使用的是監(jiān)督學(xué)習(xí)方法,這意味著需要對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行標(biāo)記。對(duì)于訓(xùn)練數(shù)據(jù)中的每個(gè)(前綴)軌跡矩陣,其3個(gè)標(biāo)簽分別對(duì)應(yīng)行為異常、時(shí)間異常以及屬性異常。訓(xùn)練數(shù)據(jù)集可以表示如下:

D={(xtr1,[lb1,lt1,la1]),…,(xtrn,[lbn,ltn,lan])|n∈}。

(2)

式中:xtri是第i條軌跡對(duì)應(yīng)的軌跡矩陣;lbi,lti,lai∈(0,1)是其對(duì)應(yīng)的異常標(biāo)簽(即行為異常、時(shí)間異常和屬性異常),若lbi,lti,lai的值為1則表明當(dāng)前軌跡擁有此類異常,若lbi,lti,lai的值為0則說明沒有此類異常。這些訓(xùn)練數(shù)據(jù)將用于擬合一個(gè)最終的異常檢測模型,當(dāng)有新的輸入信息輸入該異常檢測模型時(shí),將輸出其異常檢測結(jié)果。

本文使用LSTM構(gòu)建異常檢測模型,包含兩種架構(gòu)方式:第一種架構(gòu)是分別單獨(dú)訓(xùn)練這3種異常的檢測模型;第二種架構(gòu)是則是讓這3個(gè)異常檢測模型共享隱藏層,但擁有各自獨(dú)立的輸出層。如圖4所示,單一模型和共享模型的輸入均是上文提到的軌跡矩陣,其包含當(dāng)前執(zhí)行軌跡的上下文信息,且所有模型的隱藏層都由多個(gè)LSTM單元堆疊構(gòu)成。圖4中flb、flt和fla分別對(duì)應(yīng)3類異常結(jié)果的輸出,flb用于行為異常檢測,flt用于時(shí)間異常檢測,fla用于屬性異常檢測。若輸出結(jié)果為1,表示當(dāng)前執(zhí)行出現(xiàn)了該類異常;若輸出結(jié)果為0,表示當(dāng)前執(zhí)行過程中不存在該類異常情況。本文將分別嘗試這兩種架構(gòu)方式。此外,為解決訓(xùn)練集中類別樣本不平衡的問題,本文采用文獻(xiàn)[17]中的方法,使用加權(quán)交叉熵函數(shù)作為模型的損失函數(shù)。

3.4 異常檢測階段

在異常檢測階段,首先需要對(duì)待檢測的軌跡進(jìn)行上下文提取,然后將其編碼為相應(yīng)的數(shù)據(jù)形式并輸入到由第三階段訓(xùn)練得到的異常檢測模型中。最后,檢測模型的輸出結(jié)果將被發(fā)送給相關(guān)人員用于決策,同時(shí)最終的判決結(jié)果和當(dāng)前軌跡數(shù)據(jù)將被保存下來用于檢測模型的增量更新,以提高檢測模型的準(zhǔn)確性。

4 實(shí)驗(yàn)分析

為驗(yàn)證本文提出的基于上下文感知的多角度業(yè)務(wù)流程在線異常檢測方法的效果,本章將使用真實(shí)日志進(jìn)行實(shí)驗(yàn),并對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析和評(píng)估。為驗(yàn)證本文提出方法的有效性,本文選擇常用的4個(gè)指標(biāo):準(zhǔn)確率、精確率、召回率以及F1分?jǐn)?shù)來衡量檢測的性能。

4.1 實(shí)驗(yàn)設(shè)置

本文實(shí)驗(yàn)配置如下:操作系統(tǒng):Ubuntu 18.04;處理器:英特爾?酷睿 i9-7900X (3.30GHz,64GB,10核);GPU: GeForce GTX 1080 Ti;TensorFlow版本:1.15.0;Keras版本:2.2.4。對(duì)于LSTM模型訓(xùn)練中的超參選擇使用的是隨機(jī)搜索法[18],各個(gè)參數(shù)的選擇范圍如表1所示。

4.2 數(shù)據(jù)集

本文選取4個(gè)真實(shí)的業(yè)務(wù)流程的歷史日志作為驗(yàn)證實(shí)驗(yàn)的數(shù)據(jù)集(來源于4TU Centre for Research Data(https://data.4tu.nl/repository))。4個(gè)數(shù)據(jù)集的統(tǒng)計(jì)信息如表2所示,相關(guān)介紹如下:

(1)Helpdesk。該數(shù)據(jù)集來源于意大利某軟件公司服務(wù)臺(tái)的票務(wù)管理流程。

(2)BPIC2012。該數(shù)據(jù)集來源于荷蘭某財(cái)政機(jī)構(gòu),記錄了申請貸款業(yè)務(wù)的流程的相關(guān)信息。它是3個(gè)相互交織的子流程的合并,因而該日志又可以進(jìn)一步分為3個(gè)日志BPIC2012_A,BPIC2012_O,BPIC2012_W。

表1 LSTM模型的超參數(shù)取值范圍

本文利用以上4個(gè)真實(shí)流程的執(zhí)行日志和人為生成的異常來評(píng)估異常檢測性能和本文所提出方法的可行性。由于真實(shí)日志中未提供有關(guān)實(shí)際異常的信息,有必要人為生成異常。為此本文執(zhí)行了以下操作來生成異常數(shù)據(jù)。對(duì)于行為異常執(zhí)行以下兩種突變操作:①活動(dòng)插入:隨機(jī)選擇一個(gè)活動(dòng)插入到當(dāng)前軌跡中;②調(diào)整活動(dòng)執(zhí)行順序:將當(dāng)前軌跡中的一個(gè)活動(dòng)隨機(jī)移動(dòng)至軌跡的另一個(gè)位置。對(duì)于時(shí)間異常執(zhí)行以下兩種標(biāo)記:①活動(dòng)執(zhí)行時(shí)間異常:對(duì)同一類活動(dòng),將對(duì)事件日志中該類活動(dòng)的執(zhí)行時(shí)間進(jìn)行統(tǒng)計(jì),得到其分布圖,并選擇其中執(zhí)行時(shí)間最久的部分事件進(jìn)行異常標(biāo)記;②實(shí)例執(zhí)行時(shí)間異常:首先根據(jù)實(shí)例中執(zhí)行活動(dòng)的種類對(duì)實(shí)例進(jìn)行分類(即擁有相同執(zhí)行活動(dòng)集合的實(shí)例將被劃分為同一類),然后分別統(tǒng)計(jì)出每一類中執(zhí)行時(shí)間最久的部分實(shí)例進(jìn)行異常標(biāo)記。對(duì)于屬性異常我們從日志中隨機(jī)選擇事件并對(duì)其執(zhí)行資源進(jìn)行替換,新的執(zhí)行資源在原有日志中從未執(zhí)行過該類活動(dòng)。本文對(duì)每個(gè)數(shù)據(jù)集使用上述異常生成方法人工生成異常,每類異常的占比為20%,其中某一實(shí)例中可能同時(shí)包含多種異常。

表2 數(shù)據(jù)集信息統(tǒng)計(jì)表

4.3 結(jié)果分析

為驗(yàn)證兩種LSTM異常檢測模型架構(gòu)的性能,對(duì)兩種模型架構(gòu)方案的檢測結(jié)果進(jìn)行了對(duì)比。SingleM表示第一種模型架構(gòu)方案(單一模型),ShareM表示第二種模型架構(gòu)方案(共享模型)。此外,為驗(yàn)證本文提出的基于重演提取的行為上下文對(duì)檢測結(jié)果的影響,本文為訓(xùn)練模型分別生成了兩類數(shù)據(jù)樣本。其中第一類樣本(withBC)包含本文提出的行為上下文信息和數(shù)據(jù)上下文信息,而第二類樣本(withoutBC)僅包含數(shù)據(jù)上下文(以往的研究工作只使用數(shù)據(jù)上下文信息)。實(shí)驗(yàn)結(jié)果如圖5所示。對(duì)于兩種模型架構(gòu)方案,由圖可見,共享模型(shareM)在大部分情況下檢測效果比起單一模型(sirgleM)的檢測效果略好,這是因?yàn)橥ㄟ^共享隱藏層,可以讓模型學(xué)習(xí)到3類異常之間的一些內(nèi)部聯(lián)系。此外,由圖5可以看到,加入本文提出的行為上下文信息(withBC)后,3類異常檢測精度均有不同程度的提高,這證明了本文提出的基于重演技術(shù)的行為上下文提取對(duì)異常檢測十分有效。具體地,因?yàn)榛谥匮莸姆椒ń柚鶳etri網(wǎng)的狀態(tài)來表征實(shí)例執(zhí)行時(shí)的上下文信息對(duì)日志中復(fù)雜的行為結(jié)構(gòu)(如并行結(jié)構(gòu))有很好的表現(xiàn)能力,所以能為行為異常的檢測提供更多精確的信息。對(duì)于時(shí)間異常,行為上下文的加入也能提高其精度,因?yàn)槿中袨樯舷挛哪茉谝欢ǔ潭壬戏从吵霎?dāng)前流程的工作負(fù)載,而在當(dāng)前流程的工作負(fù)載越大時(shí)出現(xiàn)時(shí)間異常的概率也越大。屬性異常的檢測效果在加入行為上下文之后也得到了較好的提升,這是由于屬性的異常與其對(duì)應(yīng)的活動(dòng)關(guān)系密切,活動(dòng)執(zhí)行的上下文信息能在某種程度上反映活動(dòng)的類型。綜合實(shí)驗(yàn)結(jié)果來看,時(shí)間異常檢測在3類異常檢測中表現(xiàn)效果最差,這是由于本方法輸入數(shù)據(jù)中時(shí)間相關(guān)信息總體不夠豐富,此外不同活動(dòng)的持續(xù)時(shí)間過于分散也導(dǎo)致其精度數(shù)據(jù)變化不明顯。

另外,由于現(xiàn)有的異常檢測方法類型單一,且異常劃分方法各異,無法將其與本文的異常檢測方法展開比較,因此本文選用通用的分類模型支持向量機(jī)(Support Vector Machines, SVM)[12],KNN[19]和決策樹(Decision Tree,DT)[20]作為對(duì)比算法來進(jìn)一步證明本文提出方法的有效性。在本次對(duì)比實(shí)驗(yàn)中,選擇上一輪實(shí)驗(yàn)中(即圖5中)效果最佳的檢測模型,即包含行為上下文信息的共享模型ShareM(withBC)進(jìn)一步與SVM、KNN、DT三種算法進(jìn)行比較。此外,本次僅使用兩個(gè)重要的指標(biāo)召回率和F1分?jǐn)?shù)作為衡量指標(biāo)。其中召回率衡量在全部異常案例中被檢測到的異常案例所占的比例,而F1分?jǐn)?shù)則綜合平衡準(zhǔn)確性和召回率兩個(gè)指標(biāo)。實(shí)驗(yàn)結(jié)果如表3所示,其中最佳結(jié)果以粗體標(biāo)記。從表中可以看出,本文方法在F1分?jǐn)?shù)上均取得最好效果。這是因?yàn)長STM可以學(xué)習(xí)同一實(shí)例中活動(dòng)之間的遠(yuǎn)程依賴關(guān)系,并保留之前執(zhí)行的重要信息,從而充分利用上下文信息進(jìn)行異常判斷。在召回率上,本文方法對(duì)行為異常的檢測均取得了最佳的效果,這是由于本文方法利用了重演技術(shù)提取的行為上下文,使得檢測模型得到的信息更加全面。而在時(shí)間異常和屬性異常的檢測上,本文方法僅在大部分?jǐn)?shù)據(jù)集上取得了最優(yōu)效果。本文方法未在這兩類異常的檢測上取得最佳效果,其原因是屬性異常和時(shí)間異常都屬于點(diǎn)異常,它們與實(shí)例中執(zhí)行活動(dòng)的相關(guān)屬性緊密相關(guān),而過長的執(zhí)行軌跡可能導(dǎo)致一部分重要信息被忽視,進(jìn)而影響檢測結(jié)果。

表3 異常檢測結(jié)果對(duì)比表

5 結(jié)束語

針對(duì)流程執(zhí)行過程中的異常檢測問題,本文提出一種基于上下文感知的多角度在線異常檢測方法。該方法利用重演技術(shù)捕獲當(dāng)前實(shí)例執(zhí)行的行為上下文信息,并將其與事件的數(shù)據(jù)上下文信息結(jié)合輸入神經(jīng)網(wǎng)絡(luò)模型中來實(shí)現(xiàn)對(duì)當(dāng)前正在執(zhí)行實(shí)例的異常情況的檢測。此外,為了幫助相關(guān)人員更好地理解異常發(fā)生的原因,本文將異常情況細(xì)化為3類異常,即行為異常、時(shí)間異常和屬性異常。最后,采用真實(shí)日志對(duì)算法進(jìn)行仿真實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明本文提出的方法在召回率上比SVM、KNN和DT分別提高了18.5%、19.8%和8.4%;在F1分?jǐn)?shù)上分別提高了15.9%、25.4%和8.4%。

在未來的工作中,將嘗試把復(fù)雜的人力資源因素(如員工的工作負(fù)載、員工的技能熟練度、員工的搭配等)作為上下文信息融入檢測模型。此外,還考慮實(shí)現(xiàn)異常情況的可視化分析,并對(duì)流程異常的風(fēng)險(xiǎn)等級(jí)展開更細(xì)致的評(píng)定。

猜你喜歡
日志實(shí)例軌跡
一名老黨員的工作日志
扶貧日志
心聲歌刊(2020年4期)2020-09-07 06:37:14
軌跡
軌跡
軌跡
游學(xué)日志
進(jìn)化的軌跡(一)——進(jìn)化,無盡的適應(yīng)
中國三峽(2017年2期)2017-06-09 08:15:29
完形填空Ⅱ
完形填空Ⅰ
一種基于粗集和SVM的Web日志挖掘模型
浦县| 江都市| 通江县| 甘谷县| 邵阳县| 天镇县| 宁南县| 江都市| 德格县| 屯留县| 万源市| 都匀市| 布尔津县| 于都县| 通江县| 威远县| 烟台市| 鄂伦春自治旗| 永胜县| 平塘县| 博湖县| 阿瓦提县| 子长县| 阳东县| 宁国市| 博野县| 自贡市| 黑山县| 夏邑县| 隆德县| 胶南市| 义乌市| 综艺| 姜堰市| 肇庆市| 临洮县| 泗洪县| 佛山市| 南京市| 苗栗县| 汝南县|