熊 雪, 劉秉權, 吳翔虎
(哈爾濱工業大學 計算機科學與技術學院, 哈爾濱 150001)
作為用戶生成內容(UGC)的一個典型代表,問答社區(CQA)平臺中的問答對體現了人們在自然狀態下的語言習慣。然而,CQA系統中問題和答案都是屬于短文本的范疇,短文本在語言內容上存在2個主要問題,對此可表述如下。
(1)詞語空間的特征稀疏,通常經過停用詞過濾等預處理操作后答案中僅剩少量有意義詞語。
(2)答案文本中經常缺少指代信息、語義解釋,存在許多無關或者冗余信息[1]。
答案選擇根據問題與答案選擇合理的分句構成新的答案,能方便用戶快速獲取相關信息。因此,有必要對面向答案選擇的語義信息要素提取的方法展開研究,以更趨全面地對現有的CQA語料資源進行重新整合,從而改善CQA系統的服務性能。本文首先將句子進行切分,得到多個候選答案,將問題與候選答案結合,形成問題-答案對。一個有效的句子匹配在建模過程中不僅要考慮到句子內部的結構,也要考慮句間的邏輯關系。基于目前注意力機制在機器翻譯[2]、閱讀理解[3]、短文本摘要[4]等領域方面的實際應用,能在訓練時將重點更多地投注在關鍵詞上。因此本文即嘗試將注意力機制引入答案選擇任務,主要貢獻如下:
(1)在答案選擇模型中融合句內注意力機制,基于雙向長短期記憶網絡對問題句與候選答案句提取特征,提出了一種基于句內注意力機制的答案選擇方法。
(2)在答案選擇模型中融合層疊注意力機制,基于雙向長短期記憶網絡與詞匹配方法對問題句與候選答案句進行特征提取,提出了一種基于層疊注意力機制的答案選擇方法。
隨著深度學習的發展,很多深度學習方法已被研究引入到答案選擇任務中。Wang等人[5]將長短時記憶網絡(LSTM)用作問答系統的句子選擇,將 LSTM擴展為雙向長短時記憶網絡,并作為訓練模型,減少問答系統對語法特征及額外資源的依賴,將問答對通過word2vec轉化為特征,作為輸入,而且不限制輸入句子的長度,得到問答對是否保留,從而實現問題答案選擇。Logeswaran等人[6]提出了一種基于循環神經網絡(RNN)的句子排序方法,將句子排序任務轉化為求解句子在每個位置的可能性的任務。模型首先使用預訓練的詞向量對句子進行句子表示,并用LSTM對句子進行句子級別特征提取,然后將句子特征輸入到循環神經網絡中,學習句子集合的信息,最終輸出當前位置的可能的句子。模型通過判斷句子在每個位置的可能性,采用解空間檢索算法求得最優排序結果。Gong等人[7]提出了一種基于端到端的指針網絡的句子排序方法,模型首先對句子進行詞向量表示,并通過句子特征提取模型來運行求得句子特征提取,通過指針網絡對句子集合進行學習,模型的輸入端是無序的句子序列,輸出端是有序的句子序列,即模型直接輸出最終的句子排序。Chan等人[8]將問句和答案句,分別用word2vec給出表示,并通過一個多層卷積神經網得到長度固定的輸入的問答對特征,將所有問答對經過卷積后的特征輸入LSTM中,得到結果,判斷答案是否保留。
對于問答社區的答案選擇研究,本文將其定義為一個信息檢索和序列標注問題,即對于給定問題,標注候選答案是否為問題的真實答案,對候選答案與問題做出相關性排序,考量其排名值。
2.2.1 引入句內注意力機制的特征提取
引入句內注意力機制答案選擇模型結構如圖1所示。由圖1可知,網絡的輸入包括具有n個詞的問題句Q,以及具有m個詞的候選答案句C。首先使用embedding層進行變換,得到問題句和答案句的詞向量{q1,q2, …,qn}及{c1,c2, …,cm}, 然后使用雙向LSTM對兩者進行建模,以問題句為例可得數學表述如式(1)所示:
(1)


圖1 引入句內注意力機制答案選擇模型結構
BLSTM所有隱藏層輸出通過均值池化Hq計算得到Qmean,由此得到基于句內注意力機制的問題句特征sq,綜合上述的數學運算過程可分別如式(2)~(5)所示:
Qmid=tanh(WqhHq+WhQmean?eBLSTM)
(2)
aq=softmax(wTQmid)
(3)
sq=Hq(aq)T
(4)
(5)
其中,Wqh,Wh∈RF*h,eBLSTM,wT∈Rh;F表示句內注意力機制層所提取到的特征維度;h表示隱含層維度;eBLSTM表示雙向LSTM的序列長度,并在反向傳播(BPTT算法)的過程中調整詞向量的權重。
在雙向LSTM中,每一個時間步的隱藏層輸出都是結合了2個方向LSTM的輸出。換言之,整個問題句和答案句的上下文信息都得到了適當兼顧。由式(5)可知,每個時間步最終輸出的yt,經過softmax得到了候選答案句是否為真實答案的概率。
2.2.2 引入層疊注意力機制的特征提取
考慮到問答系統的特殊性,應當著重評估問題句與回答句之間的依賴關系,問題句中并不是每一個詞都會對下一個狀態的生成來發揮影響。以“造成心肌缺血的原因有哪些?”為例,直觀地講,“造成”一詞對答案的影響較低。實驗基于Attention對問題句與候選答案句進行建模,研究得出其結構設計即如圖2所示。
網絡對于輸入包括含有n個詞的問題句Q,含有m個詞的候選答案句C,首先經過雙向LSTM得到問題句與候選答案句每個詞在句中的向量表示,通過計算構建一個成對的匹配性矩陣。給定問題句中第i個詞和候選答案句中第j個詞,利用點乘得到兩者的匹配得分的計算公式如下所示:
M(i,j)=hquestion(i)Thcandidate(j)
(6)

圖2 引入層疊注意力機制答案選擇模型結構
Fig.2Answerselectionmodelbasedonattention-over-attentionmechanisn
這樣,就可以計算出每個問題句與候選答案詞的匹配分數,形成匹配矩陣M∈R|Q|*|C|,|Q|為問題句的長度,|C|為候選答案句的長度,這些都在預處理期間采用了固定值,矩陣中第i行、第j列即為匹配得分M(i,j)。根據匹配性矩陣,先計算t時刻問題句中每個詞的重要性分布,通過一個按列softmax函數得到Q2C的匹配得分的數學運算表達可如式(7)~(8)所示:
q2c(t)=softmax(M(1,t),M(2,t),…,M(|Q|,t)
(7)
Q2C=[c2q(1),c2q(2),…,c2q(|C|)]
(8)
再進行一個按行softmax函數得到C2Q的匹配得分的數學運算表達可如公式(9)~(10)所示:
c2q(t)=softmax(M(t,1),M(t,2),…,M(t,|C|))
(9)
(10)
通過向量內積計算出層疊注意力機制得分,由此每個問題句和候選答案句的重要性能夠得到更好的學習。為了確定正確的候選答案句,將一些專有名詞與問題句中出現的問題詞進行匹配是十分必要的。然而,許多專有名詞都不在研究選取的詞表當中,這是為了避免更新詞表嵌入專有名詞的同時帶入噪聲。如“肝膽”和“胰”的詞向量表示是十分接近的,因此在確認是否為正確的候選答案句時對這2個詞加以區分即是至關重要的。為了彌補分布式表示的這一不足,研究給出將其與詞匹配特征拼接的研究運算公式可順次表示如下:
sq=Q2CT·C2Q
(11)
w=linear([wq,wc])
(12)
s=[sq,w]
(13)
其中,sq,wq∈R|Q|,wc∈R|C|,w∈R2。wq與wc為問題句與候選答案句中各個詞的匹配結果,兩者拼接后經過線性變換訓練得到一個二維的詞級別匹配結果;sq為層疊注意力機制提取的特征,將其與w拼接后通過softmax分類器得到最終結果。
答案選擇的語料來自2017年百度發布的DuReader數據集,以及2016年國際自然語言處理與中文計算會議發布的DBQA數據集。
DuReader對用戶熱門提問從百度搜索或百度知道進行檢索,收集相關網頁,將網頁主要段落抽取整合為文檔,人工標注了每篇文檔中與問題最相關的段落,標簽為最相關段落中的所有答案句標注為1,其余答案句為0。考慮到將為用戶生成內容,對數據集進行答案過濾,刪除無關高頻句,如“謝謝您的提問”、“歡迎采用我的答案”、“百度一下你就知道”等,共得到116 382個有效提問、548 940篇文檔。DBQA數據集中每篇文檔都包含一個問題與若干候選答案,并標注了一個標準答案,對問答對進行分詞、統計詞表、詞表過濾等操作,共得到14 767個有效問題、304 413組問答對,這里分詞使用的是語言技術平臺封裝的PyLTP工具。由于篇幅有限,語料中一個問題和其部分答案與標注的示例詳情可見表1。
準確率、召回率、F值都是利用無序的文檔集合進行計算,而答案選擇過程中使用的是搜索引擎的語料,由其返回的結果通常都是有序的,參考調研結果,使用MAP(Mean Average Precision)與MRR(Mean Reciprocal Rank)作為評價指標。結合研究目的,可得MRR的數學定義則如式(14)所示:
(14)


表1 語料示例
(15)
(16)
(17)
其中,AveP表示平均準確率;m為標準答案的數量;n為預測答案數量;k為候選答案句在模型返回的n個預測答案中排名。若min(m,n)=0,那么AveP(C,A)=0;P(k)為到第k個預測答案為止的預測準確率;rel(k)表示第k個預測答案是否為標準答案。
運行得到的實驗結果可見表2。

表2 模型在特征組合中的最優結果
考慮到訓練樣本中正、負例數據不均衡,比例約為10∶1,實驗初期采用上采樣與下采樣的方式對數據集進行處理,但是由于上采樣中反復出現一些樣本,導致模型整體過擬合。基于此,實驗后期則采用加權的方式使得正、負例間的加權損失值近似相等,為了確保權重設置的合理性,在多種模型下進行了實驗,最終研究得到當基于注意力機制的模型在權重比為6∶1時可取得最佳實驗結果。
為了進一步驗證本文的實驗效果,將準確率與宏觀F1值也納入了評估標準,實驗將基于LSTM的答案選擇方法作為基線,該方法在語料中的MAP與MRR指數分別達到0.339 5以及0.339 4。而加入詞匹配方法后兩者都得到了明顯的提升,說明加入詞匹配特征的特征提取方法能夠有效改善專有名詞的匹配情況。
基于句內注意力模型的答案選擇方法在各方面都優于基線方法,但是與加入詞匹配的基線方法仍有一定差距,究其原因可能是預訓練詞表過小導致未登錄詞過多影響了模型的訓練效果。而基于層疊注意力模型的答案選擇方法優于基于句內注意力模型的答案選擇方法,這就表明前者能夠更好地捕捉問題句與候選答案句間的語義邏輯關系,為了使模型效果能夠更趨理想,在此基礎上添加了詞匹配特征,實驗在語料中MAP達到0.804 9,取得了最優效果,在MRR指標上略低于加入詞匹配特征的基線方法。層疊注意力模型對整體準確性也進行了一定的優化,這也說明其在判斷候選答案句是否為正確的答案句時有著出色的表現。
本文嘗試在答案選擇任務中融入注意力機制,計算問題句與候選答案句之間的語義相關性,訓練其排序與標注結果。實驗證明層疊注意力機制能夠有效作用于答案選擇效果,對比基線方法有著明顯的改善。本文主要的貢獻是通過層疊注意力機制,增強了模型捕捉句間語義邏輯關系的能力,通過詞匹配方法增強模型對未登錄詞的匹配情況,最終提升了答案選擇效果。