劉欣瑜,劉瑞芳,石 航,韓 斌
(北京郵電大學(xué) 人工智能學(xué)院,北京 100876)
自然語言推理(natural language inference,NLI)又稱文本蘊涵識別(recognizing textual entailment,RTE),是自然語言處理的一項重要任務(wù),關(guān)注的是假設(shè)句的語義能否從前提句中推斷出來。自然語言推理模型需要理解前提句與假設(shè)句之間的語義相似性和相悖性,來判斷前提句與假設(shè)句之間的語義關(guān)系,語義關(guān)系如表1所示,有蘊涵、矛盾、中立三種,因此通??梢詫⒆匀徽Z言推理視為一個分類任務(wù)。
表1 前提句、假設(shè)句及其對應(yīng)的關(guān)系實例
人工智能是研究如何應(yīng)用計算機模擬人類思維過程和智能行為的學(xué)科,而推理是人工智能的一個重要研究課題。人類推理包括對事物的分解、比較、綜合、分類四個過程: 首先依據(jù)日常經(jīng)驗把事物整體分解成各個組成部分;比較各組成部分之間的差異點和共同點;然后在人腦中把各部分聯(lián)系起來,也就是把事物的個別特性、個別方面重新綜合成整體;進而把事物分類。本文用外部語義知識(語義角色和同反義詞)來代替人類推理所需要的日常經(jīng)驗,通過模擬上述思維過程來構(gòu)建推理模型,處理過程如下: 首先模仿人類對事物進行分解的過程,根據(jù)語義角色知識把完整的句子拆解成不同的語義角色;再依據(jù)同反義詞知識簡單比較兩個句子相同的語義角色是否一致;然后用模型各層提取不同方面的語義特征并融合;最后進行推斷分類。
確定模型大致處理流程后,需要進一步設(shè)計模型結(jié)構(gòu),使其實現(xiàn)提取并融合不同方面語義特征的效果。為將人類推理思維的層次性和聯(lián)想性體現(xiàn)出來,可把句子的各組成部分視為節(jié)點,連接相關(guān)的節(jié)點來構(gòu)造一個具象的思維導(dǎo)圖。具體來講,以詞為節(jié)點,利用外部語義知識將句子中的動詞與其他詞匯聯(lián)系起來,利用同反義詞知識把兩句子之間的相關(guān)詞匯匹配連接起來,構(gòu)成一對句子的語義拓?fù)鋱D。圖神經(jīng)網(wǎng)絡(luò)[1]是一種基于深度學(xué)習(xí),通過節(jié)點之間的信息傳遞來獲取其中依賴關(guān)系的圖分析方法,得到的語義圖自然適用于圖神經(jīng)網(wǎng)絡(luò)分析圖結(jié)構(gòu),抽取節(jié)點間交互特征;結(jié)合常用自然語言處理方法BiLSTM獲取節(jié)點時序特征。兩種特征互為補充,達(dá)到提升自然語言推理效果的目的。
SNLI[2]和MultiNLI[3]等一系列高質(zhì)量、大規(guī)模標(biāo)準(zhǔn)數(shù)據(jù)集的發(fā)布,推動了自然語言推理的發(fā)展, 促進了大量相關(guān)研究,深度學(xué)習(xí)開始引入自然語言推理領(lǐng)域,推理模型由基于統(tǒng)計的方法轉(zhuǎn)為基于神經(jīng)網(wǎng)絡(luò)的方法,對文本的語義刻畫由淺入深,取得了不錯的效果。
目前基于神經(jīng)網(wǎng)絡(luò)的推理模型主要有兩類:
(1)句子編碼模型。先利用預(yù)先訓(xùn)練好的詞向量來進行編碼,將前提句和假設(shè)句分別編碼成句子向量,然后將兩個向量連接起來輸入到全連通層,預(yù)測語義關(guān)系。
(2)句子交互模式。與句子編碼模型架構(gòu)相似,首先將前提句和假設(shè)句分別編碼成句子向量,再使用句子向量來計算兩個句子之間的相似度矩陣,然后利用相似度矩陣進行句子向量的增強表示,最后做出分類判斷。
與句子編碼模型相比,句子交互模型能夠利用句對之間的語義相似度,并且能夠捕獲前提文本與假設(shè)文本之間的潛在語義信息,效果通常優(yōu)于句子編碼模型,本文重點研究句子交互模型。目前優(yōu)秀的句子交互模型中大多數(shù)是BiLSTM和注意機制的不同組合。其中,Rocktschel等[4]首次將注意力機制應(yīng)用于自然語言推理任務(wù)。ESIM[5]是一種基于BiLSTM和注意力機制的改進的序列推理模型,優(yōu)于以往所有的句子交互模型。KIM[6]以ESIM為基線,提出基于知識的推理模型,利用WordNet[7]的大量外部知識來幫助模型在前提句和假設(shè)句之間進行co-attention對齊。袁毓林等[8]指出人類生活在常識和意義世界中,人工智能必須要做到理解自然語言的意義并進行常識推理,而利用語言知識資源可以幫助機器進行語義理解和推理。譚詠梅等[9]提出使用CNN與BiLSTM分別對句子進行編碼,自動提取相關(guān)特征,然后使用全連接層得到初步分類,最后使用語義規(guī)則對分類進行修正,得到最終的中文文本蘊含識別結(jié)果。
近年來,圖神經(jīng)網(wǎng)絡(luò)逐漸應(yīng)用于自然語言處理領(lǐng)域。
常見的自然語言處理神經(jīng)網(wǎng)絡(luò),如卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò),只能按照特定的句子詞匯順序?qū)υ~匯的特征進行疊加,而圖中的節(jié)點是天然無序的,不能很好地處理這種輸入數(shù)據(jù)。圖神經(jīng)網(wǎng)絡(luò)忽略節(jié)點的輸入順序,通常通過節(jié)點鄰域狀態(tài)的加權(quán)和來更新節(jié)點的隱狀態(tài),節(jié)點的輸入順序改變不會影響模型的輸出。
圖卷積網(wǎng)絡(luò)(graph convolutional network,GCN)是圖神經(jīng)網(wǎng)絡(luò)的一種特殊模式,是最有效的圖模型之一,通過鄰居節(jié)點的信息對當(dāng)前節(jié)點或邊進行編碼。SRLGCN[10]將圖卷積神經(jīng)網(wǎng)絡(luò)擴展到帶標(biāo)簽的有向圖上,表明長短時記憶網(wǎng)絡(luò)和圖卷積神經(jīng)網(wǎng)絡(luò)的能力可以互補。WordGCN[11]通過使用圖卷積神經(jīng)網(wǎng)絡(luò)將句法和語義信息整合到詞向量中。圖卷積神經(jīng)網(wǎng)絡(luò)還可用于提取文本關(guān)系[12],在圖卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上建立了一個雙仿射模型,根據(jù)節(jié)點間句法依賴性、共指性等信息對節(jié)點間的關(guān)系進行等級劃分。
注意力機制已經(jīng)成功地應(yīng)用于許多自然語言處理的任務(wù)中,如機器翻譯、機器閱讀等。Graph attention networks[13]一文提出了一種圖注意力網(wǎng)絡(luò)(graph attention network,GAT),將注意力機制納入傳播步驟,通過關(guān)注每個節(jié)點的鄰居節(jié)點,遵循self-attention策略來計算每個節(jié)點的隱狀態(tài)。通過對自我注意層的疊加,鄰居節(jié)點的特征被整合到其鄰居的特征中。圖注意力網(wǎng)絡(luò)通過為鄰域中的不同節(jié)點指定不同的權(quán)重進行運算,避免了求逆等復(fù)雜的矩陣運算,彌補了圖卷積神經(jīng)網(wǎng)絡(luò)等方法的一些缺陷。
在本文中,我們根據(jù)自然語言推理任務(wù)的特點,引入語義角色和同反義詞兩種外部知識,利用BiLSTM分別結(jié)合上述GCN、GAT兩種圖神經(jīng)網(wǎng)絡(luò)進行推理。
在給定前提句和假設(shè)句的前提下,利用語義角色和同反義詞知識,連接相關(guān)詞匯,采用圖卷積或圖注意力算法提取語義圖空間特征,融合BiLSTM提取的上下文特征,來預(yù)測句子之間的關(guān)系類別是蘊含、矛盾、中立三者中的哪一個。
如圖1所示,推理模型由圖構(gòu)造層、編碼層、圖卷積層或圖注意力層、增強&融合層、分類器幾部分組成。下文將詳細(xì)介紹模型處理過程。
圖1 基于圖神經(jīng)網(wǎng)絡(luò)推理模型結(jié)構(gòu)
首先,在句子對輸入模型之前,將兩個句子之間的語義角色和同反義詞等多種語義信息用圖結(jié)構(gòu)的方式表示出來。
語義角色標(biāo)注(semantic role labeling,SRL)是一種淺層語義分析方法。語義角色,顧名思義是指句子各部分在句中某個動詞觸發(fā)的事件里擔(dān)任的角色,通俗來講,角色有施事者、受事者、與事者以及時間地點等一些外圍語義角色,對應(yīng)“做什么”“是什么”“如何做”等內(nèi)容,這正好是判斷兩句關(guān)系的依據(jù),可以加以利用。
如圖2所示,一個句子通常包含多組“動詞—論元”結(jié)構(gòu),如以動詞“l(fā)ean”為核心有“three women”-“l(fā)ean”,“l(fā)ean”-“against a metal fence”等語義關(guān)系組合,以動詞“stare”為核心有“three women”-“staring”,“staring”-“to the left”等關(guān)系組合。根據(jù)句子內(nèi)部的這些語義角色關(guān)系組合可以在動詞與論元之間建立一條邊,根據(jù)不同的角色關(guān)系,邊就被賦予了不同的語義屬性,如“three women”與“l(fā)ean”之間的邊具有“ARG0: 施事”屬性,“staring”與“to the left”之間的邊具有“DIR: 地點”屬性。
圖2 語義角色標(biāo)注以及句內(nèi)單詞連接方法示例
依據(jù)語義角色在句子內(nèi)部構(gòu)建好具有語義屬性的邊后,接下來如圖3所示,根據(jù)同義詞反義詞知識,在兩句中的同反義詞之間建立具有同義或反義屬性的邊,把兩個句子各自的語義圖聯(lián)系起來,得到一個包含幾十個節(jié)點和多種屬性邊的語義圖。
接下來繼續(xù)詳述模型處理過程。
圖3 前提句和假設(shè)句的語義圖
2.3 圖卷積層
本文借鑒了圖卷積神經(jīng)網(wǎng)絡(luò)的思路,并且在圖卷積算法的基礎(chǔ)上增加了一個可學(xué)習(xí)系數(shù),使節(jié)點對沿著不同屬性的邊傳遞過來的消息具有不同的信賴程度,構(gòu)成圖卷積層。
為便于陳述,對各種語義屬性進行編號,表2列舉了一些常見邊的語義屬性及其設(shè)定的編號。
表2 語義屬性及其對應(yīng)的編號
(1)
(2)
(3)
2.4 圖注意力層
除了圖卷積方法,本文另外嘗試了圖注意力算法。不同的鄰居節(jié)點以及具有不同語義屬性的邊對當(dāng)前節(jié)點的重要性是不同的,因此設(shè)計了節(jié)點—節(jié)點級和屬性—節(jié)點級兩種注意力機制來識別這些差異(圖4)。
圖4 節(jié)點—節(jié)點級、屬性—節(jié)點級注意力示意圖
2.4.1 節(jié)點—節(jié)點級注意力機制
與圖卷積層的輸入一樣,依舊假設(shè)ζ=(υ,ε,χ)表示建立好的語義圖。為了使不同節(jié)點對應(yīng)的注意力系數(shù)更具合理性,以節(jié)點v為例,先只計算通過相同屬性邊指向v的鄰居節(jié)點的系數(shù)。遵循圖注意力神經(jīng)網(wǎng)絡(luò)[13],每個節(jié)點的輸入向量xu先用共享權(quán)重矩陣W∈R2d×2d做線性變換進行初始化,然后利用可學(xué)習(xí)的參數(shù)向量aT∈R2d作節(jié)點與節(jié)點之間的self-attention運算,并在單層前饋神經(jīng)網(wǎng)絡(luò)中應(yīng)用LeakyReLU(·)激活函數(shù),得到esi,uv系數(shù),代表在經(jīng)過屬性為si的邊指向節(jié)點v的所有節(jié)點中,節(jié)點u所占的權(quán)重,經(jīng)過softmax歸一化得到αsi,uv,如式(4)、式(5)所示。
esi,uv=LeakyReLU(aT[Wxv‖Wxu])
(4)
αsi,uv=softmaxsi,v(esi,uv)
(5)
其中,式(4)中的“‖”表示拼接操作,指將兩個句子初始化后的詞向量合并成一個矩陣。υsi,v是經(jīng)由屬性si的邊指向節(jié)點v的鄰居節(jié)點集合。
(6)
如式(6)所示,υSi,v中節(jié)點的特征向量經(jīng)過參數(shù)矩陣W進行線性變換,用對應(yīng)的αsi,uv進行加權(quán)求和,得到gsi,v這一聚合了υsi,v中所有節(jié)點特征的向量,代表語義屬性si對節(jié)點v的作用效果。為了進一步穩(wěn)定注意力機制的表達(dá)能力,選用multi-head attention來獲得最終特征。
(7)
2.4.2 屬性—節(jié)點級注意力機制
在節(jié)點級注意力機制的基礎(chǔ)上,進一步選用點積注意力方法計算節(jié)點v的向量xv與gsi,v的相似性,作為權(quán)重esi,v,表示語義屬性si對節(jié)點v的重要性,并用softmax函數(shù)歸一化,得到權(quán)重分?jǐn)?shù)αsi,v,如式(8)、式(9)所示。
最后,如式(10)所示,利用歸一化的注意力系數(shù)進行加權(quán)求和,得到節(jié)點v的最終輸出特征gv,這是所有鄰居節(jié)點通過不同語義屬性的邊到達(dá)節(jié)點v的最終特征向量。
(10)
由于圖卷積層、圖注意力層沒有輸入單詞位置信息,加上圖處理方法的特性,圖處理層的輸入向量中原本包含的上下文特征被削弱,因此保留編碼層輸出向量,結(jié)合圖處理層輸出向量,以充分利用兩個句子的上下文特征和語義圖空間特征。因此,進一步的拼接&增強操作如式(11)、式(12)所示。
接下來進行最后的融合操作,使用BiLSTM算法來融合上述向量矩陣EP和EH各組成部分的信息,區(qū)分推理的關(guān)鍵特征。然后為了減輕句子長度對最終關(guān)系類別預(yù)測的干擾,將BiLSTM的輸出矩陣通過平均池化和最大池化操作轉(zhuǎn)化為固定長度的向量。
最后,將池化操作得到的向量輸入到分類器中進行最終預(yù)測,該分類器由一個線性層、tanh激活層和softmax輸出層組成。
本文選用以下兩個自然語言推理數(shù)據(jù)集來評估模型。
(1) 斯坦福自然語言推理(Stanford natural language inference,SNLI)語料庫是一個包含57萬對人工書寫的英語句子的集合,并且給這些句子對人工標(biāo)注了蘊含、矛盾和中立等標(biāo)簽,支持自然語言推理任務(wù)。該語料庫既可以作為評價語言表征系統(tǒng)的基準(zhǔn),也可以作為開發(fā)各種類型的自然語言處理模型的數(shù)據(jù)資源。
(2) 多體裁自然語言推理(multi-genre natural language inference,MultiNLI)語料庫是一個由43.3萬個句子對組成的涵蓋了口語和書面語多種體裁的眾包數(shù)據(jù)集。
本文工作中使用了SNLI和MultiNLI兩個數(shù)據(jù)集[14]評估模型。這兩個數(shù)據(jù)集在WordGCN論文中被標(biāo)記為PropBank[15]語料庫的語義角色風(fēng)格,并且另外提供了同義詞反義詞數(shù)據(jù),可以加以利用,建立具有不同屬性的邊。本文使用與ESIM[5]工作中相同的訓(xùn)練集、驗證集、測試集分割方式來處理SNLI和MultiNLI數(shù)據(jù)集,使用分類準(zhǔn)確率作為評價指標(biāo)。
實驗在NVIDIA Tesla T4的GPU上運行,對于基線模型ESIM,平均每一步耗時0.1s;對于結(jié)合了圖卷積神經(jīng)網(wǎng)絡(luò)的模型和結(jié)合了圖注意力神經(jīng)網(wǎng)絡(luò)的模型,平均每一步耗時分別為0.2s和0.15s。
本文使用預(yù)訓(xùn)練好的300維GloVe 840B向量來初始化詞向量。OOV單詞使用高斯初始化。模型使用Adam優(yōu)化器進行優(yōu)化,初始學(xué)習(xí)率設(shè)為0.000 4,批處理大小為32。所有前饋傳播層的dropout都設(shè)置為0.5。圖注意力層中LeakyReLU(·)激活函數(shù)的負(fù)值部分斜率設(shè)為0.2。
在圖處理層這部分,圖卷積層使用單層卷積層,圖注意力層中的multi-head attention的head數(shù)量設(shè)為3,而不是常用的8。因為本任務(wù)語義圖節(jié)點數(shù)很少,從一階鄰居節(jié)點聚集的信息與上下文特征結(jié)合,足以推斷句子之間的關(guān)系,增加圖卷積層的層數(shù)或圖注意力層中的head數(shù)量,不僅不能取得更好的效果,反而需要更多的訓(xùn)練時間才能收斂。
本節(jié)詳細(xì)介紹使用SNLI、MultiNLI數(shù)據(jù)集評估模型的實驗結(jié)果。
大多數(shù)句子交互模型都是基于注意力機制和循環(huán)神經(jīng)網(wǎng)絡(luò)或其變體的,表3和表4列舉了其中幾個經(jīng)典的句子交互推理模型分別在SNLI和MultiNLI數(shù)據(jù)集的實驗效果。
(1) LSTM Attention模型[4]是基于LSTM和注意力機制的端到端神經(jīng)網(wǎng)絡(luò)模型,使用逐字的注意力機制來推斷單詞或者短語之間的關(guān)系。
(2) mLSTM模型[16]對前提句和假設(shè)句也進行逐字匹配,更加重視重要的詞級匹配結(jié)果。
(3) LSTMN[17]設(shè)計類似于列表結(jié)構(gòu)的記憶單元和描述詞與詞之間相關(guān)程度的intra-attention來改進LSTM。
(4) Gated-Att BiLSTM[18]是基于stacked-BiLSTM的,并配備引入門控單元的句內(nèi)注意力機制。
(5) 參考DenseNet[19],Kim等[20]提出Densely-connected Co-attentive RNN模型,該模型的突出特點是從最底層到最頂層一直保留原始信息以及利用co-attention得到的交互信息。
(6) ESIM[5]是一個增強型序列推理模型,是一個經(jīng)典的自然語言推理任務(wù)基線模型。
(7) KIM[6]以ESIM為基準(zhǔn),從WordNet[7]引入五種外部知識,嵌入相似度矩陣中計算co-attention,收集局部推理信息,并進行推理以做出最終決策。
表3 在SNLI數(shù)據(jù)集上的準(zhǔn)確率
表4 在MultiNLI數(shù)據(jù)集上的準(zhǔn)確率
本文借鑒KIM,選擇ESIM模型作為基線,結(jié)合外部知識幫助推理。KIM引入五種語言知識,本文只引入語義角色和同反義詞兩類外部語義知識,卻獲得更高的準(zhǔn)確率,可見引用外部知識不在多而在精。語義角色能夠表征句子中重要的語義關(guān)系,同反義詞起的是連接前提句和假設(shè)句的橋梁作用,這兩種知識的結(jié)合提供了比KIM所用的五種知識更精準(zhǔn)的推理依據(jù)。根據(jù)這兩種語義知識構(gòu)造語義圖,然后采用圖神經(jīng)網(wǎng)絡(luò)算法代替ESIM中的注意力機制來交互兩個句子的特征信息。
如表3所示,基于圖卷積算法和圖注意力機制的推理模型在SNLI測試集上的準(zhǔn)確率分別達(dá)到89.1%和89.8%,比ESIM模型的準(zhǔn)確率提高1.1%和1.8%。實驗表明,圖注意力層比圖卷積層更適合于小型語義圖,圖注意力算法更適合自然語言推理任務(wù),使節(jié)點更細(xì)膩的特征信息跨越句子進行交互?;趫D注意力機制的推理模型也在MultiNLI的兩組數(shù)據(jù)集MultiNLI-matched和MultiNLI-mismatched上獲得了最高準(zhǔn)確率,分別是77.4%和76.7%,比ESIM高0.6%和0.9%。
接下來,通過一系列消融實驗,進一步分析模型各模塊對于模型推理的作用。首先在基于圖注意力機制的推理模型上,去除屬性—節(jié)點級注意力機制,保留節(jié)點—節(jié)點級注意力機制,不區(qū)分邊的屬性,直接把所有鄰居節(jié)點執(zhí)行multi-head attention運算進行加權(quán)求和。如表5所示,去除屬性—節(jié)點級注意力機制后的模型在SNLI數(shù)據(jù)集上的準(zhǔn)確率下降到88.9%。接下來,在引入外部知識的作用驗證方面,分別只引用語義角色知識、同反義詞知識中的一種或零種進行實驗,還可以區(qū)分其中哪種語義知識更有助于判斷句子之間的關(guān)系。
表5 模型消融實驗
從表5可見,只引入語義角色知識比只引入同反義詞知識更能幫助推理模型捕捉句子結(jié)構(gòu)信息。如果直接去除圖卷積層或圖注意力層,模型在SNLI測試集上的準(zhǔn)確率下降到85.9%。綜合消融實驗的結(jié)果,可以看出,外部語義知識和圖神經(jīng)網(wǎng)絡(luò)算法的引入對提高自然語言推理模型性能具有重要意義。
本文提出了基于圖神經(jīng)網(wǎng)絡(luò)和外部知識的自然語言推理模型。在基線模型提取的特征基礎(chǔ)上補充了語義圖空間特征,進一步提高模型推理能力,使其在SNLI和MultiNLI數(shù)據(jù)集上的性能優(yōu)于以往的模型。由于基線模型ESIM應(yīng)用了BiLSTM,也在一定程度上表明循環(huán)神經(jīng)網(wǎng)絡(luò)或其變種與圖神經(jīng)網(wǎng)絡(luò)結(jié)合有互補的效果。
本文提出的模型有幾個潛在的改進點可以作為未來的工作方向。目前最好的推理模型利用了BERT這一優(yōu)秀的預(yù)訓(xùn)練模型生成初始詞向量,取得比靜態(tài)詞向量更好的效果,所以可以嘗試將模型靜態(tài)詞向量初始化方法替換為先進的預(yù)訓(xùn)練模型初始化方法。另外,引入的外部語義知識的種類不宜過多,過多可能會增加提取推理信息的難度,因此可以進一步研究除了語義角色和同反義詞知識外,是否有更適用于自然語言推理任務(wù)的語言知識。除此之外,把其他圖神經(jīng)網(wǎng)絡(luò)算法應(yīng)用到自然語言推理模型中,也是一個值得期待的研究課題。