一、概要
該文章發於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,假設存在問題
2.3 Answer aspect representation
在答案方面,直接通過KB embedding 矩陣
2.4 Cross-Attention model
①Answer-towards-question(A-Q) attention
這是本文最關鍵的一部分,根據答案的
其中
最後問題和候選答案的相似度計算方法如下:
②Question-towards-answer(Q-A) attention
直覺上的,不同的問題在應該也有相關方面的重點,即對於四個不同的答案方面應該也有不同的Attention,那麼最終的loss函數計算公式爲:
其中
2.5 Training
首先對於訓練集中的question-answer pairs (q, a),對於候選答案集
其中
最終使用stochastic gradient descent (SGD)進行訓練模型。
在測試階段,直接在候選答案中計算每個候選答案的得分:
值得注意的是因爲存在問題可能不止有一個正確答案,所以設置一個標準來作爲選擇最終答案的標準,即爲:
同時爲了處理the out of vocabulary (OOV),即在候選答案可能從未在訓練集中出現過,本文使用TransE對整個知識庫進行訓練,通過輪流訓練KB-QA模型和TranE的方式訓練並共用Embedding矩陣
三、實驗結果
上面第一個圖中可以看出本文的方法取得了不錯的成績,雖然存在另外一個很高的成績,但是那裏使用到了大量的手動特徵,並且這些特徵是基於訓練集中觀察得到的,而本文的方法完全基於數據訓練而來,所以更具有普遍性,所以與那個結果不具有對比性。在第二個圖中,顏色越深代表權重越大,可以看出在答案的各個方面,每個詞代表的權重很符合我們人類的思維。
四、結論與思考
本文針對於KB-QA任務,提出了一個新的使用Attention機制的神經網絡,根據不同的答案的類型基於問題中不同單詞的權重,這種思維很符合人類的思維,並且使用TransE對整個知識庫進行訓練,一定程度解決了OOV問題,與其它基於NN的方法相比,本文提出的方法可以實現更好的性能。
五、個人思考
①首先感嘆一下Attention機制的強大,在本文中其思想更是體現得非常的妙,但是結果沒有取得很大的突破,如果加上CNN在前期進行特徵的提取,以及在候選答案的representation也使用神經網絡訓練,效果會不會更好?但是模型可能會很大吧。。。