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