劉鑫
(武漢郵電科學(xué)研究院,湖北 武漢 430074)
機(jī)器閱讀理解(Machine Reading Comprehension,MRC)的研究目標(biāo)是讓計(jì)算機(jī)讀懂文章,并像人類(lèi)一樣回答與文章相關(guān)的問(wèn)題[1],在需要自動(dòng)處理和分析大量文本內(nèi)容的場(chǎng)景下,機(jī)器閱讀理解都可以節(jié)省大量人力和時(shí)間,因此,機(jī)器閱讀理解成為當(dāng)前人工智能研究中最前沿、最熱門(mén)的方向之一。該文以百度深度學(xué)習(xí)研究院(Baidu Research-Institute of Deep Learning,IDL)提出的神經(jīng)遞歸序列標(biāo)注(Neural Recurrent Sequence Labeling,NRSL)模型[2]作為基礎(chǔ)模型,對(duì)開(kāi)放域下事實(shí)類(lèi)問(wèn)答任務(wù)進(jìn)行研究。
原模型通過(guò)LSTM+CRF[3]將MRC 轉(zhuǎn)換為序列標(biāo)注問(wèn)題,但是面對(duì)一段材料多次出現(xiàn)答案的情況,CRF 的表現(xiàn)并不是很好,而且直接對(duì)材料中的詞進(jìn)行判斷標(biāo)注,未免對(duì)模型太過(guò)嚴(yán)苛。針對(duì)這些問(wèn)題,文中采用字詞混合Embedding 編碼和半指針半標(biāo)注解碼的方式來(lái)改善、提升機(jī)器閱讀理解任務(wù)的精度。
MRC 旨在利用算法使計(jì)算機(jī)理解文章語(yǔ)義并回答相關(guān)問(wèn)題,當(dāng)前MRC 主要分成4 個(gè)任務(wù):完形填空、單選、跨度提取、自由問(wèn)答[4],文中研究的是后兩者,即抽取式問(wèn)答。最近幾年,由于深度學(xué)習(xí)的興起[5],眾多優(yōu)秀的機(jī)器閱讀理解模型脫穎而出,這些模型在網(wǎng)絡(luò)架構(gòu)、模塊設(shè)計(jì)、訓(xùn)練方法等方面實(shí)現(xiàn)了創(chuàng)新,大大提高了算法理解文本和問(wèn)題的能力以及預(yù)測(cè)答案的準(zhǔn)確性。
文獻(xiàn)[2]提出的NRSL 模型,文獻(xiàn)[4]提出的雙向注意力流(Bi-Directional Attention Flow,BiDAF)模型[6]算得上中文機(jī)器閱讀理解的開(kāi)山之作,成為了之后眾多MRC 模型參照的典范。之后的模型創(chuàng)新大多集中在網(wǎng)絡(luò)結(jié)構(gòu)的創(chuàng)新及優(yōu)化,但是對(duì)模型的輸入編碼和輸出解碼模塊優(yōu)化也是有重要意義的,該文就是在研究前人模型的基礎(chǔ)上,重點(diǎn)研究?jī)?yōu)化編碼解碼模塊來(lái)提升模型的精度。
整個(gè)模型的架構(gòu)圖如圖1 所示,主要由3 個(gè)模塊組成。首先提取問(wèn)題特征的LSTM 層,然后是三層LSTM,用來(lái)分析證據(jù),最后便是用來(lái)解碼答案的半指針半標(biāo)注模塊。
圖1 模型整體架構(gòu)
詞作為最小的能夠獨(dú)立活動(dòng)的有意義的語(yǔ)言成分,在機(jī)器閱讀理解模型中被廣泛地作為模型的輸入,單個(gè)字雖然沒(méi)有具體的語(yǔ)義,但卻十分靈活。比如在標(biāo)注模型中,為了最大程度上避免邊界標(biāo)注錯(cuò)誤,使用以字作為基本單位輸入比以詞作為基本單位輸入要好得多,考慮到這一點(diǎn),若是能綜合字和詞的各自優(yōu)勢(shì),對(duì)模型的提升應(yīng)該是十分顯著的。
為了讓模型兼顧字的靈活和詞的語(yǔ)義,該文使用字詞混合Embedding 作為模型輸入,其編碼過(guò)程如圖2 所示,它的原理很簡(jiǎn)單,就是將詞向量通過(guò)變換矩陣轉(zhuǎn)換成和字向量相同的維度,再將轉(zhuǎn)換結(jié)果和字向量相加,從另一個(gè)角度看,也可以認(rèn)為是通過(guò)字向量和變換矩陣對(duì)Word2Vec[7]的詞向量進(jìn)行微調(diào)。
圖2 字詞混合Embedding原理圖
長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)LSTM 是一種特殊的RNN,是專門(mén)設(shè)計(jì)用來(lái)避免長(zhǎng)期依賴問(wèn)題的。LSTM 默認(rèn)記憶長(zhǎng)期信息,而不需要額外的條件。
定義函數(shù)(s′,y′)=LSTM(x,s,y)作為L(zhǎng)STM 層的輸入和輸出的映射,其中,x為經(jīng)字詞混合Embedding 模塊編碼后的問(wèn)題向量,s為先前狀態(tài),y為輸出,s′,y′為當(dāng)前狀態(tài)和當(dāng)前輸出,它們的計(jì)算方式如式(1):
其中,W*∈RH×H為參數(shù)矩陣,b*∈RH為偏移量,H為L(zhǎng)STM 層的寬度,σ為sigmoid 函數(shù),i、f、o依次為輸入門(mén)、遺忘門(mén)和輸出門(mén),LSTM的原理圖如圖3所示。
文中模型的問(wèn)題和證據(jù)均用LSTM 進(jìn)行分析,問(wèn)題采用一層單向LSTM 分析,然后通過(guò)簡(jiǎn)單的加性注意力[8-9]和材料向量融合作為材料LSTM 分析模塊輸入,該模塊由三層LSTM 組成,第二層LSTM 為反向LSTM,第三層LSTM 接收前兩層的輸出。
用xq=表示問(wèn)題向量輸入,表示證據(jù)向量輸入。問(wèn)題LSTM 為單層LSTM,對(duì)xq經(jīng)LSTM 分析后,生成向量序列q1,q2,…,qN,其映射關(guān)系如式(2):
材料LSTM 由三層LSTM 構(gòu)成,第一層LSTM 的輸入為rq和材料的字詞混合Embedding 通過(guò)加性注意力機(jī)制融合的定長(zhǎng)向量,第二層LSTM 堆疊于第一層之上,但是以相反的順序處理它的輸入,第三層LSTM 將第一層和第二層的輸出作為輸入,它的輸出將作為答案解碼模塊的輸入,具體的計(jì)算方法如式(3)所示:
答案解碼模塊對(duì)整個(gè)模型精度的影響也是十分大的,文中將原模型中的CRF 替換為半指針-半標(biāo)注的模式。
既然用到標(biāo)注,那么理論上最簡(jiǎn)單的方案是輸出一個(gè)0/1 序列:直接標(biāo)注出材料中的每個(gè)詞是答案(1)或不是答案(0)。然而,這樣的效果并不好,因?yàn)橐粋€(gè)答案可能由連續(xù)多個(gè)不同的詞組成,要讓模型將這些不同的詞都標(biāo)上同樣的標(biāo)注結(jié)果,還是十分困難的。所以用兩次標(biāo)注的方式,來(lái)分別標(biāo)注答案的開(kāi)始位置和終止位置,其計(jì)算方式如式(4):
其中,Act為激活函數(shù),這里取sigmoid 函數(shù)。為了應(yīng)對(duì)材料中無(wú)答案的情況,引入pglobal對(duì)整個(gè)問(wèn)題和文檔信息編碼[10],得到一個(gè)全局打分,并把這個(gè)打分的結(jié)果乘到前面的標(biāo)注中,即變成式(5):
這里的o即為問(wèn)題和材料的整體向量,當(dāng)材料中無(wú)答案時(shí),即可直接使pglobal=0,不用讓每個(gè)詞的標(biāo)注都為0。
pstart、pend分別代表了答案起始位置和終止位置的概率,但問(wèn)題是,用什么指標(biāo)確定答案區(qū)間呢?文中的做法是確定答案的最大長(zhǎng)度M,然后遍歷材料所有長(zhǎng)度不超過(guò)M的區(qū)間,計(jì)算它們起始位置和終止位置的打分的積,然后取最大值。對(duì)每段材料都得到了自己的答案的情形,又怎么把這么多段材料的答案投票出最終的答案?比如有5 段材料,每段材料得出的答案和分?jǐn)?shù)依次是(A,0.7)、(B,0.2)、(B,0.2)、(B,0.2)、(B,0.2),那么最終應(yīng)該輸出A還是B呢?
為了綜合考慮權(quán)重大和答案多的情況,這里將采用取“平方和”的思想,因?yàn)椤捌椒健睍?huì)把高分的樣本權(quán)重放大,而對(duì)小樣本將其加一置于分母位置,這樣其得分就會(huì)降低,其計(jì)算方式如式(6):
該文數(shù)據(jù)集采用WebQA(百度問(wèn)答數(shù)據(jù)集現(xiàn)在已更新為DuReader[11]),WebQA 和DuReader 的實(shí)體類(lèi)問(wèn)答很類(lèi)似,答案包含在材料中,該文正是對(duì)這類(lèi)問(wèn)答進(jìn)行抽取式閱讀理解[12]任務(wù)研究。
WebQA 包含42k 個(gè)問(wèn)題,566k 個(gè)材料片段,一個(gè)數(shù)據(jù)由問(wèn)題、證據(jù)、答案構(gòu)成,材料樣例如下:
問(wèn)題:多瑙河注入哪個(gè)海?
材料1:多瑙河注入黑海,頓河注入亞速海,萊茵河注入北海
答案:黑海
材料2:泰晤士、萊茵河、易北河注入北海,萊茵河、多瑙河流入黑海,都屬于大西洋水系。
答案:黑海
材料3:多瑙河發(fā)源于德國(guó)西南部山地,向東流經(jīng)9 個(gè)國(guó)家,最后在羅馬尼亞注入黑海。
答案:黑海
每個(gè)問(wèn)題對(duì)應(yīng)多段材料,每段材料對(duì)應(yīng)一個(gè)答案,這個(gè)答案可能為空。這些問(wèn)題均是由真實(shí)生活中的用戶在日常生活中提出的,因此很有代表性。該文將數(shù)據(jù)隨機(jī)均分成8 份,6 份作為訓(xùn)練集,一份作為驗(yàn)證集,一份作為測(cè)試集。
該文所用的詞向量由WebQA 語(yǔ)料、50 萬(wàn)百度百科條目、100 萬(wàn)百科知道問(wèn)題用Word2Vec 預(yù)訓(xùn)練而成[13]。
模型訓(xùn)練采用交叉驗(yàn)證[14],評(píng)估參數(shù)為查準(zhǔn)率P(Precision)、查全率R(Recall)和P、R的調(diào)和平均值F1。
模型的預(yù)測(cè)值有兩個(gè),為答案的起、止位置,該模型使用的損失函數(shù)源于交叉熵的思想,其計(jì)算方式如式(7):
其中,tk為真實(shí)值,yk為預(yù)測(cè)值,模型的整體損失函數(shù)取兩者之和,即為式(8):
為了降低周期性干擾,訓(xùn)練過(guò)程中對(duì)權(quán)重進(jìn)行了指數(shù)滑動(dòng)平均,優(yōu)化器采用了RAdam(Rectified Adam)[15]。此外,模型輸入詞向量維度為128,材料限制最大輸入長(zhǎng)度為256,答案最大長(zhǎng)度限制為10,模型訓(xùn)練120 epoch。
使用的評(píng)測(cè)標(biāo)準(zhǔn)有P、R、F1,該文優(yōu)化后的模型與原模型及一些經(jīng)典的模型對(duì)比數(shù)據(jù)如表1 所示。
表1 模型實(shí)驗(yàn)結(jié)果
從表1 可以看出,文中模型相對(duì)于原基礎(chǔ)模型在準(zhǔn)確率和召回率上都有了一定的提升,尤其是召回率R的提升比較明顯。
通過(guò)字向量對(duì)輸入的詞向量進(jìn)行微調(diào),兼顧字向量的靈活和詞向量的語(yǔ)義,再加上半指針-半標(biāo)注答案解碼模型的引入,在面對(duì)答案由多個(gè)詞組成以及一段材料中多次出現(xiàn)答案的情況,模型對(duì)答案起止位置標(biāo)注的準(zhǔn)確率有所提升,最終再通過(guò)半指針-半標(biāo)注及投票的方式抽取出答案,從而提升了模型的精度。
該文采用字詞混合Embedding 作為MRC 模型的輸入編碼,參考NRSL 模型結(jié)構(gòu),使用單層LSTM 對(duì)問(wèn)題進(jìn)行分析,三層LSTM 對(duì)材料進(jìn)行分析,將CRF標(biāo)注改進(jìn)為半指針-半標(biāo)注的答案解碼模塊,最終使模型的準(zhǔn)確率和召回率都有了一定的提升。雖然該文的改進(jìn)對(duì)模型性能的提升有限,但是也不可忽略對(duì)模型的輸入編碼和輸出解碼模塊進(jìn)行優(yōu)化帶來(lái)的收益,針對(duì)不同的網(wǎng)絡(luò)結(jié)構(gòu),對(duì)編碼解碼模塊進(jìn)行對(duì)應(yīng)的優(yōu)化,能最大程度提升模型的整體性能。
隨著信息時(shí)代的到來(lái),文中的規(guī)模呈爆炸式增長(zhǎng)[16]。因此,機(jī)器閱讀理解帶來(lái)的自動(dòng)化和智能化恰逢其時(shí),在工業(yè)領(lǐng)域和人們生活的方方面面都有著廣闊的應(yīng)用空間。因此深入研究機(jī)器閱讀理解的原理,從各方面改進(jìn)模型、提升模型的精度和性能,有著十分重要的價(jià)值和意義。