蘭 飛 張 宇
1(重慶電子工程職業學院 重慶 401331) 2(中國科學院重慶綠色智能技術研究院 重慶 400714)
因果關系抽取是指文本實體間因果關系的自動檢測,從自然語言中有效地提取因果關系對于信息檢索、問題問答、事件推理和預測等應用變得越來越重要[1-2]。建立因果網絡可以歸納以前未知的知識,并將其應用于生物學、生物醫學、金融和環境科學等各個領域[3-4]。關系提取主要分為基于規則和基于機器學習這兩類方法[5-6]。基于規則的方法需要大量的手工工作來構建手工模式,且由于自然語言中因果關系表達的復雜性,其準確性和召回率較低。基于特征的方法從大量的標記數據中自動推斷因果關系,其依賴于所設計特征的質量和外部自然語言處理工具包的準確率,因此設計耗時且容易造成錯誤積累,影響最終的分類性能[7]。
隨著深度學習的盛行,研究人員開始構建沒有復雜特征工程的模型,并最小化對NLP工具包的依賴。具有預訓練詞嵌入的卷積神經網絡(Convolutional Neural Network,CNN)是用于關系提取的最先進的深度學習模型之一[8-9]。預訓練的詞嵌入將詞的語義和句法信息編碼為固定長度的向量,CNN能夠從句子中提取有意義的n-gram特征。與基于規則的方法和基于豐富特征的方法相比,具有單詞嵌入的CNN模型能夠更有效地提取復雜的因果關系,但這些模型依賴于大量應該涵蓋自然語言中的所有因果關系表達式的訓練數據[10],這是不切實際的,因為自然語言中詞和句子具有多樣性和歧義性的特征,并且深度學習模型存在大量的自由參數[11],這些模型容易過擬合且有偏差的訓練數據,從而影響深度學習模型的性能。
文獻[12]綜合卷積神經網絡抽取局部特征的優勢和循環網絡在時序依賴中建模能力,提出了卷積循環神經網絡。該模型融合了局部和整體信息,比單獨建模局部特征和序列關系的模型在關系抽取上更有效。文獻[13]提出了基于無監督上下文建模的分布式文檔嵌入,該模型能夠從文本中捕獲詞語義、n-gram特征和需要較少的訓練數據,得到包含語義相似的n-gram特征的文檔在向量空間中具有更緊密的嵌入。文獻[14]提出了基于n-gram特征的文檔向量的嵌入方法,該方法允許以固定長度、連續和密集特征向量表示文檔。但以這種方式學習的嵌套不適合直接用于因果關系提取,因為具有語義相似n-gram特征句子可能涉及因果關系,也可能不涉及因果關系。
本文基于上面的研究,提出用于自然語言因果關系抽取的高效的混合卷積神經網絡MCNN,該模型以互補的方式結合人類的先驗知識和在數據中學習到的信息從自然語言中抽取因果關系。面向知識的通道將因果關系的語言知識整合到詞匯知識庫以捕獲因果關系的重要語言線索;面向數據的通道基于傳統的CNN從訓練數據中學習因果關系的其他重要特征,基于詞過濾選擇和聚類技術來去除冗余特征,通過減少模型的自由參數來解決由于缺乏訓練數據而導致的過擬合問題,最后在三個因果關系抽取數據集上對模型進行驗證。
本文設計的MCNN包含二個傳統的CNN通道:面向知識通道和面向數據通信,這兩個通道相輔相成,從不同的角度提取因果關系的有用特征,總體結構如圖1所示。它基于詞匯知識庫自動構建CNN的卷積過濾器,使模型能夠有效且準確地從自然語言文本中提取重要的因果關系線索,從而緩解深度學習模型的過擬合問題。

圖1 MCNN的總體設計結構
面向知識的通道用來有效地從句中提取因果關系的關鍵字和提示短語,該通道基于詞匯知識庫中因果關系的語言知識自動生成的卷積過濾器。與傳統CNN中的卷積過濾器相比,詞過濾器能夠更精確地反映因果關系的語言線索,它的權重是詞的嵌入,這些單詞通過預先訓練可以直接使用而無需任何額外的訓練,因此,可以顯著減少模型的自由參數,緩解訓練數據量較小時的過擬合問題。
1.1.1句子表示
MCNN的輸入是標有兩個目標實體e1和e2的句子,用于因果關系識別。關鍵字和提示語出現在距離兩個目標實體較遠的地方,可能無法提供信息和影響分類結果。為了消除噪聲并有效地從句中提取語言線索,MCNN僅使用兩個目標實體間的單詞作為面向知識通道的輸入。為了捕獲詞的語法和語義信息,查找使用大型語料庫預先訓練的單詞嵌入表Wwrd∈Re×|V|,每個詞由向量w∈Re表示,其中e是單詞嵌入向量的維數,|V|是詞匯量。由于CNN僅適用于固定長度的輸入,所以句子中單詞標記的數量固定為n1,這是e1和e2間的最大詞數。使用具有零嵌入向量的特殊填充字符填充具有少于n1個標記的句子。因此,輸入序列xk={x1,x2,…,xn1}表示為實值向量序列embk=[w1,w2,…,wn1]。
1.1.2自動生成字過濾器庫
這個過程基于人類對因果關系的先驗知識自動生成CNN的卷積濾波器以進行因果關系抽取,而無須使用大量數據來訓練模型。這種方式構造的詞過濾器具有表示因果關系的關鍵字和提示短語的物理均值,比從訓練數據中學習的傳統卷積過濾器更精確。此外,這些過濾器的權重是靜態值,而不是模型中的自由參數,模型中的自由參數數量顯著減少,從而緩解訓練數據量較小時的過擬合問題。
1.1.3卷積和池化運算
為了捕獲句中因果關系的重要語言線索,將生成的詞過濾器與句中的n-gram特征進行卷積以生成相似性分數序列。與基于規則的方法相比,MCNN能夠捕獲除詞過濾器庫中的單詞以外的語義相似的因果詞。具體而言,詞過濾器f=[f1,f2,…,fk]T與輸入矩陣embk=[w1,w2,…,wn1]進行卷積,其中k∈[1,2,3]為卷積窗口大小,也表示句子中的k-gram特征。本文改進了CNN的傳統卷積運算以使每個詞過濾器生成一個特征映射m=[m1,m2,…,mn1-k+1],其中mi表示詞過濾器f和wkgram=[wi,wi+1,…,wi+k-1]T間的相似度,改進的卷積運算如下所示:
(1)
式中:b為偏差項。與將非線性函數應用于卷積結果的傳統CNN不同,本文將卷積結果除以窗口大小k。通過將fj和wi+j-1(詞嵌入)限制為單位向量,mi表示f和wkgram間的余弦相似度。在特征圖中產生余弦相似度是為了使所有卷積窗口大小的比例相等,從而實現不同長度的詞過濾器具有相同的重要性。
采用最大池化來進一步聚合每個濾波器的卷積結果,并從特征映射中提取最重要或最相關的特征。每個特征映射的最大池化操作如下:
p=max{m}=max{m1,m2,…,mn1-k+1}
(2)
從特征映射中獲取最大值的原因是最大余弦相似度表明句子中存在因果關鍵字或提示短語的強線索。
1.1.4詞過濾器選擇和聚類
為了提高模型性能,本文使用詞過濾器和聚類技術進行降維。詞過濾器選擇先刪除由沒有提供足夠的類可分離性的詞過濾器產生的非辨別性特征,基于訓練數據及其標簽,使用方差分析(Analysis of Variance,ANOVA)F值評估每個特征的可分離性,以衡量類均值間的差異程度。若F值很小,類別均值幾乎相近,則該特征對分類沒有幫助;若F值較大,至少有一個類別的均值與其他類別不同,則該特征能夠為分類器提供有用的信息以區分該類別與其他類別。通過取類間均方比(Mean Square Between Classes,MSB)與類內均方比(Mean Square Within Classes,MSW)來計算在最大池化層后生成的每個特征的F值比率:
(3)
式中:SS為平方和;df為自由度;c為類別數量;N為所有樣本數量;ni為類別i的樣本數量;GM(總體均值)為所有樣本的均值;Mi為類別i的均值;xij為類別i中的第j個樣本。
在計算每個特征的F值后,基于自由度為(c-1)和(N-c)的F值的F分布進行假設檢驗。零假設H0設所有類均值相等,顯著性水平為α=50%,并且能夠從F分布中找到臨界F值Fα。若F>Fα,則可以拒絕H0并保留相應的濾波器,因為它能夠提供類均值的可分離性;若F≤Fα,則刪除相應的濾波器。
詞過濾器的聚類除去非分離特征后,仍然存在許多會產生相同或接近的值的冗余特征,這將增加模型的維數和損害分類性能。這些冗余特征由具有相近單詞嵌入的語義相似的單詞過濾器產生,本文根據詞過濾器的語義相似度對其進行聚類,以解決特征冗余問題。
對bi-gram詞過濾器,將兩個詞嵌入連接起來以形成單個向量表示,然后執行K-均值聚類算法,分別找到uni-gram和bi-gram詞過濾器的聚類。基于這些聚類,對CNN的最大池化層后的特征執行進一步的池化操作。對于與第i個聚類中的詞過濾器相對應的特征{pi1,pi2,…,pin},用式(4)執行最大池化或平均池化。
(4)
最大池操作保留了句子中最重要的語言線索,而平均池操作考慮所有詞過濾器。由于池化操作將一個簇內的特征聚合成單個特征,所以降低了特征向量的維數。面向知識的通道的特征向量維度由用戶設置的uni-gram和bi-gram詞過濾器的聚類數量確定。
面向數據的通道用來從訓練數據中學習因果關系的重要特征,它通過使用更長的卷積窗口來捕獲整個句子中更長的相關性。卷積濾波器根據訓練數據來調整其權重,給予模型足夠的能力來學習較長的相關性和面向知識通道所忽略的重要信息。因此,面向數據通道和面向知識通道相輔相成,使得MCNN能夠有效地從句中提取因果關系。
1.2.1句子表示
為了保留除e1和e2之間的單詞以外的詞信息,面向數據通道的輸入包含該句子中的所有單詞,句子中的最大字數(n2)可以非常大,但CNN不能捕獲詞在句中的位置信息,并且詞出現在距離e1和e2較遠的地方,可能沒有信息性。
1.2.2卷積和池化運算
卷積濾波器f=[f1,f2,…,fk]T被隨機初始化并通過反向傳播進行訓練,其中fi∈Re+2d,k為卷積窗口大小。為了捕獲句中更長的相關性,使用更寬的窗口大小(k=3,4),將輸入語句的表示簡化為embD={x1,x2,…,xn},該通道中的卷積運算如下:
(5)
式中:tanh是雙曲正切函數,b為偏差項。得到的特征映射m=[m1,m2,…,mn-k+1]被傳遞到與面向知識通道中相同的最大池化層,以提取最重要的特征。濾波器的數量r是用戶選擇的超參數,它確定面向數據通道的輸出維數。
最終的特征向量p∈Rh+r由面向知識的通道輸出和面向數據的通道輸出組成,代表MCNN提取的輸入語句的高級特征。在將特征向量傳遞給分類器以做出因果關系的最終判斷之前,應用dropout正則化則,防止出現過擬合問題。
pd=p°b
(6)
式中:°表示逐元素乘法,并且b∈Rh+r是以概率為ρ的伯努利分布隨機生成的向量。然后特征向量pd作為分類器的輸入以預測類別標簽。分類器由標準神經網絡的全連通層和預測類概率的softmax層組成。
本文通過最小化分類交叉熵損失函數來訓練模型。用于訓練的自由參數包括位置嵌入矩陣、面向數據通道的濾波器權重、完全連接的層權重和softmax層權重的分類器權重。用帶有自適應學習率調整更新規則的小批量隨機梯度下降進行訓練。
為了評估本文MCNN模型在因果關系抽取中的有效性,采用關系抽取數據集SemEval-2010 task 8與Causal-TimeBank和Event StoryLine進行實驗。將測試結果與使用位置嵌入和訓練單詞嵌入的具有單個窗口大小(k=3)的濾波器方法(簡稱SingleCNN)和具有多個窗口大小(k=2,3,4,5)的濾波器和微調預先訓練的單詞嵌入方法(簡稱MultiCNN)[12]進行分析比較。
實驗的所有模型采用的是預訓練的基于依賴關系的詞嵌入,詞嵌入是維度為e=300維的在訓練期間保持靜態的單位向量;位置嵌入的維度為d=20,dropout正則化概率ρ=0.4,訓練的最小批量為20個,softmax層之前的隱藏層的維數是特征向量維數的一半。對于未在詞嵌入中的詞,初始化為具有與詞嵌入量相同維數的隨機單位向量。
為了研究面向數據通道的影響并找出其最優濾波器數,本文對范圍從0到100的濾波器數量進行網格搜索,使用根據10倍交叉驗證計算得出的宏平均F1分數進行評估,三個數據集的網絡搜索結果如圖2所示。
從圖2可以看出面向數據通道中每個窗口大小的最佳濾波器數量在25到30之間。進一步增加濾波器數量將導致F1得分下降,且模型性能不穩定。這是因為,當自由參數的數量很大且訓練數據有限時,該模型容易過擬合。與通常使用數百個卷積濾波器的傳統CNN相比,所設計的MCNN的面向數據通道中所需的濾波器數量顯著減少。
表1給出了在數據集SemEval、CausalTB和EventSL上提取因果關系的人工模型的宏觀平均F1得分。可以看出與SingleCNN和MultiCNN相比,本文MCNN能夠更有效地提取因果關系,這是因為MCNN基于詞匯知識庫自動構建詞過濾器,比隨機初始化的卷積過濾器對因果關系的關鍵詞和提示短語具有更精確的表示和更廣泛的覆蓋率。面向知識通道和面向數據通道的有效結合使模型能夠捕獲因果關系的重要特征。表2給出了SemEval-2010 task 8數據集的關系類型,例1中在數據集SemEval-2010 task 8上關系實例,MultiCNN判定為Other類別,而本文的模型則正確標識為Cause-Effect類,可以看出不同算法對于例1處理結果的差異。

表2 SemEval-2010 task 8數據集的關系類型
例1:The tsunami generated by earthquake killed hundreds of thousands of people.
<譯>:地震引發的海嘯使數十萬人喪生。
實體1 earthquake
實體2 tsunami
關系 Cause-Effect
為了研究MCNN在緩解過度擬合中的有效性,在訓練集上訓練MCNN和MultiCNN,并在訓練集和驗證集上測試模型,測試模型的學習曲線由圖3到圖5給出。

圖3 SemEval-2010 task 8數據集上的學習曲線
可以看出訓練集和驗證集上的宏觀平均F1得分隨訓練次數的增加而增加,兩個模型的訓練集得分最終都可以達到100%,訓練得分和驗證得分間的差距實際上是由于訓練數據上的模型過度擬合造成的。本文MCNN在驗證集上比MultiCNN獲得了更高的得分,這表明MCNN能夠緩解過擬合問題。MCNN的訓練速度比MultiCNN更快,這是因為MultiCNN需要從頭開始訓練所有參數,而MCNN只需要訓練面向數據的通道,面向知識的通道由于已經包含許多有用信息可以在訓練前提取因果關系。
為了能夠有效地抽取自然語言因果關系和解決訓練數據量較小時的過擬合問題,本文提出了一種高效的混合卷積神經網絡(MCNN),它包含面向知識通道和面向數據通道兩個傳統CNN通道。面向知識的通道基于詞知識庫自動生成卷積過濾器,以捕獲因果關系的語言線索;面向數據的通道從數據中學習因果關系的其他重要特征,通過減少模型的自有參數來解決由于缺乏訓練數據而導致的過擬合問題。實驗表明,與SingleCNN和MultiCNN相比,本文MCNN在因果關系提取方面性能更好。未來的工作是研究如何自動選擇用于因果關系識別的目標實體以及如何更有效地提取復雜的因果關系。