王華珍,許澤,孫悅,丘斌,陳堅,邱強斌
(1. 華僑大學計算機科學與技術學院, 福建 廈門 361021; 2. 華僑大學廈門市計算機視覺與模式識別重點實驗室, 福建 廈門 361021; 3. 智業軟件股份有限公司, 福建 廈門 361008)
事件預測是指基于給定已經發生的一系列事件來預測后續可能發生的事件[1],而多標記事件是指同時發生的多種類型的事件,多標記事件預測就是基于已經發生的事件來預測候選事件是多標記事件的情況。多標記事件預測在醫學、金融、環境等許多領域都有應用。如在醫學領域中,一個病人的診斷可能涉及到多種疾病;在金融領域中,股票市場預測需要同時考慮多個相關指標。
事件預測的方法隨著計算機技術的不斷發展而完善。基于統計方法和機器學習方法是目前主要的兩大類方法。早期的事件預測大多采用基于統計的方法,常用的包括回歸分析、時間序列分析、貝葉斯分析等。如點互信息(PMI)模型[2]根據兩個事件在訓練集中出現的頻率來反映這兩個事件之間的關聯程度,以此來進行后續事件的預測。Bigram方法[3]則通過分析文本中相鄰的兩個事件出現的頻率和概率,建立一個基于Bigram的事件預測模型,從而預測文本中未來發生的事件。這類方法在特定場景中的性能優異且準確率較高,但其是在訓練集中通過統計事件發生的概率來進行后續事件預測,無法預測出訓練集中沒出現的事件,因此魯棒性較差,且事件之間潛在關聯難以學習,導致效率較低。
隨著機器學習和深度學習的發展,事件預測領域也涌現出許多新的預測方法,總體來說可以分為三類[4-6]:基于事件對的方法,基于事件鏈的方法和基于事件演化圖的方法。基于事件對的方法是通過分析事件對中前事件與后事件的相關性,從而來提高在候選事件中匹配出正確事件的準確性,常見的基于事件對的方法有Word2Vec[7]和EventComp[8]等。基于事件對的方法在預測時以已知事件和后續事件的相關性作為預測依據,忽略了多個事件間可能存在聯系。基于事件鏈的方法通過學習事件鏈中事件之間的時序信息,充分捕獲事件之間的序列特征進行后續事件預測。常見的基于事件鏈的方法有PairLSTM[9]和SAM-Net[10]等。基于事件鏈的方法同樣也忽略了事件之間復雜的相關性。基于事件演化圖的方法可以有效地解決這個問題。目前基于事件演化圖的方法研究較少,文獻[11]提出事件演化圖的概念,他們認為隱藏在事件演化圖中的反映事件之間的動態發展規律和演化模式是有一種非常有價值的知識,可以利用其來提升事件下游任務的性能和效率。
近年來,隨著圖神經網絡的研究逐漸興起,研究人員基于圖神經網絡進行事件預測,解決了如何根據事件間的聯系來預測后續事件問題。傳統的神經網絡更適用于在歐幾里德空間中的數據,而圖神經網絡則能作用在圖數據結構上,通過圖嵌入方法來進行圖表征學習,擴展了深度學習對于非歐幾里得數據的處理能力[12]。圖數據中蘊含著非常豐富的關系類型的信息,而圖神經網絡在對圖中的節點之間的關聯性進行模型化處理上具有很強的優勢,這使得它在很多相關的研究中都有很大的突破。使用圖神經網絡進行事件的預測,同樣可以提高預測結果的準確率和效率[13]。而對于多標記事件,利用多標記學習中問題轉換思想,將多標記問題轉化為單標記問題,并結合現有事件預測方法,實現對多標記事件的預測。
事件預測越來越受到學界和業界的關注,大量研究致力于事件預測的開發和應用。但已有的相關研究分析不夠細致和深入,忽略普遍存在的多標記事件情境。為解決以上問題,本文提出了基于事件演化圖的多標記事件預測模型(MLEP)。利用門控圖神經網絡(GGNN)框架,并結合多標記學習中問題轉換思想,將多標記問題轉化為單標記問題,構建多標記事件預測模型,以實現多標記事件的預測。
多標記事件預測問題可在現有事件預測技術的基礎上利用多標記學習的思想來解決。下文分別介紹事件預測技術和多標記學習技術。
事件預測是事件研究的下游任務,現有研究大多都是在已經抽取出的事件基礎上挖掘事件之間在時間維度、因果維度上的聯系,從外部語料中獲取先驗知識和事件演變規律來支撐推理和預測。事件預測方法可根據對數據的組織和利用方式分為以下3類[14]:
1)基于關聯規則的方法。基于關聯規則是數據挖掘領域比較經典的預測方法之一。它通常由兩個步驟組成:首先學習前兆和目標事件之間的關聯;然后利用所學的關聯預測未來事件,其中未來事件前兆是通過挖掘歷史數據中的關聯或邏輯模式來提取的。基于關聯規則的方法在特定場景中性能優異,但缺乏普遍適用性,且規則的構建往往需要大量的人力和時間,效率較低,所以難以在實際應用中普及。
2)基于因果的方法。使用特定的預定義的因果關系模式將事件根據因果關系轉換成特定的結構,以此來推斷未來的事件。這種方法的步驟如下:從給定文本中抽取出目標事件;根據因果規律定義事件間的因果關系;根據因果關系預測出后續事件。文獻[15]通過挖掘醫療因果關系構建因果知識圖來實現預測,為醫療診斷提供了一定的輔助作用。在實際應用中,因果關系有時定義比較模糊而難以確定,關系抽取相對困難,而且這種方法只關注特定事件之間的因果關系,沒有發現一般的因果關系模式。因此,在這方面深入的研究相對較少。
3)基于序列預測的方法,即通過分析事件發生的時序關系規律來預測后續可能發生的事件。序列預測主要探索如何預測序列的下一個元素及其所代表的事件。序列預測方法主要分為兩種類型,其中第一種需要人為定義關鍵屬性,而更現代化的方法可以基于深度學習方法學習序列的隱含表征以直接預測未來事件。基于序列的方法成為事件預測領域應用比較廣的一種方法,尤其是在具有順承關系和演化特性的事件中。近年來,已有很多通過對序列事件建模的方法來進行事件預測的研究,如文獻[16]通過構建一個長程時序模塊學習事件鏈中的序列信息,實現了后續腳本事件的序列預測。
以上事件預測研究鮮有關注到在各領域普遍存在的多標記事件情境。目前多標記事件預測仍處于快速發展階段,但針對多標記事件預測的研究還很貧乏。
多標記學習(MLL)是針對現實世界中普遍存在的多義性對象而提出的一種機器學習技術[17]。傳統學習模型的樣本一般具有明確且單一的標記,但在現實世界中的對象標記往往都是不明確的,會表現出多義性[18]。關于多標記學習問題的求解策略,現有的方法根據標記之間的相關性可以分為三類[19-20]:一階策略,二階策略和高階策略,而這些策略根據算法求解思路的不同也可以分為算法改進和問題轉化兩種算法。
算法改進,顧名思義就是改進現有的單標記算法,從而使算法能夠解決多標記領域的問題。如何考慮多標記空間中的不同標記間的聯系和相關性,以提高預測的性能是算法改進的一個關鍵問題。通過改進現有的單標記學習算法能夠解決多標記學習問題,具體算法包括增強文本[17]、多標記k近鄰[21]和排名支持向量機[22]等。問題轉化則不需要對算法進行修改,是在處理過程中將復雜的多標記問題轉化為單標記問題,得以使用現有的方法解決,問題轉化的關鍵問題是對標記空間中重疊標記的處理,其主要方法包括BR(Binary Relevance)[23]和LP(Label Powerset)[24]等。與算法改進方法相比,問題轉化更加靈活,因為在問題轉化后可以應用任何現成的單標記學習方法解決,所以具有強大的適用性[25]。因此,問題轉化是目前研究多標記使用較多的方法,本文也將采用這種方法來研究多標記事件預測問題。
以多標記分類為例,給出多標記問題的形式化定義。用L表示一個多標記數據集合,即L={lj|j=1,2,…,m},其中,m表示類別標記的數量。D表示訓練集,D={(xi,Yi)|i=1,2,…,n},其中,n和xi分別為樣本數量和第i個樣本的特征屬性,Yi∈L代表樣本i的標記集合。多標記數據集示例如表1所示,數據集共有4個樣本,每個樣本包含1個或多個標記。

表1 多標記數據集Table 1 Multi-label dataset
BR是一種典型的問題轉換型方法,主要思想是用多個二分類問題代表一個多標記問題來實現問題轉換。它將對每一種標記進行預測看作為單獨的二分類問題來處理,因此共有m個二分類器。與此同時,數據集被變換為m個數據集。以第j個數據集為例,包含標記lj則賦予lj,不包含標記lj則賦予lj。在采用BR方法進行分類時,最終預測結果用m個二分類器得到組合結果代表。用BR方法對數據集L進行數據轉換,結果如表2所示。

表2 使用BR方法對數據集進行數據轉換的結果Table 2 Result of data transformation on the dataset using the BR method
LP也是一種問題轉換型方法,它用一個多標簽分類器來代替多個標簽組合,實現了多標記到單標記的轉化。這個組合標簽表示所有可能的標簽組合,每個組合都被視為一個單獨的分類類別。LP方法用多種標記組合對數據集中的標記通過組合的方式進行重新排列,以單標記的組合標簽來代替多標記標簽,LP方法對數據集進行轉換后的結果如表3所示。LP方法實現了對標記的組合進行編碼,能簡單地將多標記問題轉換成組合標記形式的單標記問題,然后采用已有的單標記算法進行解決,具有廣泛的適用性。因此,本文也將采用LP問題轉換方法,使用組合標簽的方式來研究多標記事件預測問題。

表3 使用LR方法對數據集進行數據轉換的結果Table 3 Result of data transformation on the dataset using the LR method
事件預測任務是指根據已知發生的事件來預測出后續可能發生的事件。本文提出一種基于事件演化圖的多標記事件預測模型(MLEP),該模型具有以下優勢:1)將實體描述、實體類型以及關系路徑信息融入到事件表示中以提升事件的表示效果;2)針對多標記事件預測的研究,提出基于事件演化圖的多標記事件預測研究的新模式。MLEP模型框架如圖1所示。

圖1 MLEP模型框架Fig.1 Framework of MLEP model
MLEP模型輸入為多個原始已知事件組成的事件圖以及候選事件集合,進而根據每個候選后續事件與已知事件之間的相關性得分選取最優的候選事件作為預測結果。具體為:首先利用事件表示學習方法獲取所有事件的向量表示,并基于多標記學習問題轉換的思想,將多標記標簽轉換成單標記標簽表示,對多標記事件進行編碼;然后采用門控圖神經網絡的框架,并基于事件演化的模式構建多標記事件預測模型,實現多標記事件的預測;最后對預測結果進行解碼,輸出對應的多標記事件。
事件演化圖可以揭示事件發展的規律,且事件演化圖中邊的權重可以用于獲取事件之間的關聯信息以指導事件預測[26],因此基于事件演化圖來構建事件預測模型,可以大幅提高預測的準確性。
事件演化圖是由有順承關系的事件和事件鏈構建的具有演化規律的圖結構,根據事件鏈中事件節點及事件間關系在數據集中出現的頻率進一步配置事件間關系的權重。具體來說,由S={s1,s2,…,si,…,sn}表示一組事件鏈,si是S中任意一個元素,si中可能包含多標記事件,可以將其表示為{e1,l1,e2,l2,…,(eg,lg,eg+1,lg+1,…,ek),…,lm-1,em},其中,ei表示事件鏈中的事件,li表示事件間的關系,(eg,lg,eg+1,lg+1,…,ek)表示同時發生的多標記事件集合。事件演化圖可以表示為G={E,Q},其中,E={e1,e2,…,eP}為節點集,Q為邊的集合。圖中每一條有向邊lij表示為lij:ei→ej(lij∈Q)。lij需要賦予一個權值w(ei,ej),權值是通過事件節點及事件間關系在數據集中出現的頻率計算出來的,其公式如下:

(1)
其中:count(ei,ej)表示(ei,ej)關系在訓練集中的頻率。構建的事件演化圖示例如圖2所示。

圖2 事件演化圖示例Fig.2 Example of event evolution graph
MLEP模型算法由3個步驟組成:1)事件編碼,用來獲取已知事件和候選事件的向量表示,以此作為門控圖神經網絡輸入;2)門控圖神經網絡,用于建模事件之間的時序預測并不斷更新演化圖中事件的表示;3)后續事件預測,即通過已知事件和候選事件之間的相似度,選出合適的事件作為預測結果。
2.3.1 事件編碼
對于事件編碼,通過將實體類型、實體描述等實體屬性和事件間關系路徑融合到事件中表示,以提高事件表示學習的能力及推理性能。這種方法模型定義為融合實體屬性和關系路徑的事件表示學習模型(EARP),具體為:使用加權層次編碼[27]嵌入實體類型;引入BERT(Bidirectional Encoder Representations from Transformers)模型[28],對實體描述的完整語義進行表示;通過路徑資源約束算法[29]對關系路徑進行向量表示。本文通過EARP表示學習方法獲取所有事件的向量表示,以提高事件預測的效率。
對于多標記事件,需要利用第1.2節中多標記學習問題轉換的LR方法對其進行編碼,即基于多標記學習問題轉換的思想,將多標記標簽轉換成單標記標簽表示,對多標記事件進行編碼。將構建好的事件演化圖G中的事件定義為{e1,e2,…,en},其中n為事件數量。而對于G中同時發生的多個事件{e1,e2,…,em}的事件轉換成一個融合事件ey。ey對應的向量表示vey的計算公式為:
vey=f(w1ve1+w2ve2+…+wmvem)
(2)
其中:{w2,w2,…,wm}為權重參數,即采用加權融合編碼的方式對多標記事件進行編碼。
以m=3為例來說明事件編碼規律。3個事件定義為e1、e2、e3,按它們同時發生與否和同時發生的個數可以得出共有8種候選事件組合,對應的融合事件編碼標記如表4所示。

表4 候選組合事件編碼表Table 4 Candidate combination event code table
將事件演化圖中頭事件實體對應的多個同時發生的尾事件實體按式(2)獲取組合向量表示,獲得多標記尾事件實體向量,賦予頭事件實體與多標記尾事件實體之間為順承關系,更新關系權重,獲得多標記事件融合編碼后的事件演化圖,作為門控圖神經網絡的輸入。
2.3.2 門控圖神經網絡
門控圖神經網絡(GGNN)適用于對已知事件和候選事件之間的交互建模,因此采用它對多標記事件演化圖進行訓練獲得多標記事件預測模型。如何在一個大規模事件知識圖譜上訓練GGNN模型,是模型的一個挑戰。本文參照文獻[30]的方法對圖劃分子圖,以子圖作為一條數據,從而能使GGNN用來訓練大規模數據。
對于GGNN,它輸入的對象為:事件的表示向量矩陣h(0)和圖的鄰接矩陣A,其中h(0)={ve1,ve2,…,ven,vec1,vec2,…,veck},其包含初始已知事件和后續候選事件向量,A∈(n+k)×(n+k)是對應子圖的鄰接矩陣。鄰接矩陣A決定子圖中的節點如何相互作用,其數值A[i,j]可以表示為:

(3)
接下來將h(0)和A輸入到GGNN中,GGNN的基本遞歸式為:
a(t)=ATh(t-1)+b
(4)
z(t)=σ(Wza(t)+Uzh(t-1))
(5)
r(t)=σ(Wra(t)+Urh(t-1))
(6)
c(t)=tanh (Wa(t)+U(r(t)⊙h(t-1)))
(7)
h(t)=(1-z(t))⊙h(t-1)+z(t)⊙c(t)
(8)
其中:式(4)是節點間傳遞信息;式(5)~ 式(8)類似于GRU的更新[31],每次都會更新節點的狀態;σ為Logistic-Sigmoid函數;a(t)是來自邊的激活;⊙是邏輯同或運算符;z(t)和r(t)分別為更新門和復位門,GGNN按一定固定的數量根據公式所述循環傳播;輸出h(t)作為已知事件和候選事件更新后的表示。
2.3.3 后續事件預測

在模型中,打分函數g有多種選擇,一般為相似度計算量,常見的打分函數有曼哈頓相似性、余弦相似性、點相似性以及歐幾里得相似性。本文采用歐幾里得相似性作為打分函數,即求兩個向量的歐幾里得距離,計算公式為:

(9)
另外使用注意力機制[32]來處理已知事件,因為不同的已知事件可能具有不同的權重來選擇正確的后續事件。使用注意神經網絡根據后續候選事件計算每個已知事件的相對重要性:

(10)

(11)
然后通過下式計算相關性得分:

(12)
模型的正確輸出代表輸入中的組合事件向量是正確的。模型的輸出向量是一種融合事件向量,通過解碼可獲得其真實的多事件集合。解碼器的輸入是后續組合事件表示向量vey,輸出為多標記事件編碼序列y,根據表4可反推出發生的事件組合。
MLEP模型訓練目標如式(13)所示,該模型使用邊界損失函數作為目標函數。

(13)
其中:k是候選事件的數量;N是事件鏈的數量;y是正確后續事件的標簽;sIj是第I個事件鏈與第j個后續的候選事件之間的得分;λ是L2正則項的懲罰因子;θ是模型參數的集合。
本文所使用的數據集是由公開數據集PatientEG預處理而來的。PatientEG數據集[33]由華東理工大學和上海曙光醫院聯合構建,數據來源于191 598個真實病歷記錄,其中事件共有Diagnosis-Event、Hospitalization-Event、Drug-Event、Assay-Event和Surgery-Event 5種類型,事件之間按順承關系排列,是較好的事件鏈數據源。數據集預處理具體過程為:首先對數據集中事件鏈進行清洗,保留只存在after和concurrent關系的事件,對于concurrent連接的多標記事件,采用重新編碼的方式,以一個新的事件存入,按不同的事件鏈將數據存入文件中;然后對事件進行編碼獲取事件的向量表示,對于多標記事件,采用本文第2.3.1節的方式編碼;最后基于獲取的事件鏈構建事件演化圖,構建方法參照本文第2.2節。
構建好事件演化圖后,對其劃分子圖制作模型的每條數據,子圖的集合即可作為MLEP模型的數據集。預處理后的數據集共包括108 701個樣本,通過隨機方法按6∶2∶2的比例將數據集分為訓練集、測試集和驗證集。表5為數據集的數據統計。

表5 數據集的數據統計Table 5 Data statistics of datasets 單位:個
3.2.1 參數設置
在模型訓練過程中,具體參數設置為:損失計算使用邊界損失函數進行,λ是L2正則的懲罰因子,設為0.000 001;γ是邊界值,設為0.015。超參數通過在驗證集上的實驗來調整,具體為:GGNN網絡的層數設為2層,丟棄率為0.4,學習率設為0.000 1,初始詞嵌入的向量維度設為128,在運行過程中使用早停訓練方法和RMS優化算法。
3.2.2 對比模型
為了全面評估提出的MLEP模型,本文選用經典的基于統計的預測模型(如PMI Predictor和Bigram Predictor)、基于事件對的預測模型(如Word2Vec Predictor和EventComp Predictor)和基于事件鏈的預測模型(如PairLSTM和SAM-Net)作為對比模型。各模型具體介紹如下:
1)PMI Predictor[2]:通過計算互信息,對后續事件建立共現模型進行預測,是一種基于統計共現的事件預測方法。
2)Bigram Predictor[3]:以二元條件概率作為兩事件相關性評分,是一種基于統計共現的事件預測方法。
3)Word2Vec Predictor[7]:依靠Skip-gram模型對事件進行映射,以余弦相似性作為兩事件相關性評分,是一種基于事件對的事件預測方法。
4)EventComp Predictor[8]:利用Siamese網絡學習事件的特征表示,再根據事件對之間的得分預測事件,是一種基于事件對的事件預測方法。
5)PairLSTM[9]:一種基于事件鏈的事件預測方法,該方法通過向雙向LSTM輸入事件初始表示向量,獲得隱藏層狀態,以此來表示事件,然后聯合上下文序列信息以及事件對信息,計算出候選后續事件和事件上下文相關性評分。
6)SAM-Net[10]:一種基于事件鏈的事件預測方法,該方法主要利用注意力機制和LSTM來對事件鏈中的事件進行表示,其中LSTM是實現對事件鏈序列的建模,注意力機制實現對事件的表示,最后通過對兩部分融合訓練預測出后續事件。
本文利用準確率作為評價實驗結果的好壞,各個模型在對應數據集上的結果如表6所示,對比如圖3所示。

圖3 不同模型的準確率對比Fig.3 Accuracy comparison of different models

表6 不同模型的準確率Table 6 Accuracy of different models %
根據表6和圖3的實驗結果得到如下結論:
1)本文提出的MLEP模型要優于基于統計的模型、基于事件對的模型和基于事件鏈的模型,可以表明MLEP模型可以實現對多標記事件的預測,且性能要優于其他基線模型。
2)基于統計的模型效果最差,因為該模型僅以事件出現的頻率來計算相關性得分,如果出現訓練中沒有的事件則無法計算得分,所以具有很大的局限性。基于事件對的模型表現也不理想,因為模型只考慮相鄰事件間的關系,而沒有關注到非相鄰事件可能存在的時序信息和其他復雜的關系。基于事件鏈的模型表現較好,因為其充分利用和學習了序列的時序信息,根據序列的特征來進行后續事件預測,但由于沒有考慮各個事件之間的聯系,沒有利用事件之間的發展規律和演化模式,因此效果不如基于事件演化圖的模型。
3)MLEP模型取得了較好的效果,證明了事件演化圖能捕獲事件之間的發展規律和演化模式,基于事件演化圖的預測模式能充分學習到圖中各事件之間的連接關系,其預測性能要優于基于統計、基于事件對和基于事件鏈的模式。
從時間復雜度來看:基于統計學的預測模型為O(p),p為事件的數量;基于事件對的預測模型為O(v),v為輸入向量的維度;基于事件鏈的預測模型為O(4Th2+4Tnh),其中,n為輸入特征維度,T為輸入序列的長度,h為隱狀態的維度,則4Th2表示輸入門、遺忘門、輸出門和候選記憶單元的計算,4Tnh表示輸入輸出門和記憶單元的計算;本文提出的基于事件演化圖的MLEP模型為O(|e|×F×F′+(Tnd(T+d2+kd))),其中,F×F′為權重矩陣W的表示,|e|為圖頂點數量。從對比結果可以發現,基于統計學的預測模型和基于事件對的預測模型屬于輕量級的模型,時間復雜度較低,基于事件鏈的預測模型和本文的MLEP模型都屬于深度學習模型,復雜度較高,可通過高算力設備來支持算法的運行。
為驗證MLEP模型中各模塊的有效性,本文還進行了消融實驗,分析事件表示模塊對模型的作用。消融實驗使用的模型介紹如表7所示。

表7 消融實驗模型介紹Table 7 Introduction of ablation experimental model
消融實驗結果如圖4所示,由圖4可知:1)MLEP模型結果優于MLEP-EARP模型,準確率提高了6.65%,這表明EARP事件表示方法相比于簡單地把事件描述詞嵌入拼接表示事件效果要好,更好的事件表示可以提高事件預測的效率,也證明了EARP事件表示學習方法可以提高事件知識圖譜表達能力和推理性能;2)MLEP模型結果優于兩個消融模型MLEP-EARP+LSTM和MLEP-EARP+Transformer,這表明在MLEP模型中EARP事件表示學習層對事件的表示較于LSTM和Transformer有更好的效果,EARP模塊提升了MLEP模型的性能,也證明了考慮更多的融合信息的表示學習方法可以更好地提高事件表示學習效果。

圖4 消融實驗結果Fig.4 Ablation experiment results
本文提出一種基于事件演化圖的多標記事件預測模型(MLEP)。該模型以門控圖神經網絡為框架,并結合多標記學習中問題轉換思想,將多標記問題轉化為單標記問題,構建多標記事件預測模型,實現對多標記事件的預測。在真實數據集上的實驗結果表明,MLEP模型可以有效地預測出多標記事件,且性能優于現有的主流模型,并通過消融實驗證明了更好的事件表示學習方法對事件具有更好的表示效果,能較好地提升MLEP模型性能。本文通過事件演化的模式對多標記事件預測,能反映事件之間的動態發展和邏輯關系,使事件預測更具有可解釋性。本文模型是在基于事件演化的模式下實現多標記事件預測,沒有考慮事件鏈級別之間的聯系,下一步將以融合信息更多的知識圖譜或事件圖譜為研究載體,以提升事件預測的準確率。