王 策, 萬(wàn)福成, 于洪志, 馬 寧, 吳甜甜, 楊方韜
(西北民族大學(xué) 中國(guó)民族語(yǔ)言文字信息技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室, 蘭州 730030)
自動(dòng)問(wèn)答系統(tǒng)是自然語(yǔ)言處理領(lǐng)域的重要任務(wù)之一, 旨在讓用戶使用自然語(yǔ)言直接與問(wèn)答系統(tǒng)交互, 無(wú)需考慮使用什么樣的關(guān)鍵詞組合表達(dá)自己的意圖; 問(wèn)答系統(tǒng)能精確地返回問(wèn)題答案, 用戶無(wú)需從大量復(fù)雜的相關(guān)文檔中自己尋找答案。傳統(tǒng)自動(dòng)問(wèn)答系統(tǒng)主要由3部分組成: 問(wèn)句分析、 信息檢索和答案抽取[1]。多年來(lái), 在候選答案句的抽取研究上, 國(guó)內(nèi)外取得了不錯(cuò)的進(jìn)展。隨著技術(shù)發(fā)展, 方法也在不斷更新。最早由Cui等[2]提出一種與之前使用的模式匹配方法不同的模糊關(guān)系匹配的方法, 其采用基于互信息和最大值期望的模糊關(guān)系匹配方法, 即基于統(tǒng)計(jì)模型的模糊關(guān)系匹配方法, 取得了當(dāng)時(shí)最好的實(shí)驗(yàn)效果。該方法沒(méi)有考慮到問(wèn)句中關(guān)鍵詞(非停用詞)在候選答案句中存在的同義表達(dá)。
在傳統(tǒng)機(jī)器學(xué)習(xí)方法的使用上, Huang等[3]通過(guò)SVM(Support Vector Machine)模型對(duì)原始句子進(jìn)行分類, 雖然其主要任務(wù)不是做候選答案句抽取, 但其處理思路與候選答案句抽取任務(wù)十分相似, 都是通過(guò)對(duì)給定句子進(jìn)行人工標(biāo)記, 進(jìn)行有監(jiān)督學(xué)習(xí), 最后學(xué)習(xí)到句子間語(yǔ)義關(guān)系。此外, Ding等[4]通過(guò)對(duì)CRF(Conditional Random Field)模型的研究, 提出了一種能獲取上下文語(yǔ)義信息特征關(guān)系的方法, 用以抽取問(wèn)句與答案句之間的語(yǔ)義關(guān)系。Yao等[5]在CRF模型的基礎(chǔ)上對(duì)傳統(tǒng)分類任務(wù)進(jìn)行了創(chuàng)新, 將候選答案句抽取任務(wù)轉(zhuǎn)換成序列標(biāo)注任務(wù)??梢?jiàn), CRF模型在答案句抽取上也取得了不錯(cuò)的效果。
隨著深度學(xué)習(xí)方法興起, 國(guó)內(nèi)外學(xué)者將深度神經(jīng)網(wǎng)絡(luò)應(yīng)用在自然語(yǔ)言處理領(lǐng)域, 各項(xiàng)性能得到了不錯(cuò)的提升。Wang等[6]使用長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)進(jìn)行問(wèn)答系統(tǒng)的答案句抽取, 為了降低問(wèn)答系統(tǒng)中句內(nèi)語(yǔ)法特征和一些其他因素對(duì)結(jié)果的影響, 他們采用了將單向LSTM(Long Short-Term Memory)擴(kuò)展為雙向長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)的方法。Gong等[7]將端到端指針網(wǎng)絡(luò)應(yīng)用于句子排序中, 該方法充分發(fā)揮了端到端網(wǎng)絡(luò)的特點(diǎn), 只需對(duì)句子進(jìn)行詞向量表示, 并輸入到端到端網(wǎng)絡(luò)中, 模型會(huì)通過(guò)指針網(wǎng)絡(luò)對(duì)句子集合的特征進(jìn)行學(xué)習(xí), 最后直接輸出句子排序。2016年, 在NLPCC組織的基于文檔的中文問(wèn)答評(píng)測(cè)(DBQA: Document Based Question Answer)的比賽中, Fu等[8]將額外的文本特征加入到CNN(Convolutional Neural Networks)網(wǎng)絡(luò)中, 在效果上取得了小幅提升。但單獨(dú)使用CNN網(wǎng)絡(luò)的效果不是很好, 這說(shuō)明傳統(tǒng)方法的應(yīng)用在中文語(yǔ)料上有一定的作用。隨著注意力機(jī)制的提出, 熊雪[9]提出了引入注意力機(jī)制的答案選擇模型, 其層疊注意力機(jī)制增強(qiáng)模型捕捉句間語(yǔ)義邏輯關(guān)系, 通過(guò)詞匹配的方法增強(qiáng)模型對(duì)未登錄詞的匹配情況, 最終取得了不錯(cuò)的效果。
從20世紀(jì)60年代開(kāi)始, 國(guó)外學(xué)者就已開(kāi)始對(duì)問(wèn)答技術(shù)進(jìn)行研究, 但大多以英文為主要研究對(duì)象, 中文問(wèn)答系統(tǒng)相比英文起步較晚。開(kāi)放域問(wèn)答系統(tǒng)與限定領(lǐng)域問(wèn)答系統(tǒng)相比的最大障礙在于知識(shí)庫(kù)的構(gòu)建過(guò)程, 目前將非結(jié)構(gòu)化或半結(jié)構(gòu)化數(shù)據(jù)自動(dòng)轉(zhuǎn)化為結(jié)構(gòu)化知識(shí)庫(kù)的技術(shù)尚不成熟, 同時(shí)在大數(shù)據(jù)時(shí)代, 產(chǎn)生的數(shù)據(jù)量越來(lái)越龐大, 開(kāi)放域問(wèn)答系統(tǒng)的答案抽取工作變得更加困難。針對(duì)以上情況, 筆者將答案抽取過(guò)程分為兩個(gè)步驟進(jìn)行: 1) 答案句抽取, 即從答案片段中抽取包含答案的句子; 2) 從答案句中抽取答案。抽取到的答案句是否包含答案將直接影響最終結(jié)果的準(zhǔn)確率。在目前公開(kāi)的自動(dòng)問(wèn)答系統(tǒng)語(yǔ)料庫(kù)中, 候選答案句數(shù)量一般在20句左右, 語(yǔ)句內(nèi)容信息也會(huì)更加復(fù)雜。筆者主要研究計(jì)算機(jī)自動(dòng)識(shí)別答案句, 并在傳統(tǒng)方法的基礎(chǔ)上進(jìn)行改善, 提高答案句抽取的準(zhǔn)確率。為此, 提出一種將Bi-LSTM(Bi-directional Long Short-Term Memory)網(wǎng)絡(luò)與Max Pooling結(jié)合的方法進(jìn)行答案句抽取。
筆者主要討論答案句的定位和抽取過(guò)程, 具體例子如表1所示。
表1 問(wèn)題句與候選答案句對(duì)
由表1可見(jiàn), 在8個(gè)候選答案句中, 只有第1句包含正確答案, 故將其定義為答案句。答案句抽取模型的核心原理是使用Bi-LSTM對(duì)問(wèn)句和答案句進(jìn)行特征提取, 然后使用CNN中的池化層對(duì)特征進(jìn)行下采樣, 剔除冗余的特征信息。
對(duì)于問(wèn)答系統(tǒng)中的答案抽取問(wèn)題, 相對(duì)于傳統(tǒng)的問(wèn)句語(yǔ)義和證據(jù)片段語(yǔ)義關(guān)系匹配的方法, 筆者將其看作為一種信息檢索和序列標(biāo)注問(wèn)題, 即將給定問(wèn)題放入搜索引擎進(jìn)行檢索, 抓取證據(jù)片段并對(duì)其斷句作為候選答案句, 通過(guò)答案句抽取模型標(biāo)注出可能包含答案的句子。
答案句抽取模型主要包含3層: 詞向量層、 Bi-LSTM層和Max Pooling層。模型架構(gòu)圖如圖1所示。
圖1 基于Bi-LSTM和Max Pooling的答案句抽取方法架構(gòu)圖Fig.1 Architecture diagram of the answer sentence extraction method based on Bi-LSTM and Max Pooling
1.2.1 詞向量層
首先, 通過(guò)Word2Vec(Word to Vector)得到問(wèn)句和候選答案句中每個(gè)詞對(duì)應(yīng)的詞向量表示, 并輸入Bi-LSTM層。向量表示了問(wèn)句和候選答案句中所有信息, 這對(duì)實(shí)驗(yàn)結(jié)果影響重大。假設(shè)問(wèn)句Q 包含n個(gè)詞,Q={x1,x2,…,xn},xi代表問(wèn)句中第i個(gè)詞。如果問(wèn)句中包含答案信息詞, 則把該詞加入答案詞向量。例如, 對(duì)于問(wèn)題Q“科比曾經(jīng)效力哪只球隊(duì)?”, 對(duì)應(yīng)答案A“洛杉磯湖人隊(duì)?!? 則用Q和A一起表示該問(wèn)題。利用詞向量矩陣Ew獲得詞向量, 用d表示向量的維度,vw表示詞匯大小[10]。通過(guò)
ei=Ewvi
(1)
可將一個(gè)詞xi轉(zhuǎn)變?yōu)樵~向量。其中vi是向量vw的大小。筆者使用的詞向量由wiki百科數(shù)據(jù)訓(xùn)練獲得。通過(guò)以上處理, 問(wèn)句將以詞向量{e1,e2,…,en}的形式進(jìn)入下一層網(wǎng)絡(luò)。
1.2.2 Bi-LSTM層
Bi-LSTM為雙向長(zhǎng)短期記憶網(wǎng)絡(luò), 由前向LSTM與后向LSTM組合而成, 兩者通常用于在自然語(yǔ)言處理任務(wù)中對(duì)上下文信息進(jìn)行建模。
LSTM的全稱是長(zhǎng)短期記憶網(wǎng)絡(luò), 它是RNN(Recurrent Neural Network)的一種。由于其設(shè)計(jì)上的特點(diǎn), LSTM非常適合用于建模時(shí)間序列數(shù)據(jù), 如文本數(shù)據(jù)。但利用LSTM網(wǎng)絡(luò)建模句子仍存在問(wèn)題: 無(wú)法編碼從后到前的信息。例如, “我餓得不行了”, 這里的“不”是對(duì)“餓”程度的描述。而B(niǎo)i-LSTM是通過(guò)將正向LSTM和反向LSTM結(jié)合, 所以在效果上得到了提升。
1.2.2.1 LSTM
LSTM采用相加的方法將詞向量組合成句子的向量表示, 即將所有詞的向量表示進(jìn)行加和, 或取平均, 但是該方法沒(méi)有考慮到詞語(yǔ)在句子中前后順序關(guān)系。LSTM通過(guò)訓(xùn)練過(guò)程可學(xué)到記憶哪些信息和遺忘哪些信息, 使用LSTM模型可更好捕捉到較長(zhǎng)距離的依賴關(guān)系。
圖2 總體框架Fig.2 Overall framework
圖3中實(shí)線部分為計(jì)算遺忘門(mén), 選擇要遺忘的信息過(guò)程如下。
輸入: 前一時(shí)刻的隱藏層狀態(tài)ht-1, 當(dāng)前時(shí)刻的輸入詞Xt。
輸出: 遺忘門(mén)的值
ft=σ(Wf[ht-1,Xt]+Bf)
(2)
圖4中實(shí)線部分為計(jì)算記憶門(mén), 選擇要記憶的信息過(guò)程如下。
輸入: 前一時(shí)刻的隱藏層狀態(tài)ht-1, 當(dāng)前時(shí)刻的輸入詞Xt。
輸出: 記憶門(mén)的值it, 臨時(shí)細(xì)胞狀態(tài)
it=σ(Wi[ht-1,Xt]+bi)
(3)
(4)
圖3 計(jì)算遺忘門(mén) 圖4 計(jì)算記憶門(mén)和臨時(shí)細(xì)胞狀態(tài) Fig.3 Calculating forgetting gates Fig.4 Calculating memory gates and temporary cell states
圖5中實(shí)線部分為計(jì)算當(dāng)前時(shí)刻細(xì)胞狀態(tài)過(guò)程, 具體如下。
輸出: 當(dāng)前時(shí)刻細(xì)胞狀態(tài)
(5)
圖6中實(shí)線部分為計(jì)算輸出門(mén)和當(dāng)前時(shí)刻隱藏層狀態(tài)的過(guò)程, 具體如下。
輸入: 前一時(shí)刻的隱藏層狀態(tài)ht-1, 當(dāng)前時(shí)刻的輸入詞Xt和細(xì)胞狀態(tài)Ct。
輸出: 輸出門(mén)的值Ot, 隱藏層狀態(tài)ht:
Ot=σ(Wo[ht-1,Xt]+bo)
(6)
ht=Ottanh(Ct)
(7)
最終, 可得一系列與句子長(zhǎng)度相同的隱藏層狀態(tài){h0,h1,…,hn-1}。
1.2.2.2 Bi-LSTM
(8)
最后的輸出是向前向后融合的結(jié)果。例如, 對(duì)“我愛(ài)足球”這句話進(jìn)行編碼, 模型如圖7所示。
圖7 Bi-LSTM編碼句子的網(wǎng)絡(luò)結(jié)構(gòu)Fig.7 Network structure of Bi-LSTM encoded sentences
對(duì)于前向LSTMf, 按順序輸入“我”, “愛(ài)”, “足球”得3個(gè)向量{hf0,hf1,hf2}。對(duì)于后向LSTMb, 按順序輸入“足球”, “愛(ài)”, “我”得3個(gè)向量{hb0,hb1,hb2}。最后將前向和后向的隱向量進(jìn)行拼接得{[hf0,hb2],[hf1,hb1],[hf2,hb0]}, 即{h0,h1,h2}。
1.2.3 Max Pooling
Max Pooling對(duì)于無(wú)論出現(xiàn)在什么位置的主要特征, 都可保持特征位置信息且具有旋轉(zhuǎn)不變性, 因?yàn)闊o(wú)論主要特征出現(xiàn)在哪個(gè)位置, 都可把它提出。在NLP(Natural Language Processing)中, 特征位置信息至關(guān)重要, 比如主語(yǔ)一般位于句首, 賓語(yǔ)位于句尾等, 這些特征的位置信息對(duì)分類任務(wù)十分重要。
圖8 Filter與神經(jīng)元個(gè)數(shù)相對(duì)應(yīng)Fig.8 Filter corresponding to the number of neurons
Max Pooling在卷積網(wǎng)絡(luò)中主要用于減少網(wǎng)絡(luò)參數(shù), 降低網(wǎng)絡(luò)復(fù)雜度, 減少運(yùn)算量。在Max Pooling操作后, 2D或1D的數(shù)組通常被轉(zhuǎn)換為單一數(shù)值, 以便之后使用在卷積層或全連接隱藏層中, 還能減少單個(gè)濾波器的參數(shù)數(shù)量或隱藏層神經(jīng)元的數(shù)量。
對(duì)于NLP任務(wù), Max Pooling能將變長(zhǎng)輸入處理為一個(gè)定長(zhǎng)輸入。因?yàn)镃NN最終會(huì)連接到全連接層, 且需要預(yù)先確定神經(jīng)元個(gè)數(shù), 如果輸入的長(zhǎng)度不確定, 則難以設(shè)計(jì)其網(wǎng)絡(luò)結(jié)構(gòu)。綜上所述, CNN模型的輸入長(zhǎng)度是不確定的, 并且每個(gè)Filter通過(guò)Max Pooling 操作只取1個(gè)值, 則有多少個(gè)Filter, Max Pooling層就有對(duì)應(yīng)多少個(gè)神經(jīng)元, 這樣就可固定特征向量神經(jīng)元個(gè)數(shù)(見(jiàn)圖8), 這個(gè)優(yōu)點(diǎn)也是非常重要的。
近年來(lái), 國(guó)內(nèi)外專家學(xué)者在答案抽取這方面做了很多研究, 但是其中絕大多數(shù)都是在英文TREC(Text Retrieval Conference)語(yǔ)料的基礎(chǔ)上做的研究和評(píng)測(cè), 在中文語(yǔ)料上的研究很少。該實(shí)驗(yàn)使用的訓(xùn)練語(yǔ)料是使用搜索引擎將答案片段從百度百科中下載到本地?cái)?shù)據(jù)庫(kù), 經(jīng)清洗標(biāo)注等處理后得到。訓(xùn)練語(yǔ)料共計(jì)18萬(wàn)多行, 測(cè)試語(yǔ)料1萬(wàn)多行。
由于語(yǔ)料庫(kù)的準(zhǔn)確性直接影響到實(shí)驗(yàn)結(jié)果, 筆者的語(yǔ)料標(biāo)注采用人工標(biāo)注方法, 使用將問(wèn)句中的主干部分動(dòng)詞和名詞與候選答案句內(nèi)容進(jìn)行匹配的方法。此方法對(duì)于事實(shí)類問(wèn)句, 準(zhǔn)確率基本接近100%。例如, 對(duì)于問(wèn)句“孟加拉虎主要分布在哪里?”, 提取句子主干成分“孟加拉虎”和“主要分布”, 將這兩部分在候選答案句中進(jìn)行匹配, 標(biāo)注同時(shí)包含這兩部分的句子為答案句, 從百度百科爬取的候選答案句與問(wèn)句相關(guān)性很強(qiáng)且格式相對(duì)規(guī)范, 有時(shí)僅需匹配一個(gè)主要成分即可。對(duì)部分需要簡(jiǎn)單推理類問(wèn)句, 需要做些簡(jiǎn)單語(yǔ)義理解和近義詞轉(zhuǎn)換, 如問(wèn)句“謙卑這個(gè)詞語(yǔ)來(lái)自哪里?”, 即轉(zhuǎn)換為“謙卑的詞源是什么?”, 這樣就很容易匹配到答案句且能保證準(zhǔn)確率。
實(shí)驗(yàn)的訓(xùn)練數(shù)據(jù)格式規(guī)范, 使用〈問(wèn)句, 候選答案句, 標(biāo)簽〉格式, 即每行為一個(gè)問(wèn)句、 一個(gè)候選答案句、 一個(gè)標(biāo)簽, 分別用制表符分隔, 標(biāo)簽為0或1, 即是答案句標(biāo)注為1, 不是為0, 同一問(wèn)句一般有20句候選答案句, 候選答案句之間的排列是亂序的。具體語(yǔ)料格式如圖9所示。
圖9 語(yǔ)料格式Fig.9 Corpus format
實(shí)驗(yàn)中數(shù)據(jù)的格式如圖9所示。訓(xùn)練集共有163 388對(duì)問(wèn)句-答案句對(duì), 測(cè)試集共有10 000對(duì), 每個(gè)問(wèn)句對(duì)應(yīng)20多個(gè)候選答案句, 因此, 相當(dāng)于訓(xùn)練集中的問(wèn)題有8 000多個(gè), 測(cè)試集中的問(wèn)題有500多個(gè)。
在通常情況下, 一般使用準(zhǔn)確率、 召回率和F值評(píng)估模型的性能, 利用無(wú)序文檔集合進(jìn)行計(jì)算, 但是筆者針對(duì)答案句抽取模型, 使用平均倒數(shù)MRR(Mean Reciprocal Rank,MMRR)和平均準(zhǔn)確率MAP(Mean Average Precision,MMAP)作為評(píng)價(jià)指標(biāo), 最常用的指標(biāo)為MRR。在筆者的實(shí)驗(yàn)語(yǔ)料中, 大部分問(wèn)句只有一個(gè)答案句與之對(duì)應(yīng), 極少部分有多個(gè)答案句或沒(méi)有答案句, 所以在筆者實(shí)驗(yàn)結(jié)果中, MRR都會(huì)比MAP略高一些。
MRR和MAP的具體計(jì)算方式如下
(9)
(10)
(11)
其中Q為測(cè)試集中所有問(wèn)題的數(shù)目, ranki表示在生成的預(yù)測(cè)答案集合中第1個(gè)標(biāo)準(zhǔn)答案的位置,AAveP表示平均準(zhǔn)確率;m為標(biāo)準(zhǔn)答案的數(shù)量;n為預(yù)測(cè)答案數(shù)量;k為候選答案句在模型返回的n個(gè)預(yù)測(cè)答案中排名。
MRR即第1個(gè)結(jié)果匹配, 分?jǐn)?shù)為1, 第2個(gè)匹配分?jǐn)?shù)為0.5,…, 第n個(gè)匹配分?jǐn)?shù)為1/n, 如果沒(méi)有匹配的句子分?jǐn)?shù)為0, 最終的分?jǐn)?shù)為所有得分之和。這是國(guó)際上通用的對(duì)搜索類和問(wèn)答類系統(tǒng)進(jìn)行評(píng)價(jià)的指標(biāo)。
MAP是每對(duì)〈問(wèn)句, 答案句〉檢索后的準(zhǔn)確率的平均值。MAP反映系統(tǒng)在全部候選答案句上的性能指標(biāo)。在該模型中, 抽取到的答案句與問(wèn)句越相關(guān)(值越高, 即包含答案), MAP的值越高。若問(wèn)答系統(tǒng)沒(méi)有抽取到答案句, MAP則為0。
實(shí)驗(yàn)使用雙向長(zhǎng)短期記憶遞歸神經(jīng)網(wǎng)絡(luò)(Bi-LSTM)提取句子間的特征屬性, 將Bi-LSTM的隱藏層輸出做Max Pooling操作, 得到Rmax。Rmax在輸入到tanh激活函數(shù)出中輸出最后判斷結(jié)果
M=tanh(Rmax)
(12)
圖10 基于Bi-LSTM的特征提取模型Fig.10 Feature extraction model based on Bi-LSTM
實(shí)驗(yàn)中各個(gè)參數(shù)設(shè)置如下: dropout設(shè)置為1, 詞向量的維度設(shè)置為50, 學(xué)習(xí)率設(shè)置為0.3, 學(xué)習(xí)率下降速度設(shè)置為0.1, 學(xué)習(xí)速度下降次數(shù)設(shè)置為4, 每次學(xué)習(xí)速度指數(shù)下降前執(zhí)行的完整epoch次數(shù)設(shè)置為100, LSTM cell中隱藏層神經(jīng)元的個(gè)數(shù)設(shè)置為100, 句子中的最大詞匯數(shù)目設(shè)置為100。
用Dropout防止網(wǎng)絡(luò)在訓(xùn)練過(guò)程中出現(xiàn)過(guò)擬合的現(xiàn)象, 該實(shí)驗(yàn)中未發(fā)生過(guò)擬合現(xiàn)象, 故將dropout設(shè)置為1。若降低dropout值會(huì)使結(jié)果變差; epoch是訓(xùn)練的批次數(shù), epoch也需設(shè)定在合理的范圍內(nèi), epoch越大訓(xùn)練效果不一定越好, epoch過(guò)大, 也會(huì)發(fā)生過(guò)擬合的現(xiàn)象; 學(xué)習(xí)率、 學(xué)習(xí)率下降速度和學(xué)習(xí)下降次數(shù)3組數(shù)值相互影響, 3個(gè)值大小和epoch取值大小有直接關(guān)系, 筆者給出的數(shù)據(jù)是通過(guò)多次實(shí)驗(yàn)取得的最佳結(jié)果; 詞向量的維度大小根據(jù)文獻(xiàn)[11]和平時(shí)實(shí)驗(yàn)經(jīng)驗(yàn)得到, 一般情況取值為50, 在該實(shí)驗(yàn)中詞向量維度大小對(duì)實(shí)驗(yàn)結(jié)果影響不大。
通過(guò)運(yùn)行各個(gè)模型得實(shí)驗(yàn)結(jié)果如表2所示。
表2 各個(gè)模型在實(shí)驗(yàn)中的最優(yōu)結(jié)果
將LSTM模型的實(shí)驗(yàn)結(jié)果作為參考, 在該語(yǔ)料中, 其MAP和MRR指數(shù)分別達(dá)到了0.339 5和0.339 4。
LSTM模型的優(yōu)點(diǎn)是能在存取輸入和輸出序列的過(guò)程中, 映射上下文相關(guān)信息。但標(biāo)準(zhǔn)的LSTM在遇到較長(zhǎng)句子時(shí), 對(duì)下文文字的利用和對(duì)上文前部文字的記憶能力下降, 使隱藏層的輸入對(duì)于網(wǎng)絡(luò)輸出的影響隨著網(wǎng)絡(luò)層數(shù)的增長(zhǎng)而降低。
CNN最初應(yīng)用于圖像領(lǐng)域, 目前在NLP領(lǐng)域的應(yīng)用取得了不錯(cuò)的效果, 卷積核在句子中進(jìn)行卷積, 每次只對(duì)兩個(gè)詞進(jìn)行組合, 從中選出最有可能的一組, 即進(jìn)行Max Pooling操作, 使用不同的濾波器得到不同的結(jié)果, 最終進(jìn)行加權(quán)組合得到一個(gè)新的詞。CNN這種卷積操作和池化操作同時(shí)使用的模型, 使句子空間特征消失, 這對(duì)于文本即不再考慮句子的語(yǔ)序關(guān)系, 而是將句子中的關(guān)鍵詞提取出, 再通過(guò)訓(xùn)練好的網(wǎng)絡(luò)進(jìn)行新的排序, 組合成一個(gè)新的句子, 這會(huì)使句子的向量表征與原本的句子語(yǔ)義有所沖突。
針對(duì)這兩種模型的優(yōu)缺點(diǎn), 分別取他們?cè)谖谋咎幚碇行Ч玫牟糠植⒓右孕薷? 最終建立了Bi-LSTM和Max pooling結(jié)合的模型。使用Bi-LSTM進(jìn)行特征提取, 該方法既能改善單向LSTM網(wǎng)絡(luò)對(duì)較長(zhǎng)句子中開(kāi)始部分文字的記憶能力, 又能避免卷積操作不能充分利用句子間時(shí)序關(guān)系提取語(yǔ)句特征關(guān)系的問(wèn)題。保留了卷積神經(jīng)網(wǎng)絡(luò)中的Max Pooling層以降低提取的句子維度, 同時(shí)可以保留主要特征。在相對(duì)于基線LSTM方法和CNN方法, 筆者答案句抽取模型取得良好效果, MAR和MRR指數(shù)達(dá)到了0.747 5和0.749 7。
李超等[12]通過(guò)在長(zhǎng)短時(shí)記憶神經(jīng)網(wǎng)絡(luò)中借助依存句法樹(shù)分析句法結(jié)構(gòu)特征, 構(gòu)造深度學(xué)習(xí)網(wǎng)絡(luò)進(jìn)行答案抽取, MRR取得了0.71; 俞霖霖[13]通過(guò)將CNN與SVM進(jìn)行融合, 將CNN模型自動(dòng)學(xué)習(xí)到的特征加入到SVM中, 答案抽取結(jié)果得到了很好的效果, MAP和MRR指數(shù)達(dá)到了0.786和0.789。這兩種方法都是將人工提取句子的語(yǔ)言學(xué)特征加入到神經(jīng)網(wǎng)絡(luò)中學(xué)習(xí), 其中文獻(xiàn)[12]選用NLPCC 2015 發(fā)布的QA 評(píng)測(cè)問(wèn)題集, 候選答案句實(shí)驗(yàn)數(shù)據(jù)爬取于百度知道, 文獻(xiàn)[13]使用從百度百科中爬取到數(shù)據(jù)構(gòu)建, 與本實(shí)驗(yàn)的語(yǔ)料庫(kù)來(lái)源相同, 故存在可比性。筆者實(shí)驗(yàn)結(jié)果和文獻(xiàn)[12]的實(shí)驗(yàn)結(jié)果對(duì)比可知雙向循環(huán)網(wǎng)絡(luò)在時(shí)序問(wèn)題中有更好的效果; 和文獻(xiàn)[13]的實(shí)驗(yàn)結(jié)果對(duì)比可知, 在神經(jīng)網(wǎng)絡(luò)中加入人工提取的語(yǔ)句特征會(huì)有更好的效果。
筆者將問(wèn)答系統(tǒng)中答案抽取任務(wù)分解為兩個(gè)步驟進(jìn)行: 第1步從證據(jù)片段中進(jìn)行答案句抽取; 第2步從抽取到的答案句中抽取最終答案。使用Bi-LSTM和Max Pooling結(jié)合的方法構(gòu)建答案句抽取模型, 提取問(wèn)句與候選答案句之間的特征關(guān)系, 訓(xùn)練其抽取與標(biāo)注的結(jié)果。實(shí)驗(yàn)結(jié)果證明, 在Bi-LSTM中加入CNN中的Max Pooling方法能有效提升答案句抽取的準(zhǔn)確率。
筆者主要的創(chuàng)新點(diǎn)主要分為3點(diǎn): 1) 將答案抽取任務(wù)分解為兩步進(jìn)行處理; 2) 對(duì)比傳統(tǒng)的方法使用了深度神經(jīng)網(wǎng)絡(luò)結(jié)果建模處理候選答案句抽取任務(wù); 3) 使用Bi-LSTM網(wǎng)絡(luò)代替CNN中的卷積操作提取句子特征, 與Max Pooling融合構(gòu)建了新的模型。
筆者方法對(duì)事實(shí)類問(wèn)題有著較好的效果, 通過(guò)對(duì)比其他研究人員的實(shí)驗(yàn)發(fā)現(xiàn), 雖然將語(yǔ)言學(xué)知識(shí)或人工提取的特征加入到神經(jīng)網(wǎng)絡(luò)訓(xùn)練中, 可使效果更好一些, 但會(huì)耗費(fèi)人力和時(shí)間, 而筆者方法在此方面更具優(yōu)勢(shì)。