謝正文, 柏鈞獻(xiàn), 熊 熙, 琚生根
(1.四川大學(xué)計(jì)算機(jī)學(xué)院, 成都 610065; 2.廣東財(cái)經(jīng)大學(xué)財(cái)政稅務(wù)學(xué)院, 廣州 510320; 3.成都信息工程大學(xué)網(wǎng)絡(luò)空間安全學(xué)院, 成都 610225)
答案選擇(answer selection,AS)是問(wèn)答(question answer, QA)中的一個(gè)子任務(wù),也是近年來(lái)信息檢索(information retrieval,IR)中的一個(gè)熱門(mén)話(huà)題.答案選擇是根據(jù)輸入問(wèn)題從候選答案列表中選擇最合適的答案.一般情況下,好的答案主要有以下兩個(gè)特點(diǎn).
(1) 問(wèn)題影響答案,因此一個(gè)好的答案必須與問(wèn)題相關(guān);
(2) 好的答案并非要求嚴(yán)格的單詞匹配,而是要表現(xiàn)出更好的語(yǔ)義相關(guān)性.
本文給出了一個(gè)從WikiQA數(shù)據(jù)集[1]中提取的例子,如例1所示,正確的答案并沒(méi)有直接提到喪生,而是用死亡,受傷等相關(guān)語(yǔ)義來(lái)代替.
例1 WikiQA數(shù)據(jù)集問(wèn)答對(duì)
(1) Question:
有多少人在俄克拉何馬城爆炸案中喪生?
(2) Postive Answer:
俄克拉荷馬州的爆炸造成168人死亡,其中包括19名6歲以下兒童,并造成680多人受傷.
(3) Negative Answer:
據(jù)估計(jì),炸彈造成至少6.52億美元的損失.
傳統(tǒng)的方法[2-3]通常基于詞法和句法特征,例如解析樹(shù)之間的編輯距離[2].這種方法在特征的設(shè)計(jì)和選擇上非常耗時(shí),而且由于語(yǔ)義的復(fù)雜性,特征選取更依賴(lài)于經(jīng)驗(yàn).端到端的神經(jīng)網(wǎng)絡(luò)模型可以自動(dòng)選擇特征[4-6],避免了手動(dòng)構(gòu)造特征的麻煩,同時(shí)具有強(qiáng)大的擬合能力,被廣泛應(yīng)用.
近幾年的研究表明[7],答案選擇任務(wù)的難點(diǎn)在于捕捉問(wèn)題句子和答案句子之間復(fù)雜的語(yǔ)義關(guān)系.而問(wèn)題和答案之間屬于單向邏輯關(guān)系,答案需要根據(jù)問(wèn)題來(lái)回答,因此問(wèn)題表示在答案選擇任務(wù)至關(guān)重要.鑒于此,本文提出一種基于增強(qiáng)問(wèn)題重要性表示網(wǎng)絡(luò)(question based importance weighting network, BIWN)的答案選擇算法.該算法包括以下機(jī)制:(1) 本文在問(wèn)題和答案進(jìn)行交互前通過(guò)自注意力機(jī)制賦予問(wèn)題句子各個(gè)詞不同的權(quán)重從而緩解問(wèn)題句子中的“無(wú)用詞”噪聲;(2) 本文構(gòu)建詞級(jí)矩陣,通過(guò)詞級(jí)矩陣將問(wèn)題和答案進(jìn)行細(xì)粒度的交互,從而根據(jù)問(wèn)題句子找出答案中的關(guān)鍵詞;(3) 本文通過(guò)CNN捕獲進(jìn)行交互后的問(wèn)題和答案的特征,進(jìn)行匹配.
答案選擇通常被表述為一個(gè)文本匹配問(wèn)題.以往的工作大致可以分為兩個(gè)分支:基于特征選擇的方法和基于神經(jīng)網(wǎng)絡(luò)的方法.傳統(tǒng)的方法傾向于使用特征工程、語(yǔ)言工具或外部資源,這種方法費(fèi)時(shí)且數(shù)據(jù)稀疏.前人的研究[2,8]通常利用句法解析樹(shù)上的信息來(lái)匹配問(wèn)題和答案,而端到端的神經(jīng)網(wǎng)絡(luò)模型可以自動(dòng)選擇特征,避免了手動(dòng)構(gòu)造特征的麻煩;同時(shí)具有強(qiáng)大的擬合能力,更重要的是,在答案選擇任務(wù)上神經(jīng)網(wǎng)絡(luò)模型的效果媲美于傳統(tǒng)手動(dòng)構(gòu)建特征的方法,甚至更優(yōu)于傳統(tǒng)方法,因此如今被廣泛應(yīng)用.Feng等人[7]利用卷積神經(jīng)網(wǎng)絡(luò)(CNN)搭建6種不同的模型分別學(xué)習(xí)問(wèn)題和答案的語(yǔ)義表示;Wang和Nyberg等人[9]利用循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)更容易捕捉全局序列信息的特點(diǎn),將問(wèn)題和答案句中的單詞進(jìn)行編碼,然后輸出它們的相關(guān)性得分; 然而這些模型都缺乏問(wèn)題和答案句子的交互信息.注意力機(jī)制旨在關(guān)注與問(wèn)題最相關(guān)的候選答案的片段[10-11],Wang等人[11]在詞嵌入層利用門(mén)控注意力機(jī)制獲取句子細(xì)粒度的語(yǔ)義表示;Nam等人[12]提出迭代模型MAN,該模型利用動(dòng)態(tài)記憶網(wǎng)絡(luò)[13]的思想,先用問(wèn)題向量推導(dǎo)出第一個(gè)注意層中的答案向量,然后在下一步中對(duì)問(wèn)題向量進(jìn)行遞歸,學(xué)習(xí)第二個(gè)注意層中的答案向量.最后,與答案向量進(jìn)行多步匹配得出分?jǐn)?shù)總和.
以往的模型雖然取得了不錯(cuò)的效果,仍然存在噪聲詞的影響.本文把噪聲詞總結(jié)為以下兩種情況.
(1) 如果問(wèn)題句子中的詞(例如一些is,are,the等詞)與對(duì)應(yīng)的答案句子中的詞高度相關(guān),但該詞不是問(wèn)題中的關(guān)鍵字,它應(yīng)該被賦予更小的權(quán)重甚至是被忽略,因?yàn)樗鼣_亂了加入問(wèn)題信息后的答案句子的單詞權(quán)重分布,從而產(chǎn)生噪聲.
(2) 若一個(gè)單詞在答案句子中是局部重要的,但與對(duì)應(yīng)問(wèn)題語(yǔ)義不相關(guān),則需要賦予它在答案句子中較少的重要性,因其在語(yǔ)義匹配中無(wú)用.
本文模型利用自注意力在問(wèn)題和答案進(jìn)行交互前緩解問(wèn)題噪聲詞的影響,同時(shí)構(gòu)建詞級(jí)交互矩陣,通過(guò)問(wèn)題句子的信息來(lái)獲取答案句子中重要的部分,從而更精確地完成問(wèn)題和答案之間的語(yǔ)義匹配.
本文的工作很大程度上受到MAN模型進(jìn)行逐步學(xué)習(xí)的思想.首先,模型利用自注意力機(jī)制將編碼后的問(wèn)題句子重新分配各個(gè)詞的權(quán)重,從而產(chǎn)生“干凈”的問(wèn)題句子,然后將“干凈”的問(wèn)題句子通過(guò)詞級(jí)矩陣與答案進(jìn)行交互,最后通過(guò)CNN獲取問(wèn)題和答案之間的多個(gè)特征進(jìn)行匹配.實(shí)驗(yàn)表明,在WikiQA數(shù)據(jù)集中,本文模型明顯優(yōu)于以往忽略了問(wèn)題噪聲詞的模型,并且在MAP,MRR這兩個(gè)評(píng)價(jià)指標(biāo)上,本文模型超過(guò)MAN模型約0.7%.
本節(jié)將詳細(xì)描述本文提出的BIWN模型, 模型結(jié)構(gòu)圖如圖1所示.3.1節(jié)介紹編碼層中BiLSTM的工作原理;3.2節(jié)介紹轉(zhuǎn)化層中的自注意力機(jī)制;3.3節(jié)介紹對(duì)齊層的相似度詞級(jí)矩陣交互;3.4節(jié)介紹特征融合層的多窗口CNN;模型最后將CNN提取的特征用一個(gè)多層感知機(jī)轉(zhuǎn)換成最后的預(yù)測(cè)向量.
圖1 BIWN模型總體結(jié)構(gòu)圖Fig.1 The network structure of BIWN
輸入兩個(gè)文本序列,表示為問(wèn)題Q和答案A.通過(guò)預(yù)先訓(xùn)練的d維詞嵌入,用Hq={hq1,...,hqm}和Ha={ha1,...,han}分別表示問(wèn)題句向量和答案句向量.其中,hqi∈Rd是句子Hq的第i個(gè)詞嵌入.m和n分別表示問(wèn)題和答案的長(zhǎng)度.為了捕捉句子上下文的信息,本文采用BiLSTM來(lái)對(duì)問(wèn)題和答案進(jìn)行編碼.LSTM的隱層維度為u,在t時(shí)刻的詞嵌入為xt,前一時(shí)刻的隱層和記憶單元分別為ht-1和ct-1,下一時(shí)刻的隱層ht和記憶單元ct計(jì)算如下.
gt=φ(Wgxt+Vght-1+bg),
it=σ(Wixt+Wiht-1+bi),
ft=σ(Wfxt+Wfht-1+bf),
ot=σ(Woxt+Woht-1+bo),
ct=gt⊙it+ct-1⊙ft,
ht=ct⊙ot.
其中,W∈Ru×d;V∈Ru×u;b∈Rd;σ和φ分別是sigmoid函數(shù)和tanh函數(shù);⊙表示兩個(gè)向量進(jìn)行元素相乘,輸入門(mén)i,遺忘門(mén)f和輸出門(mén)o能夠自動(dòng)控制信息的流動(dòng).同時(shí)記憶單元ct可以記住長(zhǎng)距離的信息,ht是t時(shí)刻的向量表示.
圖2 基于自注意力機(jī)制的問(wèn)題向量生成圖Fig.2 The graph of re-generate the question vector based on Self-Attention Mechanism.
首先,計(jì)算問(wèn)題向量Tq中每個(gè)單詞的權(quán)重,具體計(jì)算公式如下.
v=TqW1
(1)
αq=sigmoid(v)
(2)
其中,W1∈R2u×1表示參數(shù)矩陣;αq∈Rm×1表示問(wèn)題句子中每個(gè)單詞不同的權(quán)重分布;sigmoid表示非線(xiàn)性激活函數(shù),在得到權(quán)重分布之后,將權(quán)重αq與問(wèn)題向量Tq相乘,生成新的問(wèn)題向量表示Uq∈Rm×2u,具體計(jì)算公式如下.
Uq=αq⊙Tq
(3)
詞級(jí)相似度矩陣的主要思想是將兩個(gè)句子拆分,進(jìn)行句子間的詞級(jí)匹配,詞級(jí)矩陣中的元素是句子的局部相似度集合.Wang等人[14]直接用原始的詞向量計(jì)算詞級(jí)矩陣,但詞向量并未給句子帶來(lái)上下文信息.本文采用經(jīng)過(guò)BiLSTM層后的句子向量獲取上下文信息,然后進(jìn)行詞級(jí)矩陣計(jì)算.詞級(jí)矩陣有兩種計(jì)算方式,一種是將兩個(gè)句子直接相乘,不帶訓(xùn)練參數(shù);另一種是利用訓(xùn)練參數(shù)與兩個(gè)句子共同作用本文采用兩種詞級(jí)矩陣進(jìn)行建模,同時(shí)在后續(xù)的實(shí)驗(yàn)(詳見(jiàn)4.2.3節(jié))比較兩種詞級(jí)矩陣的優(yōu)劣.詞級(jí)矩陣的兩種計(jì)算方式如下.
M(i,j)=Uq(i)Ta(j)T
(4)
(5)
其中,矩陣Wp∈R2u×2u是模型訓(xùn)練的參數(shù);M(i,j)∈Rm×n,詞級(jí)矩陣的每一行是問(wèn)題中的詞對(duì)答案中的每個(gè)詞的影響.類(lèi)似地,詞級(jí)矩陣的每一列看成答案中的詞對(duì)問(wèn)題中的每個(gè)詞的影響.分別對(duì)詞級(jí)矩陣的行和列用softmax函數(shù)進(jìn)行歸一化,得到互信息影響因子λq(i,j)和λa(i,j),其中,λq(i,j)和λa(i,j)的取值范圍均在[0,1],最后將問(wèn)題向量和答案向量與對(duì)應(yīng)的影響因子相乘得到兩個(gè)新的向量Eq和Ea.具體計(jì)算公式如下.
(6)
(7)
(8)
(9)
其中,Eq∈Rm×2u;Ea∈Rn×2u.
(10)
(11)
其中,Kq∈Rm×8u;Ka∈Rn×8u.
CNN和LSTM經(jīng)常被用于特征融合層,LSTM通過(guò)計(jì)算每個(gè)隱藏向量的上下文感知權(quán)重來(lái)捕捉句子的全局序列信息,但是LSTM的串行工作機(jī)制使得模型運(yùn)行的時(shí)間較長(zhǎng).而CNN可以并行快速計(jì)算,并且CNN捕捉特征能力比LSTM要強(qiáng),同時(shí)多窗口的CNN也在一定程度上彌補(bǔ)了其處理長(zhǎng)序列信息能力較弱的缺點(diǎn).綜合上述原因,本文采用多層的CNN來(lái)提取融合特征.具體計(jì)算公式如下.
u=CNN(Fuse)
(12)
其中,F(xiàn)use表示融合向量Kq或者融合向量Ka.
本文將CNN的輸出u通過(guò)最大池化和平均池化得到Sq,max,Sa,max,Sq,mean和Sa,mean,然后將其拼接成一個(gè)向量S,送入多層感知器中(MLP)得到最后的預(yù)測(cè)向量Score∈RN.本文選用Listwise方法來(lái)建模答案排序任務(wù),具體計(jì)算公式如下.
G=softmax(Score)
(13)
(14)
其中,G表示得分向量;Y表示目標(biāo)標(biāo)簽歸一化后的標(biāo)簽向量;N表示Listwise的大小.本文使用KL散度作為模型的損失函數(shù),該函數(shù)可以使得預(yù)測(cè)值的概率分布接近于標(biāo)簽值的概率分布.損失函數(shù)公式具體如下.
(15)
4.1.1 數(shù)據(jù)集 本文采用兩個(gè)答案選擇領(lǐng)域的基準(zhǔn)數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),數(shù)據(jù)集具體信息見(jiàn)表1.
WikiQA數(shù)據(jù)集[1]:WikiQA數(shù)據(jù)集是由微軟雷德蒙研究院在2015年發(fā)布,主要針對(duì)英文領(lǐng)域的答案句子選擇任務(wù).該數(shù)據(jù)集包括3 047個(gè)問(wèn)題,每個(gè)問(wèn)題從微軟必應(yīng)搜索引擎的查詢(xún)?nèi)罩局胁蓸荧@得,并保證該問(wèn)題以疑問(wèn)詞開(kāi)頭、以問(wèn)號(hào)結(jié)尾、并且點(diǎn)擊過(guò)至少一個(gè)維基百科頁(yè)面.數(shù)據(jù)集中將能夠回答該問(wèn)題的句子標(biāo)注為1,將其他句子標(biāo)注為0.
TREC-QA數(shù)據(jù)集[15]:TREC-QA數(shù)據(jù)集是從TREC問(wèn)答網(wǎng)站收集的基準(zhǔn)數(shù)據(jù)集.數(shù)據(jù)集包含一組事實(shí)型問(wèn)題,其中候選答案僅限于一句話(huà).
表1 問(wèn)答數(shù)據(jù)集描述
4.1.2 實(shí)驗(yàn)參數(shù)設(shè)置集 本文實(shí)驗(yàn)算法基于Tensorflow 框架實(shí)現(xiàn),BIWN模型采用300 d的Glove詞向量[16]作為詞嵌入;采用mini-batch的訓(xùn)練方式訓(xùn)練模型,采用用Padding的方式處理數(shù)據(jù)集,問(wèn)題句子的padding長(zhǎng)度設(shè)置為25,答案句子的padding長(zhǎng)度設(shè)置為140;訓(xùn)練采用Listwise的數(shù)據(jù)格式,列表尺寸設(shè)置為15,CNN的窗口尺寸設(shè)置為[1,2,3,5].采用學(xué)習(xí)率衰減的方式訓(xùn)練模型,初始學(xué)習(xí)率設(shè)置為0.001,采用Adam優(yōu)化器來(lái)進(jìn)行梯度下降,為了避免模型過(guò)擬合,采用L2正則化來(lái)優(yōu)化模型.
4.1.3 本文對(duì)比算法 (1) APLSTM[17]:該模型利用交互注意力獲取問(wèn)題和答案的交互信息;(2)MP-CNN[18]:該模型在CNN的基礎(chǔ)上利用全連接層融合問(wèn)題和答案的表示;(3) PWIM[19]:該模型將問(wèn)題和答案的進(jìn)行顯式交互以計(jì)算問(wèn)題和答案之間的重要部分;(4) BiMPM[20]:Wang于2017年提出的多尺度匹配模型,該模型將問(wèn)題和答案進(jìn)行詞級(jí),句子級(jí)的多尺度匹配,取得不錯(cuò)的效果;(5) MAN[12]:Nam于2018年提出的迭代匹配模型,該模型用順序注意力機(jī)制將問(wèn)題與答案進(jìn)行多步匹配,最后將各個(gè)部分的分?jǐn)?shù)相加進(jìn)行預(yù)測(cè).
4.2.1 基線(xiàn)模型對(duì)比 答案選擇任務(wù)文檔檢索(IR)任務(wù)相似,因此本文采用IR領(lǐng)域的評(píng)價(jià)指標(biāo)MAP(平均準(zhǔn)確率),MRR(平均倒排準(zhǔn)確率)來(lái)評(píng)估模型性能.實(shí)驗(yàn)結(jié)果如表2所示.
如表2所示,在WikiQA數(shù)據(jù)集上,BIWN模型的MAP值和MRR相比于其他模型分別提高了0.7%~5.9%和0.7%~6.1%.BIWN模型與APLSTM模型均使用了詞級(jí)矩陣結(jié)構(gòu),但是BIWN模型的效果卻遠(yuǎn)遠(yuǎn)好于APLSTM,原因在于BIWN模型在問(wèn)題和答案進(jìn)行交互前利用自注意力機(jī)制消除了噪聲詞.BIWN模型與MAN模型都采用了逐步學(xué)習(xí)的方式進(jìn)行句對(duì)匹配,然而B(niǎo)IWN模型的指標(biāo)優(yōu)于MAN模型,表明BIWN模型中的詞級(jí)矩陣可以捕獲更細(xì)粒度的語(yǔ)義信息.在TREC-QA數(shù)據(jù)集上,BIWN模型的指標(biāo)優(yōu)于大部分基線(xiàn)模型,并且與MAN模型比較接近,原因在于TREC-QA數(shù)據(jù)集相比于WikiQA數(shù)據(jù)集更加規(guī)整,因此噪聲詞對(duì)模型的影響相對(duì)而言沒(méi)有那么大,而本文針對(duì)噪聲詞提出的BIWN模型則不能發(fā)揮其最大的作用.
表2基于WikiQA和TREC-QA數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果對(duì)比
Tab.2ComparisonofexperimentalresultsbasedontheWikiQAdatasetandTREC-QAdataset
模型WikiQATREC-QAMAPMRRMAPMRRAPLSTM0.6700.6840.7130.803MP-CNN0.6930.7090.7770.836PWIM0.7090.723--BiMPM0.7180.7310.8020.875MAN0.7220.7380.8130.893BIWN0.7290.7450.8060.889
4.2.2 詞級(jí)矩陣對(duì)比 為了探究不同詞級(jí)矩陣對(duì)BIWN模型的影響,本文在不改變模型其他結(jié)構(gòu)和模型參數(shù)的情況下進(jìn)行對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表3所示.
表3 詞級(jí)矩陣實(shí)驗(yàn)對(duì)比
如表3所示,兩種詞級(jí)矩陣的效果沒(méi)有太大的差別,但是使用參數(shù)W的相似度詞級(jí)矩陣的效果要比兩個(gè)向量直接相乘要好.本文對(duì)此進(jìn)行分析得出原因:答案選擇任務(wù)并不是完全意義上的句對(duì)匹配任務(wù),相似的詞在語(yǔ)義表示上有可能是不同的,但是可訓(xùn)練的參數(shù)W可以轉(zhuǎn)換信息,將其映射到另一個(gè)相似的空間,因此效果更好.
4.2.3 消融實(shí)驗(yàn)對(duì)比 為了驗(yàn)證模型中各個(gè)部件的有效性,分別移除特定模塊構(gòu)建下列消融模型:(1) BIWN-Encoder表示去除Bi-LSTM編碼層;(2) BIWN-SelfAtten表示去除自注意力層;(3) BIWN-CNN表示去除詞級(jí)相似度矩陣;(4) BIWN-WordMatrix分表示去除CNN特征融合層的消融模型.圖3展示在WikiQA和TREC-QA的實(shí)驗(yàn)結(jié)果,可以看出BIWN模型的每個(gè)模塊都具有有效性,其中自注意力機(jī)制和詞級(jí)矩陣相對(duì)其中結(jié)構(gòu)影響最大.
圖3 基于WikiQA和TREC-QA測(cè)試集的模型消融分析折線(xiàn)圖Fig.3 Ablation analysis about different components of model on WikiQA and TREC-QA test set
本文針對(duì)句子中的噪聲詞,提出了基于問(wèn)題重要性表示網(wǎng)絡(luò)的答案選擇算法.該模型利用自注意力機(jī)制重新賦予各個(gè)詞不同的權(quán)重從而生成“干凈”的問(wèn)題句子向量;利用詞級(jí)交互矩陣捕捉問(wèn)題句子和答案句子之間的細(xì)粒度語(yǔ)義信息,緩解了答案句子中噪聲詞的影響.基準(zhǔn)數(shù)據(jù)集上的對(duì)比實(shí)驗(yàn)表明,BIWN模型在答案選擇任務(wù)的性能優(yōu)于目前主流的答案選擇算法.在未來(lái)的工作中,會(huì)將外部的知識(shí)加入BIWN模型中;同時(shí),沒(méi)有標(biāo)簽的數(shù)據(jù)相對(duì)與有標(biāo)簽的數(shù)據(jù)更容易獲得,將會(huì)把無(wú)監(jiān)督學(xué)習(xí)應(yīng)用到答案選擇任務(wù)中.