程淑玉,郭澤穎,劉 威,印 鑒
1(安徽電子信息職業(yè)技術(shù)學(xué)院,安徽 蚌埠 233060)2(中山大學(xué) 數(shù)據(jù)科學(xué)與計算機(jī)學(xué)院 廣東省大數(shù)據(jù)分析與處理重點實驗室,廣州 510006)
近來年,隨著自然語言處理技術(shù)的發(fā)展,人們開始研究讓機(jī)器理解人類自然語言的方法,希望計算機(jī)不僅能夠快速獲取并處理語言中的表層信息,更能實現(xiàn)對文本的深層次 “理解”.在自然語言“理解”過程中重要的一部分就是對語義的推理,通過語義推理能夠讓計算機(jī)判斷出句子之間的邏輯關(guān)系.
自然語言推理(NLI)定義為句子對之間的有向推理關(guān)系,是自然語言處理領(lǐng)域一項基礎(chǔ)性工作[1],其基本任務(wù)是判斷由前提句子(P)的語義是否能推斷出假設(shè)句子(H)的語義,如果句子H的語義能從句子P的語義中推斷出來,則句子對P與H之間是蘊(yùn)含關(guān)系,如表1所示.
傳統(tǒng)自然語言推理方法主要依賴人工的文本特征,結(jié)合機(jī)器學(xué)習(xí)方法對特征向量進(jìn)行分類;基于深度學(xué)習(xí)的方法主要在深度網(wǎng)絡(luò)中,通過將句子映射到向量空間的方式,使句子特征的計算和句子特征之間的關(guān)聯(lián)性更容易被挖掘,從而能夠很好的學(xué)習(xí)句子特征,包括序列學(xué)習(xí)、句子的表示學(xué)習(xí)和句子匹配等相關(guān)工作.
表1 自然語言推理任務(wù)樣本
Table 1 Samples of NLI task
示例類型P:希拉里是前任美國總統(tǒng)奧巴馬的妻子.H:希拉里是位女性.蘊(yùn)含(Entailment)P:希拉里是前任美國總統(tǒng)奧巴馬的妻子.H:希拉里是總統(tǒng).矛盾(Contradic-tion)P:希拉里是前任美國總統(tǒng)奧巴馬的妻子.H:希拉里有兩個女兒.獨立(Neutral)
句子匹配主要任務(wù)是聚合前提句子和假設(shè)句子之間的組合特征,傳統(tǒng)方法都是針對兩個句子進(jìn)行向量間匹配[2],或先對兩個句子之間的詞語或者上下文向量做匹配,匹配結(jié)果通過一個神經(jīng)網(wǎng)絡(luò)聚集為一個向量后再做匹配[3,4],也有引入注意力機(jī)制[5,6]加以考慮,現(xiàn)階段都取得了不錯的效果,但是還存在以下問題:
1)基于詞語級別或者句子級別的匹配都是單粒度同層次的匹配,這種匹配方式只關(guān)注捕捉句子自身的語義信息,忽略了句子之間的組合信息和交互特征,造成句義損失,不能有力的辨別句子對的蘊(yùn)含關(guān)系.
2)一般的序列輸入方式捕捉的是句子的全局特征分布,沒有兼顧到句子局部特征的定位,導(dǎo)致句子語義信息不足,且基于文本相似度的方法容易丟失語義信息,降低模型的質(zhì)量.
針對以上問題,本文提出融合Attention的多粒度句子交互自然語言推理模型,主要貢獻(xiàn)如下:
1.針對句子間組合信息和交互特征問題,提出多粒度和不同層次的句子交互策略,對詞語和句子進(jìn)行交互建模,捕捉兩個句子之間的交互特征,減少句義信息損失,提高蘊(yùn)含關(guān)系識別準(zhǔn)確度.
2.針對全局特征和局部特征兼顧問題,利用BiLSTM模型對序列信息處理優(yōu)勢,融合Attention機(jī)制捕句子交互過程中單詞級特征的重要性,并將向量元素的對應(yīng)計算作為兩個句子向量的匹配度量,能有效的補(bǔ)充句子信息,提升模型效果.
傳統(tǒng)的自然語言推理方法有基于詞袋模型[7]、 基于 WordNet 詞典[8]、基于 FrameNet 框架[9]、基于句法樹[10],這些方法都是基于特征分類的方法,對句子自身包含的語義研究并不多,而且基于文本相似度方法不具備推理性,“相似≠ 蘊(yùn)含”,因此無法捕捉深層的句子含義.隨著Word2Vec(2013)[11]和GloVe(2014)[12]模型為代表的基于深度學(xué)習(xí)的詞向量的興起掀開了基于深度學(xué)習(xí)的自然語言推理研究浪潮.Bowman[2]等人提出了LSTM模型,首先嘗試使用基于句子編碼的深度學(xué)習(xí)方法和基于詞語級別的分類器方法來解決自然語言處理問題,驗證了深度學(xué)習(xí)在自然語言推理上的有效性,但是在輸入長句時,編碼成的中間向量的信息損失也加大,生成的句子精確率也隨之降低.Attention方法有效的緩解了上述問題,Rockt?schel[13]等人提出了word-by-word Attention模型,該模型分別用兩個LSTM來學(xué)習(xí)前提句子和假設(shè)句子,通過在編碼前提句子時考慮假設(shè)句子中每個詞的信息,將假設(shè)句子中每個詞與前提句子中的詞產(chǎn)生對應(yīng)的軟對齊,獲得假設(shè)句子中每個詞對應(yīng)的前提句子中的上下文信息,這種方法能緩解長句信息損失,其本質(zhì)還是通過兩個句子向量匹配來推斷蘊(yùn)含關(guān)系,無法匹配到細(xì)粒度的詞語匹配關(guān)系,對中立關(guān)系的識別不是很好.為了更好的推斷句子間詞和短語級別的匹配情況,Wang等人[14]提出mLSTM模型,該模型對前提文本和假設(shè)文本建模的兩個LSTM模型產(chǎn)生的注意力向量拼接,進(jìn)行匹配后再預(yù)測,這個方法可以很好的識別詞和短語的匹配情況,卻無法兼顧句子的全局特征的分布與局部特征的定位.Liu等人[15]提出使用雙向的LSTM模型(BiLSTM)有利于提取句子的全局信息而不受句子語序影響,同時融合“Inner-Attention”機(jī)制,利用句子本身的表示來進(jìn)行指導(dǎo)Attention,進(jìn)一步提升了模型的識別效果,但是沒有考慮句子間的組合特征.Wang等人[16]的BiMPM模型提出了對句子匹配工作進(jìn)行多視角的計算方法,從多個視角去提取句子的特征,通過對給定的兩個句子分別編碼,從多個方向進(jìn)行匹配,能夠充分提取句子的語義信息.本文借鑒了多視角匹配的思想,提出了多粒度、不同層次的句子交互策略,利用深度神經(jīng)網(wǎng)絡(luò)模型(BiLSTM)獲取句子的全局特征,融合注意力機(jī)制提取句子的局部特征,在對句子進(jìn)行編碼的過程中,采用不同的交互策略對輸出的上下文向量進(jìn)行多樣性匹配,通過最大池化、加權(quán)平均池化等操作,完成句子對的建模,其中最大池化僅保留給定范圍的最大特征值,有助于強(qiáng)化重要語義,如公式(1)所示;平均池化是對給定范圍的所有值取平均,全面考慮每個方面的局部信息,避免信息丟失,如公式(2)所示;最后整合句子間的匹配向量進(jìn)行蘊(yùn)含關(guān)系的預(yù)測.這種方法能夠捕捉兩個句子之間的多樣性交互特征,減小句子損失,側(cè)重關(guān)注前提文本到假設(shè)文本之間的正向蘊(yùn)含關(guān)系的識別,提高模型預(yù)測質(zhì)量.
(1)
(2)
為了能獲取自然語言推理所需的更多語義信息,降低句子的語義損失,本文從句子匹配角度,提出一個多粒度、不同層次句子交互自然語言推理模型.整個模型框架如圖1所示,從下至上分別是輸入層、句子編碼層、交互層、MLP和Softmax分類層,下面簡單描述下該模型.
圖1 融合Attention多粒度句子交互自然語言推理模型框架Fig.1 Architecture of multi-granularity sentence interaction natural language inference model based on Attention mechanism
在該模型中,輸入層首先將前提句子P和假設(shè)句子H獨立進(jìn)行編碼,將句子中的每個單詞表示為d維向量;編碼層利用BiLSTM模型融合Attention機(jī)制對輸入的單詞序列逐個進(jìn)行編碼生成句子向量,但保留每個隱藏層單元輸出的上下文向量,將上下文信息融合到P和H每個時間步的表示中;交互層就是比較P和H每個時間步的上下文向量和所有向量,為了比較上下文向量,我們設(shè)計多粒度、不同層次的交互匹配方法,對P和H在編碼過程中進(jìn)行文本語義對齊,利用不同的交互策略,得到融合注意力權(quán)重上下文向量,結(jié)合最大池化或者平均池化的方法進(jìn)行句子匹配生成新的表示向量.本文提出的交互策略是融合注意力機(jī)制利用句子間交互特征的加權(quán)對句子建模,交互的基本單位是BiLSTM模型的每個時刻的輸出向量yt,即每個時刻上下文的語義信息;最后將輸出的匹配向量傳入MLP層進(jìn)行聚合處理后傳至分類層,使用3-way Softmax函數(shù)為激活函數(shù),輸出分類的結(jié)果,標(biāo)簽即蘊(yùn)含、中性和矛盾.
(3)
本層的主要工作是利用BiLSTM模型融合Attention機(jī)制對輸入層的單詞向量序列進(jìn)行編碼,將其轉(zhuǎn)換為一個獨立的句子表示向量.融合Attention機(jī)制的自然語言推理模型有基于靜態(tài)Attention[13]和基于動態(tài)Attention[14],其核心思想都是根據(jù)一句話的信息自動地關(guān)注另一句話中重要的信息,但在現(xiàn)實生活中,人在接收一句話時,會憑經(jīng)驗判斷出這句話哪些詞比較重要,而不需要根據(jù)其他句子信息,借鑒該思想,我們利用句子本身的表示來指導(dǎo)Attention.
Attention機(jī)制為輸入特征向量計算一個注意力分布,對不同的特征向量賦予不同權(quán)重,從而實現(xiàn)注意力的分配,計算方法如公式(4)-公式(6)所示.
yt=G(yt-1,st,ct)
(4)
st=f(st-1,yt-1,ct)
(5)
(6)
其中st為t時刻編碼器的隱藏狀態(tài),即隱藏層的輸出,ct為注意力得分,包含了輸入序列對當(dāng)前輸出重要性權(quán)重分布.
通過注意力權(quán)重的計算,最終得到是參數(shù)對歷史隱藏層狀態(tài)加權(quán)求和的結(jié)果向量.因此,注意力機(jī)制側(cè)重于對某個輸出結(jié)果辨識出輸入序列中不同元素的貢獻(xiàn)度,即捕捉句子對中不同特征的重要性,能減少計算任務(wù)的復(fù)雜度.
句子經(jīng)過BiLSTM編碼后生成句子表示向量,傳入到交互層進(jìn)行句子匹配工作,句子匹配是指比較兩個句子并判斷句子間關(guān)系,其主要工作是聚合前提句子和假設(shè)句子之間的組合特征.傳統(tǒng)的匹配方法主要采用同一層次的詞與詞交互匹配[13]或者句子與句子交互匹配[2],這種單粒度同一層次的匹配方法只關(guān)注捕捉句子自身的語義信息,忽略了句子內(nèi)部詞語之間及不同層級句子之間的組合特征,造成語義損失.在自然語言推理任務(wù)中,判斷句子對蘊(yùn)含關(guān)系是否成立要考慮前提句子P對假設(shè)句子H的影響,所以在對假設(shè)句子H建模時通過對每個時間步的匹配計算,從不同粒度和層次引入P的交互信息,能減少語義損失.本文考慮了推理關(guān)系涉及的方向性特征和句子自身具備的多粒度信息,結(jié)合Attention機(jī)制在BiLSTM模型基礎(chǔ)上提出一種多粒度不同層次的句子交互匹配方法.
本文提出的方法從詞語和句子兩種粒度出發(fā),將詞語、句子之間的注意力權(quán)重作為前提句子與假設(shè)句子之間的交互信息,通過多樣性交互策略獲得更豐富的語義組合特征,與上下文向量進(jìn)行加權(quán),池化輸出句子新的表達(dá)向量.為了比較前提句子P與假設(shè)句子H,本文設(shè)計了6種交互策略,分別是同一層次單粒度的3種交互和跨層次多粒度的3種交互,并將各種策略生成的句子表達(dá)向量拼接進(jìn)行策略融合.
3.2.1 單粒度交互
單粒度交互是指詞語粒度或者句子粒度的交互,通過對句子對建模過程中產(chǎn)生的上下文向量進(jìn)行全匹配,能夠抽取詞語之間的交互特征.包括句子內(nèi)詞粒度交互、句子間詞粒度交互、句子間句粒度交互,如圖2所示.
1)句子內(nèi)詞粒度交互
如圖2(a)所示,句子內(nèi)詞粒度交互是指對句子本身的上下文向量之間進(jìn)行注意力權(quán)重的計算,這種方法能捕捉到句子內(nèi)的語義特征,突出每個詞語在句子中的重要性,計算方法如公式(7)-公式(8)所示,其中yP和yH為前提句子P和假設(shè)句子H本身的上下文向量,fm表示匹配函數(shù),用來度量向量之間的匹配度.
(7)
(8)
圖2 單粒度交互,圖中并行網(wǎng)絡(luò)結(jié)構(gòu)的最左側(cè)灰色矩形表示該句子的某個時刻上下文向量,右側(cè)所有的矩形表示該句子每個時刻上下文向量,下同F(xiàn)ig.2 Single-granularity interaction,the left gray rectangular of the parallel network architecture depicts context vector at a certain moment and all of the right rectangular depicts context vector at each moment of the sentence,the same as below
(9)
(10)
2)句子間詞粒度交互
SP×H=(yP)T·(yH)
(11)
(12)
(13)
(14)
3)句子間句粒度交互
如圖2(c)所示,句子間句粒度交互就是直接對BiLSTM層建模后的兩個句子表示向量作對應(yīng)元素的匹配計算,僅保留最大的匹配結(jié)果.該方法能夠獲得句子級別的交互信息,得到句子對語義關(guān)系推斷的貢獻(xiàn)度,計算方法如公式(15)所示,利用最大池化篩選特征值.
y=(m)max-polling=max[yP⊙yH]
(15)
3.2.2 多粒度交互
多粒度句子交互是指詞語與句子粒度交互,將句子向量和詞語的上下文向量匹配,抽取跨層級的詞語和句子特征,包括詞語-句子全交互、融合注意力機(jī)制的交互兩種方法,如圖3所示.這種方法不僅豐富了句子建模中的語義信息,同時強(qiáng)化了自然語言推理任務(wù)中正向蘊(yùn)含的推斷.
圖3 多粒度交互Fig.3 Multi-granularity interaction
1)詞語與句子全交互
如圖3(a)所示,詞語與句子全交互就是將句子P的每一個前向(反向)上下文向量和句子H的表示向量作比較,計算方法如公式(16)所示.這種方法能夠得到句子P中每個詞語和句子H的語義相似性.
(16)
2)融合注意力的平均池化匹配
如圖3(b)所示,融合注意力機(jī)制的交互能夠得到句子 P與H的交叉粒度信息,同時利用注意力機(jī)制進(jìn)行特征篩選.
首先計算句子P和句子H中每一個上下文向量之間的匹配值s,如公式(17)所示.
(17)
隨后利用s對句子H中的每個前向(反向)上下文向量做加權(quán)求平均操作,得到句子H的表示向量,再用句子P中的每個前向(反向)上下文向量與句子H的表示向量匹配.
(18)
公式(18)表示對句子H的所有上下文向量加權(quán)取平均,最后通過公式(19)比較句子P的上下文向量和這個平均值向量:
(19)
3)融合注意力的最大池化匹配
融合注意力的最大池化交互如圖3(b)所示,整個交互過程可以參考平均池化匹配,只是平均變成了取最大計算公式如公式(20)-公式(21)所示.
(20)
(21)
3.2.3 匹配函數(shù)
句子間匹配本質(zhì)就是對句子對向量進(jìn)行距離的計算,本文采用的距離計算方法是向量相減后對應(yīng)元素相乘(Element-wise Subtraction),該方法是Tai等人[17]在2015年提出的一種向量距離計算方式,能夠?qū)⒔换テヅ溆嬎愀鼮榫?xì),同時又免去參數(shù)引入的問題,計算方法如公式(22)所示.
fm(v1,v2)=(v1-v2)⊙(v1-v2)
(22)
數(shù)據(jù)集:本文實驗采用的是斯坦福大學(xué)發(fā)布的SNLI[6]語料,該語料一共包含570,000的人工手寫英文句子對,其中549367 對用于訓(xùn)練數(shù)據(jù),9842對用于驗證數(shù)據(jù),9824對用于測試數(shù)據(jù),對測試數(shù)據(jù)每個句子對除了前提文本、假設(shè)文本、標(biāo)簽外還包含五個人工標(biāo)注,數(shù)據(jù)集樣例如表2所示.
表2 SNLI數(shù)據(jù)集樣例
Table 2 Sample dataset on SNLI
前提文本標(biāo)簽/人工標(biāo)注假設(shè)文本A man inspects the uniform of a figure in some East A-sian country.contradictionC C C C CThe man is sleep-ing.An older and younger man smiling.neutralN N E N NTwo men are smil-ing and laughing at the cats playing on the floor.A black race car starts up in front of a crowd of peo-ple.contradictionC C C C CA man is driving down a lonely road.A soccer game with multi-ple males playing.entailmentE E E E ESome men are pla-ying a sport.A smiling costumed woman is holding an um-brella.neutralN N E C NA happy woman in a fairy costume holds an umbrella.
我們對實驗數(shù)據(jù)集進(jìn)行了分析,發(fā)現(xiàn)訓(xùn)練集中包含“蘊(yùn)含”標(biāo)簽句子有183187個,“中性”標(biāo)簽句子有182764個,“矛盾”標(biāo)簽數(shù)據(jù)有183187個;驗證集中包含“蘊(yùn)含”標(biāo)簽句子有3329個,“中性”標(biāo)簽句子有3235個,“矛盾”標(biāo)簽數(shù)據(jù)有3278個;測試集中“蘊(yùn)含”標(biāo)簽句子有3368個,“中性”標(biāo)簽句子有3219個,“矛盾”標(biāo)簽數(shù)據(jù)有3237個,由此判斷整個數(shù)據(jù)集的標(biāo)簽分布較均衡,因此實驗過程中不需要考慮不同標(biāo)簽的權(quán)重.
評價指標(biāo):自然語言推理任務(wù)的評價指標(biāo)是分類準(zhǔn)確度,計算方法如公式(23)所示.
(23)
在實驗中我們采用300D GloVe來作為預(yù)訓(xùn)練詞向量,且在訓(xùn)練的過程中詞向量不予更新,采用Adam優(yōu)化方法更新參數(shù),設(shè)置單詞的最大長度為15,句子最大長度為40,字符向量維度為20D,batch大小設(shè)為128,BiLSTM層維度為300,學(xué)習(xí)率設(shè)為0.0001.為了緩解模型過擬合問題,我們在模型輸入輸出處應(yīng)用dropout,設(shè)dropout設(shè)為0.3,在損失函數(shù)中加入了一個l2正則項,應(yīng)用Early stopping保持模型的泛化能力,設(shè)Early stopping為5.
我們將BiLSTM模型作為基準(zhǔn)模型,通過對不同粒度交互策略的貢獻(xiàn)度進(jìn)行實驗分析,可以發(fā)現(xiàn)不同粒度融合模型在訓(xùn)練過程中的表現(xiàn)優(yōu)于BiLSTM模型,如圖4和圖5所示.
圖4 SNLI交互策略的對比實驗(準(zhǔn)確率)Fig.4 Interaction strategy comparison experiment on SNLI(Accuracy)
針對3.2節(jié)的交互策略,我們進(jìn)行了詳細(xì)的實驗,對比分析不同策略下的性能,結(jié)果如表3所示,我們可以得到如下結(jié)論.
1)無論是單粒度交互還是多粒度交互,不同粒度的交互策略融合都能夠提升模型的表現(xiàn).
2)在SNLI語料上單粒度策略融合模型準(zhǔn)確率分別比句子內(nèi)交互策略提高3.6%、比句子間交互策略提高2.4%,多粒度策略融合模型比詞語-句子交互策略提高0.4%、比融合注意力的池化提高0.5%,說明句子間的交互信息對模型的提升效果大于句子內(nèi)交互,且詞語與句子的交互信息對句子推理最為重要.
3)整個組合模型準(zhǔn)確率比單粒度策略融合模型提高1.8%,比多粒度策略融合準(zhǔn)確率提高0.2%,說明本文提出的交互策略能有效提升模型表現(xiàn)效果.
圖5 SNLI交互策略的對比實驗(平均損失)Fig.5 Interaction strategy comparison experiment on SNLI(Average Loss)
在本節(jié),我們將本文設(shè)計模型與下面幾種優(yōu)秀的模型進(jìn)行了對比:
LSTM[18]:采用word-by-word方法進(jìn)行前提句子和假設(shè)句子的匹配.
Tree-based CNN[19]:采用基于樹的卷積過程提取句子結(jié)構(gòu)特征然后通過最大池化聚合并分類.
mLSTM + Attention[20]:將對前提句子和假設(shè)句子建模的兩個LSTM模型產(chǎn)生的注意力向量拼接,進(jìn)行匹配后再預(yù)測.
表3 交互策略對比實驗結(jié)果表
Table 3 Result of the interaction strategy comparison experiment
實驗內(nèi)容匹配策略Acc(%)單粒度 句子內(nèi)交互82.1句子間交互83.3單粒度策略融合85.7多粒度 詞語-句子交互86.9融合注意力的池化86.8多粒度策略融合87.3組合模型不同粒度融合87.5
可分解的注意力模型[6]:對前提句子和假設(shè)句子的每一個單詞對應(yīng)匹配,結(jié)合神經(jīng)網(wǎng)絡(luò)和矩陣運(yùn)算將兩個文本的注意力機(jī)制求解問題分解為兩個子問題.
表4 模型對比實驗結(jié)果表
Table 4 Comparison results of related model
來源模型Acc(%)Bowman LSTM80.6Mou Tree-based CNN82.1WangmLSTM + Attention86.1Parikh 可分解的注意力模型86.8Wang BiMPM86.9本文多粒度信息交互87.5
BiMPM[16]:對前提句子和假設(shè)句子分別編碼,從兩個方向P→ H,H→P對其匹配.在匹配過程中,從多視野的角度,一個句子的每一步都與另一個句子的所有time-step對應(yīng)匹配.最后用一個BiLSTM被用來集合所有匹配結(jié)果到一個固定長度的向量,連上一個全連接層得到匹配的結(jié)果.
表4為不同模型的在SNLI語料上的實驗結(jié)果,可以看出引入Attention機(jī)制的模型準(zhǔn)確率比沒有引入的要高,說明Attention機(jī)制的引入對模型的表現(xiàn)效果具有提升作用,在同時也可以看到本文模型的準(zhǔn)確率達(dá)到了87.5%,優(yōu)于同類最優(yōu)模型.
本文從句子匹配角度對自然語言推理進(jìn)行了研究,針對傳統(tǒng)同一層次的單粒度匹配中存在句子語義損失和信息不足問題,首先我們引入了Attention機(jī)制捕獲句子的局部特征,對不同特征計算概率分布,減小處理高維輸入數(shù)據(jù)的計算負(fù)擔(dān),同時提高模型的預(yù)測質(zhì)量;其次提出了多粒度不同層次的句子交互匹配方法,在句子建模過程中運(yùn)用不同的交互策略,利用不同層次和不同粒度之間的信息交互獲取豐富的語義信息,這種方法在計算過程中會直接將句子中任意兩個上下文向量、或兩個層次的表示向量之間的關(guān)系通過一個計算步驟直接聯(lián)系起來,所以序列中不同位置、不同粒度的特征之間的距離可以被極大地縮短,通過實驗驗證這種不同粒度不同層次融合方法要優(yōu)于單粒度和多粒度交互方法.最后將本文的方法與其他優(yōu)秀的自然語言推理模型進(jìn)行了實驗比較,準(zhǔn)確率達(dá)到87.5%,說明了本方法在最佳配置下的表現(xiàn)要優(yōu)于同類其他最優(yōu)模型.