【論文筆記】An End-to-End Model for QA over KBs with Cross-Attention Combining Global Knowledge

版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/LAW_130625/article/details/78484866

一、概要
  該文章發於ACL 2017,在Knowledge base-based question answering (KB-QA)上,作者針對於前人工作中存在沒有充分考慮候選答案的相關信息來訓練question representation的問題,提出了一個使用Cross-Attention機制的神經網絡模型來針對於候選答案的不同方面信息來訓練模型;並且訓練知識庫的全局信息學習,在一定程度上減輕的the out of vocabulary (OOV)問題,最終在數據集 WEBQUES- TIONS上取得不錯的效果。

二、模型方法
2.1 模型簡介
  KB-QA的目標是給出一個用自然語言表達的問題,返回在實體集合A作爲問題的答案。本文的模型如下圖所示,首先使用Freebase API識別出問題中的實體,在知識庫中找到候選答案,然後使用Attention機制的神經網絡針對候選答案的answer entity、answer relation、answer type、以及answer context四個方面分別訓練對應的question representation和及其representation,最後使用相似度得分來選出最終的答案。本文的方法與Li Dong等人提出的方法非常類似,具體可看:【論文筆記】Question Answering over Freebase with Multi-Column Convolutional Neural Networks,但其實大有不同,比如/business/board member 和/location/country 都是表示答案類型,但是因爲它們的Attention不同,最後得到的question representation也會不同。

這裏寫圖片描述

2.2 Question Representation
  首先,我們需要獲取到問題中每個詞的representation,假設存在問題q=(x1,x2,...,xn)xi 表示問題中的第i個單詞,如下圖所示,我們通過look up在EwRd×vw 中獲得每個單詞的embeddings,EwRd×vw 是隨機初始化的矩陣,並在模型虛擬立案過程中訓練,d表示單詞representation的維度,vw 表示所有問題單詞集合的元素的個數,然後將這些詞向量傳入LSTM中,LSTM模型已經被證明在許多NLP問題上表現得非常好,同時爲了考慮到每個詞的前後詞彙的信息,這裏使用了雙向LSTM,LSTM的隱藏單元輸出維度爲d/2,最後將雙向LSTM的輸出連接起來,即得到維度爲d的向量。

這裏寫圖片描述

2.3 Answer aspect representation
  在答案方面,直接通過KB embedding 矩陣EkRd×vk 獲得上面提到四個方面的embedding,其中vw 表示KB中詞表的大小,Ek 也隨着模型訓練而不斷學習優化,我們將answer entity , answer relation , answer type,以及answer context分別表示爲aearatac ,其對應的embedding分別表示爲eeeretec ,值得注意的是answer context 來自於知識庫中的多個方面,可以表示爲(c1,c2,...,cn) ,我們先通過Ek 獲得KB embeddings爲:(ec1,ec2,...,ecn) ,最後算它們的平均embeddings,即:ec=1nni=1eci

2.4 Cross-Attention model
①Answer-towards-question(A-Q) attention
  這是本文最關鍵的一部分,根據答案的ei(eeeretec) ,可以對LSTM中輸出的word representation hj 給予不同的權重,即不同的關注度,其計算方法如下:

aij=exp(wij)nk=1(wik)

wij=f(WT[hj;ei])+b

  其中aij 表示第i個詞的Attention權重,n爲問題的單詞個數,WR2d×1 爲中間矩陣,b爲偏置值,然後這些Attention權重被用來與對應的詞向量計算得到句子語義向量,即:
qi=nj=1(aijhj)

  最後問題和候選答案的相似度計算方法如下:
S(q,a)=hqieI

②Question-towards-answer(Q-A) attention
  直覺上的,不同的問題在應該也有相關方面的重點,即對於四個不同的答案方面應該也有不同的Attention,那麼最終的loss函數計算公式爲:
S(q,a)=ei(eeeretec)βei(qiei)

βei=exp(wei)ek(eeeretec)exp(wek)

wei=f(WT[q;ei])+b

q=1nnjhj

  其中βei 就是答案各個方面得分的權重。

2.5 Training
  首先對於訓練集中的question-answer pairs (q, a),對於候選答案集Cq 可以分別爲正確答案集Pq 和錯誤答案集Nq ,對於每一個正確答案aPq ,隨機在Nq 選擇k個錯誤答案組成進行訓練,構造的loss函數爲:

Lq,a,a=[γ+S(q,a)S(q,a)]+

  其中[z]+ =max(0, z),那麼我們的目標是訓練使得正確答案的得分比錯誤答案得分超出γ ,綜合可以的目標函數爲:
minq1|Pq|aPqaNqLq,a,a

  最終使用stochastic gradient descent (SGD)進行訓練模型。
  在測試階段,直接在候選答案中計算每個候選答案的得分:
Smax=argmaxaCqS(q,a)

  值得注意的是因爲存在問題可能不止有一個正確答案,所以設置一個標準來作爲選擇最終答案的標準,即爲:
A = {a|Smax − S(q, a) < γ }

  同時爲了處理the out of vocabulary (OOV),即在候選答案可能從未在訓練集中出現過,本文使用TransE對整個知識庫進行訓練,通過輪流訓練KB-QA模型和TranE的方式訓練並共用Embedding矩陣Ek ,每訓練一個epoch的KB-QA,那麼就訓練100個epoch的TransE,通過這樣可以充分使用了整個知識庫的特性,預先對每一個知識庫實體都進行了訓練,使得相似實體的分佈式表達也很相似;其具體訓練方法是假設存在三元組事實(s, p, o),使用黑體(s, p, o) 表示它們的embeddings,那麼它們應該儘量滿足:(s + p ≈ o) ,換種方式,可以定義d(s+p, o) 爲∥s + p − o∥22 ,那麼TransE應最小化下面的loss函數:
Lk=(s,p,o)S(s,p,o)S[γk+d(s+p,o)d(s+p,o)]+

三、實驗結果

這裏寫圖片描述

這裏寫圖片描述

  上面第一個圖中可以看出本文的方法取得了不錯的成績,雖然存在另外一個很高的成績,但是那裏使用到了大量的手動特徵,並且這些特徵是基於訓練集中觀察得到的,而本文的方法完全基於數據訓練而來,所以更具有普遍性,所以與那個結果不具有對比性。在第二個圖中,顏色越深代表權重越大,可以看出在答案的各個方面,每個詞代表的權重很符合我們人類的思維。

四、結論與思考
  本文針對於KB-QA任務,提出了一個新的使用Attention機制的神經網絡,根據不同的答案的類型基於問題中不同單詞的權重,這種思維很符合人類的思維,並且使用TransE對整個知識庫進行訓練,一定程度解決了OOV問題,與其它基於NN的方法相比,本文提出的方法可以實現更好的性能。

五、個人思考
  ①首先感嘆一下Attention機制的強大,在本文中其思想更是體現得非常的妙,但是結果沒有取得很大的突破,如果加上CNN在前期進行特徵的提取,以及在候選答案的representation也使用神經網絡訓練,效果會不會更好?但是模型可能會很大吧。。。

參考文獻
①An End-to-End Model for Question Answering over Knowledge Base with Cross-Attention Combining Global Knowledge

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章