尹伊淳,張 銘
(北京大學 信息科學技術(shù)學院,北京 100871)
“2018機器閱讀理解技術(shù)競賽”旨在讓機器根據(jù)問題和搜索引擎返回的相應證據(jù)文檔,抽取或生成合理的答案文本,推動搜索引擎場景下智能問答技術(shù)的發(fā)展。具體而言,競賽要求構(gòu)建機器閱讀理解系統(tǒng),自動對給定問題q及搜索引擎返回來的候選文檔集合D={d1,d2,…,dn},其中n=5,輸出對應的答案文本a。評測基于人工標注問題答案,采用ROUGE-L和BLEU4作為評價指標,其中ROUGE-L是主閱讀評價指標。
本文將機器理解問題建模成文本抽取問題,認為答案文本a來自候選文檔中某個連續(xù)的文本片段,基于問題和數(shù)據(jù)的特點構(gòu)造神經(jīng)網(wǎng)絡模型。為了充分利用人工標注答案信息,本文首先對數(shù)據(jù)進行重構(gòu),使同一個問題的多個候選文檔具有各自不同的答案文本;接著提出了基于語義富特征的神經(jīng)交互網(wǎng)絡,得到問題感知的文檔表征;最后采用基于不同詞向量的模型集成方法,進一步提升模型效果。在測試集上,本文提出的模型得到ROUGE-L60.99和 BLUE-4 55.93的結(jié)果,在所有105支參賽隊伍中排名第2位。
給定的數(shù)據(jù)集基于真實標注答案集(一個問題往往含有多個答案),在文檔中尋找相對應的匹配文本段,進行偽答案的標注。這種簡單的標注方法在答案覆蓋度上存在以下不足: (1)以段落為單位標注和預測,忽略了候選文檔其他段落的信息; (2)所有5篇候選文檔中只把匹配度最高的一條真實標注答案作為基準信息,忽略了其他真實標注答案的信息。
為了緩解原始標注對真實答案信息利用不足的問題,本文對給定數(shù)據(jù)集進行了重構(gòu)。具體來說,本文從文檔級出發(fā),基于每個真實標注答案對文檔進行匹配。每個文檔選擇匹配分數(shù)最大的作為偽答案片段。這樣真實的標注答案信息會出現(xiàn)在多個候選文檔中,其分別匹配不同的真實答案。本文基于F1的詞匹配指標,對提供的訓練集進行重構(gòu),同時過濾掉匹配分數(shù)小于0.65的答案片段。為了提高數(shù)據(jù)重構(gòu)的速度,使用多進程并行處理方式。
本節(jié)介紹富特征的神經(jīng)交互網(wǎng)絡(圖1),整個網(wǎng)絡分為: (1)詞富語義表征層,使用特征工程建模詞向量表征; (2)序列語義編碼層,使用句子序列信息對詞進行語義編碼; (3)問題與文檔交互層,旨在得到有效的問題感知文檔表征; (4)答案文本預測模塊,在所有候選文檔上抽取答案文本a; (5)模型集成模塊。
圖1 模型框架圖
為了得到豐富的詞語義表征,本文使用了以下8種特征。
詞向量特征: 本文使用了從大規(guī)模122GB中文語料中使用Word2Vec預訓練得到的64維詞向量[注]https://pan.baidu.com/s/1o7MWrnc。
文檔排序特征: 排名越靠前的文檔越可能出現(xiàn)答案文本,因此本文使用了Mrank∈5×5待學習排序矩陣,每個位置上都對應一個5維的向量。
問題類別特征: 考慮到問題類別對答案文本抽取影響較大,這里使用了Mques∈6×5的待學習排序矩陣,分別對應“SEARCH_DESCRIPTION”“SEARCH_ENTITY”“SEARCH_YES_NO”“ZHIDAO_DESCRIPTION”“ZHIDAO_ENTITY”和“ZHIDAO_YES_NO”6種問題類型,每種問題類型使用5維向量表示。
詞性特征: 本文同時使用了詞性特征,統(tǒng)計全部語料,選取了30個不同詞性作為特征,使用Mpos∈30×5進行表征。
精確匹配特征: 指示當前詞是否同時存在于文檔和問題中。
上下文匹配特征: 指示在此前詞的上下文中窗口詞精確匹配的比例,例如考慮當前詞上下文中的4個詞,如果其中3個是精確匹配的,那么匹配比例即為0.75。
是否由數(shù)字組成: 指示當前詞是否由數(shù)字組成。
是否由字母組成: 指示此前詞是否由字母組成。
本文對問題和文檔中的詞采用了不同的特征表征形式,其中問題詞使用了詞向量特征、問題類型特征和詞性特征;文檔詞使用了詞向量特征、詞性特征、排序特征、精確匹配、上下文匹配和是否為數(shù)字、字母特征。
其中,v、Wp、Wq是待學習的參數(shù);qs是問題的表征,本文使用注意力機制得到式(6)、式(7)。
其中,u是待學習參數(shù)。為了訓練模型,本文最小化金標準start和end位置的negativelogprobabilities。
在得到start和end的概率之后,本文基于兩個概率的積,在全局文本上搜索答案文本,選擇積最大者作為最終答案文本,其中設定文本的最大長度為max_a_len。
本文假設不同語料學習得到embedding具有不同的語義知識,采用基于embedding的方法[1]進行模型集成。具體而言,本文使用了: (1)從大規(guī)模122GB中文語料中使用Word2Vec[2]預訓練得到的64維詞向量E1; (2)將訓練數(shù)據(jù)集作為語料采用fasttext[3]預學習得到的128維詞向量E2。模型集成采用兩個64維向量學習得到的模型和兩個128維詞向量學習得到的模型,最終的起止位置的概率值采用4個模型結(jié)果的平均值。
實驗采用了比賽提供的數(shù)據(jù)集(此數(shù)據(jù)集是之前DuReader[4]公開數(shù)據(jù)集的超集),總共30萬個問題,其中訓練數(shù)據(jù)27萬;開發(fā)數(shù)據(jù)1萬;測試數(shù)據(jù)2萬。直接使用數(shù)據(jù)集提供分詞結(jié)果。
本文的模型構(gòu)建采用Tensorflow1.4.1、Python2.7.12,整體調(diào)優(yōu)在開發(fā)集上進行,參數(shù)值設置見表1;模型采用Adam優(yōu)化模型參數(shù)。實驗運行的硬件條件為: TITAN12GB顯存;內(nèi)存為132GB。
得到結(jié)果文本之后,去掉了HTML符號標記的冗余部分,作為最終的預測文本。
表1 模型參數(shù)設置
基于不同詞向量的模型結(jié)果如表2所示,可以發(fā)現(xiàn)我們的模型顯著高于baseline,模型集成對效果也有一定的提升。最終,我們的模型在測試集上的排名第2。
表2 模型結(jié)果
為了評價富特征和數(shù)據(jù)重構(gòu)的有效性,我們在開發(fā)集上做了相應的對比實驗: (1)有無富特征模塊的效果對比; (2)是否進行數(shù)據(jù)重構(gòu)處理的效果對比; (3)富特征模塊和數(shù)據(jù)重構(gòu)兩者一起對模型效果的影響。整個實驗結(jié)果如表3所示。從結(jié)果中可知,富特征模塊和數(shù)據(jù)重構(gòu)對整個模型貢獻很大,分別在ROUGE-L指標上有5%和7%的提升,其中數(shù)據(jù)重構(gòu)比富特征對結(jié)果提升更大;同時加入兩個模塊,模型得到了接近14%的提升,這說明了本文提出方法的有效性。
表3 模塊對比
注: 實驗結(jié)果基于開發(fā)集,所有模型使用E1;無富特征表示只是用詞向量。
從模型在開發(fā)集上的表現(xiàn),可以總結(jié)出以下幾種錯誤類型。
(1) 真實答案為非連續(xù)片段;例如ID=186572,問題是[“2017”, “有”, “什么”, “好看”, “的”, “小說”],答案由多個文本片段組成,每個答案之間包含大量的無關介紹文本。目前本文框架還無法解決此類問題,未來可以將其轉(zhuǎn)化成序列標注問題或者生成問題。
(2) 真實答案不在文檔中,例如,ID=181576。這種錯誤只能寄希望于補充更多的事實文本信息,進行答案補充處理。
(3) 文檔標題信息融合不夠?qū)е碌腻e誤,例如,ID=181579;問題是["csgo", "讀取", "游戲", "后", "提示", "已", "停止", "工作"],所提出模型給出的答案是定位在題目為“csgo一點開始就停止工作”的文檔下。下一步本文將考慮如何將標題信息進行融入。
本文面向機器閱讀理解提出了一種簡單且有效的神經(jīng)交互網(wǎng)絡。首先,為了充分使用標注的答案信息,本文對發(fā)布的數(shù)據(jù)進行了重構(gòu);在建模詞表征的時候,使用了多種詞語義特征;接著使用問題到答案的注意力操作以及雙向GRU完成文檔和問題信息的有效融合。在最終的測試集上,本文模型達到了現(xiàn)有的先進的效果,名列所有參賽隊的第2名。