付建平,趙海燕,曹 健,陳慶奎
1(上海市現(xiàn)代光學系統(tǒng)重點實驗室,光學儀器與系統(tǒng)教育部工程研究中心,上海理工大學光電信息與計算機工程學院,上海 200093)
2(上海交通大學 計算機科學與技術系,上海 200030)
近年來,越來越多的企業(yè)組織使用業(yè)務過程管理系統(tǒng)BPMS(Business Process Management System,BPMS)管理和控制他們的業(yè)務過程.然而,由于業(yè)務需求的變動、市場的波動、資源的調度和系統(tǒng)的升級等各種內外因素的變化,業(yè)務過程在執(zhí)行過程中容易出現(xiàn)各種各樣的異常,這些異常會給企業(yè)組織造成巨大的損失.
常見的異常有控制流異常、數(shù)據(jù)異常、時間異常和資源異常等,業(yè)務過程中的控制流視角描述了活動的執(zhí)行順序,包括順序、選擇和并行等,控制流異常是指活動的執(zhí)行順序發(fā)生異常,如活動的替換、插入、跳過、重做、提前、延遲執(zhí)行等[1];數(shù)據(jù)流異常是指由事件的屬性引起的異常,如未授權的用戶非法執(zhí)行了活動;時間異常是指單個活動的持續(xù)時間或整個活動序列的時間發(fā)生了異常,如活動的持續(xù)時間超過了截止時間;資源異常是指執(zhí)行活動的資源發(fā)生了異常,如活動被分配了錯誤的資源等.業(yè)務過程中出現(xiàn)的異常不僅類型多樣,各個視角之間也存在復雜的依賴關系,如控制流異??赡苁怯捎谀硞€活動的持續(xù)時間超過了截止時間,導致該活動的后繼活動發(fā)生了延遲執(zhí)行,此外,活動所依賴的屬性也決定了活動的路由選擇.業(yè)務過程中各個視角之間存在復雜的依賴關系導致業(yè)務過程中出現(xiàn)的異??赡芊浅碗s,因此處理業(yè)務過程中的異常對企業(yè)組織而言是一個巨大的挑戰(zhàn).自動檢測和處理業(yè)務過程中的異常,不僅可以為企業(yè)降低甚至避免重大損失,還可以使業(yè)務過程安全穩(wěn)定高效的運行、優(yōu)化資源的調度方式、提高資源的利用率等.
由于控制流是業(yè)務過程的主干,檢測控制流異常對保障業(yè)務過程的正確執(zhí)行起著關鍵作用,本文重點關注業(yè)務過程中的控制流異常.對于業(yè)務過程中的控制流異常的檢測,目前已有很多相關的檢測方法,這些方法主要存在以下局限性:第1個局限是大部分方法都只適用于離線場景中,即只能在業(yè)務過程執(zhí)行完后再根據(jù)歷史事件日志檢測異常,有可能異常已經發(fā)生并已造成損失,離線場景只能事后分析,而無法避免或減少損失;第2個局限是大部分方法只適用于軌跡較短的業(yè)務過程的場景中,對于很長的軌跡,無法捕捉到具有長期依賴的事件之間的關系,從而無法檢測到具有長期依賴關系的異常事件;第3個局限是大部分方法都只側重于對異常的識別,而忽略了對假陽性的識別,因而無法適用于處理假陽性代價較大的場景中.
本文受目前廣泛應用于機器翻譯中的自注意力機制的啟發(fā),提出了一種基于自注意力機制(Self-attention)與長短期記憶網(wǎng)絡(Long Short TermMemory network,LSTM)相結合的神經網(wǎng)絡模型預測業(yè)務過程中活動序列的下一個活動,其中自注意力用于建?;顒有蛄兄谢顒又g的依賴關系,而LSTM用于編碼活動的位置信息,此外還提出一種計算預測的活動的異常分數(shù)的方法,通過將活動的異常分數(shù)和閾值比較以確定預測的活動中哪些活動可能是正確的活動,再將可能正確的活動與實際發(fā)生的活動進行比較以檢測業(yè)務過程是否發(fā)生控制流異常.本文的預測模型能對軌跡(在本文中亦稱活動序列)很長的過程的活動之間的依賴關系進行建模,在預測模型根據(jù)歷史事件日志訓練好后,本文方法既可用于在線場景中實時檢測異常,也可在離線場景中對歷史事件日志進行事后分析.為了驗證方法檢測異常的性能,實驗中選用了5種典型的baseline算法進行比較.實驗結果表明,所提出的基于LSTM與自注意力機制的業(yè)務過程異常檢測(Business process anomaly detection method based on LSTM and self-attention mechanism,簡稱BPAD-LS)方法能顯著減少假陽性,且有效檢測控制流異常.
本文主要有以下幾個創(chuàng)新點:
1)本文使用LSTM對軌跡中活動的位置進行編碼,該位置編碼方式既適用于軌跡較短的業(yè)務過程,也適用于軌跡較長的業(yè)務過程,并使用自注意力機制建模業(yè)務過程的軌跡中活動之間的依賴關系,相比于使用循環(huán)神經網(wǎng)絡等序列建模方法,自注意力機制的序列建模能力更強,有利于提高活動的預測準確率,從而能有效提高異常活動的檢測性能.
2)本文提出一種計算異常分數(shù)的方法,該方法能有效解決異常檢測時的假陽性問題.實驗表明,相比于實驗中的baseline方法,本文提出的方法能顯著降低異常檢測的假陽性.
3)本文選擇業(yè)務過程異常檢測領域中典型的baseline方法進行實驗對比,并使用真實的事件日志作為實驗數(shù)據(jù),以充分體現(xiàn)本文方法的異常檢測性能.
本節(jié)將介紹目前關于檢測業(yè)務過程中控制流異常的相關研究工作.
根據(jù)檢測業(yè)務過程中的控制流異常時是否需要過程模型,可將檢測方法分為模型感知的方法和模型無關的方法.在過程挖掘[2]領域中,模型感知的方法是指通過過程發(fā)現(xiàn)算法(如Alpha算法[3])從事件日志中挖掘過程模型,然后使用合規(guī)性檢查[2]檢測異常行為.模型無關的方法則是指檢測異常時無需過程模型.
在早期,檢測業(yè)務過程中的控制流異常大多使用模型感知的方法.van der Aalst等人[4]介紹了利用過程挖掘檢測異常的概念,并使用Alpha[3]過程發(fā)現(xiàn)算法從正確的事件日志中挖掘過程模型,以檢測過程實例中的控制流異常.Bezerra 等人[5]使用ProM工具[6]檢測過程感知信息系統(tǒng)PAIS(Process-Aware Information Systems,PAIS)日志中的異常,其主要通過過程模型來檢測異常的軌跡.Rieke 等人[7]通過分析移動支付領域中的業(yè)務過程來檢測異常行為.Rahmawati 等人[8]使用啟發(fā)式挖掘算法分析事件日志并計算活動之間的頻率關系以確定主要的行為及低頻行為,低頻行為被視為異常.模型感知的方法的檢測性能依賴于過程模型的質量,且無法準確地處理假陽性.
模型無關的檢測方法可以分為基于概率統(tǒng)計、基于鄰近度、基于重建和基于信息論等4種類型:
1)基于概率統(tǒng)計的方法:Bezerra 等人[9]基于異常不頻繁出現(xiàn)的假設,提出樸素、閾值、迭代和采樣4種檢測異常軌跡的算法.在文獻[10]中,Bezerra等人[10]再次使用閾值、迭代和采樣方法檢測異常軌跡,檢測的基本原理是若一條軌跡不是過程模型的實例,則需要對適合該軌跡的模型進行結構更改,而異常軌跡對模型需要進行更大的結構修改.Armentano 等人[11]使用變階馬爾可夫模型(Variable Order Markov Models)檢測與預期行為不一致的活動序列.該方法實現(xiàn)起來比較簡單,只能發(fā)現(xiàn)比較明顯的異常,同時會導致假陽性.
2)基于鄰近度的方法:Sureka 等人[12]使用活動標簽將業(yè)務過程的軌跡轉換為字符串序列,使用歸一化的最長公共子序列(Normalized Longest Common Subsequence,NLCS)的相似性度量來計算每對軌跡之間的距離,然后利用K近鄰算法的思想,軌跡的異常分數(shù)被定義為該軌跡與它的第K個最近的軌跡之間的最長公共子序列度量的倒數(shù).Folino 等人[13]也使用聚類算法檢測控制流異常.
3)基于重建的方法:基于重建的方法通過訓練一個可以重建正常行為的模型,再根據(jù)重建的行為與實際行為的偏差來檢測異常行為.自編碼器[14]是一種特定的神經網(wǎng)絡,異常值是自編碼器解碼過程中具有較高重建誤差的值.Nolle 等人[15,16]、Krajsic 等人[17]使用降噪自編碼器[18]DAE(Denoising Autoencoders,DAE)重建軌跡或事件的誤差并基于閾值以識別異常行為.Nolle 等人[19,20]提出了基于GRU(Gated Recurrent Unit,GRU)的循環(huán)神經網(wǎng)絡BINet(Business Intelligence Network,BINet),并從控制流和數(shù)據(jù)流視角通過預測下一個事件及其屬性并基于閾值以檢測軌跡、事件和屬性中的異常.BINet的檢測效果與數(shù)據(jù)集所包含的屬性有較大的關聯(lián),即BINet結構只適合特定的應用場景.
4)基于信息論的方法:基于信息論的方法將與大多數(shù)其他過程實例差異過大的實例視為異常.Ko 等人[1,21]提出了一種新的基于統(tǒng)計杠桿(statisticalleverage)[22]的方法來檢測業(yè)務過程中的控制流異常,該方法考慮到了過程實例可能有不同的軌跡長度.相比于基于重建的方法,基于信息論的方法不需要大量數(shù)據(jù)來訓練模型.
近年來,word2vec[23]編碼方法在業(yè)務過程異常檢測中逐漸受到關注.Tavares 等人[24]、Junior 等人[25]將活動和軌跡分別視為單詞和句子,使用word2vec將軌跡編碼為向量,并結合分類算法將不常見的軌跡編碼視為潛在的異常.Tavares 等人[24]使用隨機森林算法區(qū)分正常和異常軌跡,而Junior 等人[25]則使用單類(One-Class)分類算法OC-SVM[26]和LOF[27].
在上述方法中,文獻[9,10,11,28]中對于控制流異常的檢測,沒有明確區(qū)分活動的異常類型,而只是檢測活動序列的整體執(zhí)行順序是否正常.而在文獻[15,20,24,25]中,并不是將整個軌跡作為檢測對象外,而是針對具體的控制流異常(如活動序列中活動的跳過、插入、重做、提前和延遲等)進行檢測,以促進對異常的分析和理解.本文也將對注入不同類型的異常活動的軌跡作為檢測對象.
本節(jié)將介紹業(yè)務過程事件日志的一些基本概念.
業(yè)務過程管理系統(tǒng)在執(zhí)行時會留下大量的事件日志.這些事件日志記錄了業(yè)務過程的執(zhí)行情況,從事件日志中可提取與過程有關的有價值的信息,如兩個活動之間的等待時間、事件所依賴的資源等.事件日志由過程實例(Case,也稱實例)組成,過程實例由事件(Event)組成,且每個事件僅屬于一個過程實例,過程實例中的事件是有序的,一個過程實例中由事件根據(jù)時間順序組成的有序序列稱為軌跡(Trace),事件則通常由活動及其相關的屬性構成.過程實例和事件通常都有自己的屬性,過程實例中典型的屬性有過程實例編號、過程實例的創(chuàng)建者等,事件中典型的屬性包括活動執(zhí)行的時間、活動所依賴的資源、執(zhí)行活動的成本等.并非所有的事件都具有相同的屬性集,但通常涉及到同一活動的事件都具有相同的屬性集.
為了清晰描述事件日志的相關概念,接下來將使用形式化的符號描述相關重要概念,并使用文獻[29]中的符號.
定義1.事件(Event):設A是活動(Activity)的集合,C是過程實例的集合,T是時間域,D1,…,Dn是與活動相關的屬性,則一個事件e可由一個元組e=(a,c,t,d1,…,dn)表示,其中a∈A,c∈C,t∈T,di∈{Di}且i∈[1,n].
定義2.軌跡(Trace):設πA,πC,πT,πDi分別是將事件e映射為一個活動、過程實例標識符、時間戳和屬性的函數(shù),即πA(e)=a,πC(e)=c,πT(e)=t和πDi(e)=Di.一條軌跡σ即被定義為一個有限的非空的事件序列σ=〈e1,…,en〉,其中|σ|=n(n>0)表示軌跡中事件的數(shù)量.必須注意的是對于軌跡σ中任意的事件ei和事件ej,都必須有πC(eI)=πc(ej),即軌跡中任意兩個事件的過程實例標識符都相同,且對于事件ei和ej事件(其中i 定義3.前綴(Prefix)和后綴(Suffix):設有一條軌跡σ=〈e1,e2,…,en〉,其中|σ|=n表示軌跡σ中的事件數(shù)量.整數(shù)k∈[1,n]表示事件前綴的長度,hdk表示前綴和tlk表示后綴可定義為:hdk(σ)=〈e1,e2,…,ek〉,tlk(σ)=〈e(k+1),…,en〉.由于本文只考慮預測前綴的下一個活動,因此本文也將后綴稱為下一個活動,因此,后綴表示為tlk(σ)=e(k+1). 本節(jié)將首先介紹BPAD-LS方法的總體架構,然后再介紹預測軌跡中下一個活動的神經網(wǎng)絡模型,以及計算活動的異常分數(shù)的方法. BPAD-LS異常檢測方法分為3個階段:數(shù)據(jù)預處理階段、模型訓練階段和異常檢測階段.圖1是BPAD-LS方法的總體框架示意圖. 圖1 BPAD-LS方法的總體框架示意圖 第1階段.數(shù)據(jù)預處理階段.原始的業(yè)務過程事件日志通常是XES(eXtensible Event Stream,可擴展事件流)格式,可以借助pm4py庫(http://pm4py.org/)將XES格式解析成csv格式,并使用Pandas庫(https://pandas.pydata.org/)處理csv數(shù)據(jù),然后將活動序列分割為前綴和后綴,以及編碼為向量,并按一定比例將事件日志分為訓練集和測試集,其中訓練集中只包含正常的軌跡,而測試集中不僅包含正常的軌跡,還包含注入了異?;顒拥能壽E.在5.2小節(jié)中將對數(shù)據(jù)預處理作詳細介紹. 第2階段.模型訓練階段.將已處理好的訓練集輸入到預測模型中,其中活動序列的前綴設為X,將后綴設為Y,即ground-truth. 第3階段.異常檢測階段.異常檢測是基于在第2階段訓練好的預測模型.將測試集的活動序列前綴設為X,將后綴設為Y.預測模型將根據(jù)前綴X通過Softmax激活函數(shù)輸出下一個活動的預測概率,假設事件日志中共有n個活動,則每條前綴的預測結果都有n個概率值,且其和為1.然后根據(jù)預測概率計算每個活動的異常分數(shù),并基于閾值判定可能正確的下一個活動的集合R.若實際發(fā)生的活動Y存在于活動集合R中,則說明活動Y不是異?;顒?,否則是異?;顒?,并以此判定該軌跡是否異常. 對于業(yè)務過程的預測性監(jiān)控問題,已有大量研究,如LSTM[30,31]、CNN[32,33]和GAN[34]等.然而,由于現(xiàn)有的業(yè)務過程的軌跡可能很長,且軌跡中的活動之間存在復雜的依賴關系,這些現(xiàn)有的業(yè)務過程的預測方法難以捕獲活動序列中活動之間的長期依賴關系.LSTM雖然相比于GRU更優(yōu)于序列數(shù)據(jù)的建模,能有效避免梯度消失問題,但其性能會隨著軌跡中活動序列長度的增加而降低.軌跡中可能存在較多的非頻繁的活動,而CNN模型并不能較好地處理非頻繁的活動.這些方法通常使用One-hot編碼方法編碼軌跡,這種編碼方法會忽略軌跡中事件之間的依賴關系.此外,業(yè)務過程中存在著大量的并行結構,這些方法難以對存在復雜依賴關系的序列數(shù)據(jù)進行建模. 在機器翻譯等序列模型領域,相比于使用循環(huán)神經網(wǎng)絡、循環(huán)神經網(wǎng)絡與注意力機制相結合等方法,Vaswani 等人[35]則使用完全基于注意力機制的神經網(wǎng)絡的方法,即自注意力機制.Vaswani 等人[35]提出的Transformer包含多頭自注意力機制、位置前饋網(wǎng)絡、層歸一化和殘差連接等.Vaswani 等人[35]已經證明,自注意力機制能高效地建模自然語言中的語義依賴關系,相比于循環(huán)神經網(wǎng)絡等序列建模方法,自注意力機制的建模能力更強大.本文受此啟發(fā),提出使用自注意力機制和LSTM相結合的預測模型來預測軌跡中的下一個活動名稱,其中自注意力機制用于建模軌跡中活動之間的依賴關系,而LSTM僅用于建模軌跡中活動序列的位置關系,預測模型結構如圖2所示. 圖2 預測模型的結構示意圖 原始的Transformer[35]模型為了解決機器翻譯中的問題,包含編碼器和解碼器兩個部分.Tay 等人[36]總結了Transformer的3種使用模式:1)僅使用編碼器,如用于分類;2)僅使用解碼器,如用于語言建模;3)使用編碼器-解碼器,如機器翻譯.而本文的目的是區(qū)分正常軌跡和異常軌跡,屬于分類問題,因此使用第一種模式,即僅使用編碼器.在這種模式下,通過使用編碼器建模軌跡中活動之間的依賴關系,即可根據(jù)活動序列的前綴預測下一個活動. 在如圖2的模型結構中,軌跡數(shù)據(jù)先經過低維的詞向量編碼后輸入到LSTM中進行位置編碼.然后將位置編碼后的軌跡向量輸入到Transformer中的Encoder塊中,原始的Transformer[35]模型堆疊了6個相同的Encoder塊,而在本文中則使用一個Encoder塊.Encoder塊包含多頭自注意力層和全連接的前饋層,該兩層后面都接著Dropout層以避免過擬合,且都先經過殘差連接后再進行層歸一化.然后將Encoder塊的輸出傳遞到池化操作和全連接層,其中池化操作是使用全局最大池化以聚合特征.最后通過Softmax激活函數(shù)輸出預測概率.由于本文模型的目的是預測下一個活動名稱,模型的輸出是多個活動的預測概率,因此損失函數(shù)使用分類交叉熵損失函數(shù)(categorical cross-entropy loss).接下來將介紹預測模型中重要的模塊. 4.2.1 使用LSTM編碼軌跡中活動的位置信息 在原始的Transformer[35]中的self-attention層無法獲取序列中單詞之間的位置信息,因此需要在將序列數(shù)據(jù)輸入self-attention層之前加上位置信息.Vaswani 等人[35]使用絕對位置編碼方式編碼單詞的位置,即在詞嵌入層的下一層連接單獨的位置編碼層,該層使用不同頻率的正弦和余弦函數(shù)編碼每個單詞的每個維度的固定位置信息: PE(pos,2i)=sin(pos/100002i/dmodel) (1) PE(pos,2i+1)=cos(pos/100002i/dmodel) (2) 其中PE為二維矩陣,其大小與上一層的詞嵌入層的維度相同,因此在后續(xù)詞嵌入層和位置編碼層可以相加.pos表示單詞在句子中的實際位置,dmodel表示詞向量的維度,i表示詞向量的第i個維度.得到了位置信息后,將詞向量與位置編碼信息相加后再輸入到Encoder塊中. Neishi 等人[37]已經證明Transformer中的絕對位置編碼方式對于翻譯較長的句子的性能較低,而使用RNN替換絕對位置編碼方式來編碼長句子中單詞的位置信息(即對經過詞嵌入層后的數(shù)據(jù)再輸入到RNN中進行位置編碼,經此編碼后的數(shù)據(jù)即可輸入到Encoder塊中)能有效提高機器翻譯的性能.在業(yè)務過程中,考慮到軌跡的長度可能很長,如數(shù)據(jù)集Hospital Billing的最長軌跡達217、數(shù)據(jù)集BPIC2019的最長軌跡達990等其他可能具有更長軌跡的數(shù)據(jù)集,為了適應未來可能出現(xiàn)軌跡更長的業(yè)務過程,本文模型將充分利用LSTM能夠通過相對位置信息處理序列數(shù)據(jù)的性質,使用LSTM作為位置編碼器以編碼軌跡中活動的位置關系.如圖2所示,LSTM僅作為編碼軌跡中活動的位置信息的位置編碼器,而不用于建模軌跡中活動之間的依賴關系. (3) hi=LSTM(wvi,hi-1,ci-1) (4) (5) 由于在模型中LSTM僅用于編碼軌跡中活動的位置信息,并未用于建?;顒又g的依賴關系,因此模型并不會隨著軌跡長度的增加而降低性能,反而有利于提高異常檢測的性.為了驗證使用LSTM作為位置編碼器能夠提高異常檢測的性能,在實驗5.6.1小節(jié)中分別將絕對位置編碼方法(原始Transformer[35]模型中的絕對位置編碼)和相對位置編碼方法(LSTM)作為模型的位置編碼器,對嵌入了這兩種位置編碼方式的預測模型在異常檢測的F1-score檢測指標上進行比較. 4.2.2 自注意力(Self-attention)機制 當軌跡數(shù)據(jù)經過Word Embedding層和LSTM層的編碼后,進入self-attention層,然后經過Dropout層、殘差連接和歸一化層后,進入到前饋層(Feed Forward)中.在Transformer塊中,每個位置的活動名稱都有自己的路徑,self-attention層用于捕獲這些不同路徑之間的依賴關系,即軌跡中活動之間的依賴關系. 注意力機制(Attention mechanism)已經成為各種序列建模任務的重要組成部分,注意力機制能夠在不考慮序列中各數(shù)據(jù)元素的距離的情況下,對序列中各數(shù)據(jù)元素之間的依賴關系進行建模[38,39].自注意力(self-attention)是一種通過將一個序列中的不同位置的數(shù)據(jù)元素關聯(lián)起來以計算序列的表示(Representation)的注意力機制,它已經成功地應用到機器閱讀、情感分析和文本蘊含等各種序列表示的場景中[40-42].在自注意力機制中,輸入向量集合表現(xiàn)為使用3種不同的轉換方式分別轉換為3個元素,即查詢(query)、鍵(key)和值(value),因此,將一條軌跡作為輸入,它被處理為這3個元素的集合.結合圖2中模型結構,下面將簡要介紹使用自注意力機制計算活動的注意力分數(shù)的流程. 假設軌跡σ有|σ|=n個活動,活動序列為x=[x1,x2,…,xn],設其下標為i(i=1,2,…,n).下面將通過計算活動序列中第I(2≤I≤N)個位置的活動xI的輸出結果來說明自注意力機制的5步計算步驟. 第1步.首先,活動序列x經過嵌入層和位置編碼后得到編碼向量: ai=Wxi (6) 第2步.利用3個權重矩陣WQ,WK,WV分別與編碼向量ai相乘: qi=WQai,ki=WKai,vi=WVai (7) (8) (9) (10) 對于軌跡中的活動序列,Transformer塊中的self-attention層完全依賴注意力機制來建模序列之間的全局依賴關系,即模型會選擇性地學習軌跡中的重要活動的表示.在計算活動之間的注意力分數(shù)時,若活動之間具有較強的依賴關系和相關性,則其注意力分數(shù)較高,反之較低.這種自注意力機制使預測模型能夠關注軌跡中重要的活動,從而更好地預測前綴的下一個活動. 4.2.3 多頭自注意力機制Multi-Head Self Attention 如圖2模型中的多頭注意力模塊中,為了在不同位置引入具有不同表示子空間的模型,查詢、鍵和值被線性投影了h次.對于每一次投影,縮放點積注意力都是并行執(zhí)行的.相對于自注意力,多頭注意力通過使用多組WQ,WK,WV以獲得每個輸入xi對應的多個輸出headi,即多個注意力分數(shù),然后對多個輸出進行拼接,再通過線性變換得到最終輸出: (11) headi=Attention(qi,ki,vi) (12) MultiHead(Q,K,V)=Concat(headi,…,headh)WO (13) 其中i=[1,2,…,h],WO為神經網(wǎng)絡學習的權重矩陣.最終輸出結果即為每個頭的輸出線性拼接并乘以權重矩陣WO. 預測模型只是根據(jù)軌跡的前綴活動序列通過Softmax激活函數(shù)輸出下一個活動的預測概率向量,而無法確定哪些活動可能是下一個正確的活動.為了確定實際執(zhí)行的活動是否異常,可以通過活動的預測概率向量確定哪些活動可能是下一個正確的活動. 由于業(yè)務過程的執(zhí)行軌跡存在多種情況,例如有3條正確的軌跡σ1=〈a,b,c,d,e,f,g〉、σ2=〈a,b,c,e,f,g〉和σ3=〈a,b,c,f,g〉,從這3條軌跡中可知,前綴活動序列為〈a,b,c〉的下一個正確活動可為d、e或f,若將前綴活動序列〈a,b,c〉輸入到預測模型,假設預測的下一個活動根據(jù)預測概率從高到低依次為〈d,e,f,g,a,b,c〉.若將預測概率最高的活動d作為前綴活動序列〈a,b,c〉的下一個正確活動,而實際執(zhí)行的活動為e或f,則此次異常檢測將發(fā)生假陽性,即未發(fā)生異常的軌跡被檢測為異常的軌跡. 為了減少假陽性,本文提出一種計算異常分數(shù)的方法.假設事件日志L中共有N個活動,則預測模型M根據(jù)軌跡σ的前綴活動序列輸出預測的下一個活動的預測概率向量為V,向量V共有N個概率值且其和為1.將這N個概率值從大到小排序,設排序后的序列為P,其下標為i(i=1,2,…,N),且設定概率值最高對應的活動的異常分數(shù)為0,每個活動的異常分數(shù)為: (14) 其中Pi為序列P中第i個概率值. 計算出預測的每個活動的異常分數(shù)后,再將異常分數(shù)與閾值比較,若此分數(shù)大于閾值,則該活動為異?;顒樱駝t為正確活動.下面將通過一個示例說明異?;顒拥呐卸? 假設某個事件日志中包含N=10個不同的活動,根據(jù)軌跡的前綴,預測的下一個活動的預測概率向量為p= [0.55,0.30,0.07,0.03,0.02,0.01,0.01,0.004,0.003,0.003],對向量p中的10個概率值從大到小排序,并根據(jù)4.3小節(jié)中的公式(14)計算每個活動的異常分數(shù)score: 如圖3所示,橫軸坐標對應的是每個活動的異常分數(shù)score.假設閾值λ=0.5,只有前兩個異常分數(shù)對應的活動是正?;顒樱O正常活動的編號為集合R,若實際執(zhí)行的活動Y存在于集合R中,則表示該軌跡σ是正常(用0表示)的,否則異常(用1表示),設函數(shù)表示活動名稱a及其異常分數(shù)score的映射函數(shù),函數(shù)θ表示根據(jù)實際執(zhí)行的活動Y和正?;顒拥募蟁判定該實際執(zhí)行的活動所屬軌跡是否異常: 圖3 預測模型通過Softmax輸出的下一個活動的預測概率及對應的異常分數(shù) π(a)=score (15) R={a|π(a)≤λ} (16) (17) 本節(jié)將介紹實驗中使用的數(shù)據(jù)集,評估指標以及五種對比方法,并分析實驗結果. 本文實驗數(shù)據(jù)集分為兩部分,如表1所示,前5個數(shù)據(jù)集是為了比較在模型中使用絕對位置編碼和相對位置編碼對異常檢測的F1-score檢測指標的影響,后10個數(shù)據(jù)集是對本文的BPAD-LS方法與對比方法的異常檢測的性能比較(其中Sepsis Cases數(shù)據(jù)集在兩個實驗中均使用).為了充分體現(xiàn)BPAD-LS方法在真實的場景中檢測控制流異常的性能,本文選用了真實的業(yè)務過程的歷史事件日志作為實驗數(shù)據(jù).表1中統(tǒng)計了各個數(shù)據(jù)集的相關屬性,這些數(shù)據(jù)集來源于4TU.ResearchData(1)https://data.4tu.nl.其中BPIC2012數(shù)據(jù)集是由3個相互交織的子流程合并而來的,因此本文將該事件日志分為BPIC2012_A、BPIC2012_O和BPIC2012_W 3個獨立的事件日志. 表1 實驗數(shù)據(jù)集 這些真實的事件日志可能含有少量的異常,但是這些潛在的異常并沒有標記.為了滿足實驗要求,本文也像其他文獻[19,20,44]一樣人工注入異常.本文為每個數(shù)據(jù)集的20%的過程實例注入異常,且每個過程實例只注入一種控制流異常.為了充分體現(xiàn)方法檢測控制流異常的性能,本文將注入6種業(yè)務過程中更容易發(fā)生的控制流異常類型,其定義如下: 1)跳過異常(Skip):軌跡中必要的事件被跳過,導致未被執(zhí)行. 2)插入異常(Insert):軌跡中插入了不必要的事件并被執(zhí)行. 3)替換異常(Replace):軌跡中正常的事件被隨機替換了而未被執(zhí)行. 4)重做異常(Rework):軌跡中的事件正常執(zhí)行完后,再次被不必要地執(zhí)行. 5)提前異常(Early):軌跡中的活動被提前執(zhí)行. 6)延遲異常(Late):軌跡中的事件被延遲執(zhí)行. 為了便于神經網(wǎng)絡模型的訓練和檢測方法的檢測,將這些異常注入到每條軌跡,并標記該軌跡為異常,其余未被注入異常的軌跡則標記為正常. 由于活動的執(zhí)行具有時間序列性,因此在創(chuàng)建前綴活動序列時將不打亂活動的順序.此外,考慮到有的軌跡可能較短,為了使預測模型在即使輸入的前綴活動序列很短(如只有一個活動作為前綴)的情況下也能預測下一個活動,因此在數(shù)據(jù)預處理時不過濾長度很短的軌跡. 預測模型的作用是預測下一個活動,因此模型的訓練集中不包含異常活動.假設軌跡σ包含|σ|=n=7個活動,活動序列為σ=〈e1,e2,…,e7,E〉,其中E表示軌跡的結束標志.該軌跡經過分割后產生n=7組前綴和后綴,第k組前綴和后綴如下: hdk(σ)=〈e1,e2,…,ek〉 (18) tlk(σ)=e(k+1) (19) 其中k∈[1,n],若k=n,則tlk(σ)=E. 對于測試集,需要將5.1小節(jié)中提到的6種控制流異常注入到部分測試集中,即測試集中既有正確軌跡,也有異常軌跡.本文將每個數(shù)據(jù)集的70%作為訓練集,并將訓練集的10%作為驗證集,將每個數(shù)據(jù)集的30%作為測試集,測試集中異常軌跡占整個數(shù)據(jù)集的20%.為了模擬實際業(yè)務過程中異常發(fā)生的隨機性,因此,在注入異常時,將在活動序列中注入異常后,再分割前綴和后綴.假設軌跡σ中第k個活動是異常的活動,則該軌跡的前綴和后綴如下: hdk(σ)=〈e1,e2,…,ek-1〉 (20) tlk(σ)=ek (21) 其中k∈[1,n]. 需要說明的是,為了滿足實驗要求,在向測試集中注入異常時,假設測試集中每條軌跡的第1個活動都是正常的,即從第2個活動開始隨機注入異常. 將事件日志數(shù)據(jù)集分割成前綴和后綴后,再使用整數(shù)編碼方式對事件日志進行編碼. 異常檢測問題本質上是一個二分類問題,即將包含異常和正常的數(shù)據(jù)分為異常和正常.在業(yè)務過程的異常檢測中,假陽性是指軌跡中不含異常但被檢測方法檢測為異常,而假陰性是指軌跡中含有異常,卻被檢測方法檢測為正常.對于這兩種情況,不同的業(yè)務過程處理這兩種情況的代價是不一樣的,如有的業(yè)務過程漏檢異常的代價很高,因此需要減少假陰性,提高召回率(Recall);有的業(yè)務過程誤檢異常的代價很高,因此需要減少假陽性,提高準確率(Precision).然而很多時候需要平衡這兩種情況,因此可以將召回率和準確率的調和平均值F1-score作為異常檢測方法的檢測性能.考慮到業(yè)務過程異常檢測中對于假陽性和假陰性的特殊要求,本文選用F1-score、Precision和Recall這3個指標作為檢測方法的評估指標. 由于本文使用準確率(Precision)、召回率(Recall)和兩者的調和平均值(F1-score)作為異常檢測方法的性能指標,并假定在業(yè)務過程的異常檢測中對假陽性和假陰性的處理代價相近,因而使用F1-score作為整體比較的檢測指標,即閾值的確定是以獲取最佳F1-score指標作為目標.根據(jù)4.3小節(jié)中提出的計算異常分數(shù)的方法以及4.4小節(jié)中判定異常活動的方法可知活動的異常分數(shù)score<=1,因此閾值的范圍為[0,1],實驗時將在此閾值范圍內,設置閾值增量step(本實驗將該值設置為step=0.01)并使用窮舉法獲取最佳閾值. 為了體現(xiàn)本文提出的BPAD-LS方法的檢測性能,本文將選用文獻中已有的5種baseline模型作為對比方法進行檢測性能的比較.對于概率統(tǒng)計的方法,選用文獻[9]中的樸素方法Naive和采樣方法Sampling,并使用該論文中這兩種方法的相同的參數(shù).對于基于距離的方法,選用單類支持向量機(One-Class Support Vector Machine,OC-SVM)方法,該方法也在文獻[20]中作為對比方法.對于基于重建的方法,選用文獻[45]中的降噪自編碼器DAE(Denoising Autoencoders,DAE)模型和文獻[20]中的BINetv1模型.文獻[20]中的BINetv1模型除了使用了事件的活動名稱訓練模型外,還使用了事件的屬性,而本文提出的BPAD-LS方法僅使用了事件的活動名稱,因此為了公平比較,在實驗中BINetv1模型也將只使用事件的活動名稱進行訓練和預測.Nolle 等人[20]提出的業(yè)務過程異常檢測方法與本文提出的BPAD-LS方法的思路是類似的,都是基于神經網(wǎng)絡模型預測軌跡的下一個事件并在此基礎上檢測異常,因此將Nolle 等人[20]提出的BINetv1模型作為對比方法更具有對比意義. 在4.2小節(jié)中說明了相對位置(LSTM)與絕對位置相比,有利于提高異常檢測的性能,在此小節(jié)中將通過實驗驗證.在4.3小節(jié)中已經說明將實際執(zhí)行的活動與預測的活動進行直接比較(將該方法稱為Direct-Comparison)以判定軌跡是否發(fā)生異常會增加假陽性,為了證明本文提出的判定異?;顒拥姆椒苡行p少假陽性,將對這兩種方法進行評估和比較.此外,實驗將重點評估本文提出的BPAD-LS方法與對比算法在各個數(shù)據(jù)集上的檢測異常,并分析實驗結果. 5.6.1 軌跡的絕對位置編碼和相對位置編碼對異常檢測性能的影響的比較 在4.2小節(jié)中介紹了本文的預測下一個活動的模型,其中包括軌跡中活動的位置編碼器.在文獻[35]中的Transformer模型中使用絕對位置編碼方式編碼句子中單詞的位置,而在本文的活動預測模型中,為了應對可能出現(xiàn)很長軌跡的業(yè)務過程,使用LSTM作為相對位置編碼器,以編碼軌跡中活動的位置信息.為了驗證使用LSTM作為相對位置編碼器更利于軌跡中活動的位置編碼,在實驗中分別將絕對位置編碼方法(absolute)和相對位置編碼方法(relative)作為模型的位置編碼器,這兩個模型通過影響下一個活動的預測從而影響異常的檢測性能,實驗選擇了5個軌跡較長的數(shù)據(jù)集,5個數(shù)據(jù)集的信息如表1所示.圖4是嵌入了這兩種位置編碼方法的預測模型在檢測指標F1-score上的比較,從圖4中可知相對位置編碼方法在所有數(shù)據(jù)集上的F1-score檢測指標都比絕對位置編碼方法的更高,因此,使用相對位置編碼方法更有利于軌跡中活動的位置信息的編碼,從而提高長軌跡的業(yè)務過程的檢測性能. 圖4 相對位置編碼與絕對位置編碼在長軌跡上的F1-score檢測指標的比較 5.6.2 BPAD-LS與Direct-Comparison的比較 本實驗的目的是證明本文的方法能顯著減少假陽性.圖5是兩種方法判定異常活動的召回率指標的比較結果.從比較結果可知,本文提出的方法在所有數(shù)據(jù)集上的召回率都低于直接比較的方法.圖6是兩種判定異常活動的方法在所測試的10個數(shù)據(jù)集上的準確率指標比較結果,從圖6中可知,本文提出的判定異?;顒拥姆椒黠@比直接比較的方法的準確率高,由此說明本文提出的方法能明顯減少假陽性.在圖6中,本文提出的方法在5個數(shù)據(jù)集上判定異常活動的準確率高達99%以上,在3個數(shù)據(jù)集上的準確率在90%以上,在其余的兩個數(shù)據(jù)集上也在80%以上.因此,在檢測業(yè)務過程中的控制流異常時,若處理假陽性的成本較高,則本方法較合適. 圖5 BPAD-LS與Direct-Comparison的Recall指標比較 圖6 BPAD-LS與Direct-Comparison的Precision指標比較 圖7是兩種方法的F1-score指標的比較結果,從該圖7中可知,本文提出的方法明顯比直接比較方法的F1-score指標更好.因此,若檢測業(yè)務過程中的異常時對準確率和召回率都比較看重,則本文提出的方法更合適. 圖7 BPAD-LS與Direct-Comparison的F1-score指標比較 出現(xiàn)圖5-圖7中的比較結果是合理的.直接比較方法是將預測概率最高的下一個活動作為正確活動,只要實際執(zhí)行的活動與該正確活動不一致,即認為出現(xiàn)了異常,此方法的原則是盡量不放過任何一個異常,所以相比之下其召回率較高.但由于業(yè)務過程中存在選擇、并行等路由方式,業(yè)務過程的執(zhí)行路徑可能比較復雜,因此可能存在多個正確的下一個活動,通常這若干個正確的下一個活動的預測概率相比于其他不正確的預測概率較大,因而直接比較的方法可能會將實際執(zhí)行的正確的活動也被檢測為異常,導致其準確率降低.而本文提出的方法將根據(jù)閾值選擇概率值較大的若干個正確的下一個活動,選擇的這若干個正確的下一個活動可能包含一些實際不正確的活動,導致實際執(zhí)行的活動可能存在異常而被檢測為正確,因此相比于直接比較的方法其召回率會降低,但盡最大限度包含了實際正確的下一個活動,因而本方法的準確率較高,從而最大限度減少假陽性. 5.6.3 BPAD-LS方法與對比方法的比較 本小節(jié)將評估和比較本文提出的BPAD-LS方法與baseline算法在各個數(shù)據(jù)集上的檢測異常的性能. 表2是BPAD-LS方法與各個對比算法的準確率(precision)檢測指標的結果匯總.從表2中可知,BPAD-LS方法在大多數(shù)數(shù)據(jù)集上的準確率比對比算法更好,其中在數(shù)據(jù)集BPIC2020_DomesticDeclarations 等4個數(shù)據(jù)集上的準確率達到99%,在數(shù)據(jù)集BPIC2020_RequestForPayment 等4個數(shù)據(jù)集上的準確率達90%以上,其余兩個數(shù)據(jù)集上的準確率也在80%以上,說明本文提出的判定異?;顒拥姆椒ㄏ噍^于對比算法能有效減少假陽性,即非常適用于識別正?;顒? 表2 Precision檢測指標匯總 表3是BPAD-LS方法與各個對比算法的召回率(recall)檢測指標的結果匯總.從表3中可知,樸素方法(Naive)的召回率在大多數(shù)數(shù)據(jù)集上效果最佳,其次是采樣方法(Sampling).樸素算法的召回率之所以高,是因為樸素算法的特點是盡量不放過任何一個異常軌跡.盡管樸素算法的召回率高,但也會增加假陽性,即把非異常的軌跡識別為異常的軌跡.BINetv1算法在少數(shù)數(shù)據(jù)集上的召回率較高,DAE算法和Sampling算法在所有數(shù)據(jù)集上的召回率指標較高,說明這些方法適用的場景是注重異常軌跡的識別,且對假陽性的處理成本較低. 表3 Recall檢測指標匯總 表4是BPAD-LS方法與各個對比算法的F1-score檢測指標的結果匯總.從表4中可知,盡管BPAD-LS方法的召回率檢測指標相比于baseline算法較低,但是BPAD-LS方法的F1-score檢測指標在大多數(shù)數(shù)據(jù)集上的檢測結果都比對比算法要好.BPAD-LS方法在BPIC2012_W數(shù)據(jù)集上的召回率指標較低,導致F1-score檢測指標較低,推測的原因是BPIC2012_W數(shù)據(jù)集上的活動總數(shù)較少,軌跡的平均長度超過活動數(shù),導致軌跡中有較多重復的活動,因而增加了預測下一個活動的難度,進而增加檢測難度.BPAD-LS方法在Sepsis Cases數(shù)據(jù)集上的F1-score檢測指標相比于其他數(shù)據(jù)集較低,推測的原因是該數(shù)據(jù)集較小,其過程實例數(shù)量較少,導致模型的訓練數(shù)據(jù)不夠,降低了預測下一個活動的準確率,進而導致檢測指標較低. 表4 F1-score檢測指標匯總 總體而言,5種對比算法的準確率較低,但召回率較高.在文獻[20]中將5種對比算法用于檢測人工合成的事件日志和真實的事件日志中的控制流異常,實驗結果表明這5種對比算法整體上在人工合成的事件日志上的異常檢測結果較好,而在真實事件日志上的檢測性能較低,且在這兩種事件日志上的準確率指標較低,而召回率指標較高.結合文獻[20]中的實驗結果和本文的實驗結果,都表明5種對比算法在檢測異常時,其準確率較低,而召回率較高,因而這5種對比算法適用于處理假陽性的成本比處理假陰性的成本更高的場景.而BPAD-LS方法的召回率指標相比于5種對比算法稍低,但是準確率較高,因而適用于處理假陰性的成本比處理假陽性的成本較高或處理兩者的成本相近的場景. 綜合多個實驗結果及評價指標,本文提出的BPAD-LS方法對于檢測長軌跡的業(yè)務過程中的控制流異常具有優(yōu)勢,且提出的計算異常分數(shù)的方法能顯著減少假陽性.與五種對比算法相比,BPAD-LS方法的F1-score檢測指標在絕大多數(shù)數(shù)據(jù)集上都更高,且在多個數(shù)據(jù)集上的F1-score檢測指標都在90%以上,因此BPAD-LS方法能有效地檢測業(yè)務過程中的控制流異常. 業(yè)務過程管理系統(tǒng)在企業(yè)組織中起著越來越重要的作用,但業(yè)務過程在執(zhí)行過程中由于內外環(huán)境的變化以及業(yè)務過程中各種因素存在復雜的依賴關系而可能發(fā)生各種異常,如控制流異常,這些異常給企業(yè)組織帶來巨大的損失.為了檢測控制流異常,本文提出使用基于自注意力機制和LSTM相結合的神經網(wǎng)絡模型通過預測前綴活動序列的下一個活動并將其與實際發(fā)生的活動進行比對,以檢測控制流異常.LSTM通常用于處理序列數(shù)據(jù)和序列建模,如序列的預測問題,但本文的預測模型中使用目前廣泛應用于機器翻譯的自注意力機制建模活動之間的依賴關系,而模型中的LSTM層僅用于編碼活動序列中活動的位置信息,而不用于建模活動之間的依賴關系.在業(yè)務過程的異常檢測中,有時對假陽性的處理需要付出較大的代價,在本文的BPAD-LS方法中也重點考慮了此問題.為了減少假陽性,本文提出了一種通過計算預測的活動的異常分數(shù)并基于閾值的方法,以確定可能的下一個活動的集合,而不是簡單地將預測概率值最高的活動作為正確活動與實際執(zhí)行的活動進行比較.實驗結果表明,所提出的方法能有效檢測業(yè)務過程中的控制流異常,且能有效減少假陽性.通過在多個數(shù)據(jù)集上的檢測結果表明,本文的方法適用于對準確率和召回率都重要的場景. 本文實驗中判定異常活動的閾值是在給定區(qū)間內和設置增量(本實驗中區(qū)間設置為[0,1],增量為0.01),并通過窮舉法來選取最佳閾值,這在一定程度上增加了計算的時間,未來將考慮尋找最佳閾值的規(guī)律來縮小窮舉的區(qū)間,以減少尋找最佳閾值的時間.此外,增量的設置也影響尋找最佳閾值的時間和檢測的準確性,若增量設置過大,雖然可以減少計算時間,但有可能會錯過最佳閾值,從而降低檢測的準確性,若增量設置過小,雖然可能會增加檢測的準確性,但會增加計算的時間.如何在短時間內找到最佳閾值,也是下一步工作中值得研究的問題. 業(yè)務過程中的控制流、數(shù)據(jù)流、時間和資源等視角存在復雜的依賴關系,業(yè)務過程在執(zhí)行過程中產生異常的原因可能由多個視角共同引起,或者一個視角出現(xiàn)的異常是由另一個視角引起的,因此與從單個視角出發(fā)檢測業(yè)務過程中的異常相比,從多個視角出發(fā)檢測異常將更有意義.本文只關注控制流異常,未來的研究將考慮引入時間、資源等屬性,以更全面和精確地檢測業(yè)務過程中的異常.4 預測模型與檢測方法
4.1 BPAD-LS方法總體框架
4.2 預測模型
4.3 計算異常分數(shù)
4.4 異?;顒拥呐卸?/h3>
5 實驗結果與分析
5.1 實驗數(shù)據(jù)
5.2 數(shù)據(jù)預處理
5.3 評估指標
5.4 閾值的確定
5.5 baseline算法
5.6 實驗結果及分析
6 總結與展望