本文介紹哈爾濱工業大學社會計算與資訊檢索研究中心(SCIR)錄用於IJCAI 2018的論文《Constructing Narrative Event Evolutionary Graph for Script Event Prediction》[1]中的工作。本文提出通過構建敘事事理圖譜來更好地利用事件之間的稠密連線資訊,以幫助指令碼事件預測任務。為了解決大規模事理圖譜圖結構上的推斷問題,本文提出了一個可擴充套件的圖神經網路模型,來學習事件之間的互動作用並學習到更好的事件表示。在指令碼事件預測任務上,本文的方法取得了SO他的結果。本論文的資料和程式碼將會在Github上公佈。
論文作者:李忠陽,丁效,劉挺
關鍵詞:指令碼事件預測,事理圖譜,網路表示學習,可擴充套件圖神經網路
聯絡郵箱:zyli@ir.hit.edu.cn
個人主頁:http://ir.hit.edu.cn/~zyli/
1. 引言
1.1 事理圖譜
事理圖譜(Event Evolutionary Graph)是由哈爾濱工業大學社會計算與資訊檢索研究中心推出的用於刻畫事件演化規律和模式的知識庫。結構上,事理圖譜是一個有向有環圖,圖中節點表示事件,邊表示事件之間的順承和因果關係。事件之間在時間上相繼發生的演化規律和模式是一種十分有價值的知識。我們從文字中抽取、構建了多個領域事理圖譜,如金融領域的事理圖譜,出行領域的事理圖譜。其中,金融領域事理圖譜包含150多萬的事件節點以及180多萬條有向邊;出行領域事理圖譜包含近3萬的事件節點以及23萬多條有向邊。我們仍在不斷改進事理圖譜構建技術,並探索如何將其應用於真實應用場景中。實驗結果表明,事理圖譜可以為揭示和發現事件演化規律提供強有力的支援。圖1 展示了我們構建的金融事理圖譜一角。
圖1. 金融事理圖譜一角
1.2 指令碼事件預測
指令碼是人工智慧領域一個古老的概念,提出於上世紀70年代[2],當時的研究方法基於專家的人工知識工程,比如典型的餐廳指令碼。Chambers and Jurafsky [3]提出基於指代消解技術利用自動化的方法從大規模語料中自動抽取指令碼事件鏈條,並提出了經典的挖詞填空式的評估標準來評估指令碼事件推斷模型,這種思路被稱為統計指令碼學習。他們的工作引領了一大批後續的統計指令碼學習研究工作,其中Granroth-Wilding and Clark [4]是一個典型的最新進展。Granroth-Wilding and Clark[4]提出了Multiple Choice Narrative Cloze (MCNC) 的評估方法,方便了後續研究的開展。如圖2所示,本論文中的指令碼事件預測任務是指,給定一個指令碼事件上下文和5個候選後續事件,從中準確地挑選出唯一正確的那個後續事件。他們進一步提出了基於事件對的神經網路方法(EventComp),極大地提升了指令碼事件預測的準確率。隨後,Wang et al. [5]進一步提出了將事件上下文的Order資訊和事件對資訊相融合的方法(稱之為PairLSTM)。
圖2. 指令碼事件預測任務以及MCNC評估
2. 動機
前人在指令碼事件預測任務上應用的典型方法包括基於事件對的PMI [3]和EventComp [4],以及基於事件鏈條的PairLSTM [5]。儘管這些方法取得了一定的成功,但是事件之間豐富的連線資訊仍沒有被充分利用。為了更好地利用事件之間的稠密連線資訊,本文提出構建一個敘事事理圖譜(Narrative Event Evolutionary Graph,NEEG),然後在該圖譜上進行網路表示學習,進一步預測後續事件。
圖3中的例子對本文想要利用更豐富事件連線資訊(事件圖結構)的動機進行了很好的說明。給定事件上下文A(enter), B(order), C(serve),我們想要從D(eat)和E(talk)中挑選出正確的後續事件。其中,D(eat)是正確的後續事件而E(talk)是一個隨機挑選的高頻混淆事件。基於事件對和事件鏈的方法很容易挑選出錯誤的E(talk)事件,因為圖3(b)中的事件鏈條顯示C和E比C和D有更強的關聯性。然而,基於(b)中的鏈條構建(c)中的事件網路之後,我們發現B,C和D形成了一個強連通分量。如果能夠學習到B,C和D形成的這種強連線圖結構資訊,則我們更容易預測出正確的後續事件D。
圖3. 事件圖結構相比事件對和事件鏈的優勢
有了一個敘事事理圖譜之後,為了解決大規模圖結構上的推理問題,本文提出了一個可擴充套件的圖神經網路模型在該圖譜上進行網路表示學習。近期,許多網路表示學習方法湧現出來,典型的淺層方法如DeepWalk、LINE、Node2Vec,最早提出的用於圖結構上的神經網路方法如GNN以及改進方法GGNN,近期基於卷積的方法如GCN,GraphSAGE,GAT等。然而,這些方法存在這樣那樣的問題,不能夠直接與本文的任務相結合。有的是無監督方法,不能有效利用有監督資訊,效能會打折扣;有的只能應用於小規模圖結構,擴充套件性較差;有的只能用於無向圖,而本文的敘事事理圖譜是有向有環加權圖;有的只能學習到較短距離的資訊傳遞。通過比較,我們選擇了更為合適的GGNN [6]模型。但是它不能直接用於本文的大規模敘事事理圖譜圖結構上。本文通過在訓練中每次只在一個小規模相關子圖上進行計算,來將GGNN擴充套件到大規模有向有環加權圖上,改進後的模型叫做Scaled Graph Neural Network (SGNN)。該模型經過修改也可以應用於其他網路表示學習任務中。
3. 方法
在上文的動機部分已經基本描述了本文方法的大體思路,圖4是本文模型的整體框架圖。模型分為兩步:構建敘事事理圖譜和利用SGNN進行網路表示學習用於預測後續事件。假設圖4(a)是我們構建的敘事事理圖譜,我們每次從中取出涉及到的一個子圖,如圖4(b),然後將其送入圖4(c)的GGNN模型中,學習並更新該子圖上的事件表示。具體地,每個子圖包括一個故事上下文和所有候選事件節點,以及這些節點之間的有向邊。
圖4. 基於敘事事理圖譜和可擴充套件圖神經網路的指令碼事件預測模型總圖
3.1 構建敘事事理圖譜
構建敘事事理圖譜分為兩步:抽取指令碼事件鏈條;基於這些鏈條構建圖。首先,本文采用Granroth-Wilding and Clark[4]的方法抽取指令碼事件鏈條(具體見參考文獻[4])。得到事件鏈條集合後,本文基於這些鏈條來構建敘事事理圖譜。之所以叫"敘事事理圖譜",是因為這些鏈條是完全按照文章描述事件的順序抽取出來的,而不是按照真實發生的時間順序。抽取出的每個事件可以表示為一個四元組{謂詞,主語,賓語,介詞短語}。為了克服事件的稀疏性,使得圖譜中的事件節點是一個抽象事件,本文采用了Chambers and Jurafsky [3]中的事件表示方法來表示NEEG中的事件節點,包括一個動詞以及該動詞和鏈條實體之間的語法依存關係,例如(eat, subj)。所有的事件bigram都形成一條事件演化有向邊,邊上權重w可簡單採用如下公式來計算:。最終構建的敘事事理圖譜含有104,940事件節點和6,187,046有向加權邊。
3.2 可擴充套件的圖神經網路模型
圖神經網路(GNN)最早於2005年被提出。之後Li et al. [6]對其優化技術進行了改進,並將GRU應用到GNN上形成了GGNN模型。然而GGNN多應用於小規模圖上(如幾十上百個節點),每次對整個圖進行處理。這不能適用於本文的大規模圖結構上。為了解決可擴充套件性的問題,本文將‘分治’思想引入GGNN模型中,每次僅僅處理涉及到的一個子圖(包括一條上下文和候選事件節點,以及他們之間的邊,如圖4(b))。如圖4(c)所示,SGNN模型主要包含3個部分:事件表示層、GGNN計算層、挑選後續事件層。
3.2.1 學習初始事件表示
NEEG中的每個抽象事件節點實際上表示了多個具體的四元組事件。為了將4個事件元素組合成一個事件表示向量,本文對比了如下幾種方法:
平均法:使用所有4個事件元素詞向量的平均值來作為整個事件的表示;
非線性變換[5]:
拼接[4]: 直接將4個事件元素詞向量拼接起來作為整個事件的表示。
3.2.2 更新子圖中的事件表示
GGNN被用來學習事件之間的互動作用並更新每個子圖上的事件表示。每次輸入到SGNN的為兩個矩陣and。其中包含了上下文加所有候選事件的向量表示;是對應的子圖鄰接矩陣,該矩陣決定了子圖中的事件如何互動作用。如公式1所示:
公式1
GGNN模型運作方式類似廣泛應用的GRU模型,如公式2所示。不同的是每個迴圈GGNN都會更新子圖中所有節點的事件表示,每次迴圈節點之間的資訊傳遞給一度相鄰節點。多個迴圈得以讓各個節點的資訊在子圖結構上充分流動互動。最終模型的輸出為,包含了學習到的子圖中的事件表示。
公式 2
3.2.3 挑選正確的後續事件
得到事件表示後,本文采用了與前人工作[4,5]相類似的方法進行後續事件的挑選。第i個上下文事件與第j個候選事件的相關性分數可以通過進行計算,整個上下文與第j個候選事件的相關性用進行計算,基於公式挑選出正確的那個候選事件,作為最終的預測結果。本文比較了多個相似性計算函式,比如Manhattan相似度,cosine相似度,內積相似度以及歐幾里得相似度,並在的計算中引入了attention機制:。
3.2.4 損失函式
為了與本文的任務相結合,我們設計瞭如下的損失函式,如公式3所示,包括一個大間隔損失和一個正則項。其中表示第I個上下文和第j個候選事件的相關分數, y是對應的正確候選事件的索引。
公式 3
4. 實驗
4.1 資料集
本文使用的資料集是Gigaword語料中的New York Times部分,並採用了Granroth-Wilding and Clark [4]的資料預處理和指令碼事件鏈條抽取方法。對於每一個事件上下文,有5個候選後續事件,其中只有一個是正確的,更多的細節請參考相關論文。詳細的資料集統計詳見表1。
表1. 資料集統計
4.2 實驗結果
表2 中展示了本文的實驗結果。
通過比較PMI、Bigram和其他方法,可以發現基於向量表示學習的方法顯著超過了基於頻率統計的方法;
用過比較Word2vec和DeepWalk,以及EventComp、PairLSTM和SGNN,可以發現基於圖結構的方法超過了基於事件對或者事件鏈的方法;
SGNN模型取得了單模型最好的預測結果52.45%;
在預測階段使用注意力機制可以提升SGNN的效能,說明上下文中的事件對挑選後續事件有不同的重要性。
此外,本文也進行了不同單模型的融合實驗。結果表明不同模型之間可以互補,三個模型SGNN, EventComp和PairLSTM的組合取得了最好的實驗結果54.93%。
表2. 實驗結果
5. 結論
本文簡要介紹了我實驗室提出的事理圖譜概念及初步成果。在IJCAI的論文中,我們提出構建敘事事理圖譜並基於網路表示學習來解決指令碼事件預測的任務。具體地,為了更好地利用事件之間的稠密連線資訊,本文首先從大規模無結構化語料中抽取指令碼事件鏈條,然後基於這些鏈條構建了一個敘事事理圖譜(NEEG)。為了解決NEEG大規模圖結構上的推斷問題,基於前人提出的圖神經網路GGNN,本文提出了一個可擴充套件的圖神經網路(SGNN)來建模事件之間的互動作用並學習到更好的事件表示,這些學習到的事件表示可以用於指令碼事件預測任務。實驗結果表明事件圖結構比事件對或者事件鏈更加有效,可以顯著提高指令碼事件預測的準確率。
6. 參考文獻
[1] Constructing Narrative Event Evolutionary Graph for Script Event Prediction, Zhongyang Li, Xiao Ding, Ting Liu. To appear in IJCAI 2018
[2] Roger C Schank and Robert P Abelson. Scripts, plans, goals, and understanding: An inquiry into human knowledge structures (artificial intelligence series). 1977.
[3] Nathanael Chambers and Daniel Jurafsky. Unsupervised learning of narrative event chains. ACL, 2008.
[4] Mark GranrothWilding and Stephen Clark. What happens next? event prediction using a compositional neural network model. AAAI, 2016.
[5] Zhongqing Wang, Yue Zhang, and Ching-Yun Chang. Integrating order information and event relation for script event prediction. EMNLP, 2017.
[6] Yujia Li, Daniel Tarlow, Marc Brockschmidt, and Richard Zemel. Gated graph sequence neural networks. arXiv preprint arXiv:1511.05493, 2015.