劉廣燦 曹宇 許家銘 徐波
自然語言推理(Natural language inference,NLI)又稱為文本蘊含識別(Recognizing textual entailment,RTE)[1?2],是自然語言處理(Natural language processing,NLP)中一個重要的研究問題.自然語言推理是一個確定兩個或多個句子之間邏輯關系的任務,例如:給定一個前提(Premise)和一個假設(Hypothesis),目標是確定它們之間的邏輯關系是蘊涵、中立還是矛盾.SNLI[3]和Breaking-NLI[4]等一系列高質量、大規模標準數據集的發布推動了自然語言推理的發展,促進了大量相關研究[5?11],表1 展示了幾個SNLI 數據集中的例子.目前基于神經網絡的推理模型主要有兩類:一類側重前提和假設分別進行句子嵌入,然后使用分類器將其組合起來;另一類不是分別處理兩個句子,而是使用交互注意力機制進行句子之間的交互.本文關注基于句子嵌入的方法,因為該方法沒有限定要求兩個句子,可以延展到更多任務上.

表1 SNLI 數據集上的三個例子Table 1 Three examples from the SNLI dataset
對自然語言推理廣泛的研究使得很多復雜模型在基準數據集上取得了越來越高的表現,但是最近的研究[11]表明多數模型很少關注前提和假設的句義關系,而是大量利用句子中個別詞之間對立或相似等淺顯關系進行推理作答,更有甚者只是根據假設就可以進行推理.可想而知這些推理模型很難應用到復雜的現實場景中,它們根據句子中特定詞之間的關系進行盲目推理,比如根據前提中的“expensive”詞和假設中的“cheap”詞,簡單推理出兩個句子是對立關系,而實際上兩句話描述的不是同一件事情,正確的邏輯關系應該是中立.推理模型過度依賴特定詞,說明模型只是抓住數據集中的語言偏置,而不是依據前提和假設所表達的句義關系進行邏輯推理.
一種檢測語言偏置對推理模型影響的方式是設計一個僅依賴詞編碼表示進行推理的模型(為了方便描述,本文使用WIM(Word inference model)表示僅依賴詞編碼表示進行推理的模型),事實上WIM 也可以作為一個標準的基線模型.本文提出使用對抗正則化方法來降低語言偏置的影響,具體方法是讓一個標準的推理模型和這個只依賴詞編碼表示進行推理的對手進行博弈,以減少語言偏置的影響.在對抗機制下,一方面訓練WIM,使得該模型盡可能推理正確,其中WIM 模型的詞編碼表示是由標準推理模型提供;另一方面訓練標準推理模型,調整它的詞編碼和句編碼部分,目的是在提高自身推理準確率的同時,盡量降低WIM 模型的性能.在這種新穎的對抗正則化機制下,優化自然語言推理模型.
本文提出的模型可以端到端訓練,而且擴展和延伸性比較強.在SNLI 和Breaking-NLI 數據集上的實驗結果表明了該方法的有效性:本文提出的方法在SNLI 數據集基于句子嵌入的推理模型中取得了最好的結果,而且在Breaking-NLI 數據集中也取得了領先的表現.
本文的主要貢獻如下:1)通過多樣信息整合,多層級句子編碼,增強自然語言推理模型對句子的表示能力,以探索更多語義信息.2)關注自然語言推理中的語言偏置現象,并使用對抗正則化方法來解決這個問題,此外該方法沒有增加模型的參數,不會增加模型測試時的復雜度.3)通過在SNLI 和Breaking-NLI 數據集上的實驗表明本文提出方法的有效性,模型推理表現取得了有效的提升.
目前句子嵌入在自然語言推理的眾多方法中得到了廣泛的應用,這些方法背后的基本思想是分別對前提語句和假設語句進行編碼,然后將它們的句子表示結合起來使用神經網絡進行分類,具體結構如圖1 所示.在已有的工作中,很多研究工作使用卷積神經網絡(Convolution neural network,CNN)和長短時記憶網絡(Long short-time memory,LSTM)作為構建模塊,如Liu 等[12]提出基于雙向長短時記憶網絡(Bidirectional LSTM,BiLSTM)的句子編碼結構,Mou 等[13]提出基于樹的CNN 句子編碼結構.也有很多使用更加復雜的神經網絡進行句子嵌入的研究工作,如Munkhdalai等[14]提出NSE(Neural semantic encoder)的記憶增強神經網絡,用于自然語言推理任務.最近一些研究者開始探索應用于句子嵌入表示的自注意力機制.Shen 等[6]提出DiSAN 模型,該模型沒有使用CNN 和循環神經網絡(Recurrent neural network,RNN),而是完全依賴于研究者提出的多維注意力和雙向自注意力機制.Shen 等[15]提出ReSAN(Reinforced self-attention network)模型,該模型使用強化學習將軟注意力和硬注意力融合在一起.Im等[16]提出基于距離的自注意力網絡模型,該模型利用距離掩蔽來關注單詞之間的距離,從而對局部依賴關系進行建模.此外,還有研究者將膠囊網絡中的動態路由機制應用到自然語言推理任務中[17],并且取得了不錯的效果.雖然在自然語言推理中,句子嵌入方法已經顯示出其有效性,但是也有多項研究表明,將前提和假設句子對在句子編碼期間聯合處理,關注它們之間的復雜交互,模型會得到更好的結果.然而,這些交互式的方法不能在很多單個句子處理的任務上直接使用,也不能像句子嵌入一樣直接提供關于句子的語義理解.本文選擇基于句子嵌入的體系結構,以便應用于更多NLP 任務.

圖1 自然語言推理(NLI)整體結構框圖Fig.1 The structure of natural language inference(NLI)
Goodfellow 等[18]提出生成對抗網絡(Generative adversarial network,GAN)作為一種學習數據分布的新方式.生成對抗網絡包含一個生成器G和一個判別器D,G和D在一個極小極大的博弈中被同步訓練,優化目標是達到納什均衡

其中,生成器G根據從先驗分布pz中采樣的隱含輸入變量z來產生真實的數據,以愚弄判別器D.另一方面,判別器D是一個典型的二元分類器,它試圖去辨別它的輸入數據是來自訓練集還是來自生成器生成的集合.生成對抗網絡通過判別器為生成器提供損失梯度進行訓練,目的是學習一個生成模型,使該模型的輸出滿足特定的分布pdata.
生成對抗網絡具有強大的模擬復雜分布的能力,已受到廣泛關注,并且在圖像和文本生成等領域演化出很多變體,取得了大量令人矚目的效果.如針對對抗網絡自身的改進LSGAN[19]和WGAN[20],對抗網絡在圖像生成上的應用BicycleGAN[21]和DualGAN[22],在文本生成上的應用SeqGAN[23]和RankGAN[24]等.最近,研究人員提出了其他對抗訓練的策略[25?26],以鼓勵中間模型表示各種形式的不變性.
圖2 是本文提出的基于對抗正則化的自然語言推理模型框圖,圖中上半部分的標準NLI 模型對應本文提出的增強的多層級表示推理模型(Enhanced multi-level representations inference model,EMRIM),下半部分的針對詞編碼的NLI 對手對應前面提到的WIM 模型.其中EMRIM 模型主要包括詞編碼器、句編碼器、分類器三部分,該模型通過增強的多層級編碼結構探索豐富語言信息.并且本文提出使用對抗正則化方法降低語言偏置的影響,從而進一步提升模型的推理能力.本文從以下幾個方面對提出的方法進行具體描述.

圖2 基于對抗正則化的自然語言推理模型結構框圖Fig.2 The structure of natural language inference model based on adversarial regularization
豐富的表示信息在自然語言推理中扮演著重要的角色.在我們的模型中,我們將統籌多種類型的表示,以更好地挖掘前提和假設句義信息,這也是這項任務的基本組成部分.首先將前提和假設中的每個單詞轉換成連續的表示形式,對詞信息進行融合和提取.圖3 中展示了詞編碼的處理方式,具體包含以下部分:

圖3 詞編碼器和句子編碼器網絡結構Fig.3 Word encoder and sentence encoder network structure
1)詞嵌入:與之前方法的設置相似,使用預訓練的詞向量GloVe[27]將每一個單詞映射到向量空間.
2)字符嵌入:將卷積神經網絡(CNN)應用到每個單詞的字符上.實踐證明,該方法對處理集外詞(Out of vocabulary,OOV)有一定的幫助[28].
3)POS 和NER 標簽:使用詞性標注(Partof-speech,POS)和命名實體識別(Named-entity recognition,NER)來獲得單詞的詞性信息和實體信息,然后每一個單詞可以通過查表獲得對應的POS 嵌入表示和NER 嵌入表示.這種方法比常用的獨熱碼包含更多信息.
4)精確匹配(Exact match,EM):受機器閱讀理解的啟發,使用3 個二進制特征來表示這個詞是否能與任何詞準確匹配,分別表示原始形式、小寫形式和詞干形式.
5)CoVe:通過機器翻譯[29]得到詞的上下文向量表示,本文的模型對其進行降維處理,以減少模型的參數量.
本文將前面提到的多種詞信息串聯起來使用,這樣不僅可以從更多角度獲得詞相關的表示信息,而且為后續句子編碼提供良好的基礎表征,以更準確地理解句子上下文含義,從而做出合理的推理.
為了獲得句子的語義信息,將所有向量序列傳遞給使用BiLSTM 和最大池化(Max pooling)的句子編碼器.輸入一個長度為T的序列(w1,w2,w3,···,wT),雙向長短時記憶網絡的輸出是(h1,h2,h3,···,hT),序列輸出中的每一項計算如下:

接下來為了學習每個句子的整體表示,對序列編碼器隱藏層的輸出應用最大池化處理,得到與ht同維度大小的向量

先進的自然語言推理模型通常將句子編碼器實現為多層結構,鼓勵模型模擬復雜函數,同時捕獲復雜的語言結構.此外,一些研究人員已經證實,不同層能夠提取不同類型的語法和語義信息[30].本文通過設置多層級結構,探索每一層潛在的語義信息.在推理模型中,使用基于BiLSTM 和Max Pooling的層次化句子編碼器,句子編碼器包括三層,每一層BiLSTM 都是將原始輸入語句序列作為輸入;而且,除了第一層BiLSTM 之外的其他BiLSTM 層,均使用前一層網絡的最終狀態來初始化其隱層狀態.對每一層BiLSTM 的輸出進行最大池化,句子編碼的最終輸出是每一個最大池化層輸出的串聯拼接.圖3 顯示了具體的網絡結構.
句子編碼器的輸出是前提和假設的固定維度的向量表示u和v,然后將它們傳遞給頂層分類器.在自然語言推理任務中,頂層分類器一般使用多層感知機(Multilayer perceptron,MLP)和Softmax 函數來預測每個類別的概率.本文以多種方式將這兩個句子的表示聚合在一起,并作為多層感知機的輸入,然后把多層感知機的輸出傳遞給Softmax 函數,公式表示如下所示:

1)標準推理模型:給定數據集D={pi,qi,ai},其中包含前提句pi ∈P、假設句qi ∈Q、推理標簽ai ∈A三部分,自然語言推理任務就是從前提和假設句子中推理出它們的邏輯關系.為了描述方便,定義詞編碼器的操作為G,定義句子編碼器為H,最后的分類層為F,p和q為數據集D中某樣本的兩個句子,所以我們的推理模型可以表示為,首先這兩個句子通過詞編碼器分別得到表示gu和gv

然后輸出的結果經過句編碼器的處理得到句子表示u和v

最后將兩者的句子表示傳遞給頂層分類器預測邏輯關系

現有的自然語言推理模型一般都遵循類似的模式,通過標準的交叉熵函數進行訓練,通過優化參數最小化損失函數

2)WIM:對NLI 中關于詞的語言偏置強弱直觀的度量是模型僅從詞編碼就可以預測答案的能力.我們將這個模型形式化為一個映射FG,如上所述,我們假設FG是可微的,并把從標準推理模型獲得的詞編碼作為輸入,以便FG可以進行預測

將這個模型參數化為與頂層分類器相似的結構,只是為了便于后續處理.在其基礎上加入了最大池化層.如上所述,該模型可以用交叉熵函數進行訓練

3)對抗正則化減少語言偏置:如圖2 所示,本文將標準推理模型和只依賴詞編碼的推理模型設置為對抗狀態,引入對抗正則化的方法優化自然語言推理模型.其中只依賴詞編碼的推理模型為了推理成功,需要學習訓練數據集中的語言偏置,但是因為這種語言偏置忽略了句義信息,導致標準推理模型推理錯誤.為了減少語言偏置,將兩個模型設置為對抗狀態,通過修改詞編碼部分來降低只依賴詞編碼模型的表現;同時強化句子編碼部分,以捕獲更多上下文信息和語義信息,從而達到在提升標準推理模型推理表現的同時減少對語言偏置的依賴的目的.可以將這兩個模型的對立關系描述為

基于對抗正則化的自然語言推理模型的訓練過程如下,首先訓練只依賴詞編碼的推理模型,該模型的訓練目標是最小化其對應的交叉熵損失函數,但是詞編碼器G(·)不會根據這個梯度信息更新,這個操作對應了圖2 中的梯度拒絕部分.潛在地,這迫使分類器FG要基于標準推理模型給出的詞編碼表示盡可能好地進行推理.然后訓練更新標準推理模型,該模型的梯度信息來自于兩部分:一部分是標準推理模型本身對應的交叉熵損失函數;另一部分來自于只依賴詞編碼的推理模型負的加權的交叉熵損失函數,其中分類器FG的參數是不更新的,分類器只是起到梯度傳遞的作用.最后這兩個訓練過程進行交替訓練更新,通過不斷對抗博弈,以到達理想的納什均衡狀態.
我們使用正則化系數λ來調控推理模型的性能和語言偏置的權衡.λ取值較小表明較少的正則化發生,標準推理模型繼續學習語言偏置.另一方面,當λ取值較大時,表示去除較多語言偏置,可能導致標準推理模型和只依賴詞編碼的模型的表現都不好;此外權重過大會加重對詞編碼的影響,以至于詞編碼器沒有能力學習合理的詞表示,從而進一步影響句子表征等高層表示.所以要設置合適的權重來權衡兩者之間的重要性.
我們在SNLI 和Breaking-NLI 數據集上驗證本文的方法.
SNLI(Stanford natural language inference)[3]數據集大約有57 萬人工標注的句子對,該數據集比其他同類數據集大兩個數量級.其中前提數據來源于Flickr30k 語料庫中的字幕,而假設句數據和標簽是人工合成的.數據集提供的標簽分別是“entailment”,“neutral”,“contradiction”,“–”.其中“–”表示注釋者之間無法達成共識.遵照Bowman 等[3]提出的方式刪除標簽為“–”的句子對,然后生成訓練集、驗證集和測試集.
Breaking-NLI[4]數據集是一個自然語言推理的測試集,包括8 193 個前提和假設句子對,其中前提和假設只是有一個詞或短語被替換了,其他成分是相同的.該數據集被用來測試自然語言推理模型,推理模型需要一定的詞匯和世界知識才能實現合理的表現.
本文在實驗中使用預先訓練好的300 維的GloVe 840B 詞向量來初始化詞嵌入向量,詞嵌入中的集外詞使用[?0.1,0.1]隨機初始化,在模型訓練期間詞嵌入向量被不斷更新,以學習適合NLI 任務的更有效的表示.我們使用Spacy 對單詞進行標記并生成POS 和NER 標簽,POS 和NER 的嵌入維度分別是26 和20.所有BiLSTM 的隱層大小設置為250,為了避免過擬合,在層間使用dropout[31]和層歸一化(Layer normalization)[32]處理方法.使用Adam[33]算法優化模型參數,并設置學習率為0.0001,權重衰減為1×10?8.設置批次大小為32,以進行更多探索.在對抗訓練過程中,兩個模型交替訓練的頻率為1:1.在所有方法中都是使用500維的BiLSTM(250 維前向LSTM+250 維后向LSTM).
表2 顯示了使用句子嵌入方法的不同模型在SNLI 訓練集和測試集的結果.我們使用以下幾種方法進行實驗對比:
1)BiLSTM_MP:該模型的詞編碼器使用本文提出的多信息融合編碼方式,但是句編碼器使用了簡單堆疊的三層BiLSTM 網絡,并根據最后一層BiLSTM 的輸出進行最大池化處理,最后經過頂層分類器得到推理結果.
2)BiLSTM_MP+AR:該方法是在BiLSTM MP 基礎上使用對抗正則化.

表2 不同方法在SNLI 上的實驗結果(%)Table 2 Experimental results for different methods on SNLI(%)
3)EMRIM:該方法是第2 節提出的增強的多層級表示推理模型.
4)EMRIM+AR:在EMRIM 中加入對抗正則化方法.
表2 顯示了本文實驗結果與SNLI 官方排行榜結果,根據實驗對比,本文提出的EMRIM 方法達到了87.36% 的準確率,已經接近排行榜中的最好結果87.4%,這說明在推理模型中使用多種類型信息增強的詞編碼器和多層級的句編碼器,確實可以提取更豐富更準確的語義表示,從而利于模型推理.當分別為標準推理模型BiLSTM_MP 和EMRIM 增加只依賴詞編碼進行推理的對抗模型之后,在不斷博弈的進化過程中,兩個標準模型的推理性能進一步提升,BiLSTM_MP+AR 比BiLSTM_MP 高出約0.22% 的準確率,EMRIM+AR 比EMRIM 高出約0.24% 的準確率.這表明了本文提出的對抗正則化方法的有效性:該方法可以減少標準推理模型對語言偏置的依賴,避免依據詞間淺顯的關系進行盲目推理;而是強調語義理解,通過對句義的整體把握做出選擇.需要注意的是對抗正則方法沒有增加標準推理模型的參數量,并且不會增加模型測試時的復雜度.
表3 是不同方法在Breaking-NLI 測試集上的實驗結果[4],這些模型都是在SNLI 數據集上訓練,然后在Breaking-NLI 數據集上測試.實驗發現在SNLI 測試集上表現不錯的ESIM 模型,在這個測試集上的性能急劇下降.本文提出的EMRIM+AR模型在該測試集上取得了目前公開的最高準確率,這說明本文提出的模型具有良好的詞匯知識和世界知識;通過應用對抗正則化方法,推理模型在理解詞匯的同時,關注句義表達,整體把握推理需求,做出合理推理.

表3 不同方法在Breaking-NLI 上的測試結果Table 3 Experimental results for different methods on Breaking-NLI
注意到在對抗訓練過程中,隨著標準推理模型在SNLI 測試集上的表現提升,只依賴詞編碼進行推理的模型的性能上升到一定程度之后不再增加,而且有稍微下降的趨勢.這表明對抗優化策略執行得很好,這也是和我們的直覺是一致的.
表4 是權重λ對SNLI 測試集推理準確率的影響.根據權重和準確率的變化趨勢,可以得到以下分析.在較高的權值下,基于詞編碼的大部分判別信息都已經丟失,即標準推理模型是通過犧牲自己的性能,從而降低了只作用于詞編碼模型的性能,但是事實上在推理中根據詞信息進行判別還是占有一定重要地位的,不應完全忽略;另外,權重過大也導致模型底層學習不到合理的詞向量表示,繼而影響模型高層網絡對句子編碼能力和推理能力.在權值較小時,標準推理模型的性能相較之前也沒有明顯提升,畢竟完全根據詞中的判別信息進行推理是片面的,因為忽略了對句子內容的整體理解和把握,會導致模型的推理脫離了對應的描述場景,從而難于做出正確抉擇.只有兼顧詞中表達的判別信息和句義分析這兩方面,自然語言推理模型才會做出正確的推理.

表4 權重λ 對NLI 準確率的影響Table 4 Impact of weight λ on NLI accuracy
本文提出增強的多層級表示推理模型,通過多樣信息整合和多層級句子編碼,增強模型對句子的表示能力,探索更多語義信息.在標準推理模型中引入對抗正則化方法,通過標準推理模型和只依賴詞編碼進行推理的模型進行博弈訓練,以減少語言偏置對推理模型的影響,使模型能夠基于上下文進行有效推理.在SNLI 和Breaking-NLI 數據集上的實驗結果驗證了本文方法的有效性.在未來的研究工作中,我們希望將該方法應用到更多任務中去.