国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于擴展的S-LSTM的文本蘊含識別

2020-07-18 04:13:16胡超文鄔昌興楊亞連
計算機研究與發(fā)展 2020年7期
關(guān)鍵詞:短語語義編碼

胡超文 鄔昌興 楊亞連

(華東交通大學(xué)軟件學(xué)院 南昌 330013)

文本蘊含關(guān)系(textual entailment)作為一種基本的文本間語義關(guān)系,廣泛存在于自然語言文本中.文本蘊含識別(textual entailment recognition, TER)是自然語言處理領(lǐng)域的一項基礎(chǔ)性工作,其識別性能的提高將促進許多下游自然語言處理應(yīng)用的發(fā)展.例如在問答系統(tǒng)中用來生成候選答案、文檔摘要中用來輔助精簡文本、機器翻譯中用來評估翻譯系統(tǒng)的性能[1].文本蘊含識別通常被看作一個分類任務(wù),即給定前提與假設(shè)(通常為2個句子),自動判斷它們之間是否存在蘊含關(guān)系或矛盾關(guān)系.如表1所示,在常用的中文CNLI(1)https:github.comblcunlpCNLI(Chinese natural language inference)和英文SNLI[2](stanford natural language inference)數(shù)據(jù)集中,定義了前提與假設(shè)之間的3種關(guān)系:蘊含、中立和矛盾.

Table 1 Examples in CNLI表1 CNLI數(shù)據(jù)集中的例子

文本蘊含識別同時也是一項非常具有挑戰(zhàn)性的任務(wù).有的情況下可以基于2個句子中具有矛盾關(guān)系的詞或短語對進行推斷,如表1矛盾示例中的“黑狗”與“白狗”;而有些情況下則需要理解2個句子的語義才能進行準確的判斷,如表1中的蘊含示例和中立示例.因此,文本蘊含識別既需要句子級別的全局信息,也需要短語級別的局部信息.

早期的文本蘊含識別方法主要包括:基于規(guī)則的方法[3]、基于相似度的方法[4]、基于對齊特征或其他人工定義特征的機器學(xué)習(xí)方法[5-6].這些早期的方法由于不能很好地對句子的語義進行建模,識別的性能并不理想.近年來,基于深度學(xué)習(xí)的方法在語義建模方面取得了很好的效果.例如基于雙向長短時記憶網(wǎng)絡(luò)(bidirectional long short-term memory network, Bi-LSTM)學(xué)習(xí)句子語義表示的模型在句法分析、機器翻譯和實體關(guān)系抽取等諸多自然語言任務(wù)上取得了當前最好的效果[7-9].就文本蘊含識別而言,基于深度學(xué)習(xí)方法的性能已經(jīng)全面超越早期的方法,成為當前主流的文本蘊含識別方法.

現(xiàn)有基于深度學(xué)習(xí)的文本蘊含識別方法可大致歸為2類:基于句子編碼的方法[2,10-17]和基于短語交互的方法[18-23].前者通常首先利用深度神經(jīng)網(wǎng)絡(luò)(例如Bi-LSTM、卷積神經(jīng)網(wǎng)絡(luò)CNN等)分別學(xué)習(xí)前提和假設(shè)的語義向量表示,然后推導(dǎo)它們之間的語義關(guān)系.后者通常首先分別學(xué)習(xí)前提和假設(shè)中詞和短語(ngram)在上下文中的語義向量表示,并建模這些局部信息之間的語義關(guān)系,繼而推斷前提和假設(shè)之間的全局語義關(guān)系.當前基于深度學(xué)習(xí)的方法雖然取得了較好的識別性能,但仍然具有2點不足之處:

1) 分別學(xué)習(xí)前提和假設(shè)(或其中的詞和短語)的語義向量表示,而沒有把它們當作一個整體.直覺上,人類在進行蘊含關(guān)系推斷時,會來回閱讀2個句子.通過它們之間的信息交換,以達到充分理解句子語義的目的.

2) 沒有同時利用句子級別的全局信息和短語級別的局部信息.例如基于句子編碼的方法主要利用了句子級別的信息,而基于短語交互的方法則主要利用了詞和短語級別的信息.

最近提出的S-LSTM(sentence-state LSTM)是一種能有效地建模文本序列的神經(jīng)網(wǎng)絡(luò)模型[24].S-LSTM通過迭代的方式在句子和短語之間交換信息,以同時學(xué)習(xí)句子級別的全局語義表示和短語級別的局部語義表示,在多個文本分類和序列標注任務(wù)上取得了優(yōu)于Bi-LSTM的效果.本文提出一種基于擴展的S-LSTM的文本蘊含識別模型.具體地,我們把前提和假設(shè)看作一個整體,擴展S-LSTM以同時學(xué)習(xí)它們的語義表示.也就是說,在學(xué)習(xí)前提(假設(shè))及其短語的語義向量表示時,考慮假設(shè)(前提)的語義信息.另一方面,在建模前提和假設(shè)之間的語義關(guān)系時,既考慮句子級別的全局信息,也考慮詞和短語級別的局部信息.

在常用的英文SNLI數(shù)據(jù)集和中文CNLI數(shù)據(jù)集上的實驗結(jié)果表明,本文提出的方法與基于句子編碼或基于短語交互的基準方法相比,識別性能取得了一定的提高.

1 相關(guān)工作

借助于深度學(xué)習(xí)的發(fā)展和大規(guī)模數(shù)據(jù)集SNLI的發(fā)布,基于深度學(xué)習(xí)的文本蘊含識別方法成為當前的研究熱點之一,其性能已經(jīng)全面超越早期的方法.最近的研究工作可大致分為2類:基于句子編碼的方法和基于短語交互的方法.

1) 基于句子編碼的方法首先通過Bi-LSTM等神經(jīng)網(wǎng)絡(luò)分別學(xué)習(xí)前提和假設(shè)的語義向量表示,然后使用拼接、內(nèi)積和作差等簡單操作建模它們之間的語義關(guān)系[2,10-17].例如Bowman等人[2]基于LSTM從左至右學(xué)習(xí)前提和假設(shè)的語義表示;Liu等人[11]使用Bi-LSTM網(wǎng)絡(luò)從左至右和從右至左2個方向加強語義的學(xué)習(xí)和表示;Chen等人[12]則使用多層Bi-LSTM網(wǎng)絡(luò)學(xué)習(xí)前提和假設(shè)的層次化的語義表示,并基于池化操作(pooling)提取顯著的特征.為了利用句子的結(jié)構(gòu)信息;Mou等人[13]使用一種基于依存樹結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡(luò),并取得了較好的識別性能;譚詠梅等人[14]聯(lián)合使用CNN和Bi-LSTM網(wǎng)絡(luò),以充分發(fā)揮CNN利于局部信息建模和Bi-LSTM利于全局信息建模的優(yōu)點.最近Shen等人[15]使用自注意力(self-attention)機制代替以前常用的Bi-LSTM和CNN,以發(fā)揮其能夠捕獲任意距離詞之間的依賴的優(yōu)勢,并通過Mask矩陣加入方向信息.這類方法強調(diào)如何學(xué)習(xí)前提和假設(shè)的語義向量表示,而通常使用較簡單的操作建模語義關(guān)系.

2) 基于短語交互的方法首先分別學(xué)習(xí)前提和假設(shè)中詞和短語在上下文中的語義向量表示,然后引入注意力機制(attention mechanism)捕獲這些局部信息之間的語義關(guān)系,繼而推斷前提和假設(shè)之間的全局語義關(guān)系[18-23].例如Parikh等人[18]將蘊含關(guān)系識別問題分解成詞之間的對齊問題,利用雙向注意力機制直接基于詞的語義向量表示建模前提和假設(shè)之間的關(guān)系;Chen等人[20]首先基于Bi-LSTM編碼詞在上下文中的詞義表示,然后基于雙向注意力機制(bi-attention mechanism, BiAttn)計算局部語義信息,最后把這些局部信息輸入到另一個Bi-LSTM計算全局蘊含關(guān)系;Tan等人[21]融合了4種不同的雙向注意力機制的計算方法,用于加強局部語義關(guān)系的計算.這類方法強調(diào)如何顯式地建模詞之間或短語之間的交互,以有效地捕獲局部語義關(guān)系.

本文提出的方法可以看作是基于句子編碼方法和短語交互方法的結(jié)合與改進,主要體現(xiàn)在2方面:1)通過擴展S-LSTM網(wǎng)絡(luò),同時學(xué)習(xí)前提和假設(shè)的語義向量表示.這一點可以看作是對基于句子編碼方法的改進,即學(xué)習(xí)了更好的句子級別的信息.2)在建模語義關(guān)系時,同時考慮句子級別和短語級別的信息,這可以看作是對基于短語交互方法的改進.另外,本文也是首次把S-LSTM網(wǎng)絡(luò)應(yīng)用到文本蘊含識別中,取得了比常用的Bi-LSTM更好的效果.

2 基于擴展的S-LSTM的文本蘊含識別模型

基于擴展的S-LSTM的文本蘊含識別模型以前提和假設(shè)為輸入,輸出它們之間是“蘊含”、“中立”還是“矛盾”關(guān)系.如圖1所示,該模型包括5層:詞向量層、編碼層、交互層、聚合層和MLP(multilayer perceptron)層.

Fig. 1 Extended S-LSTM based textual entailment recognition model圖1 基于擴展的S-LSTM的文本蘊含識別模型

詞向量層把詞編碼成向量表示;編碼層基于擴展的S-LSTM學(xué)習(xí)短語級別的信息和句子級別的信息;交互層基于雙向注意力機制學(xué)習(xí)局部的語義關(guān)系表示;聚合層用于學(xué)習(xí)全局的語義關(guān)系表示;MLP層用于輸出最終的分類結(jié)果.圖1編碼層中雙向箭頭和交互層中黑色大圓圈部分為本文的2處改進,即編碼層前提和假設(shè)之間的信息交換和交互層中句子級別信息的利用.下面各節(jié)分別對每一層進行詳細的介紹.

2.1 詞向量層

基于神經(jīng)網(wǎng)絡(luò)的自然語言處理模型通常先把詞表示為向量,用作模型的輸入.給定基于大規(guī)模語料預(yù)訓(xùn)練好的詞向量(word embeddings)E∈R|V|×d,其中,|V|表示詞表的大小,d為詞向量的維度,E中的每一行即為詞表中對應(yīng)詞的語義向量表示.詞向量層把前提和假設(shè)(可看作詞序列)表示為向量序列,分別記作A=(a1,a2,…,ai,…,am)和B=(b1,b2,…,bj,…,bn),其中,ai,bj∈Rd分別為對應(yīng)詞的向量表示,m和n分別為前提和假設(shè)的長度.大量的研究工作證實預(yù)訓(xùn)練的詞向量中包含語義信息,例如“高興”和“快樂”這2個詞在語義向量空間比較接近,非常適合用作自然語言模型的輸入.

2.2 編碼層

以前提和假設(shè)的詞向量表示作為輸入,編碼層用于計算它們的語義向量表示.具體地,利用本文提出的擴展的S-LSTM(詳見第4節(jié))把前提和假設(shè)分別表示為

Ha=(ha1,…,hai,…,ham,ga)T,
Hb=(hb1,…,hbi,…,hbn,gb)T,

(1)

其中,hai可以看作是前提中以第i個詞為中心的短語(ngram)的語義向量表示,是局部的語義信息;ga是前提的語義向量表示,是全局的語義信息;類似地,hbj是假設(shè)中短語的語義表示,gb是假設(shè)的全局語義表示;Ha∈R(m+1)×d和Hb∈R(n+1)×d為編碼層的輸出.

與常用的Bi-LSTM相比,擴展的S-LSTM具有2個方面的優(yōu)點:

1) 如圖1編碼層中雙向箭頭連線所示,在學(xué)習(xí)前提中短語的向量表示hai時,會考慮假設(shè)的語義gb,反之亦然,具體可參見第4節(jié)式(6).

2) 如圖1交互層中黑色大圓圈所示,在利用短語表示的同時,還利用了前提和假設(shè)在句子級別的語義向量表示ga和gb.理論上,Bi-LSTM中最后一個詞對應(yīng)的表示也可以看作是整個句子的語義表示.然而,當句子較長時,Bi-LSTM難以捕獲詞之間長距離的依賴信息.因此,多數(shù)情況下其最后一個詞對應(yīng)的向量表示實質(zhì)上僅是短語級別的信息.

2.3 交互層

(2)

(3)

其中,G是多層前饋神經(jīng)網(wǎng)絡(luò),d1是G中最后一層的維度,[;]表示向量的拼接操作.

在局部語義關(guān)系的計算過程中,既有短語表示hai與hbj之間的交互,又有短語表示hai(hbj)與句子表示gb(ga)之間的交互,還有句子表示ga與gb之間的交互.可以說,通過句子級信息的引入,交互層更好地建模了前提和假設(shè)之間的局部語義關(guān)系.

2.4 聚合層

聚合層在局部語義關(guān)系的基礎(chǔ)上計算全局語義關(guān)系表示,采用與文獻[20]中類似的方法:

va=[max(Va);avg(Va)],
vb=[max(Vb);avg(Vb)],
o=[va;vb;va·vb;|va-vb|],

(4)

其中,va,vb∈R2d1;max和avg分別表示最大池化和平均池化操作;va·vb表點乘,|va-vb|表示作差后取絕對值;o∈R8d1即為全局語義關(guān)系表示.

2.5 MLP層

MLP層由多個非線性隱層和一個softmax層組成,用于計算最終的分類結(jié)果:

(5)

3 擴展的S-LSTM

擴展的S-LSTM的網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,其基本思想是把常用于單個句子建模的S-LSTM[24]擴展用于處理句對的情況.核心是同時編碼2個句子,并考慮它們之間信息的交換.具體地,圖2中左半部分是對前提的建模,右半部分是對假設(shè)的建模,假設(shè)到前提的連線(為了保持簡潔,省略了前提到假設(shè)的連線)體現(xiàn)了它們之間信息的交換.

Fig. 2 Extended S-LSTM 圖2 擴展的S-LSTM

(6)

4 實 驗

4.1 數(shù)據(jù)與設(shè)置

我們在常用的英文SNLI數(shù)據(jù)集和中文CNLI數(shù)據(jù)集上驗證所提方法的有效性.SNLI原始數(shù)據(jù)集包含570 152個句子對,每個句子對使用以下關(guān)系標記:蘊含、矛盾、中立和“-”,其中“-”表示人類標注者缺乏共識而最終沒有給定標簽.為了進行公平的比較,依照文獻[2]中的實驗設(shè)置,剔除掉帶有“-”標簽的數(shù)據(jù),劃分為訓(xùn)練集、驗證集和測試集,各類別的分布情況如表2所示.類似地,把中文CNLI也劃分為訓(xùn)練集、驗證集和測試集,如表3所示.

Table 2 Training, Validation and Test Sets on SNLI表2 SNLI上的訓(xùn)練集、驗證集和測試集

Table 3 Training, Validation and Test Sets on CNLI表3 CNLI上的訓(xùn)練集、驗證集和測試集

使用StanfordCoreNLP工具包(2)https:stanfordnlp.github.ioCoreNLP對英文SNLI數(shù)據(jù)集進行tokenization處理,對中文CNLI數(shù)據(jù)集進行分詞.實驗中,使用預(yù)訓(xùn)練好的300維的英文Glove詞向量(3)http:nlp.stanford.edudataglove.840B.300d.zip,以及預(yù)訓(xùn)練好的300維的中文詞向量(4)https:pan.baidu.coms1kwxiPouou6ecxyJdYmnkvw.在訓(xùn)練的過程中,不進一步優(yōu)化這些詞向量.英文詞表大小為36 396,中文詞表大小為43 586.模型中的參數(shù)隨機初始化為均值為0、方差為0.01的正態(tài)分布.使用訓(xùn)練實例的真實標記與模型預(yù)測的分類結(jié)果之間的交叉熵(cross-entropy loss)作為代價函數(shù).為了緩解訓(xùn)練中可能出現(xiàn)的過擬合問題,在模型的編碼層使用了dropout技術(shù)[25].實驗代碼基于TensorFlow1.13實現(xiàn).

基于驗證集上的最優(yōu)性能選擇模型中超參(hyper parameters)的取值.實驗中發(fā)現(xiàn),表4中所列各超參的取值,既適用于英文SNLI數(shù)據(jù)集,也適用于中文CNLI數(shù)據(jù)集.某種程度上,這也反映了所提方法的穩(wěn)定性.

Table 4 Values of Hyper Parameters表4 超參的值

4.2 結(jié) 果

為了驗證所提方法在文本蘊含識別任務(wù)上的有效性,我們對比基準模型:

1) DeBiAttn_2016[18].直接把詞向量作為交互層的輸入,沒有使用編碼層.該模型首次把雙向注意力機制(BiAttn)引入文本蘊含識別中,取得了較好的效果.

2) ESIM_2017[20].基于Bi-LSTM對前提和假設(shè)分別編碼,交互層基于BiAttn建模局部語義表示,聚合層使用另一個Bi-LSTM計算全局語義關(guān)系,取得了當時最好的識別效果.

3) MwAN_2018[21].采用與ESIM_2017類似的模型,不同之處在于綜合了BiAttn的4種不同計算方法建模局部語義關(guān)系.

4) KIM_2018[26].采用與ESIM_2017類似的模型,并集成了WordNet中的同義詞對、反義詞對、上下位詞對等外部知識.

5) DAN_2018[27].聯(lián)合英文文本蘊含識別和篇章連接詞預(yù)測2個任務(wù),可以看作是利用了額外訓(xùn)練數(shù)據(jù)的半監(jiān)督方法.

6) MTDNN+BERT_2019[28].以大規(guī)模預(yù)訓(xùn)練的BERTLarge模型[29]為基礎(chǔ),在多任務(wù)框架下聯(lián)合訓(xùn)練多個語義理解任務(wù),取得了當前最好的性能.

除了上述基準模型之外,實驗中我們還對比了一些簡化的模型,分別用于驗證本文改進之處的效果:

1) Bi-LSTM+BiAttn與S-LSTM+BiAttn(5)S-LSTM+BiAttn模型在交互層僅使用了短語級別的語義表示,沒有利用句子級的語義信息..在這2個基本的模型中編碼層以Bi-LSTMS-LSTM學(xué)習(xí)前提和假設(shè)的語義表示.

2) Ours-1.本文提出模型的一種簡化,即把式(1)中的ga和gb去掉,用于驗證編碼層信息交換的作用.

4) Ours-3.本文提出的模型.

從表5中的實驗結(jié)果可以看出:1)與沒有利用外部資源的模型DeBiAttn_2016,ESIM_2017,MwAN_2018相比,我們提出的模型(Ours-3)取得了相同或更高的準確率.2)與使用了外部資源的KIM_2018和DMAN_2018相比,我們提出的模型取得了可比的性能.3)MTDNN+BERT_2019取得了當前最好的性能,其性能的提高主要來源于基于超大規(guī)模語料預(yù)訓(xùn)練的BERTLarge模型的使用.從某種角度來說,不能直接與本文所提出的模型進行對比.4)表5的下半部分中,S-LSTM+BiAttn的效果略好于Bi-LSTM+BiAttn的效果,說明把S-LSTM用于文本蘊含識別任務(wù)的有效性;Ours-1和Ours-2的效果都好于S-LSTM+BiAttn的效果,說明在編碼層考慮前提和假設(shè)之間信息的交換和在交互層考慮句子級的全局信息這2處改進都是有效的;Ours-3的效果好于Ours-1和Ours-2的效果,說明聯(lián)合使用這2處改進能進一步提升識別的性能.綜上所述,本文提出的模型是有效的,取得了同類模型中(沒有使用外部資源)較好的識別性能.

Table 5 Results on SNLI表5 SNLI上的實驗結(jié)果

如表6所示,我們提出的模型在中文CNLI數(shù)據(jù)集上的實驗結(jié)果與英文CNLI上的結(jié)果具有類似的趨勢,再次驗證了模型的有效性.

Table 6 Results on CNLI表6 CNLI上的實驗結(jié)果

4.3 超參分析

Fig. 3 Performance on the SNLI validation set圖3 SNLI驗證集上的性能

4.4 錯誤分析

參照文獻[30]分析SNLI中預(yù)測錯誤實例的方法,我們從CNLI的測試集中隨機抽樣了100個預(yù)測錯誤的實例進行分析.把導(dǎo)致預(yù)測錯誤的原因大致分成6類(示例如表7所示):

1) 詞重復(fù)(30%).前提和假設(shè)中包含大量相同的詞,會使模型傾向于預(yù)測其為蘊含關(guān)系.某種程度上,這說明現(xiàn)在的模型學(xué)到的很可能僅是淺層的特征,而不是真正的深層語義.

2) 否定詞(6%).否定詞的出現(xiàn)容易導(dǎo)致模型傾向于預(yù)測其為矛盾關(guān)系.例如,示例中的“不是”.

3) 反義詞(9%).模型較難識別出前提和假設(shè)中具有相反意義的詞.例如,示例中的“未煮過”和“熟”.

4) 背景知識(18%).沒有一定的知識背景很難正確判別這些實例的關(guān)系.例如,示例中“樂隊在舞臺上”暗含“音樂會”的舉行.

Table 7 Examples with Wrong Predictions in the CNLI Test Set表7 CNLI測試集中預(yù)測錯誤的示例

5) 歧義(8%).有些實例,人類也很難作出正確的判斷,存在一定的歧義.例如“在顯示器旁邊”有可能是“展示”,也可能不是.

6) 其他(29%).有些實例沒有明顯的錯誤來源.

從以上錯誤分析可以看出,現(xiàn)有文本蘊含識別模型還有很多可以改進的地方.例如如何集成外部知識庫以緩解錯誤3),4);如何消除詞重復(fù)帶來的預(yù)測偏見(bias)等.

5 總 結(jié)

本文提出了一種基于擴展的S -LSTM的文本蘊含識別模型.具體地,從編碼層中前提和假設(shè)的信息交換的建模、交互層中句子級別的全局語義的利用這2個方面對前人的工作進行改進.所提模型在英文SNLI和中文CNLI數(shù)據(jù)集上,都取得了同類方法中較好的識別性能.在未來的工作中,我們將探索把擴展的S -LSTM用于其他句子對相關(guān)的任務(wù),如隱式篇章關(guān)系識別、復(fù)述識別等.

猜你喜歡
短語語義編碼
基于SAR-SIFT和快速稀疏編碼的合成孔徑雷達圖像配準
《全元詩》未編碼疑難字考辨十五則
語言與語義
子帶編碼在圖像壓縮編碼中的應(yīng)用
電子制作(2019年22期)2020-01-14 03:16:24
Genome and healthcare
“上”與“下”語義的不對稱性及其認知闡釋
認知范疇模糊與語義模糊
語義分析與漢俄副名組合
河北区| 垣曲县| 高平市| 阜城县| 札达县| 宁都县| 黄大仙区| 红安县| 临西县| 高青县| 什邡市| 尉犁县| 长汀县| 江门市| 昌吉市| 临城县| 佳木斯市| 即墨市| 广水市| 阳西县| 大足县| 慈利县| 分宜县| 石泉县| 万安县| 绥德县| 铜陵市| 青铜峡市| 汝阳县| 和硕县| 莱西市| 板桥市| 宝应县| 祁连县| 紫金县| 花莲市| 江津市| 贡觉县| 红安县| 政和县| 高邮市|