孫笑笑,侯文杰,沈滬軍,應鈺柯,俞東進+
(1.杭州電子科技大學 計算機學院,浙江 杭州 310018;2.復雜系統(tǒng)建模與仿真教育部重點實驗室,浙江 杭州 310018)
隨著業(yè)務流程的日益復雜化,傳統(tǒng)嚴格約束的結構化業(yè)務流程管理方法逐漸無法應對一些復雜的、任務執(zhí)行需要依賴人力決策的應用場景,如醫(yī)院診斷流程、保險理賠流程等[1],為此部分企業(yè)啟用了約束較為寬松的柔性業(yè)務流程管理技術來應對這類知識密集型的業(yè)務。柔性業(yè)務流程管理中的限制相對寬松,確保了業(yè)務流程管理系統(tǒng)的靈活性,但同時也導致流程執(zhí)行風險的增加,給業(yè)務流程的目標實現(xiàn)帶來更多風險[2]。通過異常檢測技術[3-4]可以有效檢測流程執(zhí)行中的異常,幫助相關人員及早發(fā)現(xiàn)潛在的執(zhí)行風險,進而采取相應的措施,對業(yè)務流程管理具有重要意義。
近年來,業(yè)務流程管理的重心不再局限于對事件日志進行線下分析,而更加關注如何為業(yè)務流程的執(zhí)行提供在線支持。但對正在執(zhí)行的流程實例進行在線異常檢測并非易事,需要從多個流程角度進行考慮,例如控制流角度[5-7](當前實例中活動的執(zhí)行順序是否正常)、時間角度[8](活動的執(zhí)行時間是否異常,流程實例的總執(zhí)行時間是否超過預期等)等。目前,大多數(shù)異常檢測的方法多從單一視角開展檢測,存在異常檢測不全面的問題。此外,大部分現(xiàn)有方法結果僅簡單報告當前實例的執(zhí)行是否異常,缺乏足夠的解釋信息幫助相關人員了解異常發(fā)生原因。
針對以上問題,本文提出一種基于上下文感知的多角度業(yè)務流程在線異常檢測方法。為了讓相關人員詳細了解當前異常發(fā)生的原因,本文將業(yè)務流程中的異常情況分為行為異常、時間異常和屬性異常3類。其中:行為異常從控制流視角出發(fā),主要關注活動執(zhí)行順序的正確性,如流程執(zhí)行過程中由于某個錯誤的操作而導致活動被重復執(zhí)行;時間異常從時間視角出發(fā),主要關注活動的持續(xù)時間以及實例總的執(zhí)行時間是否合理,如當活動執(zhí)行的持續(xù)時間是平時的幾倍或實例的總執(zhí)行時間超過預期等;屬性異常從實例的其他屬性值出發(fā),主要關注屬性狀態(tài)是否正常,如從資源屬性上看,若活動a被從未執(zhí)行過它的資源r執(zhí)行,這就屬于偏離原有預設的行為,將被視為屬性異常情況。此外,為了更好地模擬當前實例的真實執(zhí)行環(huán)境,本文借助重演技術從事件日志中捕獲了當前實例執(zhí)行的行為上下文和數(shù)據(jù)上下文,并將其與深度學習方法相結合,建立了實時異常檢測模型,有效提高了異常檢測的性能。
傳統(tǒng)的業(yè)務流程異常檢測通常借助一致性檢查技術[5-7]來實現(xiàn),即通過將日志中記錄的執(zhí)行軌跡與標準的參考流程模型進行對齊,進而檢測是否存在異常。該類方法需要借助一個標準的參考流程模型,用來表征流程中全部的正常執(zhí)行情況。如果不存在標準模型,則需要借助流程發(fā)現(xiàn)技術從事件日志中挖掘流程模型,但因為真實應用場景下的日志中通常包含異常執(zhí)行信息,所以挖掘得到的模型并不完全標準,這限制了該類方法的應用。BEZERRA等[9]提出3種改進的異常檢測方法:閾值算法、迭代算法和采樣算法。其中:閾值算法通過設置一個異常閾值,并將一致性低于閾值的軌跡歸為異常軌跡來實現(xiàn)異常檢測;迭代算法則通過多次迭代并在每次迭代中刪除一致性最低的軌跡來達到過濾異常的效果;采樣算法通過采樣來減少日志中包含異常軌跡的可能性,這一方法基于一個樸素的假設即日志中所包含的異常數(shù)據(jù)是少量的,因此通過采樣得到的數(shù)據(jù)可以近似看成是不包含異常的,最后通過從采樣日志中挖掘參考模型進行下一步的一致性檢查。但以上3種方法都需要人為設置相關參數(shù),因此方法的通用性不強。此外,一致性檢查技術大都只能從控制流的角度觀察異常,其目標是確保流程的執(zhí)行沒有偏離,即流程中活動的執(zhí)行順序沒有出現(xiàn)異常,而忽略了存儲在日志中大量的其他相關數(shù)據(jù),這些數(shù)據(jù)可能存在某些不易發(fā)現(xiàn)的潛在風險。
不同于上述方法,ROGGE-SOLTI等[8]提出一種基于貝葉斯模型的異常檢測方法,但該方法關注活動執(zhí)行時間的異常檢測,并未考慮流程執(zhí)行中可能出現(xiàn)的其他異常。MANNHARDT等[10]提出一種利用多種成本函數(shù)實現(xiàn)的多角度一致性檢查技術,可以檢測活動執(zhí)行順序和活動部分屬性的異常情況,但該方法需要借助一個標準的參考模型來實現(xiàn)異常檢測。NGUYEN等[11]分別比較了使用決策樹、K最近鄰(K-Nearest Neighbor,KNN)和神經(jīng)網(wǎng)絡3種方法來檢測異常的精度,但其效果衡量指標只有一種,實驗結果并不全面。對于其他領域的異常檢測工作,PIMENTEL等[12]對近年來提出的異常檢測方法進行了詳細的介紹和比較,并將其分為5類方法:基于概率論的檢測方法、基于距離的檢測方法、基于重構的檢測方法、基于領域的檢測方法和基于信息論的檢測方法。其中:基于概率論的檢測方法是基于對數(shù)據(jù)生成概率密度函數(shù)的估計;基于距離的檢測方法包括聚類或最近鄰方法;基于重構的檢測方法可以在沒有先驗假設的情況下對數(shù)據(jù)分布進行建模,其思想是訓練一個能夠重建正常行為但不能重建異常行為的模型;基于領域的檢測方法在不依賴于訓練集中數(shù)據(jù)分布的屬性的情況下,僅使用最接近的數(shù)據(jù)來確定新穎性邊界的位置;基于信息論的檢測方法一般會假設數(shù)據(jù)的潛在分布,基于信息論的新穎性檢測方法往往要用一個敏感的度量來檢測出數(shù)據(jù)集中新點的影響,如何選取信息理論測量方法是該類方法的主要缺點。
事件日志是由軌跡組成的一個集合,其中每條軌跡代表業(yè)務流程的一次執(zhí)行,每條軌跡又由多個事件構成,每個事件記錄流程執(zhí)行某一活動的全部信息。業(yè)務流程事件日志中的相關概念的形式化定義如下:
定義1事件。 事件是事件日志中的最小單位,通常使用元組e=(a,caseID,eventID,ts,te,r,attr1,…,attrm)表示,其中:a為該事件對應的活動屬性,caseId為該事件所屬實例的id屬性,eventID為事件id屬性,ts為事件的開始時間戳屬性,te為事件的結束時間戳屬性,r是事件的執(zhí)行資源屬性,attr1,…,attrm為事件所擁有的一些額外屬性,這些屬性通常隨著流程的不同有所區(qū)別。日志中的全部事件構成事件集E。
定義3前綴軌跡。 前綴軌跡是流程軌跡σ=
Petri網(wǎng)是二部圖的一個子類,由庫所和變遷兩類節(jié)點組成。其中:庫所節(jié)點用圓圈表示,變遷節(jié)點用矩形表示,兩種節(jié)點之間使用有向弧連接。
定義5輸入集合,輸出集合。 對于PN中的任意節(jié)點o(變遷節(jié)點或庫所節(jié)點),使用Upost(o)={j|(o,j)∈Arc}來表示其輸出節(jié)點集合,使用Upre(o)={j|(j,o)∈Arc}來表示其輸入節(jié)點集合。其中:庫所節(jié)點的輸入和輸出集合中只包含變遷節(jié)點,變遷節(jié)點的輸入和輸出集合中只包含庫所節(jié)點。
定義6使能狀態(tài),點火規(guī)則。 如果一個變遷滿足其輸入集合中的庫所均含有至少一個托肯,則該變遷節(jié)點處于使能狀態(tài),公式如下:
?pj∈Upre(ti),m(pj)≥1#。
(1)
處于使能狀態(tài)的變遷可以被觸發(fā),觸發(fā)后該變遷的輸入集合中所有庫所的托肯數(shù)量減一,輸出集合中所有庫所的托肯數(shù)量加一,該規(guī)則即點火規(guī)則。
作為循環(huán)神經(jīng)網(wǎng)絡[13](Recurrent Neural Networks,RNN)的一種變體,長短期記憶網(wǎng)絡[14](Long Short-Term Memory network , LSTM)成功地克服了RNN存在的部分缺陷,被廣泛應用于語音識別、圖片描述、自然語言處理等領域。如圖1所示,在t時刻,LSTM單元的輸入有3個:當前時刻的輸入值xt、上一時刻LSTM單元的輸出值ht-1以及上一時刻的單元狀態(tài)Ct-1;LSTM單元的輸出有兩個:當前時刻LSTM單元輸出值ht和當前時刻的單元狀態(tài)Ct。LSTM之所以能克服遠距離依賴是其利用3個門實現(xiàn)了對長期狀態(tài)的控制。其中,遺忘門(forget gate)決定了上一時刻的單元狀態(tài)將有多少保留到當前時刻;輸入門(input gate)決定了當前時刻輸入中將有多少有用信息被保存到單元狀態(tài)中;輸出門(output gate)用來控制單元狀態(tài)中有多少將被輸出作為當前的輸出值。通過這3個門控,遠距離的重要信息將被保存下來并作用到當前的輸出值運算中。
本文提出一種基于上下文感知的多角度異常檢測方法(Multi-perspective online Anomaly Detection method based on Context awareness,MADC),利用流程發(fā)現(xiàn)、軌跡重演、深度學習等相關技術得到一個最終的檢測模型,實現(xiàn)對行為異常、時間異常和屬性異常3類異常的在線檢測。MADC的整體框架如圖2所示,主要包括4個階段:預處理階段、上下文提取階段、模型訓練階段和異常檢測階段。下面對每個階段進行詳細闡述。
在預處理階段,事件日志將被劃分為訓練集和測試集。本文將日志中發(fā)生時間較早的80%案例數(shù)據(jù)選為訓練集,剩余的20%案例數(shù)據(jù)選為測試集,值得注意的是訓練集中是包含異常執(zhí)行案例的。
預處理階段首先對訓練集使用過程發(fā)現(xiàn)技術Split Miner[15]挖掘出用Petri網(wǎng)表示的流程模型。Split Miner是近年來新提出的一種流程發(fā)現(xiàn)算法,可以利用事件日志自動挖掘出完備的Petri網(wǎng)模型來表征業(yè)務流程。Split Miner相較現(xiàn)有的流程發(fā)現(xiàn)技術在性能上有較大的提升,其操作簡單、執(zhí)行時間快,是目前從事件日志中自動獲取具備較高適應性和精度的流程模型的最佳算法之一[16]。預處理階段獲得的Petri網(wǎng)模型將在后面的階段被使用。
在上下文提取階段,本文對日志中的上下文進行了初步細化,大體劃分為兩類:
(1)行為上下文,它考慮的是流程中活動執(zhí)行順序的上下文信息,即從控制流的視角觀察到的當前活動執(zhí)行的上下文信息。本文中行為上下文又包括局部行為上下文和全局行為上下文,其中局部行為上下文用來表示實例當前的狀態(tài),全局上下文用來表示流程當前的執(zhí)行狀態(tài)。
(2)數(shù)據(jù)上下文,它囊括了所有非控制流視角觀察到的活動上下文信息,主要通過日志中的事件屬性獲取得到。數(shù)據(jù)上下文有效地彌補了行為上下文信息的單一性,本文主要考慮從組織視角和時間視角觀察到的數(shù)據(jù)上下文信息。
3.2.1 行為上下文
行為上下文的提取主要借助于第一階段獲得的Petri網(wǎng)模型結合軌跡重演方法來實現(xiàn)。具體地,首先使用兩個長度為(|P|+1)的向量vlbc和vgbc分別表示局部行為上下文和全局行為上下文。其中向量vlbc和vgbc中的第i位對應于PN中第i個庫所中托肯的數(shù)量分布情況。不同的是vlbc表示的是單個實例獨立執(zhí)行時托肯在PN中的分布情況,而vgbc表示當前流程中所有一同執(zhí)行的實例所產(chǎn)生的托肯分布情況。|P|+1位是用于接收未知活動執(zhí)行產(chǎn)生的托肯,因為測試數(shù)據(jù)中可能包含了訓練數(shù)據(jù)中未曾出現(xiàn)的活動。此外,本文對Petri網(wǎng)的點火規(guī)則進行了調(diào)整,即使用新的規(guī)則完成軌跡的重演過程。具體地,改變了使能狀態(tài)的條件,當變遷節(jié)點對應的活動被執(zhí)行,就認為該變遷節(jié)點已經(jīng)是使能狀態(tài),而并不需要嚴格滿足式(1)。隨后將執(zhí)行點火規(guī)則完成庫所中托肯的轉移,并得到軌跡在當前活動執(zhí)行完之后的狀態(tài)(即下一活動開始執(zhí)行的行為上下文)。此外,本文允許vlbc和vgbc對應位置的托肯數(shù)量為負整數(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中的每個事件并根據(jù)事件的實例ID屬性找到其所屬的軌跡T。然后對Elist中的每個事件執(zhí)行以下迭代過程:對當前事件執(zhí)行的活動進行判斷,并根據(jù)判斷結果執(zhí)行不同的操作。
最后,迭代結束,返回包含行為上下文屬性的事件集Elist。
3.2.2 數(shù)據(jù)上下文
由于行為上下文僅從控制流視角觀察當前實例的執(zhí)行,而事件日志中還記錄了許多其他的信息,這些信息也可以為異常檢測提供重要指示。例如時間屬性可以幫助相關人員檢測超時異常、資源屬性可以幫助相關人員檢測非法執(zhí)行異常等。
本文提出的數(shù)據(jù)上下文主要包括時間上下文和屬性上下文。通常事件的時間屬性僅提供一個時間戳,因此本文對活動發(fā)生的時間戳進行了分析和處理,使其時間信息更加豐富,得到當前執(zhí)行活動的時間上下文e.tcv=[h,m,d,weekday,tsct,td]。其中:h,m,d,weekday分別表示該時間戳對應的小時、月份、天以及星期的信息;tsct表示當前時間戳距該實例開始時間戳的時間間隔,其計算需要當前實例第一個執(zhí)行活動的開始時間戳;td表示當前時間戳距當天凌晨的時間間隔。對于事件的其余屬性,如常見的活動名、資源等,根據(jù)其屬性值是否為數(shù)值劃分為類別屬性和數(shù)值屬性。其中類別屬性使用one-hot編碼技術對其進行編碼進一步轉換為由0和1構成的向量,并與數(shù)值屬性構成的向量合并得到屬性上下文e.dcv。
為便于模型訓練,需要對日志數(shù)據(jù)進行相應的編碼。對于日志中的每個事件,使用一個向量來表示其完整的上下文信息,該向量由上一階段獲得的e.lbc(局部行為上下文)、,e.gbc(全局行為上下文)、e.tcv(時間上下文)、e.dcv(屬性上下文)共4個向量級聯(lián)而成。相應地,日志中的每條(前綴)軌跡都由一個二維矩陣表示,其中軌跡矩陣的每一行均由其擁有的事件所對應的事件向量構成。此外,由于(前綴)軌跡的長度各異,將統(tǒng)一設置長度來限制軌跡矩陣的行數(shù)(通常使用最長的軌跡的長度)。對于短的軌跡,本文使用僅包含0的事件向量對其進行填充,這些0數(shù)據(jù)將在模型訓練的過程中被忽略。由于本文使用的是監(jiān)督學習方法,這意味著需要對訓練數(shù)據(jù)進行標記。對于訓練數(shù)據(jù)中的每個(前綴)軌跡矩陣,其3個標簽分別對應行為異常、時間異常以及屬性異常。訓練數(shù)據(jù)集可以表示如下:
D={(xtr1,[lb1,lt1,la1]),…,(xtrn,[lbn,ltn,lan])|n∈}。
(2)
式中:xtri是第i條軌跡對應的軌跡矩陣;lbi,lti,lai∈(0,1)是其對應的異常標簽(即行為異常、時間異常和屬性異常),若lbi,lti,lai的值為1則表明當前軌跡擁有此類異常,若lbi,lti,lai的值為0則說明沒有此類異常。這些訓練數(shù)據(jù)將用于擬合一個最終的異常檢測模型,當有新的輸入信息輸入該異常檢測模型時,將輸出其異常檢測結果。
本文使用LSTM構建異常檢測模型,包含兩種架構方式:第一種架構是分別單獨訓練這3種異常的檢測模型;第二種架構是則是讓這3個異常檢測模型共享隱藏層,但擁有各自獨立的輸出層。如圖4所示,單一模型和共享模型的輸入均是上文提到的軌跡矩陣,其包含當前執(zhí)行軌跡的上下文信息,且所有模型的隱藏層都由多個LSTM單元堆疊構成。圖4中flb、flt和fla分別對應3類異常結果的輸出,flb用于行為異常檢測,flt用于時間異常檢測,fla用于屬性異常檢測。若輸出結果為1,表示當前執(zhí)行出現(xiàn)了該類異常;若輸出結果為0,表示當前執(zhí)行過程中不存在該類異常情況。本文將分別嘗試這兩種架構方式。此外,為解決訓練集中類別樣本不平衡的問題,本文采用文獻[17]中的方法,使用加權交叉熵函數(shù)作為模型的損失函數(shù)。
在異常檢測階段,首先需要對待檢測的軌跡進行上下文提取,然后將其編碼為相應的數(shù)據(jù)形式并輸入到由第三階段訓練得到的異常檢測模型中。最后,檢測模型的輸出結果將被發(fā)送給相關人員用于決策,同時最終的判決結果和當前軌跡數(shù)據(jù)將被保存下來用于檢測模型的增量更新,以提高檢測模型的準確性。
為驗證本文提出的基于上下文感知的多角度業(yè)務流程在線異常檢測方法的效果,本章將使用真實日志進行實驗,并對實驗結果進行分析和評估。為驗證本文提出方法的有效性,本文選擇常用的4個指標:準確率、精確率、召回率以及F1分數(shù)來衡量檢測的性能。
本文實驗配置如下:操作系統(tǒng):Ubuntu 18.04;處理器:英特爾?酷睿 i9-7900X (3.30GHz,64GB,10核);GPU: GeForce GTX 1080 Ti;TensorFlow版本:1.15.0;Keras版本:2.2.4。對于LSTM模型訓練中的超參選擇使用的是隨機搜索法[18],各個參數(shù)的選擇范圍如表1所示。
本文選取4個真實的業(yè)務流程的歷史日志作為驗證實驗的數(shù)據(jù)集(來源于4TU Centre for Research Data(https://data.4tu.nl/repository))。4個數(shù)據(jù)集的統(tǒng)計信息如表2所示,相關介紹如下:
(1)Helpdesk。該數(shù)據(jù)集來源于意大利某軟件公司服務臺的票務管理流程。
(2)BPIC2012。該數(shù)據(jù)集來源于荷蘭某財政機構,記錄了申請貸款業(yè)務的流程的相關信息。它是3個相互交織的子流程的合并,因而該日志又可以進一步分為3個日志BPIC2012_A,BPIC2012_O,BPIC2012_W。
表1 LSTM模型的超參數(shù)取值范圍
本文利用以上4個真實流程的執(zhí)行日志和人為生成的異常來評估異常檢測性能和本文所提出方法的可行性。由于真實日志中未提供有關實際異常的信息,有必要人為生成異常。為此本文執(zhí)行了以下操作來生成異常數(shù)據(jù)。對于行為異常執(zhí)行以下兩種突變操作:①活動插入:隨機選擇一個活動插入到當前軌跡中;②調(diào)整活動執(zhí)行順序:將當前軌跡中的一個活動隨機移動至軌跡的另一個位置。對于時間異常執(zhí)行以下兩種標記:①活動執(zhí)行時間異常:對同一類活動,將對事件日志中該類活動的執(zhí)行時間進行統(tǒng)計,得到其分布圖,并選擇其中執(zhí)行時間最久的部分事件進行異常標記;②實例執(zhí)行時間異常:首先根據(jù)實例中執(zhí)行活動的種類對實例進行分類(即擁有相同執(zhí)行活動集合的實例將被劃分為同一類),然后分別統(tǒng)計出每一類中執(zhí)行時間最久的部分實例進行異常標記。對于屬性異常我們從日志中隨機選擇事件并對其執(zhí)行資源進行替換,新的執(zhí)行資源在原有日志中從未執(zhí)行過該類活動。本文對每個數(shù)據(jù)集使用上述異常生成方法人工生成異常,每類異常的占比為20%,其中某一實例中可能同時包含多種異常。
表2 數(shù)據(jù)集信息統(tǒng)計表
為驗證兩種LSTM異常檢測模型架構的性能,對兩種模型架構方案的檢測結果進行了對比。SingleM表示第一種模型架構方案(單一模型),ShareM表示第二種模型架構方案(共享模型)。此外,為驗證本文提出的基于重演提取的行為上下文對檢測結果的影響,本文為訓練模型分別生成了兩類數(shù)據(jù)樣本。其中第一類樣本(withBC)包含本文提出的行為上下文信息和數(shù)據(jù)上下文信息,而第二類樣本(withoutBC)僅包含數(shù)據(jù)上下文(以往的研究工作只使用數(shù)據(jù)上下文信息)。實驗結果如圖5所示。對于兩種模型架構方案,由圖可見,共享模型(shareM)在大部分情況下檢測效果比起單一模型(sirgleM)的檢測效果略好,這是因為通過共享隱藏層,可以讓模型學習到3類異常之間的一些內(nèi)部聯(lián)系。此外,由圖5可以看到,加入本文提出的行為上下文信息(withBC)后,3類異常檢測精度均有不同程度的提高,這證明了本文提出的基于重演技術的行為上下文提取對異常檢測十分有效。具體地,因為基于重演的方法借助Petri網(wǎng)的狀態(tài)來表征實例執(zhí)行時的上下文信息對日志中復雜的行為結構(如并行結構)有很好的表現(xiàn)能力,所以能為行為異常的檢測提供更多精確的信息。對于時間異常,行為上下文的加入也能提高其精度,因為全局行為上下文能在一定程度上反映出當前流程的工作負載,而在當前流程的工作負載越大時出現(xiàn)時間異常的概率也越大。屬性異常的檢測效果在加入行為上下文之后也得到了較好的提升,這是由于屬性的異常與其對應的活動關系密切,活動執(zhí)行的上下文信息能在某種程度上反映活動的類型。綜合實驗結果來看,時間異常檢測在3類異常檢測中表現(xiàn)效果最差,這是由于本方法輸入數(shù)據(jù)中時間相關信息總體不夠豐富,此外不同活動的持續(xù)時間過于分散也導致其精度數(shù)據(jù)變化不明顯。
另外,由于現(xiàn)有的異常檢測方法類型單一,且異常劃分方法各異,無法將其與本文的異常檢測方法展開比較,因此本文選用通用的分類模型支持向量機(Support Vector Machines, SVM)[12],KNN[19]和決策樹(Decision Tree,DT)[20]作為對比算法來進一步證明本文提出方法的有效性。在本次對比實驗中,選擇上一輪實驗中(即圖5中)效果最佳的檢測模型,即包含行為上下文信息的共享模型ShareM(withBC)進一步與SVM、KNN、DT三種算法進行比較。此外,本次僅使用兩個重要的指標召回率和F1分數(shù)作為衡量指標。其中召回率衡量在全部異常案例中被檢測到的異常案例所占的比例,而F1分數(shù)則綜合平衡準確性和召回率兩個指標。實驗結果如表3所示,其中最佳結果以粗體標記。從表中可以看出,本文方法在F1分數(shù)上均取得最好效果。這是因為LSTM可以學習同一實例中活動之間的遠程依賴關系,并保留之前執(zhí)行的重要信息,從而充分利用上下文信息進行異常判斷。在召回率上,本文方法對行為異常的檢測均取得了最佳的效果,這是由于本文方法利用了重演技術提取的行為上下文,使得檢測模型得到的信息更加全面。而在時間異常和屬性異常的檢測上,本文方法僅在大部分數(shù)據(jù)集上取得了最優(yōu)效果。本文方法未在這兩類異常的檢測上取得最佳效果,其原因是屬性異常和時間異常都屬于點異常,它們與實例中執(zhí)行活動的相關屬性緊密相關,而過長的執(zhí)行軌跡可能導致一部分重要信息被忽視,進而影響檢測結果。
表3 異常檢測結果對比表
針對流程執(zhí)行過程中的異常檢測問題,本文提出一種基于上下文感知的多角度在線異常檢測方法。該方法利用重演技術捕獲當前實例執(zhí)行的行為上下文信息,并將其與事件的數(shù)據(jù)上下文信息結合輸入神經(jīng)網(wǎng)絡模型中來實現(xiàn)對當前正在執(zhí)行實例的異常情況的檢測。此外,為了幫助相關人員更好地理解異常發(fā)生的原因,本文將異常情況細化為3類異常,即行為異常、時間異常和屬性異常。最后,采用真實日志對算法進行仿真實驗,實驗結果表明本文提出的方法在召回率上比SVM、KNN和DT分別提高了18.5%、19.8%和8.4%;在F1分數(shù)上分別提高了15.9%、25.4%和8.4%。
在未來的工作中,將嘗試把復雜的人力資源因素(如員工的工作負載、員工的技能熟練度、員工的搭配等)作為上下文信息融入檢測模型。此外,還考慮實現(xiàn)異常情況的可視化分析,并對流程異常的風險等級展開更細致的評定。