鄭玉昆,李 丹,范 臻,劉奕群,張 敏,馬少平
(1. 清華大學 計算機系,北京 100084;2. 阿姆斯特丹大學 ILPS,荷蘭 阿姆斯特丹 1098XH)
近年來,機器閱讀理解發(fā)展迅速,成為了深度學習領域的熱點。隨著多個閱讀理解與問答數(shù)據(jù)集的發(fā)布,越來越多端到端的深度學習方法被提出,算法性能上取得了極大進步。數(shù)據(jù)集方面,斯坦福問答數(shù)據(jù)集SQuAD[1]和微軟閱讀理解數(shù)據(jù)集MS MARCO[2]是兩個目前最為流行的真實問答數(shù)據(jù)集。其中,SQuAD屬于抽取式的問答數(shù)據(jù)集,但不同于以往類似數(shù)據(jù)集的是,SQuAD數(shù)據(jù)集涉及了多種模式的上下文邏輯推理。MS MARCO數(shù)據(jù)集從Bing搜索引擎中收集問題的文檔,答案不再具有約束,即一些答案可能由用戶撰寫,存在無法與段落完全匹配的文字或者同時包含多個段落片段。MS MARCO數(shù)據(jù)集的設置更接近真實閱讀理解與問答的情景,同時任務也更具有挑戰(zhàn)性。目前兩個數(shù)據(jù)集的最新排行榜上機器均取得了超過人類平均水平的成績,極大地推動了深度學習在自然語言理解的發(fā)展。
此次2018機器閱讀理解技術競賽采用全新的DuReader數(shù)據(jù)集[3],與MS MARCO數(shù)據(jù)集類似,DuReader采用了來自百度搜索引擎的真實查詢詞作為問題,從搜索引擎檢索的頂部文檔中進行答案標注。因此,此次比賽具有更真實的任務設定,同時面臨查詢意圖模糊、多文檔、多段落、答案可能不在文檔中出現(xiàn)等多方面挑戰(zhàn)。
本文介紹了在此次比賽中我們使用的模型設計以及實驗結果。為了應對復雜的實驗挑戰(zhàn),我們在R-Net模型基礎上設計了基于自注意力機制的多任務深度閱讀理解模型T-Reader。模型的主要擴展有以下三點:
(1) 在模型中加入了跨段落和跨文檔兩個級別的注意力機制,使得問題下所有的段落能夠?qū)崿F(xiàn)信息交互。
(2) 在預測答案范圍的基礎上加入了基于預測答案的段落排序網(wǎng)絡,使用增強學習的方法直接優(yōu)化評價指標。
(3) 借鑒信息檢索領域中排序?qū)W習(learning to rank)的常用方法,手動提取了問題—段落精準匹配特征作為額外的模型輸入,顯式地捕捉問題詞項在段落中的分布模式。
我們將模型分別在search和zhidao兩種數(shù)據(jù)集上單獨進行訓練、驗證和測試,最終在Test v2測試集取得了Rouge-L為54.41,BLEU-4為47.77的表現(xiàn),在所有參賽隊伍中性能表現(xiàn)獲得第八名。
在斯坦福問答數(shù)據(jù)集SQuAD[1]出現(xiàn)之前,傳統(tǒng)的機器閱讀數(shù)據(jù)集主要分為兩類: (1)通過人工標注建立的閱讀理解數(shù)據(jù)集,這種數(shù)據(jù)集一般數(shù)據(jù)規(guī)模很小,難以用于深度模型的訓練; (2)從真實語料中抽取段落構成的數(shù)據(jù)集,其中各個段落中部分詞匯被去除,模型的訓練目標為判斷句中缺失的單詞,補全句子。受數(shù)據(jù)規(guī)模和質(zhì)量影響,傳統(tǒng)的閱讀理解問題研究進展緩慢。2016年發(fā)布的SQuAD真正為機器閱讀理解領域提供了一份數(shù)據(jù)量大且標注可靠的真實問答類數(shù)據(jù)集,有力推動了機器閱讀理解領域的研究。
另一份大規(guī)模數(shù)據(jù)集,微軟閱讀理解數(shù)據(jù)集 (MS MARCO)[2]則直接向用戶提供多個相關文檔摘要,并直接采用用戶的答案作為標準答案,這種生成式的問答問題更加貼近實際,也對問答模型的性能提出了更高的要求。
早在SQuAD數(shù)據(jù)集產(chǎn)生之前,許多團隊已經(jīng)將深度學習方法應用于閱讀理解的相關問題,并取得了不錯的效果。Hermann等人受到機器翻譯和圖像識別領域成果的啟發(fā),第一次在機器閱讀理解領域引入了注意力機制(attention)的概念,進行問題和答案對應的向量及單個字詞的權重交互[4]。Kadlec等人在模型中引入指針網(wǎng)絡(pointer network),結合指針網(wǎng)絡和注意力機制進行缺失單詞的預測[5]。
在SQuAD發(fā)布后,不斷有端到端的深度模型被提出。Wang和Jiang首先提出Match-LSTM模型[6],實現(xiàn)了基于單詞的帶權重匹配和單詞間的信息交互;之后他們又進一步將指針網(wǎng)絡和Match-LSTM模型結合[7],使模型能夠預測SQuAD數(shù)據(jù)集中每一個問題對應的最佳答案在文中的起止位置?;贛atch-LSTM和指針網(wǎng)絡,微軟亞洲研究院的研究人員提出了R-Net模型[8]。R-Net模型在問題—答案注意力計算的基礎上又引入了自我匹配注意力機制(self-matching attention),并結合使用了詞項、字符兩種表示,繼續(xù)提升了模型在SQuAD和MS MARCO數(shù)據(jù)集上的效果。
為了完成MS MARCO類數(shù)據(jù)集中生成答案式的任務,Tan等人在R-Net的基礎上又提出了S-Net[9],該模型通過提取特征-生成答案兩部分,利用已有模型和思路提取特征后,使用雙向GRU進行答案生成。
在實現(xiàn)T-Reader的過程中我們主要參考了R-Net的模型設計,包括編碼層、問題—段落匹配層、段落匹配層和指針網(wǎng)絡。除此之外,我們新加入了基于預測的答案范圍和段落文本表示的段落排序網(wǎng)絡。在實現(xiàn)T-Reader的過程中,我們也針對比賽任務進行了特殊的設計,例如,加入問題—段落精準匹配信號、文檔標題信息以及段落位置信息等。T-Reader模型框架如圖1所示。
圖1 T-Reader模型框架
對于問題和段落文本,我們采用了類似R-Net的處理方法,使用循環(huán)神經(jīng)網(wǎng)絡處理變長的詞項序列。循環(huán)神經(jīng)網(wǎng)絡(RNN)有很多變種,例如,LSTM和GRU等。以往工作中[8-9],GRU在效率和效果上均有很好的表現(xiàn),所以本次工作中我們也沿用了GRU作為循環(huán)神經(jīng)網(wǎng)絡的實現(xiàn)。除了詞項級別的表示外,R-Net還使用了字符級別的詞嵌入向量,用于表示未出現(xiàn)在詞表中的詞項。在實現(xiàn)過程中,囿于計算資源有限,我們沒有采用字符級詞嵌入向量。
(1)
(2)
其中,ct通過基于注意力機制的問題和段落交互得到式(8)~式(10)。
(11)
其中,ct通過基于段落的自注意力機制得到式(15)~式(17)。
特別地,為了增強模型對于文檔表示的學習能力,我們嘗試了多種自注意力機制的作用級別: 段落級別、文檔級別和問題級別,即分別將一個段落、文檔和問題下所有文檔作為自注意力層的輸入。經(jīng)過測試,我們最終選取了文檔級別作為最終的實現(xiàn)。盡管在我們的測試中,較高的級別帶來越好的模型表現(xiàn),但這也意味著模型需要占用越大的計算資源和越長的訓練時間,此時的模型提升卻十分有限。為了彌補問題級別文檔信息交互的缺失,我們引入額外的文檔信息交互層。首先,對于文檔di={pi1,pi2,…,pis},我們將循環(huán)神經(jīng)網(wǎng)絡最后一個時刻的隱狀態(tài)作為文檔的表示oi,如式(18)所示。
oi=BiGRU(pi1,pi2,…,pis)
(18)
(19)
指針網(wǎng)絡,也是模型中預測答案范圍的輸出層,我們在此部分沿用了以往工作中的常見做法。首先我們使用循環(huán)神經(jīng)網(wǎng)絡重新對段落中每個詞項表示進行學習,如式(20)所示。
(20)
特殊地,在初始時刻,我們使用問題向量表示rq作為GRU的初始狀態(tài),如式(21)~式(23)所示。
該網(wǎng)絡用于最小化答案質(zhì)量得分sp與段落p中當前預測答案的Rouge-L值的誤差。
實驗數(shù)據(jù)采用本次機器閱讀理解比賽提供的數(shù)據(jù)集DuReader,預先分為訓練集、驗證集和測試集三部分。數(shù)據(jù)集包含30萬問題和超過100萬文檔。每個數(shù)據(jù)樣本可以歸納為四元組: {q,t,D,A},其中q是問題,t是問題類型,D是相關文檔集合,A是人工生成的標準答案集合。問題類型包含三類: 是否類(YesNo)、實體類(Entity)、描述類(Description)。數(shù)據(jù)根據(jù)文檔來源分為search和zhidao類,分別來自百度搜索和百度知道。經(jīng)過觀察,我們發(fā)現(xiàn)兩類文本存在不同: zhidao類文檔內(nèi)容多由網(wǎng)站用戶生成,文檔平均長度更長且答案更加顯式清楚地在文中分布。
DuReader數(shù)據(jù)集的主要特點為答案較多樣、存在答案改寫。具體表現(xiàn)為zhidao中70.8%的問題和search中62.2%的問題都包含多個答案。答案和文檔的編輯距離較大,其中51.3%的樣本的最小編輯距離(minimum edit distance)大于10。平均來說,問題包含4.8個詞,答案包含69.6個詞,文檔包含396個詞。
實驗采用Rouge-L和BLEU-4作為評價指標。Rouge-L衡量準確率和召回率,考察候選答案和參考答案在最長公共子序列上的準確率和召回率。BLEU-4衡量準確率,考察一元至四元詞匯共現(xiàn)的頻率。兩個指標共同反映答案的可信度和可讀性。
本次實驗我們?nèi)匀徊扇《温涑槿∵B續(xù)片段的方式得到最終的預測答案。但DuReader數(shù)據(jù)集存在答案無法與段落完全匹配的情況,因此為了驗證答案抽取的方式能否在當前數(shù)據(jù)上取得較好的表現(xiàn),我們在圖2中統(tǒng)計了所有問題下最佳答案片段的Rouge-L值的分布。其中,search和zhidao均有超過95%的問題能夠在文檔中找到Rouge-L大于0.7以上的連續(xù)答案片段。二者互相比較可以發(fā)現(xiàn),zhidao數(shù)據(jù)下該分布較search更為集中,超過90%的問題按照答案抽取的方式能夠找到標準答案。基于以上分析,我們認為答案抽取的方式可以在當前數(shù)據(jù)集上取得較好的表現(xiàn)。
圖2 數(shù)據(jù)集search和zhidao中問題最佳抽取式答案片段的Rough-L分布
本次實驗中,我們在全量數(shù)據(jù)集上采用在默認參數(shù)下的Skip-gram模型訓練得到維度為300的詞嵌入向量,依據(jù)詞頻取前50萬個詞項作為模型詞嵌入層的大小,未包含在詞項中的詞項統(tǒng)一記為UNK。模型基于PyTorch實現(xiàn),所有GRU均為1層,其隱向量維度為150。對于文本序列的處理,模型最多保留問題和段落的前40和500個詞項。模型的丟棄率(dropout rate)為0.2,初始學習率(learning rate)為0.01,優(yōu)化器使用Adadelta。模型訓練時批處理大小(batch size)為2,使用兩個GPU加速計算。訓練迭代10萬輪后在訓練集和驗證集上達到收斂,用時4天。
對于答案范圍預測網(wǎng)絡,我們使用交叉熵作為損失函數(shù),如式(30)所示。
Lspan=-log(p(posstart))-log(p(posend))
(30)
其中,posstart和posend分別為全局最佳答案的起始和終止位置。對于段落排序網(wǎng)絡,我們使用平均平方誤差(MSE)作為損失函數(shù),如式(31)所示。
(31)
其中,rpred為模型預測的Rouge-L值,rtarget為當前預測答案真實的Rouge-L值。最終模型的損失函數(shù)為二者的和,如式(32)所示。
L=Lspan+Lrank
(32)
我們采用了官方提供的BiDAF和Match-LSTM模型作為基線方法。NI-Readers為本次評測第一名的方法。表1報告了T-Reader和其他基線方法在Test v2數(shù)據(jù)上的表現(xiàn), 其中,T-Readersub表示去掉段落排序網(wǎng)絡的T-Reader模型??梢钥闯?,T-Reader模型取得了優(yōu)于基準模型BiDAF、Match-LSTM和R-Net的表現(xiàn),但較此次比賽的最佳方法NI-Reader仍有較大的差距。在去掉段落排序網(wǎng)絡后,T-Reader在Rouge-L和BLEU-4表現(xiàn)上均有下降,因此可以認為基于增強學習的段落排序網(wǎng)絡可以提升模型效果。
表1 Rough-L和BLEU-4結果比較
我們對不同模型生成的答案進行了樣例分析,示例如圖3所示。樣例A中T-Reader正確預測出答案,而BiDAF模型預測的答案盡管也相關,但不夠簡潔。另外,我們發(fā)現(xiàn)存在部分T-Reader生成的答案在語義層面能夠被納為一個合格的答案,但在指標上卻比較低。我們認為這是由兩個主要原因造成的。一是文檔中具有多個答案,而人工標注的至多三個參考答案無法完全覆蓋。例如樣例B中,T-Reader和BiDAF生成的答案從邏輯上都可以認為是正確的,但是由于與參考答案重合較少,兩個系統(tǒng)得分較低。二是評價指標(如Rouge-L)無法考慮語義,使得系統(tǒng)評價存在偏差。例如樣例C中,T-Reader生成的答案是不正確的,但是得分較高;而BiDAF生成的答案是正確的,但由于過多解釋性的內(nèi)容使得其得分反而降低。
圖3 答案樣例展示答案后的數(shù)字表示Rouge-L值
本次比賽我們設計并實現(xiàn)了基于自注意力機制的多任務機器閱讀模型T-Reader。在參考R-Net基礎上,我們在編碼層加入問題與段落精準匹配信號、段落位置信息以及問題類型擴展文本表示,在段落匹配層引入跨段落和跨文檔兩級的信息交互,同時在指針網(wǎng)絡后加入了基于強化學習的段落排序網(wǎng)絡,進一步提升了模型效果。
在未來工作中,我們希望能夠?qū)Χ温湮恢靡蛩貙δP托Ч挠绊戇M行分析,同時優(yōu)化模型設計,減少參數(shù)數(shù)量,降低計算空間占用。