孫 馳,杜軍威,李浩杰
(青島科技大學(xué) 信息科學(xué)技術(shù)學(xué)院,山東 青島266061)
近年來,自然語言處理的不同子任務(wù)中,基于深度學(xué)習(xí)的模型不斷刷新相關(guān)任務(wù)的性能記錄[1]。子任務(wù)中,機(jī)器閱讀理解則一直被認(rèn)為是NLP的標(biāo)志性臨界點(diǎn),其目標(biāo)是讓機(jī)器同人一樣,可以閱讀并理解文本,回答有關(guān)該文本的問題。機(jī)器閱讀理解在智能問答、智能搜索、語音控制、構(gòu)建知識(shí)庫等方面具有廣闊的應(yīng)用前景[2]。
從數(shù)據(jù)集的類型出發(fā),可以將閱讀理解劃分成完形填空型[3]和區(qū)間抽取型[4]等。其中,完型填空類的代表數(shù)據(jù)集為CNN/Dailymail[5],而區(qū)間抽取型的代表包括斯坦福RAJPURKAR等2016年發(fā)布的SQu AD[4]以及微軟發(fā)布的MS MARCO[6]。完形填空型數(shù)據(jù)集中的文本均經(jīng)過精心處理,提前挖空。要求模型根據(jù)空位前后上下文預(yù)測(cè)缺失詞,解決這類問題大部分只需獲取空位局部的上下文就能很好解決問題,不需要捕捉文本全局信息。因此,模型離真正理解文本還有很大距離。而區(qū)間抽取型的數(shù)據(jù)集[7-8]則是基于真實(shí)問答數(shù)據(jù)集構(gòu)建的,例如SQu AD數(shù)據(jù)集根據(jù)維基百科語料,采用人工提問題的形式進(jìn)行構(gòu)建。區(qū)間抽取型數(shù)據(jù)集要求模型根據(jù)問題從候選文本中抽取出答案區(qū)間,解決這類問題通常要捕捉全局上下文信息,對(duì)文本有全局理解。
SQu AD數(shù)據(jù)集發(fā)布之前,研究者在完形填空式數(shù)據(jù)集上展開工作。HERMANN等[9]借鑒機(jī)器翻譯和計(jì)算機(jī)視覺領(lǐng)域的注意力機(jī)制,在模型中引入問題和文本對(duì)應(yīng)向量的權(quán)重交互層,捕捉問題和文本之間的注意力信息,第一次將注意力機(jī)制引入到機(jī)器閱讀理解領(lǐng)域。
在SQu AD發(fā)布后,WANG等[10]提出Match-LSTM模型,引入單詞級(jí)別的權(quán)重匹配和信息交互。同時(shí),結(jié)合指針網(wǎng)絡(luò)預(yù)測(cè)答案的起始和結(jié)束位置。為捕捉每個(gè)注意力重要程度,CUI等[11]引AOA(層疊注意力機(jī)制),在注意力層上又引入一層注意力。微軟研究人員設(shè)計(jì)的R-Net[12]則通過引入自注意力捕捉文本本身的重要特征。除了經(jīng)典的時(shí)序模型,YIN等[13]在機(jī)器閱讀理解中引入了卷積網(wǎng)絡(luò),利用卷積捕捉問題和文本特征。NISHIDA等[14-17]則開始研究多文檔閱讀理解問題。中文數(shù)據(jù)集Du Reader[8]的發(fā)布,也推動(dòng)了中文機(jī)器閱讀理解的發(fā)展,鄭玉昆等提出的T-reader[7],基于R-Net模型基礎(chǔ)上引入人工特征并在Du Reader上做了探索,段利國等[2]則是針對(duì)Du Reader數(shù)據(jù)集中的觀點(diǎn)類問題進(jìn)行了探索。
上述模型在多段落數(shù)據(jù)集上存在的問題主要是未從正確段落抽取答案。原因在于不同段落都可能存在相似答案,而答案是從一個(gè)段落中抽取,一旦模型未選擇正確答案所在段落,就會(huì)降低模型抽取答案的質(zhì)量。而那些針對(duì)Du Reader設(shè)計(jì)的模型如Treader等,處理多段落方法主要分兩種:多段落拼接為單段落和多段落均生成答案后進(jìn)行答案篩選。顯然,這兩種方法都會(huì)增加計(jì)算量和模型復(fù)雜度。針對(duì)這一問題,本研究設(shè)計(jì)基于段落選擇器的分層融合閱讀理解模型。通過段落選擇器從候選文檔的多段落中選出最佳段落,然后分層融合閱讀理解模型通過雙向注意力[8]捕捉文本交互信息以及分層融入層級(jí)輸入表示確保不同粒度特征不丟失。在Du-Reader數(shù)據(jù)集[8]上,本研究提出的模型取得了較好的效果。
首先定義要解決的問題為在給定問題Q和段落集合P={p1,p2,…,p N}的前提下,經(jīng)過輸入層對(duì)Q和P進(jìn)行詞向量化,然后通過段落選擇器選出最佳段落p,在p中通過分層融合閱讀理解模型預(yù)測(cè)答案的起始位置和結(jié)束位置,使得和概率乘積最大。通過實(shí)驗(yàn)驗(yàn)證段落選擇對(duì)分層閱讀理解模型的性能是否有提升。
為消除多義詞和未出現(xiàn)詞干擾,輸入層使用了上下文相關(guān)的ELMO[1]詞向量模型。輸入層的輸入為問題q,q∈Q以及多個(gè)相關(guān)段落集合P={p1,p2,…,p N}。通過ELMO詞向量模型獲得問題和文檔融合了上下文語義信息詞向量。
段落選擇器根據(jù)問題和段落關(guān)聯(lián)度從多個(gè)段落中選擇出最佳段落。段落選擇器PSNet由BiLSTM編碼層,自注意力層,拼接層以及歸一化層四部分組成(見圖1)。
圖1 段落選擇器Fig.1 Paragraph selector
首先,將輸入層得到的問題和段落的詞向量
然后,經(jīng)過自注意力[12]層,提取問題和段落各自句子中的重要特征。自注意力本質(zhì)上是句子內(nèi)部所有的詞語參與投票并為每個(gè)詞都進(jìn)行打分,從而獲得句子內(nèi)布所有詞語的重要程度。最后得到蘊(yùn)含自注意力的問題和段落的向量表示。打分,計(jì)算重要度,融合自注意力向量分別與下列公式依次對(duì)應(yīng):
段落選擇器損失函數(shù)為交叉熵。因?yàn)槎温溥x擇器模型本質(zhì)上為一個(gè)二分類問題。訓(xùn)練數(shù)據(jù)集上,答案所在的段落是可以明確。因此,可以將每個(gè)問題的答案所在段落作為訓(xùn)練標(biāo)簽。同時(shí),為避免過擬合,引入Dropout機(jī)制[18]以及L2正則項(xiàng)[19]。損失函數(shù)中y i取值為0或者1,1表示是正確的段落,0表示不是正確的段落。
為了不丟失每層問題和段落向量表示的部分特征,本研究設(shè)計(jì)分層融合的閱讀理解模型(見圖2),在每層的向量經(jīng)本層處理后,把本層的初始輸入向量的與輸出向量進(jìn)行拼接一起輸入到下一層。在特征提取階段,模擬人類帶著問題閱讀段落以及讀完段落重新審查題目的過程,本研究引入了問題和段落的雙向注意力[1]。
圖2 分層表征融合閱讀理解模型Fig.2 Hierarchical representation fusion reading comprehension model
分層融合閱讀理解模型包括Bi LSTM層,通過從前往后和從后往前兩個(gè)方向的閱讀捕捉句子級(jí)別信息。根據(jù)公式(11)和(12)分別處理問題和段落。再將原始輸入的向量q′和p′分別與v q和v p拼接。更新v q和v p。
更新v q和v p后,根據(jù)公式(13)求相似度矩陣。其中,Sij代表的是問題中的第i個(gè)詞與段落中的第j個(gè)詞之間的相似度,WS是個(gè)待訓(xùn)練的參數(shù)矩陣。
進(jìn)而引入問題到段落(Question2Paragaph)的注意力機(jī)制,為問題中的每一個(gè)詞捕捉段落中與其最相關(guān)詞的注意力信息。從Sij的定義可以得出,S矩陣每一行代表的是問題中的某個(gè)詞與段落中的所有的詞,S矩陣的每一列則代表的是問題中的所有詞以及段落中的某個(gè)詞。要從段落詞中找到與當(dāng)前問題詞最相關(guān)的詞,只需根據(jù)公式(14)將段落中所有詞與當(dāng)前問題詞的相似度用softmax歸一化,算出每個(gè)段落詞對(duì)當(dāng)前問題詞貢獻(xiàn)的權(quán)重值。再將所有段落詞與其對(duì)應(yīng)的權(quán)重值相乘后相加就得到該問題詞的問題到段落注意力向量Qi。
同樣利用段落到問題(Paragaph2Question)的注意力機(jī)制,為段落中的每一個(gè)詞捕捉問題中與其最相關(guān)的注意力信息。這里的計(jì)算步驟跟上面計(jì)算問題到段落的注意力向量時(shí)基本相同,只是計(jì)算的方向正好反了過來。這里不再展開。
得到帶有段落到問題的注意力向量段落P以及帶有問題到段落的注意力向量問題Q后,將本層輸入向量v p和v q分別與段落向量P和問題向量Q拼接融合,得到P′和Q′。
將P′和Q′再經(jīng)過BiLSTM整合語義信息得到P″和Q″,根據(jù)公式(18)和(19)預(yù)測(cè)答案的起始位置和結(jié)束位置。
式(18)和式(19)中的Wstart和Wend分別是預(yù)測(cè)開始位置和預(yù)測(cè)結(jié)束位置的權(quán)重矩陣。當(dāng)pstart和pend乘積最大,此時(shí)的pstart和pend對(duì)應(yīng)位置就是模型預(yù)測(cè)的答案起始位置和結(jié)束位置。
實(shí)驗(yàn)數(shù)據(jù)采用百度NLP團(tuán)隊(duì)發(fā)布的Du Reader數(shù)據(jù)集。通過統(tǒng)計(jì)分析,發(fā)現(xiàn)在Search部分有1.5%沒有答案,36.3%為單個(gè)答案,62.2%有多個(gè)答案。而在Zhidao部分多個(gè)答案的現(xiàn)象更加明顯,9.7%沒有答案,19.5%為單一答案,70.8%為多個(gè)答案。數(shù)據(jù)集中每個(gè)數(shù)據(jù)樣本包括問題,問題的類型,段落集合以及人工生成的標(biāo)準(zhǔn)答案集合。實(shí)驗(yàn)從原數(shù)據(jù)集中選取了25萬條數(shù)據(jù),其中訓(xùn)練集為21萬條,開發(fā)集1萬條,測(cè)試集3萬條。樣例數(shù)據(jù)如表1所示。同時(shí)統(tǒng)計(jì)整個(gè)實(shí)驗(yàn)數(shù)據(jù)中各個(gè)文檔段落數(shù)目的分布。如圖3所示。
圖3 文檔段落數(shù)分布Fig.3 Document paragraph number distribution
表1 初始數(shù)據(jù)樣例表Table 1 Initial data sample table
從圖3看出,在實(shí)驗(yàn)數(shù)據(jù)上段落數(shù)目大于5的文檔數(shù)超過了17萬,占總數(shù)的68%,表明在實(shí)驗(yàn)數(shù)據(jù)中一大半的文檔都是多段落的,也為段落選擇實(shí)驗(yàn)提供了可能。
由于本研究選擇的數(shù)據(jù)集多文檔,多段落的現(xiàn)象突出,表1所示,該問題的候選文檔共有5個(gè),每個(gè)文檔都有多個(gè)段落。本研究實(shí)驗(yàn)按照兩步走進(jìn)行設(shè)計(jì)。
1)通過段落選擇器在多個(gè)文檔、多段落中選擇最佳段落。例如,在表1中5個(gè)候選文檔中,通過段落選擇器選擇到第一個(gè)文檔的第一段為最佳段落。
2)將選擇的最佳段落送入到分層融合閱讀理解模型,提取參考答案所在的區(qū)間。例如,在表1中,第1個(gè)文檔中的第1段為最佳段落,輸入到分層融合閱讀理解模型,輸出起始位置。
為了證明本研究提出方法的實(shí)驗(yàn)效果,設(shè)計(jì)3個(gè)實(shí)驗(yàn)進(jìn)行對(duì)比分析。
1)本研究提出的模型與Dureader推薦的基準(zhǔn)模型BiDAF,Match-LSTM和主流模型R-Net的實(shí)驗(yàn)效果對(duì)比。
2)本研究提出的段落選擇器在段落選擇上與BLEU-4選擇器進(jìn)行對(duì)比分析。
3)本研究模型、BiDAF,Match-LSTM和R-Net在有無段落選擇器的實(shí)驗(yàn)效果對(duì)比。
4)段落選擇器選擇段落數(shù)目對(duì)比實(shí)驗(yàn)。
本實(shí)驗(yàn)的硬件環(huán)境如下,處理器為Intel I7 9700 k,內(nèi)存大小為32 G,顯卡為NVIDIA GTX1080。開發(fā)語言Python 3.7,深度學(xué)習(xí)框架為Pytorch 0.4.0。系統(tǒng)為Ubuntu 16.04。模型使用到的超參數(shù)見表2。
表2 模型超參數(shù)Table 2 Model superparameters
Du Reader的數(shù)據(jù)來源為Search和Zhidao,且兩部分文檔差別較大。實(shí)驗(yàn)對(duì)比時(shí),分別在這兩個(gè)數(shù)據(jù)集上做實(shí)驗(yàn)。并與基準(zhǔn)模型BiDAF,Match-LSTM進(jìn)行對(duì)比,同時(shí)引入R-Net做對(duì)比,表中準(zhǔn)確率指模型抽取的答案在參考答案所在段落比率。
觀察表3,發(fā)現(xiàn)所有模型在Zhidao數(shù)據(jù)集上的評(píng)價(jià)指標(biāo)都好于Search上,原因是Zhidao數(shù)據(jù)來自百度知道問答社區(qū),對(duì)已回答的問題,答案顯示存在段落中。相比BiDAF和Match-LSTM基準(zhǔn)模型,本研究提出的模型在總數(shù)據(jù)集上Rough-L,Bleu-4以及準(zhǔn)確率分別提升大約11%,12%以及14%。
表3 不同模型的結(jié)果Table 3 Results of different models
然后對(duì)比不同的段落選擇方式對(duì)模型的影響。同時(shí)將基于Bleu-4[8]指標(biāo)的段落選擇器命名為Bleu-4選擇器。
觀察表4,基于Bleu-4的段落選擇對(duì)模型的性能有提升,對(duì)比無段落選擇器提升幅度在2%~3%。表明段落選擇器起到作用。所有選擇器中,本工作設(shè)計(jì)的PSNe提升提升最大。原因?yàn)椋琍SNet試圖從語義理解層面去計(jì)算匹配度,而其他段落選擇器只是捕捉文本淺層信息,并未對(duì)文本進(jìn)行理解。
表4 不同段落選擇器的結(jié)果Table 4 Results of different paragraph selectors
最后,限定模型從參考答案所在的段落中定位答案區(qū)間。實(shí)驗(yàn)在ALL數(shù)據(jù)集上進(jìn)行對(duì)比。
觀察表5,為模型指定參考答案所在段落后,表5中前3個(gè)模型均有至少10%左右的性能提升。本研究模型在直接指定最佳段落時(shí),模型Rough-L指標(biāo)以及Bleu-4指標(biāo)分別提升了大約6%以及4%。
表5 不同模型指明參考答案所在區(qū)間前后的性能對(duì)比Table 5 Performance comparison before and after the interval of reference answers indicated by different models
本研究段落選擇器只選擇了關(guān)聯(lián)度最高的段落,為了觀測(cè)關(guān)聯(lián)度前3,前5段落對(duì)模型的影響,本研究設(shè)計(jì)了段落選擇器topk實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果見表6。
表6 不同模型指明參考答案所在區(qū)間前后的性能對(duì)比Table 6 Comparison of experimental results of paragraph number selection by paragraph selector
由表6可以得出,k值越大,最后選擇的段落數(shù)越多,準(zhǔn)確率也隨著提升。表明,選擇段落數(shù)越多,包含正確段落概率就會(huì)越大。準(zhǔn)確率的提升可以提升模型的Rough-L指標(biāo)以及Bleu-4指標(biāo)。
實(shí)驗(yàn)結(jié)束后,統(tǒng)計(jì)是否引入段落選擇器模型的訓(xùn)練時(shí)間,結(jié)果見圖4。
圖4 有無段落選擇器訓(xùn)練時(shí)間對(duì)比Fig.4 Comparison of training time with and without paragraph selector
觀察圖4,引入段落選擇器后模型的訓(xùn)練時(shí)間均大幅降低,降幅最多為46%。表明模型確實(shí)能降低計(jì)算量和復(fù)雜性。
傳統(tǒng)端到端的閱讀理解模型在處理社區(qū)問答、搜索引擎等存在多個(gè)相似候選答案,而答案往往存在某一個(gè)段落的數(shù)據(jù)集時(shí),存在段落選擇困難、計(jì)算復(fù)雜度高和性能指標(biāo)低的問題。針對(duì)這些問題,提出了一種基于段落選擇的分層融合閱讀理解模型,并且通過多組實(shí)驗(yàn)對(duì)比,驗(yàn)證了增加段落選擇器能夠顯著提升機(jī)器閱讀理解模型性能,為將來復(fù)雜機(jī)器閱讀理解問題提供一種可行的途徑。
但由于首次提出融合段落選擇的閱讀理解模型,其各項(xiàng)性能指標(biāo)并不是最優(yōu),存在因?yàn)槎温溥x擇器不準(zhǔn)確帶來的預(yù)測(cè)不準(zhǔn)確的風(fēng)險(xiǎn),后期將考慮進(jìn)一步提高段落選擇器的預(yù)測(cè)精度和與閱讀理解模型聯(lián)合學(xué)習(xí)的方案。