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