李冠宇,張鵬飛,賈彩燕
(北京交通大學 a.計算機與信息技術學院; b.交通數據分析與挖掘北京市重點實驗室,北京 100044)
自然語言推理也稱為文本蘊涵識別[1],是自然語言處理中的一項重要任務,其主要關注的問題是由前提文本推斷出假設文本。此項任務需要理解前提和假設文本之間的語義相似性來判斷它們之間的關系,包括蘊涵、矛盾和中立3種關系[2-3]。
自然語言推理任務通常被視為一種關系分類任務,其在較大的訓練集中學習前提和假設文本之間的關系,在此基礎上預測新的前提和假設文本對之間的關系。現有自然語言推理模型大致分為基于特征的推理模型[4]和基于神經網絡的推理模型[5-6]兩類。基于特征的推理模型主要通過句子的非詞匯特征(兩個句子長度差的絕對值)和詞匯化特征(如n-gram特征)的學習來表示前提與假設文本之間的關系類別。近年來,端到端神經網絡模型在機器翻譯、情感分類等自然語言處理任務中表現較好,受到大量學者的關注。
雖然將深度學習引入自然語言推理任務中,在現階段取得了較好的效果,但仍存在不足,如傳統的雙向LSTM網絡[7]忽略了重要單詞對于句子向量的貢獻,每個單詞的相同權重造成句子表征不夠準確,
以及前向向量與后向向量被簡單地連接到一起,未考慮到每個方向對于句子語義表示的重要程度,從而造成句意缺失。
針對以上問題,本文在ESIM模型雙向LSTM網絡中引入注意力機制與自適應的權重計算層,分別刻畫不同單詞和不同方向對于句子向量的貢獻度,構建一種注意力增強的自然語言推理模型。
對于自然語言推理,基于特征的推理模型多為基于統計的方法,對文本的語義刻畫不夠深入。將深度學習引入自然語言推理領域,端到端深度學習模型取得了較好的效果。
將基于神經網絡的自然語言推理模型分為句子編碼模型和句子交互模型兩類,兩種模型的架構如圖1所示。

圖1 兩種自然語言推理模型架構
句子編碼模型[8-9]利用預先訓練好的詞向量來進行編碼,將前提文本與假設文本分別編碼為文本向量[10-11],兩個文本向量相連之后再利用全連接層來學習兩個文本之間的語義關系,主要架構如圖1(a)所示。在此類模型中,LSTM[12](Long Short-Term Memory)網絡及其變體GRU[13](Gated Recurrent Units)以及雙向LSTM能夠學習句子內部的長距離依賴關系,因此常被用于句子編碼。文獻[8]提出了一種通用的自然語言推理任務的訓練方案,并對比了LSTM、GRU、最大(平均)池化雙向LSTM、自注意力機制網絡以及分層的卷積神經網絡等編碼架構。實驗結果表明,采用最大池化層的雙向LSTM網絡具有最佳的性能。文獻[9]設計了一個分層的雙向LSTM模型(HBMP)進行句子編碼,該模型采用上一層雙向LSTM的參數初始化下一層雙向LSTM的參數進行信息傳遞,比使用單一的雙向LSTM層效果更佳。文獻[7]則將單層雙向LSTM網絡替換成多層雙向LSTM網絡來加強模型的句子編碼能力。
句子交互模型[14-16]與句子編碼模型架構相似,首先學習句子對的向量表示,使用更新的單詞向量表示計算兩個句子之間的相似度矩陣,然后利用相似度矩陣進行句子向量的增強表示,最后做出分類判斷,主要架構如圖1(b)所示。與句子編碼模型相比,句子交互模型能夠利用句子對之間的文本相似性,并且能夠捕獲前提文本與假設文本之間的潛在語義信息。文獻[17]將注意力機制引入機器翻譯任務中,同步完成翻譯和文本對齊任務。文獻[18]設計了一個成對詞交互模型(PWIM),充分利用了詞級細粒度信息,取得了較好的效果。文獻[15]提出了雙向多視角匹配模型(BiMPM),對比了多種不同注意力機制的匹配策略。文獻[12]提出了ESIM模型,利用兩層不同的雙向LSTM分別進行文本語義編碼。實驗結果表明,句子交互模型,特別是ESIM模型,優于上述的句子編碼模型。
盡管ESIM模型表現優異,但該模型并沒有考慮雙向LSTM層中每個單詞的不同貢獻。因此,將注意力機制引入雙向LTSM層將有利于刻畫詞的重要性。已有的雙向LSTM層對于前向和后向向量的重要度不加區分,傳統的雙向LSTM層中只是將它們簡單地連接到一起,但前向與后向向量都代表著信息的流動方向,因此,有必要考慮每個方向(向前或向后)對字向量編碼是否具有不同的重要性,從而自適應性地將兩個方向向量以不同的權重聯合在一起。本文使用ESIM模型作為基線,在每個雙向LSTM層后添加一個詞注意力層,并使用自適應方向權重層來學習前向和后向向量對于詞向量的貢獻度,將此注意力增強的雙向LSTM模型命名為雙向aLSTM模型,并將修改后的ESIM模型命名為aESIM模型。
假定有2個句子,前提文本p=(p1,p2,…,plp)與假設文本q=(q1,q2,…,qlq),任務目標是預測它們的關系標簽y。
ESIM模型主要由輸入編碼層、局部推理層、局部推理增強層以及分類層4個部分組成,模型架構如圖2所示。

圖2 ESIM模型架構
在輸入編碼層中,ESIM模型利用預訓練的詞向量(如GloVe向量[20])在雙向LSTM層中對輸入的句子對進行編碼:
(1)
(2)
其中,(p,i)代表句子p中的第i個詞,(q,j)代表句子q中的第j個詞。
(3)
(4)
(5)

(6)
(7)
在分類層中,ESIM模型并未用到文獻[14]提出的向量求和的方法,而是提出同時使用最大池化與平均池化的方法,并將拼接的結果送入最后的多層全連接層進行最終分類。
本文基于ESIM模型提出了注意力增強的自然語言推理模型aESIM。類似于ESIM模型,aESIM模型仍包含編碼層、局部推理層、局部推理增強層以及分類層4個主要部分。ESIM模型與aESIM模型的區別在于將ESIM模型中的兩層雙向LSTM層替換為兩層雙向aLSTM層。如圖2所示,ESIM模型中的虛線框將被替換為雙向aLSTM層,在右上角用實線框標出,雙向aLSTM層的細節展示如圖3所示。

圖3 基于方向注意力機制的雙向LSTM結構

(8)
(9)
aLSTM模型在傳統的雙向LSTM模型中加入了詞注意力層以及自適應方向權重層來增強模型句子表征能力。
2.2.1 詞注意力層
在一個句子中,并非所有單詞對與句向量的貢獻都是相同的。類似于文獻[5]的方法,本文引入了相似的注意力機制,它是一項衡量單詞重要度且十分有效的工具。在詞向量經過雙向LSTM層之后,通過添加詞注意力層來計算詞的重要度以增強模型的語義表示能力。
uil=tanh(Wfil+b)
(10)
(11)
sil=αil*fil
(12)

2.2.2 自適應方向權重層
在傳統的雙向LSTM層中,每個單詞的前向與后向向量被認為在生成最終詞向量時有著相同的權重,因此,前向和后向向量被簡單地拼接在一起,但這并不能體現信息流動方向的差異性。對一個單詞,前面的單詞與后面的單詞在不同的方向上是相反的,而不同方向的詞向量對于詞向量的貢獻度可能是不同的。因此,本文設計一個新的自適應方向權重層來學習不同方向的詞向量對于最終的詞向量的貢獻度。
(13)
其中,W*與b*表示權重矩陣以及偏置項,g表示非線性變換,[·]表示連接操作。在訓練過程中,所有的參數都可以進行更新。利用式(14)和式(15)可以得到整個句子的向量表示:
(14)
(15)
本文將添加了詞注意力層以及自適應權重方向層增強的雙向LSTM層的網絡稱作雙向aLSTM。雙向aLSTM層被應用到ESIM模型中替換其中的雙向LSTM層。
本文在SNLI、MultiNLI[19]和Quora 3個公開自然語言推理數據集上進行實驗。
1)SNLI數據集共包含了共計570 152個句子對,其中訓練集包含5.49×105個句子對,驗證集與測試集各包含1×105個句子對。每一個句子對都有唯一的一個類標簽(“蘊涵”“中立”“矛盾”以及“-”)。標簽為“-”表示句子對之間沒有明確的可分類結果,因此,在訓練,驗證以及測試中移除了這些關系不明確的句子對。
2)MultiNLI語料庫是由源文本蘊含信息注釋的4.33×105句子對組成的眾包集合。該語料庫以SNLI語料庫為模型,但不同之處在于涵蓋了一系列口語和書面文本,并支持獨特的跨類型生成評估。
3)Quora數據集包含4×105個問題對。這個語料庫旨在判斷兩個句子是否具有相同的語義關系來判斷兩個文本是否要表達相同的意圖。
本文使用驗證集進行模型選擇與參數調試。aESIM模型的超參數設置如下:實驗使用Adam算法作為模型的優化方法,第1個動量設定為0.9,第2個動量設定為0.999。初始化學習率設置為0.000 5,訓練批量大小設置為128。所有雙向aLSTM層以及單詞嵌入的隱藏狀態的維度設置為300。實驗使用了非線性函數f=selu,因為它具有比Relu更快的收斂速度。失活率在訓練過程中設置為0.2,實驗使用預訓練的300D的GloVe向量來初始化詞嵌入。未登錄詞用高斯隨機函數來隨機初始化。該算法完全使用Keras框架實現,并在TITAN Xp顯卡上進行訓練。
本文在SNLI數據集上比較多個方法性能,如表1所示。其中,第1行方法是傳統特征工程模型,第2行~第6行方法是句子向量編碼模型,第7行、第8行方法是句子交互模型,第9行、第10行方法是基準模型ESIM以及本文提出的aESIM模型。ESIM以及aESIM模型是基于Keras實現的。對于MultiNLI數據集,主要用到的基準模型有CBOW、雙向LSTM、PWIM模型以及ESIM模型,結果如表2所示。Quora數據集的結果如表3所示。對于每一種方法,本文均使用準確率來進行評價。

表1 不同模型在SNLI數據集上的準確率

表2 不同模型在MultiNLI數據集上的準確率

表3 不同模型在Quora數據集上的準確率
從表1~表3可以看出,aESIM模型在SNLI數據集上達到了88.1%的準確率,相比于ESIM模型上提升了0.8個百分點,在MultiNLI數據集上相比于ESIM提升了0.5個百分點,并且表現出了最好的性能。在Quora數據集上,達到了88.01%的準確率,對比于ESIM模型提升了1個百分點。由此可以得出結論,本文提出的aESIM在3個數據集上都表現出優于ESIM的性能,表明引入該注意力機制與自適應方向權重的雙向LSTM模型具備更強的句子編碼能力。
為了更直觀地展示雙向aLSTM的提升效果,本文進行了可視化展示,如圖4~圖6所示。從SNLI測試集中抽取了一個前提文本以及3個相對應的假設文本。其中,前提文本是“A woman with a green headscarf,blue shirt and a very big grin”,3個假設文本分別為“the woman has been shot”“the woman is very happy”“the woman is young”,對應的標簽分別是“矛盾”“蘊涵”以及“無關”。

圖4 矛盾句可視化展示

圖5 蘊涵句可視化展示

圖6 中立句可視化展示
從圖4~圖6可以看出,每對前提假設句子對都會有相應的關鍵詞對,如“grin-shot”“grin-happy”以及“grin-young”,這些關鍵詞對于前提文本能否推斷出假設文本具有決定性的作用。圖4~圖6分別表示ESIM模型與aESIM模型中句向量分別經過雙向LSTM層以及雙向aLSTM層之后的可視化結果,這樣可以直接觀察到兩個詞之間的相似度。在每幅圖中,顏色越淺,表明相似度越大。可以看出,aESIM模型對于關鍵詞對的相似度計算結果均高于ESIM模型的計算結果。尤其是在圖5中,“happy”與“grin”在aESIM模型中相似度明顯高于在ESIM模型中的相似度。因此,本文提出的aESIM模型相比于ESIM模型有著更強的信息提取以及句子表征能力,在計算詞相似度方面也有更好的表現。
本文在ESIM模型的基礎上提出注意力增強的自然語言推理模型aESIM。在雙向LSTM層中引入注意力機制與自適應的權重計算層,將前向與后向向量加權相連,分別刻畫不同單詞和不同方向對于句子向量的貢獻度。在SNLI、MultiNLI以及Quora 3個自然語言推理公開數據集上的實驗結果表明,與ESIM模型相比,aESIM模型表現出更優的性能,具備較強的信息提取能力。下一步將對注意力機制的應用方法進行深入研究,同時構建基于字符以及單詞聯合表示的詞向量模型。