論文解讀:Improved Neural Relation Detection for Knowledge Base Question Answering
本文解決KBQA中的子問題——Relation Detection(關係檢測)。關係檢測目的是給定一個問句,根據知識庫來判斷該問句目標的關係是什麼。例如問句“中國的首都是哪裏”,我們會先鎖定問句的中心實體(主題詞)是“中國”,其次檢測這句話目標是問與“中國”這個實體具有“首都”關係的實體,因此類似於知識圖譜的補全工作:(中國,首都,?)。因此關係檢測即是從(中國,?,?)到(中國,首都,?)的過程。對於像SimpleQuestion這樣的數據集,其爲簡單的問答,因此確定了(中國,首都,?)也就確定了整個三元組(中國,首都,北京)。如果對於WebQSP複雜問答,則可能會得到一些三元組(中國,首都,北京),(中國,首都,西安)…,但前提是每個三元組都會自帶一些約束,比如時間約束。如何能夠利用約束來解決複雜的關係檢測時本文的研究重點。
一、簡要信息
序號 | 屬性 | 值 |
---|---|---|
1 | 模型名稱 | HR-BiLSTM |
2 | 所屬領域 | 自然語言處理 |
3 | 研究內容 | 知識庫問答 |
4 | 核心內容 | Relation Detection, KBQA |
5 | GitHub源碼 | |
6 | 論文PDF | https://www.aclweb.org/anthology/P17-1053.pdf |
7 | 引用(GBT7714) | Yu M, Yin W, Hasan K S, et al. Improved Neural Relation Detection for Knowledge Base Question Answering[C]. meeting of the association for computational linguistics, 2017: 571-581. |
8 | 引用(BibTex) | @article{yu2017improved,title={Improved Neural Relation Detection for Knowledge Base Question Answering},author={Yu, Mo and Yin, Wenpeng and Hasan, Kazi Saidul and Santos, Cicero Nogueira Dos and Xiang,Bing and Zhou, Bowen},volume={1},pages={571–581},year={2017}} |
二、全文摘要翻譯
關係檢測是許多自然語言處理應用中非常重要的部分,例如知識庫問答(Knowledge Base Question Answering)。本文我們提出一種分層的循環神經網絡根據給定的問句識別出對應關係。我們的方法利用深度殘差雙向長短期記憶網絡在不同層面上對比問句和關係,另外我們提出一個簡單的KBQA系統將實體鏈接和本文提出的關係檢測集成起來相互增強。我們實驗結果表明我們的方法不僅可以在關係檢測上獲得突出的結果,而且更重要的是,其幫助我們在KBQA的兩個任務上SimpleQuestions和WebQSP獲得了最佳結果。
三、問題介紹與相關工作
3.1 介紹
知識庫問答是指在給定一個問句以及知識庫的條件下,生成一個KB查詢方案,並從知識庫中尋找目標答案。知識庫問答目前分爲兩種形式:
- 以SimpleQuestions爲典型的簡單問答,是單路徑問答模型(single-relation question)。即給定一箇中心實體,檢測出問句要尋找的關係後即可直接獲得對應的答案。
- 以WebQSP爲典型的複雜問答,尋找的通常是一條多關係路徑(multi-relation question)。在這種情況下有可能要獲得的答案需要多個三元組組成的路徑,也可能出現多關係(one-to-many)問題,因此需要有約束。
知識庫問答通常包括兩個子任務,一個是實體鏈接,即給定的問句中的主題詞要與知識庫做鏈接,這裏就需要有實體識別、實體鏈接、消歧等步驟。通常簡單的方法是使用n-grams詞袋模型。另一個子任務便是關係檢測。其不同於傳統的關係抽取是在少量預定義關係基礎上進行的,關係檢測通常面對的是龐大的關係空間(超過6000個關係類),且經常出現測試集中的關係在訓練集中沒有出現的情況,即unseen relations。作者統計測試集中14%的關係在訓練集中從沒有出現過,因此這是一個zero-shot問題。
因此本文着手解決的目標是:
(1)使用詞級別的匹配準則來與關係進行匹配。如果直接使用整個關係名稱作爲匹配,則沒有辦法解決unseen問題,但如果使用詞級別,則可以通過RNN或CNN將其表徵起來,這樣即便遇到沒有見過的關係,也可以通過每個單詞編碼起來。
(2)同時結合詞級別(word-level)和整個關係名稱(relation-level)進行表徵;
(3)使用深度BiLSTM進行問句與關係的匹配;
(4)使用殘差訓練方法訓練。
另外作者又提出2階段關係檢測,主要目的是對問句的候選主題詞(中心實體)進行排序:
(1)首先關係檢測可以檢測出當前問句較高置信度的關係,根據這些中心實體是否能夠與這些關係相連,來對這些中心實體進行重排序(Re-ranking),並挑選一小部分。目標是解決那些模棱兩可的實體。
(2)根據挑選的一小部分候選實體,再次進行關係檢測,尋找到答案所在的路徑。
3.2 相關工作
關係抽取是一種分類問題,通常是給定一個句子以及兩個實體,來判斷這兩個實體是什麼關係。通常這類問題的關係是預定義的,且規模很小,因此不會出現zero-shot問題。例如SemEval 2010 Task8 只有19個關係,TACKBP2015有74個關係,ACE2005則有11個粗粒度,32個細粒度的關係。
但是對於關係檢測任務來說,關係數量大,且容易出現unseen問題。目前的兩種解決方法是:
(1)使用預訓練的關係表徵,例如TransE模型可以獲得關係向量。通過事先對所有關係進行預訓練,則可以得到統一的向量表示。這一類可以提取關係的全局信息,但可能是稀疏的(有些關係名稱可能出現次數很少)
(2)將關係名稱拆分爲一個個單詞或者字母,因此關係檢測變爲序列匹配或排序問題(sequence matching and ranking),這一類可以捕捉局部信息,但忽略了全局信息。
另外與關係抽取不同的地方是,關係抽取擁有至少兩個實體參數,因此完全可以通過實體信息來增強關係抽取,但對於關係檢測任務,這一類信息便很難被利用,因爲一個問句通常只包含一箇中心實體,而且知識庫中的實體包含多個類型,因此目前沒有工作着手對實體類型用於關係檢測。
四、方法
4.1 不同粒度上的關係表徵
作者同時從word-level和relation-level對關係近表徵。輸入的是一個關係或關係路徑:。其中表示所有關係的單詞數量,表示當前關係或關係路徑中所有的關係名稱。其次通過共享參數的Bi-LSTM進行表徵,分別得到word-level和relation-level的隱狀態矩陣 ,其中表示拼接。最後分別將兩個矩陣進行所有隱狀態向量進行最大池化,得到最終的一個向量 。
4.2 不同層面的問句表徵
使用兩層的Bi-LSTM對問句進行表徵,輸入問句,第一層輸出的隱狀態向量爲。第二層的輸入是第一層的隱狀態向量,輸出則是。作者發現第二層的輸入是脫離word級別的,因此可能會出現問題。
4.3 分層匹配
我們獲得了和,我們希望這兩層的表徵都可以與關係進行匹配。樸素的方法是分別將兩層表徵與關係表徵計算相似度,然後得到的兩個值進行加權求和。但作者發現這麼做實驗效果還不如只保留一層LSTM的結果,分析可能因爲深層的LSTM會陷入局部最優解,因此很難訓練。
爲了更好能夠訓練,引入殘差網絡(Residual Networks)。作者提出兩種策略:
(1)將兩層的輸出,按照每個時刻進行求和,即,然後得到的個取最大(最大池化)的作爲問句的表徵;
(2)分別對和應用一次最大池化操作,得到和,則。
得到了問句的表示,則可以計算相似度:。使用ranking loss訓練:。
4.4 KBQA 系統
作者用現有的實體鏈接工具獲得問句的topK個候選實體,記做。整個流程如圖所示:
(1)首先使用原始的問句進行關係檢測,獲得對應每個關係(與中所有候選實體所連接的)的得分,並按照得分從高到低排序獲得前個關係(高置信度關係),記做。而候選的某一箇中心實體所有相連的關係記做,因此兩者交集即爲該候選實體所有得分較高的關係。如果實體鏈接工具自身給予每個實體一個排序的得分是,則這個實體的最終得分表示爲:
直觀的理解就是問句的某一個候選中心實體,其得分則依據初始的實體鏈接工具的打分,以及與該實體所有相連的高置信度關係得分的最大值。因此我們可以對所有候選實體進行排序,選擇最大的個(),得到新的候選實體集合。
(2)其次在上應用第二次關係檢測,得到每個關係的排序(因爲對實體進行了排序和過濾,此時的關係r數量大大減少),但與第一次不同的是,輸入的問句中將所有候選實體更換爲標籤“<e>”。得分記做
(3)查詢生成。根據實體排序的得分以及第二次關係檢測得分,得到最終的得分:
直觀理解就是在求某一個關係的得分時,這個關係連接的候選中心實體對應一個重排序的得分,其次這個關係在第二次關係檢測時(第(2)部分)的得分,兩者加權求和。最後我們會得到一組這樣的得分,從中選擇最大的得分以及對應的候選實體、關係(關係路徑)作爲返回結果。
(4)約束檢測。如上圖,在複雜問題(b)上,通常需要考慮到約束條件。作者提出一種約束檢測方法。其包含兩個步驟:
- 子圖生成(Sub-graph generation):我們通過前3個步驟得到了最大得分對應的關係或關係路徑,因此其指向的尾實體就是答案實體。因此我們的做法是將這個答案實體所有鄰接實體以及相連的關係組成一個子圖。
- 子圖鏈接(Entity-linking on sub-graph nodes):將這個子圖與問句進行匹配,並計算匹配的得分,如果得分超過閾值,則將其中的約束結點(實體)添加到答案實體上。
五、實驗
實驗使用的兩個數據集分別是SimpleQuestions和WebQSP:
(1)SimpleQuestions:簡單問答,使用小型的FreeBase(2M)
(2)WebQSP:複雜問答,使用完整的FreeBase。使用S-MART作爲實體鏈接。
下表展示了關係檢測的效果。可以發現在兩個數據集上,本文的方法HR-BiLSTM達到最優效果。同時消融實驗表明基於word-leve和relation-level結合可以提升效果,使用雙層LSTM和殘差方法也可以提升關係檢測效果。
另外也發現在WebQSP上關係檢測的結果都很差,這也說明了大量的unseen關係對實驗影響很大,也是未來解決問題的關鍵。
作者還將提出的KBQA系統與其他進行比較,如下表所示:
作者發現,如果去掉重排序或去掉約束檢測,效果都會下降,說明重排序和約束檢測很重要。
六、附錄
附錄部分對約束檢測已經進行了詳細的介紹,本文不做講解。