劉家驊,韋 琬,陳 灝,杜彥濤
(1. 清華大學(xué) 計(jì)算機(jī)系,北京 100084;2. 北京奇點(diǎn)機(jī)智科技有限公司,北京 100080)
機(jī)器閱讀理解任務(wù)是自然語(yǔ)言處理的核心問(wèn)題。近年來(lái)各個(gè)數(shù)據(jù)集的發(fā)布,大大推進(jìn)了機(jī)器閱讀理解任務(wù)的發(fā)展。最近,在由中國(guó)中文信息學(xué)會(huì)和中國(guó)計(jì)算機(jī)學(xué)會(huì)主辦,百度公司、中國(guó)中文信息學(xué)會(huì)評(píng)測(cè)工委會(huì)和中國(guó)計(jì)算機(jī)學(xué)會(huì)中文信息技術(shù)專委會(huì)承辦的2018機(jī)器閱讀理解技術(shù)競(jìng)賽中,發(fā)布了一個(gè)大規(guī)模的源于真實(shí)搜索引擎任務(wù)場(chǎng)景的中文閱讀理解數(shù)據(jù)集,這將對(duì)中文閱讀理解領(lǐng)域的發(fā)展產(chǎn)生很大的推動(dòng)作用。
與其他早前發(fā)布的數(shù)據(jù)集相比,本次比賽的數(shù)據(jù)有如下特點(diǎn): (1)來(lái)源于真實(shí)數(shù)據(jù),包含不同類型的問(wèn)題。數(shù)據(jù)不但包括事實(shí)類問(wèn)題,還包括大量意見(jiàn)型問(wèn)題,而意見(jiàn)型問(wèn)題常常對(duì)應(yīng)多個(gè)答案; (2)問(wèn)題對(duì)應(yīng)的文檔以網(wǎng)頁(yè)全文的形式給出,其長(zhǎng)度也大大超過(guò)常見(jiàn)閱讀理解模型的限制; (3)包括百度搜索和百度知道兩部分不同來(lái)源的數(shù)據(jù),相互間存在很大差異。這些特點(diǎn)決定了這個(gè)數(shù)據(jù)集比以往的機(jī)器閱讀理解數(shù)據(jù)集具有更大的挑戰(zhàn)性。為了應(yīng)對(duì)這些挑戰(zhàn),我們從數(shù)據(jù)預(yù)處理、特征表示、模型選擇、損失函數(shù)的設(shè)定和訓(xùn)練方法的選擇等多個(gè)方面對(duì)系統(tǒng)進(jìn)行改進(jìn)。實(shí)驗(yàn)表明,每個(gè)部分的改進(jìn)都對(duì)結(jié)果的提高做出了貢獻(xiàn)。最終,我們的系統(tǒng)在ROUGE-L和BLEU-4上分別取得了63.38和59.23的分?jǐn)?shù),獲得了2018機(jī)器閱讀理解技術(shù)競(jìng)賽的第一名。
接下來(lái),我們將從競(jìng)賽數(shù)據(jù)集和評(píng)價(jià)方法、數(shù)據(jù)預(yù)處理、模型結(jié)構(gòu)、實(shí)現(xiàn)細(xì)節(jié)、實(shí)驗(yàn)結(jié)果和樣例分析等方面分節(jié)介紹我們的工作,并在結(jié)論部分對(duì)工作進(jìn)行總結(jié)。
本次競(jìng)賽的數(shù)據(jù)集包括30萬(wàn)問(wèn)題(其中訓(xùn)練集27萬(wàn),開(kāi)發(fā)集1萬(wàn),測(cè)試集2萬(wàn)),其中20萬(wàn)來(lái)自先前公開(kāi)發(fā)布的DuReader數(shù)據(jù)集[1],所有問(wèn)題均為來(lái)自搜索引擎場(chǎng)景中用戶的真實(shí)問(wèn)題。每個(gè)問(wèn)題提供最多5個(gè)候選文檔以及人工撰寫(xiě)的一個(gè)或者多個(gè)答案作為參考答案。數(shù)據(jù)集分為百度搜索和百度知道兩部分(以下簡(jiǎn)稱搜索和知道),每一部分各包括15萬(wàn)問(wèn)題。搜索部分的文檔來(lái)源于百度搜索引擎提供的相關(guān)度最高的網(wǎng)頁(yè),而知道部分的文檔來(lái)源于百度知道網(wǎng)站的站內(nèi)搜索引擎提供的相關(guān)度最高的問(wèn)題對(duì)應(yīng)的網(wǎng)頁(yè)。與大多數(shù)常用的閱讀理解數(shù)據(jù)集不同的是,本次競(jìng)賽數(shù)據(jù)集提供的每個(gè)文檔都包含來(lái)源網(wǎng)頁(yè)的全文文本內(nèi)容。
競(jìng)賽以測(cè)試集的人工標(biāo)注答案為參考答案,采用ROUGH-L為主評(píng)價(jià)和指標(biāo),BLEU4作為評(píng)價(jià)指標(biāo),其中以ROUGH-L作為主評(píng)價(jià)指標(biāo)。同時(shí)對(duì)于是非及實(shí)體類型問(wèn)題,對(duì)ROUGE-L和BLEU4評(píng)價(jià)指標(biāo)進(jìn)行了輕微的改動(dòng),適當(dāng)增加了正確識(shí)別是非答案類型及匹配實(shí)體的得分獎(jiǎng)勵(lì),一定程度上彌補(bǔ)傳統(tǒng)ROUGE-L和BLEU4指標(biāo)對(duì)是非和實(shí)體類型問(wèn)題評(píng)價(jià)不敏感的問(wèn)題。
由于這次比賽數(shù)據(jù)集提供的每個(gè)文檔都包含來(lái)源網(wǎng)頁(yè)的全部文本內(nèi)容,長(zhǎng)度比其他常用數(shù)據(jù)集長(zhǎng)很多,最長(zhǎng)的文檔包含多達(dá)9萬(wàn)多個(gè)詞,大大超出了常用的機(jī)器閱讀理解模型可以接受的范圍(通常為數(shù)百詞)。因此,我們需要對(duì)文檔進(jìn)行預(yù)處理,抽取出文檔中可能含有答案的部分作為篇章輸入,放入模型中進(jìn)行訓(xùn)練和預(yù)測(cè)。
對(duì)于知道和搜索兩部分?jǐn)?shù)據(jù),我們采取了不同的預(yù)處理方法。知道的數(shù)據(jù)來(lái)源是百度知道問(wèn)答中相關(guān)問(wèn)題的對(duì)應(yīng)網(wǎng)頁(yè),所有內(nèi)容都是與網(wǎng)頁(yè)標(biāo)題對(duì)應(yīng)的問(wèn)題(和用戶提出的問(wèn)題不一定相同)相關(guān)的信息?;谠角懊娴男畔⒖赡茉接杏玫募僭O(shè),對(duì)于知道數(shù)據(jù)里面的每一篇文檔,我們將文檔標(biāo)題和所有段落順次連接,中間插入特殊的符號(hào)表示段落分割,然后截取最前面不超過(guò)預(yù)設(shè)最大長(zhǎng)度的內(nèi)容,將得到的結(jié)果作為預(yù)處理的結(jié)果。
對(duì)于搜索部分的數(shù)據(jù),文檔包含一般網(wǎng)頁(yè)的全部文本信息,前面部分的內(nèi)容有可能與問(wèn)題沒(méi)有關(guān)系。因此,我們采取如下策略:
(1) 將標(biāo)題和各段內(nèi)容以特殊符號(hào)分隔后連接在一起,如果得到的結(jié)果沒(méi)有超過(guò)預(yù)設(shè)最大長(zhǎng)度,則將其作為預(yù)處理的結(jié)果;
(2) 否則,我們計(jì)算各段落和問(wèn)題的BLEU-4分?jǐn)?shù),以衡量段落和問(wèn)題的相關(guān)性;
(3) 在分?jǐn)?shù)排名前k的段落中,選擇最早出現(xiàn)的段落;
(4) 選取標(biāo)題、這個(gè)段落以及下一個(gè)段落;
(5) 對(duì)于此后第3到第10個(gè)段落,選取每個(gè)段落的第一句話;
(6) 將所有選取的內(nèi)容以特殊符號(hào)分隔后連接在一起,截取最前面不超過(guò)預(yù)設(shè)最大長(zhǎng)度的內(nèi)容,將得到的結(jié)果作為預(yù)處理的結(jié)果。
上述方法基于兩個(gè)假設(shè): 第一,答案可能出現(xiàn)在與問(wèn)題相似的段落后面;第二,越靠前面的內(nèi)容越重要。引入文檔標(biāo)題的原因在于從文檔標(biāo)題很容易判斷文檔內(nèi)容是否與問(wèn)題相關(guān)。
引入上述啟發(fā)式預(yù)處理機(jī)制后,采用同樣的模型,得到的結(jié)果比基線系統(tǒng)提供的簡(jiǎn)單預(yù)處理方法有大幅提高,對(duì)此我們將在實(shí)驗(yàn)部分具體說(shuō)明。值得注意的是,數(shù)據(jù)集提供了未經(jīng)過(guò)分詞的原始文本以及分詞后的結(jié)果,我們的模型選擇分詞后的結(jié)果作為輸入。
與大多數(shù)主流工作相同,我們將閱讀理解任務(wù)建模成篇章中的片段抽取問(wèn)題。在數(shù)據(jù)集中,每個(gè)問(wèn)題可能對(duì)應(yīng)多個(gè)人工撰寫(xiě)的答案。對(duì)于每個(gè)答案,我們?cè)谄轮袑ふ乙粋€(gè)與答案F1分?jǐn)?shù)最高的片段,作為這個(gè)答案的參考答案片段,在訓(xùn)練時(shí)使用。對(duì)于僅使用一個(gè)答案片段的模型,我們采用與任意一個(gè)答案的F1分?jǐn)?shù)最高的片段作為參考答案片段訓(xùn)練模型(這種情況與百度提供的基線系統(tǒng)一致)。
在現(xiàn)在常見(jiàn)的機(jī)器閱讀理解模型中,詞向量是最常用的特征表示方法。以往的工作表明,使用預(yù)先訓(xùn)練好的詞向量作為輸入,并在閱讀理解任務(wù)的訓(xùn)練過(guò)程中固定保持詞向量不變,相比于使用隨機(jī)初始化的詞向量,并在訓(xùn)練過(guò)程中同步訓(xùn)練詞向量,效果會(huì)有提升。因而,我們的模型也使用相同的方法。
在英文閱讀理解模型中,加入基于字符序列得到的詞表示對(duì)于結(jié)果有穩(wěn)定的提升效果。這是因?yàn)橛⑽膯卧~有豐富的詞綴變化,語(yǔ)義相同詞性不同的單詞擁有相同的詞干,只在詞綴上有所區(qū)分,而詞綴相同的單詞往往詞性相同。這樣的特性使得引入字符序列的信息能夠緩解未登錄詞的問(wèn)題。而漢語(yǔ)詞匯沒(méi)有這樣的特性,含有相同字的不同詞語(yǔ)的意思可能完全沒(méi)有任何聯(lián)系。我們也嘗試使用循環(huán)神經(jīng)網(wǎng)絡(luò)整合預(yù)訓(xùn)練好的字向量的信息得到詞的表示,作為額外的特征表示,但是實(shí)驗(yàn)效果并沒(méi)有明顯地變好。
在以往的工作如文獻(xiàn)[2]中,除了詞向量以外,一些其他的特征也被運(yùn)用在閱讀理解模型當(dāng)中。我們的模型使用了詞性標(biāo)注信息。我們使用詞性標(biāo)注工具,對(duì)每個(gè)問(wèn)題和對(duì)應(yīng)的篇章進(jìn)行詞性標(biāo)注,得到其中每一個(gè)詞的詞性信息。對(duì)于每一種詞性,我們預(yù)先訓(xùn)練好對(duì)應(yīng)的詞性向量。問(wèn)題和篇章中的每個(gè)詞對(duì)應(yīng)的詞性向量也作為詞的特征表示之一。
對(duì)于篇章里面的每一個(gè)詞,我們還使用一個(gè)額外的二值特征wiq,表示這個(gè)詞有沒(méi)有在對(duì)應(yīng)的問(wèn)題中出現(xiàn)。
問(wèn)題的類型也能夠?qū)卮饐?wèn)題提供幫助。2018機(jī)器閱讀理解技術(shù)競(jìng)賽將問(wèn)題分成三種類型: 實(shí)體類,描述類和判斷類。我們認(rèn)為這樣的劃分不夠細(xì)致,通過(guò)簡(jiǎn)單的關(guān)鍵字匹配,將問(wèn)題劃分成九種常見(jiàn)類型,大致對(duì)應(yīng)英文的各個(gè)疑問(wèn)詞。具體的問(wèn)題分類和對(duì)應(yīng)的關(guān)鍵詞信息見(jiàn)表1。
給定任意一個(gè)問(wèn)題,首先按表1的順序從上到下匹配各個(gè)關(guān)鍵詞,如果問(wèn)題包含某一分類的其中一個(gè)關(guān)鍵詞,則被匹配到該分類。如果問(wèn)題沒(méi)有包含上述任意關(guān)鍵詞,則認(rèn)為問(wèn)題是數(shù)據(jù)集給定的類型。因此,我們一共將問(wèn)題分為12類(包括表1定義的九種類型和數(shù)據(jù)集本身給定的三種類型),對(duì)于每個(gè)問(wèn)題,都會(huì)在問(wèn)題開(kāi)始加上一個(gè)特殊符號(hào)表示其對(duì)應(yīng)的問(wèn)題類型。
表1 問(wèn)題分類和對(duì)應(yīng)關(guān)鍵詞
3.3.1 BiDAF匹配層
Seo[3]等提出BiDAF模型利用雙向注意力機(jī)制來(lái)融合問(wèn)題和篇章的信息的方法。我們首先通過(guò)內(nèi)積計(jì)算出每個(gè)問(wèn)題中的詞和每個(gè)篇章中的詞的相似度,如式(3)所示。
(3)
然后利用他們的方法計(jì)算出問(wèn)題到篇章(context2query)和篇章到問(wèn)題(query2context)的注意力表示,如式(4)~式(7)所示。
A=softmax(S)
(4)
(5)
b=softmax(maxcol(S))
(6)
(7)
然后再利用一層雙向LSTM得到隱層表示,如式(8)所示。
(8)
3.3.2 MatchLSTM匹配層
參照Wang和Jiang[4]提出的MatchLSTM模型,我們首先計(jì)算:
然后再利用一層雙向LSTM得到隱層表示,如式(13)所示。
(13)
3.3.3 DCA匹配層
Hasan和Fischer[5]提出在使用雙向注意力機(jī)制之后,再使用一層注意力機(jī)制進(jìn)一步融合信息的方法:
然后再利用一層雙向LSTM得到隱層表示,如式(21)所示。
(21)
在實(shí)驗(yàn)結(jié)果部分,我們會(huì)比較不同匹配層對(duì)模型性能帶來(lái)的影響。
其中,t=1,2。
在答案抽取層,為了給一個(gè)問(wèn)題統(tǒng)一尋找一個(gè)答案片段,同一問(wèn)題對(duì)應(yīng)的不同篇章得到的隱層表示被連接起來(lái),這部分的實(shí)現(xiàn)和基線系統(tǒng)相同。
對(duì)于片段抽取模型來(lái)說(shuō),通常采取如下?lián)p失函數(shù),如式(26)所示。
(26)
其中,a1和a2分別表示參考答案片段對(duì)應(yīng)篇章中的開(kāi)始位置和結(jié)束位置。
與大多數(shù)已有的閱讀理解數(shù)據(jù)集不同,2018機(jī)器閱讀理解技術(shù)競(jìng)賽的數(shù)據(jù)集為每個(gè)問(wèn)題提供不止一個(gè)參考答案。最終評(píng)判的時(shí)候,只要機(jī)器預(yù)測(cè)的答案與其中一個(gè)答案相同或者類似,就會(huì)得到比較高的分?jǐn)?shù)。因而,與只考慮一個(gè)參考答案的經(jīng)典模型相比,在訓(xùn)練的時(shí)候考慮所有參考答案可以更有效地利用數(shù)據(jù),訓(xùn)練出更好的模型。對(duì)于給出多個(gè)參考答案的問(wèn)題,我們利用2.2節(jié)介紹的方法對(duì)于每個(gè)答案找到它在篇章中的參考答案片段,并定義如下?lián)p失函數(shù),如式(27)所示。
(27)
Tan[6]等提出了以預(yù)測(cè)答案從哪個(gè)篇章得到的問(wèn)題作為輔助任務(wù),進(jìn)行聯(lián)合訓(xùn)練,提高多篇章閱讀理解模型性能的方法。我們借鑒了他們的思路,設(shè)計(jì)了篇章選擇損失函數(shù)。
對(duì)于匹配層得到的每一個(gè)篇章的隱層表示,我們使用“注意力池化” (attention pooling)和投影變化,從而計(jì)算每一個(gè)篇章和問(wèn)題的匹配分?jǐn)?shù)g:
然后將輔助任務(wù)損失函數(shù)Lsp定義為:
(32)
+(1-selk)log(1-gk))
其中,selk表示是否有答案片段出自該篇章。
于是,我們使用最大似然估計(jì)聯(lián)合訓(xùn)練優(yōu)化目標(biāo)函數(shù),如式(33)所示。
JMLE=L+λspLsp
(33)
前面提出的損失函數(shù)使用最大似然估計(jì),目標(biāo)是最大化訓(xùn)練集中每個(gè)問(wèn)題的參考答案區(qū)間出現(xiàn)的概率。與之相比,使用最小風(fēng)險(xiǎn)訓(xùn)練直接對(duì)評(píng)估指標(biāo)的期望進(jìn)行優(yōu)化,在機(jī)器翻譯等方向取得了很好的結(jié)果。
在閱讀理解任務(wù)上,最小風(fēng)險(xiǎn)訓(xùn)練的目標(biāo)函數(shù)可以被定義為式(34)。
(34)
參考前人的工作,進(jìn)行最小風(fēng)險(xiǎn)訓(xùn)練的時(shí)候,我們以最大似然估計(jì)訓(xùn)練得到的模型參數(shù),作為初始化參數(shù)。在這種情況下,我們發(fā)現(xiàn),聯(lián)合訓(xùn)練最大似然估計(jì)和最小風(fēng)險(xiǎn)訓(xùn)練的目標(biāo)函數(shù)可以得到更好的結(jié)果,如式(35)所示。
J=JMLE+λMRTJMRT
(35)
然后將rp做投影到分類維度,再用交叉熵做損失函數(shù)訓(xùn)練分類模型。
我們利用數(shù)據(jù)集提供的未分詞文本和分詞結(jié)果,使用一層的LSTM模型訓(xùn)練了一個(gè)分詞器,然后用這個(gè)分詞器將SogouT的部分文檔進(jìn)行分詞,用分詞得到的結(jié)果作為輸入,以語(yǔ)言模型為訓(xùn)練目標(biāo),使用一層的LSTM模型訓(xùn)練256維的中文詞向量。得到的預(yù)訓(xùn)練詞向量被用在閱讀理解模型中,并且在訓(xùn)練閱讀理解模型的過(guò)程中保持不變。
在訓(xùn)練過(guò)程中,我們?cè)O(shè)定每個(gè)篇章的最大長(zhǎng)度為500詞,batch size為32。為防止模型過(guò)擬合,層與層之間采用了dropout技術(shù),所有隱層表示向量為150維,單模型系統(tǒng)的dropout比例設(shè)為0.15。我們使用λMRT=10.0,在單一模型情況下λsp=5.0。
我們采用Adam算法來(lái)優(yōu)化我們的模型,學(xué)習(xí)率(learning rate)在訓(xùn)練過(guò)程中保持0.001不變。對(duì)于知道部分和搜索部分的數(shù)據(jù),我們使用兩個(gè)模型分別訓(xùn)練和預(yù)測(cè)。使用最大似然估計(jì)訓(xùn)練模型時(shí),我們訓(xùn)練10輪(epoch),每一輪訓(xùn)練之后在開(kāi)發(fā)集測(cè)試性能,最終選擇開(kāi)發(fā)集上性能最好的模型。使用最小風(fēng)險(xiǎn)訓(xùn)練時(shí),模型以最大似然估計(jì)訓(xùn)練得到的參數(shù)作為初始化參數(shù)進(jìn)行訓(xùn)練。由于使用最小風(fēng)險(xiǎn)訓(xùn)練速度較慢,且使用最大似然估計(jì)訓(xùn)練好的模型參數(shù)進(jìn)行初始化以后,模型通常在第一輪訓(xùn)練結(jié)束的時(shí)候就達(dá)到最好的效果,于是使用最小風(fēng)險(xiǎn)訓(xùn)練時(shí)我們只訓(xùn)練1輪。
實(shí)驗(yàn)所用的服務(wù)器使用4核Intel(R) Xeon(R) CPU E5-2630 v4 2.20GHz CPU,配有128GB內(nèi)存,顯卡為T(mén)ITAN X Pascal,顯存大小為12GB。每個(gè)實(shí)驗(yàn)使用單個(gè)GPU進(jìn)行訓(xùn)練。
在搜索部分?jǐn)?shù)據(jù)上,BiDAF模型每一輪數(shù)據(jù)訓(xùn)練和驗(yàn)證時(shí)間約為3h,MatchLSTM模型約為5h,DCA模型約為3h。知道部分?jǐn)?shù)據(jù)每一輪訓(xùn)練所用時(shí)間與搜索部分?jǐn)?shù)據(jù)相仿。使用最小風(fēng)險(xiǎn)訓(xùn)練時(shí),由于每次要計(jì)算所有片段和參考答案的Rouge-L值,訓(xùn)練速度相對(duì)緩慢,BiDAF模型每一輪大概需要16h。
預(yù)測(cè)時(shí),我們使用模型預(yù)測(cè)答案片段在篇章的開(kāi)始位置和結(jié)束位置的概率分布,并尋找同一篇章內(nèi)使得開(kāi)始位置概率乘以結(jié)束位置概率最大的片段作為預(yù)測(cè)結(jié)果。
值得說(shuō)明的是,數(shù)據(jù)集對(duì)每個(gè)問(wèn)題提供多個(gè)文檔,這些文檔來(lái)源于搜索結(jié)果,并按照搜索結(jié)果順序呈現(xiàn),也就是說(shuō)搜索系統(tǒng)認(rèn)為更靠前的文檔與問(wèn)題更相關(guān),而這個(gè)信息在我們的系統(tǒng)里面并沒(méi)有顯式體現(xiàn)。盡管模型在訓(xùn)練的時(shí)候增加了輔助任務(wù)預(yù)測(cè)答案從哪一個(gè)篇章得到,我們發(fā)現(xiàn),對(duì)于訓(xùn)練好的模型,在開(kāi)發(fā)集中僅使用前3篇文檔進(jìn)行預(yù)測(cè)的結(jié)果,比使用全部(最多5篇)文檔進(jìn)行預(yù)測(cè)得到的結(jié)果有明顯提高。在實(shí)驗(yàn)部分我們會(huì)給出數(shù)據(jù)進(jìn)行具體說(shuō)明。因此,在最后預(yù)測(cè)的時(shí)候,對(duì)于每個(gè)問(wèn)題,我們僅使用前3篇文檔進(jìn)行預(yù)測(cè),得到結(jié)果。
我們還對(duì)提取出來(lái)的片段進(jìn)行簡(jiǎn)單后處理,包括去除我們?cè)陬A(yù)處理階段增加的特殊分隔符和“u3000”“ ”等特殊符號(hào),以及對(duì)標(biāo)點(diǎn)符號(hào)進(jìn)行規(guī)范化處理。最終提交的結(jié)果是經(jīng)過(guò)后處理的結(jié)果。
由于實(shí)驗(yàn)結(jié)果表明,使用BiDAF、MatchLSTM和DCA作為匹配層的效果相近,為了使得集成模型來(lái)源的各個(gè)模型具有多樣性,我們采用了來(lái)自不同匹配模型的結(jié)果進(jìn)行集成。我們還使用了不同的dropout比例,不同的聯(lián)合學(xué)習(xí)比率訓(xùn)練不同的模型。表2詳細(xì)介紹了集成結(jié)果來(lái)源的各個(gè)模型的不同部分具體選項(xiàng)。所有18種不同選擇分別被用于訓(xùn)練,共得到18個(gè)模型,這些模型的結(jié)果最后被集成得到最終結(jié)果。
表2 集成結(jié)果來(lái)源的模型選擇
在模型結(jié)構(gòu)的匹配層部分,我們介紹了BiDAF、MatchLSTM和DCA三種不同的選擇。我們?cè)陂_(kāi)發(fā)集上比較了選用不同匹配方法的模型結(jié)果。表3展示了不同匹配層在搜索和知道上的結(jié)果。由于不同模型結(jié)果非常接近,為了減少誤差,對(duì)于每種情況,我們使用兩個(gè)不同的隨機(jī)種子訓(xùn)練模型,最終匯報(bào)的結(jié)果是兩個(gè)模型結(jié)果的平均值。
表3 不同匹配層模型的表現(xiàn)
可以看出,使用不同的匹配層得到的結(jié)果非常接近。MatchLSTM得到的結(jié)果最好,但是和BiDAF和DCA得到的結(jié)果非常接近。因此,在之后的單模型實(shí)驗(yàn)中,我們選擇使用速度較快的BiDAF匹配層。而在集成模型的時(shí)候,為了使來(lái)源的各個(gè)模型具有多樣性,我們使用了BiDAF,MatchLSTM和DCA匹配層得到的不同模型。
我們從基線系統(tǒng)開(kāi)始,逐步增加各個(gè)部分,驗(yàn)證每個(gè)部分對(duì)于效果帶來(lái)的影響。表4總結(jié)了這部分的實(shí)驗(yàn)結(jié)果,其中數(shù)據(jù)是模型在開(kāi)發(fā)集上沒(méi)有經(jīng)過(guò)后處理的直接預(yù)測(cè)結(jié)果的表現(xiàn)。值得說(shuō)明的是,比賽提供的結(jié)果評(píng)估腳本里計(jì)算BLEU4指標(biāo)的方式造成了每個(gè)問(wèn)題權(quán)重不等,答案長(zhǎng)的問(wèn)題實(shí)際權(quán)重更高,這是不合理的,而計(jì)算ROUGE-L的時(shí)候每個(gè)問(wèn)題的權(quán)重是相同的,且最終比賽結(jié)果也選擇了ROUGE-L作為主要的評(píng)價(jià)指標(biāo),所以我們匯報(bào)實(shí)驗(yàn)結(jié)果的時(shí)候主要關(guān)注ROUGE-L的結(jié)果。
表4 模型各部分的影響
從實(shí)驗(yàn)結(jié)果可以看出,每項(xiàng)改變都使系統(tǒng)性能得到提升。其中,我們提出的啟發(fā)式篇章預(yù)處理的方法非常有效,使用這種方法相對(duì)于基線系統(tǒng)的預(yù)處理方法有大幅提高,在搜索部分提升了11.30,在知道部分也提升了4.62。使用預(yù)訓(xùn)練詞向量使得搜索和知道部分的結(jié)果分別進(jìn)一步提升了4.51和4.50。進(jìn)一步增加其他特征(詞性標(biāo)注、問(wèn)題類型、wiq)會(huì)在搜索和知道上分別帶來(lái)0.17和0.65的額外提升。與僅利用一個(gè)答案相比,在損失函數(shù)中考慮多個(gè)答案使ROUGE-L指標(biāo)在搜索和知道上分別進(jìn)一步上升了1.60和1.30。值得說(shuō)明的是,加上輔助任務(wù)進(jìn)行聯(lián)合訓(xùn)練后,雖然ROUGE-L值沒(méi)有大幅提高,但是模型訓(xùn)練的穩(wěn)定性得到了增強(qiáng)。
最終,基于上面的模型,再使用最小風(fēng)險(xiǎn)訓(xùn)練,我們的模型在開(kāi)發(fā)集上搜索和知道的ROUGE-L值分別達(dá)到49.61和58.11,相比基線系統(tǒng)分別提高18.84和12.21。這是我們的單系統(tǒng)模型在開(kāi)發(fā)集上沒(méi)有使用后處理的結(jié)果。
如4.4節(jié)所述,我們?cè)趯?shí)驗(yàn)中發(fā)現(xiàn),對(duì)于同一個(gè)訓(xùn)練好的模型,在開(kāi)發(fā)集中僅使用前3篇文檔得到的篇章進(jìn)行預(yù)測(cè)的結(jié)果,比使用全部文檔進(jìn)行預(yù)測(cè)得到的結(jié)果有明顯提高,表5給出了對(duì)比的實(shí)驗(yàn)結(jié)果。
表5 僅使用前三篇進(jìn)行預(yù)測(cè)的結(jié)果
表6比較了使用3.8節(jié)描述的判斷模型給判斷類問(wèn)題抽取出來(lái)的答案加上判斷結(jié)果后,對(duì)于在線測(cè)試集上ROUGE-L和BLEU4帶來(lái)的變化??梢钥闯?,加上判斷結(jié)果后,ROUGE-L和BLEU4分別提高了0.26和0.23。
表6 判斷模型的影響
表7顯示了我們的單模型和集成模型對(duì)在線測(cè)試集的實(shí)驗(yàn)結(jié)果。集成模型的具體設(shè)置見(jiàn)實(shí)驗(yàn)細(xì)節(jié)中的集成模型部分??梢钥闯觯啾扔趩我荒P?,集成模型在ROUGE-L和BLEU-4上分別有1.58和2.28的提高。
表7 在線測(cè)試集結(jié)果
圖1顯示了比賽公布的最終結(jié)果,我們的系統(tǒng)在ROUGE-L和BLEU-4上分別取得了63.38和59.23的結(jié)果,排名第一,分別領(lǐng)先第2名2.39和3.30。
圖1 最終比賽結(jié)果
圖2給出了一些開(kāi)發(fā)集中我們系統(tǒng)預(yù)測(cè)答案沒(méi)有完全和參考答案相符的例子。其中,對(duì)于問(wèn)題1,我們的預(yù)測(cè)答案包含了額外的非答案信息。問(wèn)題2的預(yù)測(cè)答案只包括了參考答案的一部分,沒(méi)有完整包含應(yīng)有的信息。問(wèn)題3對(duì)應(yīng)了另外的情況,我們的預(yù)測(cè)答案是文檔里完整包含了答案信息的片段,但是標(biāo)注者重新整理了這個(gè)片段并編寫(xiě)得到了更簡(jiǎn)潔和合適的參考答案。問(wèn)題4則對(duì)應(yīng)了最差的情況,我們系統(tǒng)預(yù)測(cè)的結(jié)果完全不是回答給定問(wèn)題的答案。從這些例子可以看出,我們的系統(tǒng)盡管整體上取得了不錯(cuò)的結(jié)果,但在一些情況下仍然存在預(yù)測(cè)的答案不夠準(zhǔn)確(缺少必要部分,包含不必要的部分),甚至完全錯(cuò)誤的情況。一種可能的解決方法是考慮引入答案驗(yàn)證模塊,提高答案的準(zhǔn)確性。
圖2 樣例分析
2018機(jī)器閱讀理解技術(shù)競(jìng)賽的數(shù)據(jù)集是基于真實(shí)場(chǎng)景的大規(guī)模數(shù)據(jù)集,包含不同類型的問(wèn)題和不同來(lái)源的文檔,非常具有挑戰(zhàn)性。針對(duì)數(shù)據(jù)集的特點(diǎn),我們從數(shù)據(jù)預(yù)處理、特征表示、模型選擇、損失函數(shù)的定置和訓(xùn)練方法的選擇等多個(gè)方面入手構(gòu)造系統(tǒng),在正式測(cè)試集中ROUGE-L和BLEU-4上分別取得了63.38和59.23的分?jǐn)?shù),在最終提交結(jié)果的105支參賽隊(duì)伍里取得了第一名的成績(jī)。