任春龍,方 歡,2*
(1.安徽理工大學(xué),安徽 淮南 232001;2.安徽省煤礦安全大數(shù)據(jù)分析與預(yù)警技術(shù)工程實(shí)驗(yàn)室,安徽 淮南 232001)
現(xiàn)實(shí)世界的業(yè)務(wù)流程會隨著時(shí)間的推移而發(fā)生改變,變化的原因可能包括法規(guī)、政策、用戶需求和軟件維護(hù)等,監(jiān)控每段時(shí)期業(yè)務(wù)流程發(fā)生的變化對企業(yè)很有價(jià)值,可以幫助企業(yè)識別系統(tǒng)的業(yè)務(wù)能力和行為,分辨出不在預(yù)期內(nèi)的異常行為[1]。
早期的流程變化研究主要是變化域定位和變化域傳播。在變化域定位的研究中,主要是比較系統(tǒng)日志與參考模型之間的不同之處,以此來定位參考模型需要改變的結(jié)構(gòu),如文獻(xiàn)[2]提出了將幾種變化模式和變化支持特征結(jié)合起來的變化檢測框架,比較實(shí)際流程是否遵循參考模型的規(guī)范。文獻(xiàn)[3]通過給定一個(gè)過程模型的變化,利用相應(yīng)活動的行為輪廓去定位另一個(gè)模型中的變化區(qū)域。變化域傳播在變化域研究的基礎(chǔ)上,探究了一個(gè)模型的部分流程變化對其全局流程或關(guān)聯(lián)模型產(chǎn)生的影響,如在文獻(xiàn)[4]中,提出利用相應(yīng)活動的行為輪廓特征去確定另一個(gè)模型的變化域。文獻(xiàn)[5]利用控制流和數(shù)據(jù)流Petri網(wǎng)模型的變化域去定位融合網(wǎng)的最終變化域。近年來,基于日志的業(yè)務(wù)流程變化挖掘成為流程變化研究的一個(gè)熱點(diǎn),文獻(xiàn)[6]提出在已知參考模型和流程變體時(shí),擴(kuò)展模型使其適應(yīng)給定的流程變體,未知參考模型時(shí),將給定的流程變體整合到同一模型中。文獻(xiàn)[7]在參考模型未知時(shí),利用活動的行為輪廓關(guān)系確定變化偏差域,去修復(fù)原始日志發(fā)現(xiàn)的模型。
深度學(xué)習(xí)中的自編碼器網(wǎng)絡(luò)在許多領(lǐng)域得到應(yīng)用[8-11],如文獻(xiàn)[12]提出一種關(guān)系自編碼器模型,可以通過數(shù)據(jù)自身及其內(nèi)部關(guān)系提取高級特征,減少重構(gòu)誤差,幫助改進(jìn)分類結(jié)果。一些學(xué)者將自編碼器引入過程挖掘領(lǐng)域,用于預(yù)處理以改進(jìn)過程發(fā)現(xiàn)的模型質(zhì)量。文獻(xiàn)[13]利用自編碼器網(wǎng)絡(luò)的異常檢測能力去檢測日志中的異常跡,文獻(xiàn)[14]在事件日志的屬性級別上利用自編碼器網(wǎng)絡(luò)檢測異常值、重建缺失值,以提高事件日志的質(zhì)量。
在實(shí)現(xiàn)“日志-日志”的活動變化挖掘時(shí),需要比對系統(tǒng)的原始日志信息和實(shí)際日志信息,將原始日志記為L his,實(shí)際日志記為L act。文獻(xiàn)[1]利用不完備系統(tǒng)日志獲取L his和L act中的活動行為輪廓關(guān)系,比較得到活動的聯(lián)合發(fā)生關(guān)系,從而提取出活動的發(fā)生不變集,挖掘出系統(tǒng)的變化部分。該方法是在系統(tǒng)日志不含隱變遷的假設(shè)下進(jìn)行的,如果對L his執(zhí)行變化操作產(chǎn)生L act時(shí)加入隱變遷,則基于活動行為輪廓關(guān)系的方法就很難檢測出發(fā)生變化的跡,下面以一個(gè)例子來說明。
若有一組事件日志L his={
許多學(xué)者利用自編碼器可以學(xué)習(xí)數(shù)據(jù)整體分布特征的能力,比較輸入與輸出的特征矩陣去進(jìn)行異常檢測和日志修復(fù)。得益于這種將單個(gè)跡與整體分布特征進(jìn)行比較的能力,選擇用自編碼器去分析實(shí)際日志的每條跡是否符合原始日志的分布特征,比較輸入跡與輸出跡的不同去確定變化操作類型。
定義1(事件、跡、事件日志[15])A是活動集合,σ∈A*是一條跡,即一個(gè)事件序列,L∈B(A*)是一個(gè)事件日志,即跡的多集。
定義2(變化操作[1])L為一個(gè)事件日志,事件跡σ∈L,日志中的活動集合記為S,Delete、Insert和Move分別指活動的刪除變化操作、插入變化操作和移動變化操作,并將3種變化操作記為C=(Delete,Insert,Move)。其中Delete、Insert和Move具體操作如下(?ai∈S,σi∈L(i=1,2,…,n)):
(1)Delete:Delete(σi,ai)是指將活動a i從跡σi中進(jìn)行刪除。
急性闌尾炎是一種常見的外科疾病。該疾病的特征是轉(zhuǎn)移性右下象限疼痛。這種疾病在年輕人中很常見[1-3]。前一天,臨床上急性闌尾炎主要是手術(shù)切除[4],如果延誤診斷和治療,可能會引起嚴(yán)重并發(fā)癥。早期癥狀高熱,嘔吐等癥狀嚴(yán)重者將導(dǎo)致穿孔,使患者的健康受到嚴(yán)重影響[5]。因此,在診所采取合理有效的治療和護(hù)理干預(yù)是非常重要的。本研究的目的是調(diào)查中醫(yī)和西醫(yī)護(hù)理干預(yù)對急性闌尾炎的臨床療效及其對急性闌尾炎患者生活質(zhì)量的影響,為臨床治療提供指導(dǎo)。
(2)Insert:Insert(σi,ai)是指將活動a i插入到跡σi中任意位置;Insert(σi,a1,a2,a3)指在跡σi中,將活動a1插入到活動a2和a3之間。
(3)Move:Move(σi,a1,a2,a3)是指在跡σi中將活動a1從當(dāng)前位置移動到活動a2之后a3之前。
定義3(隱變遷[16])T′是Petri網(wǎng)模型的變遷集合,L′為對應(yīng)的Petri網(wǎng)模型N=(P,T,F,a i,a o)的事件日志集合,即T′→L′。當(dāng)?t∈T′?f(t)=l(l∈L′)時(shí),則變遷t被稱為隱變遷。
自編碼器(autoencoder,AE)是一類在半監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)中使用的人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks,ANNs),其功能是將輸入信息作為學(xué)習(xí)目標(biāo),對輸入信息進(jìn)行表征學(xué)習(xí)(representation learning)[17]。將給定數(shù)據(jù)集編碼成向量X,選用one-hot編碼。自編碼器網(wǎng)絡(luò)主要分為編碼器和解碼器兩部分:編碼器學(xué)習(xí)輸入向量X,通過編碼器的隱藏層對向量X降維,得到隱藏向量Z,該向量表示網(wǎng)絡(luò)所學(xué)習(xí)到的輸入數(shù)據(jù)的隱藏表示或潛在模型;解碼器通過隱藏層對隱藏向量Z升維,得到重構(gòu)向量X′,通過反向傳播算法調(diào)整各個(gè)隱藏層的權(quán)重,最小化重構(gòu)向量X′與輸入向量X之間的誤差(該誤差可以由損失函數(shù)L(X,X′)[14]表示,如公式(1)所示)以盡可能還原出輸入向量X。
采用的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,對于隱藏層fc1、fc4設(shè)置神經(jīng)元數(shù)量為100,隱藏層fc2、fc3設(shè)置神經(jīng)元數(shù)量為50。
圖1 自編碼器網(wǎng)絡(luò)結(jié)構(gòu)
自編碼器的原理類似于主成分分析(PCA)[18],即將高維數(shù)據(jù)降維,用低維數(shù)據(jù)表示輸入數(shù)據(jù)的潛在分布特征。但自編碼借助于深層神經(jīng)網(wǎng)絡(luò)的非線性特征提取能力,可以獲得更好的數(shù)據(jù)特征,還可以通過解碼器盡可能還原出輸入向量。選用降噪自編碼器(Denoising AutoEncoder,DAE)進(jìn)行實(shí)驗(yàn),即在將輸入添加到自動編碼器之前添加噪聲,該噪聲從μ=0,σ=0.1的高斯分布中取樣。
由于自編碼器的輸入大小是固定的,需要在預(yù)處理階段進(jìn)行編碼時(shí),對所有小于最長跡的跡向量進(jìn)行零填充,以保證所有的跡向量具有相同的大小。
在過程挖掘領(lǐng)域,許多學(xué)者用自編碼器來進(jìn)行異常檢測或日志修復(fù)。在進(jìn)行異常檢測時(shí),將事件日志輸入自編碼器,訓(xùn)練完成后,對于每個(gè)輸入的跡向量X,通過自編碼器模型可以得到重構(gòu)向量X′,重構(gòu)誤差表示輸入向量X與重構(gòu)向量X′之間的距離,即該輸入案例與正常分布特征之間的差異程度。訓(xùn)練后的模型能以小于給定閾值的誤差再現(xiàn)正常跡,以大于閾值的誤差再現(xiàn)異常跡,這樣就可以檢測出日志中的異常跡。日志修復(fù)則在檢測出異常跡的基礎(chǔ)上,基于重構(gòu)跡對異常跡的缺失部分進(jìn)行修復(fù)[14]。
受以上方法的啟發(fā),將自編碼器應(yīng)用到跡的活動變化挖掘中。上述方法是將被檢測日志作為訓(xùn)練集和測試集,而本文將原始日志作為訓(xùn)練集,實(shí)際日志作為測試集,利用訓(xùn)練好的模型去檢測測試集中的異常跡,這些異常跡即為原始日志中發(fā)生變化的跡,圖2展示了該方法的流程。
圖2 自編碼器檢測活動變化
檢測跡的活動變化時(shí)涉及原始日志與實(shí)際日志的比較,通過實(shí)際日志中發(fā)生變化的跡溯源到原始日志中未變化的跡極為重要,自編碼器網(wǎng)絡(luò)在這一方面有著很好的表現(xiàn)。利用原始事件日志去訓(xùn)練自編碼器網(wǎng)絡(luò),得到的模型能夠以很小的誤差再現(xiàn)出原始日志的跡。在測試實(shí)際日志時(shí),執(zhí)行變化操作的跡輸入到模型中時(shí)不能被以很小的誤差重現(xiàn)出來,對該跡執(zhí)行反向變化操作,使其盡可能與原始跡保持一致,將處理后的跡重新輸入到模型中,比較篩選重構(gòu)誤差最小的變化操作就可以確定原始跡發(fā)生變化的原因。方法步驟如算法1所示。
算法1:自編碼器進(jìn)行變化挖掘
輸入:原始事件日志L his,實(shí)際事件日志L act,閾值的比例因子α
輸出:發(fā)生變化的跡σi,執(zhí)行的變化操作類型:刪除(delete)、插入(insert)或移動(move)
針對發(fā)生變化的跡的閾值,文獻(xiàn)[13]提出一個(gè)閾值公式(2),τ表示訓(xùn)練數(shù)據(jù)集的平均重構(gòu)誤差,α為比例因子,將其設(shè)置為1,n表示數(shù)據(jù)集的跡數(shù)量,ei是跡i的重構(gòu)誤差。
利用具體的事件日志描述本方法的檢測流程,所選取的原始日志中的跡信息如表1所示,該日志包含四條跡和八個(gè)活動。將跡σ1中的活動B刪除,對跡σ3的活動F移動到活動G后面,在跡σ4的活動B后面添加活動C,得到實(shí)際日志信息如表2所示。
表1 原始日志
表2 實(shí)際日志
將表1的日志輸入自編碼器網(wǎng)絡(luò)訓(xùn)練,得到一個(gè)DAE模型,平均重構(gòu)誤差為2.23,可以作為測試集的閾值。整個(gè)流程如圖3所示。在將跡轉(zhuǎn)換為特征矩陣時(shí),要對小于最長跡的跡進(jìn)行零填充,填充方式選擇文獻(xiàn)[14]所提方法,在頭部進(jìn)行零填充,該日志最長跡的長度為6,需要分別對跡σ2、σ3和σ4填充一行零和兩行零,以確保所有的輸入矩陣大小一致。
圖3 訓(xùn)練模型
在對實(shí)際日志測試時(shí),以跡σ4為例,輸入的特征矩陣和輸出的特征矩陣如圖4所示。重構(gòu)誤差大于閾值的跡為發(fā)生變化的跡,將輸入的特征矩陣與輸出的特征矩陣相減并取絕對值,得到誤差矩陣,再對誤差矩陣的每一行求和,得到一個(gè)誤差向量,該向量表示跡中每個(gè)位置上的活動誤差,取該向量中元素的平均值作為閾值,高于閾值表示該位置的活動與原始跡中對應(yīng)的位置相比發(fā)生了變化,最后一個(gè)高于閾值的位置一般是發(fā)生了變化的位置,下面以一個(gè)例子解釋該原理。通過表3的對比可以看出,在填充零后,實(shí)際跡的第四個(gè)位置即活動C發(fā)生了變化,導(dǎo)致該位置及其前面位置的活動與原始跡無法對齊,除填充零的位置外,發(fā)生變化的位置及其前面位置的誤差會高于閾值,如圖4中的誤差向量(0.65,1.27,1.53,1.78,1.00,0.42),第一個(gè)元素表示表3中實(shí)際跡的零填充位置,它是小于閾值即平均值1.10的,第二、三、四元素高于閾值,表示對應(yīng)位置的活動發(fā)生變化,最后一個(gè)高于閾值元素為第四個(gè)元素,表示第四個(gè)位置的活動是發(fā)生了變化的,與表3表達(dá)意思一致。之后對該跡進(jìn)行三種變化操作以使其重構(gòu)誤差最小,先進(jìn)行刪除操作,將第四個(gè)位置的活動即活動C刪除,再輸入到模型中,得到的重構(gòu)誤差為1.39;接著進(jìn)行添加操作,根據(jù)輸出跡的第四個(gè)位置的活動B,在輸入跡第四個(gè)位置即活動C后添加活動B,再輸入模型中,得到重構(gòu)誤差為2.74;最后進(jìn)行移動操作,將誤差向量中高于閾值的第一個(gè)位置的活動移動到高于閾值的最后一個(gè)位置的活動后面,或?qū)⒄`差向量中高于閾值的最后一個(gè)位置的活動移動到高于閾值的第一個(gè)位置的活動前面,即將活動A移動到活動C后面或?qū)⒒顒覥移動到活動A前面,分別輸入到模型后取較小的重構(gòu)誤差,得到重構(gòu)誤差為2.34;對實(shí)際跡進(jìn)行刪除操作后得到的重構(gòu)誤差最小且小于閾值,所以實(shí)際日志變化的原因是對原始日志執(zhí)行了變化操作Insert(σ4,C,B,E),這與預(yù)設(shè)的變化操作一致。
圖4 檢測變化的跡
表3 跡比較
以上討論了如何檢測跡中的Insert變化操作,Delete,Move變化操作也可以由相同方法檢測出來,因?yàn)橐坏﹫?zhí)行了變化操作,就會使得該跡的分布特征與原始日志的分布特征有較大差異,檢測出變化的跡后,也是根據(jù)誤差向量和輸出的特征矩對跡進(jìn)行三種變化操作,篩選其中重構(gòu)誤差最小的變化操作就可以確定原始跡中發(fā)生的變化操作,所以這兩種變化操作不再詳細(xì)闡述。
本實(shí)驗(yàn)數(shù)據(jù)集選擇PLG2工具生成的人工事件日志,該數(shù)據(jù)集的相關(guān)信息如表4所示。部分原始日志信息如表5所示,對該日志添加變化操作后得到的部分實(shí)際日志信息如表6所示。
表4 數(shù)據(jù)集信息
表5 人工事件部分原始日志
表6 人工事件部分實(shí)際日志
先利用原始日志訓(xùn)練模型,得到收斂后的平均訓(xùn)練誤差為0.0207,將它作為判斷測試集是否發(fā)生變化的閾值。在對實(shí)際日志進(jìn)行測試時(shí),總共有三條跡的重構(gòu)誤差大于閾值,可以判斷它們執(zhí)行了變化操作。
(1)將跡σ1編碼之后輸入到模型中,得到的重構(gòu)誤差為6.9702,大于閾值,進(jìn)行三種變化操作后,對實(shí)際跡進(jìn)行插入操作誤差最小,值為0.0034,所以日志發(fā)生變化的原因是對原始跡執(zhí)行操作Delete(σ1,D)。
(2)將跡σ2編碼后輸入到模型中,獲得的重構(gòu)誤差為6.9127,大于閾值,對實(shí)際跡進(jìn)行刪除操作得到的重構(gòu)誤差最小,值為0.0030,得出日志發(fā)生變化的原因是對原始跡執(zhí)行操作Insert(σ2,E,E,K)。
(3)將跡σ3編碼后輸入到模型中,獲得的重構(gòu)誤差為3.9921,大于閾值,對實(shí)際跡進(jìn)行移動操作得到的重構(gòu)誤差最小,值為0.0029,所以日志變化原因是對原始跡執(zhí)行操作Move(σ3,B,C,D)或Move(σ3,C,A,B)。
利用ProM過程挖掘工具中的Inductive Miner算法對事件日志進(jìn)行建模。原始事件日志ProM仿真圖如圖5所示,得到的Petri網(wǎng)模型如圖6所示,其中黑色方塊表示隱變遷,即在系統(tǒng)日志中不被記錄的活動,僅僅表示一種流程路徑的選擇。
圖5 人工事件原始日志ProM仿真圖
圖6 人工事件原始日志Petri模型
圖7為人工事件實(shí)際日志的ProM仿真圖,圖8為對應(yīng)的Petri網(wǎng)模型,相比原始日志的模型,實(shí)際日志進(jìn)行變化操作時(shí),對模型的部分結(jié)構(gòu)添加了隱變遷,使基于活動行為輪廓關(guān)系的方法很難檢測到這部分添加了隱變遷的結(jié)構(gòu)。但應(yīng)用自編碼器進(jìn)行檢測時(shí)有較好的效果。
圖7 人工事件實(shí)際日志ProM仿真圖
圖8 人工事件實(shí)際日志Petri網(wǎng)模型
比較兩個(gè)日志的Petri模型和跡信息后,發(fā)生變化的跡可以被正確地檢測出來,并且可以明確這些跡變化的原因。在對原始日志執(zhí)行操作Delete(σ1,D)后,比較圖6和圖8的Petri模型,可以發(fā)現(xiàn)實(shí)際日志的模型在代表活動D的變遷處添加了一個(gè)隱變遷,使得部分跡中活動D可以被跳過,并且活動D與其他活動之間的行為輪廓關(guān)系沒有發(fā)生改變,所以這樣的操作比較難被發(fā)現(xiàn),但在本方法中可以被很好的檢測出來。
本方法的檢測效果依賴于自編碼器網(wǎng)絡(luò)模型對原始日志的擬合程度,如果訓(xùn)練誤差很小、模型能很好地?cái)M合出日志中的大部分跡,則對實(shí)際日志的檢測效果很好;如果訓(xùn)練誤差很大、模型不能擬合出日志中的部分跡,則對實(shí)際日志測試時(shí),雖然能檢測出變化的跡,但是對實(shí)際跡執(zhí)行變化操作時(shí)不能正確地還原回原始跡,會導(dǎo)致判斷變化操作類型時(shí)出現(xiàn)錯(cuò)誤。
當(dāng)事件日志中跡的活動變化沒有引起活動行為輪廓變化時(shí),基于行為輪廓的方法就很難檢測出跡發(fā)生變化的原因,在這種情況下,如何挖掘出系統(tǒng)中的跡變化是一個(gè)有意義的研究。本文在現(xiàn)有研究基礎(chǔ)上,利用自編碼器網(wǎng)絡(luò)擬合和檢測的能力,挖掘出系統(tǒng)日志中的Delete、Insert和Move變化操作,并利用Pytroch平臺驗(yàn)證所提方法的檢測能力和表現(xiàn)效果。