论文浅尝 | 基于知识图谱难度可控的多跳问题生成
論文筆記整理:譚亦鳴,東南大學博士生,研究興趣:知識圖譜問答。
? ? ?
來源:ISWC 2019
鏈接:https://link.springer.com/content/pdf/10.1007%2F978-3-030-30793-6_22.pdf
?
本文提出一個end2end神經網絡模型以知識圖譜為數據源,自動生成復雜的多跳問題,且問題難度是可控的。該模型以一個子圖(來自知識圖譜)及預設的問題答案為輸入,利用基于transformer的模型生成自然語言問題。問題難度的控制因子基于命名實體的popularity指標構建得到。實驗方面,利用現有的兩個2-hops問答數據集,構建訓練/測試數據得到的實驗結果驗證了該模型可以生成高質量,流利,且與輸入子圖密切相關的自然語言問題。
相關數據集和源碼鏈接傳送門:https://github.com/liyuanfang/mhqg.
動機
目前最好的KG QA模型基于神經網絡建立,這種數據驅動的模型需要大量的訓練數據,包括知識圖譜中的三元組集,問題集以及對應的答案數據。為了迎合這種數據需求,近些年來,很多問答數據集被構建出來,包括簡單的Single-hop信息的問題,以及更復雜信息的問題。其中復雜問題數據集又大體可以分為兩類:多跳推理或者離散型推理問題。
但是,隨著上述數據集被充分利用之后,模型性能的進一步提升又受到了數據集規模的限制,雖然這對Single-hop問答沒什么影響,其性能在實驗數據上已經媲美人類問答水平(Single-hop問題難度并不高),對于復雜問題則不然,其依然需要更多高質量的問答數據集提升模型的質量。顯然復雜問題相對簡單問題數據的建立難度更高,大部分現有的復雜問題都是基于人工或半自動的方式得到。
因此本文擬利用現有的復雜問題集作為訓練數據(包含問題子圖,對應的自然語言問題reference以及答案,來自COMPLEXWEBQUESTIONS及PathQuestion數據集),例1描述了這些數據的形式:
? ? ? ? ? ? ?
? ? ? ? ? ? ?
方法
本文將基于知識圖譜的問題生成任務看作一個Seq2Seq學習問題:
假定背景知識(圖譜)為G,其中包含一系列三元組事實,給定一個子圖g(來自G),及n個三元組,EA表示三元組中的答案實體(可能不唯一,建例1的第二張圖),模型將會生成一個自然語言問題Q = (w1,…,wm),生成過程可以描述如下:
? ? ? ? ? ? ?
θ表示模型參數
模型的框架如下圖所示:
? ? ? ? ? ? ?
這個框架整體還是類Transformer結構,主體分為編碼和解碼兩個部分,相關網絡細節就不多贅述。
關于知識圖譜編碼
對于子圖g,編碼器以其embedding作為輸入(對g中的三元組做embedding),令d_e表示實體/關系的embedding維度,d_g 表示三元組embedding的維度
初始化階段,三元組的embedding由主體,謂詞,客體的embedding拼接,加之其余值隨機初始化以匹配三元組的embedding維度
每個E_A答案實體還被embedding到一個d_e維的向量中,通過一個多層感知機學習該實體是否是一個答案實體。
接著對答案embedding和原始實體embedding做元素加法以獲得最終對每個答案實體的embedding
因此,對于包含n個三元組的子圖g,可以表示為一個n×d_g矩陣G,以該矩陣為輸入,Transformer 編碼器將其映射為一個連續表示序列Z = (z1,…,zn)∈R^{n×dg}
令Q,K,V分別表示編碼器中的query,key和value矩陣,給定輸入G,使用query矩陣對相關的三元組做軟篩選(soft select)并積累Attention,公式如下:
? ? ? ? ? ? ?
其中,KT為K的轉置 , ? ? ?均為可訓練模型參數
為了獲得不同三元組在不同表示子空間的信息,作者使用包含k個head的Multi-head attention,并匯總它們如下:
? ? ? ? ? ? ?
其中, ? , ? ? ?
匯總后的輸出x被傳遞到一個前饋網絡,如下:
? ? ? ? ? ? ?
關于難度評價模型
本文主要提到了兩個衡量難度的因素:問題中實體鏈接的confidence;子圖中實體的selectivity
前者指的是對問題做命名實體識別時,具有較高confidence的實體識別一般具有較小的ambiguity,這使得子圖很容易理解所問的目標實體,且生成的問題也更易于回答。
后者指的是識別完實體后圖譜中可匹配的實體的候選數量,當候選實體較多時,意味具有更低的selectivity,這表示問題所問的內容具有較高的模糊性,也就更難。
基于此,作者構建了難度評價模型如下:
? ? ? ? ? ? ?
其中G和q分別表示子圖和問題,Con表示confidence,Sel表示selectivity,該難度得分被標準化到[0,1]之間??紤]單靠得分不具備明確的區分度,比如想生成較難的問題該怎么定義閾值,因此作者隨機抽取了200個簡單例子做難度測量,最終取其得到的最高值作為閾值。
?
關于帶有難度控制因子的解碼
本文利用一個多層感知機DE將難度信息編碼進解碼器,其由輸入線性層,整流線性單元層和輸出線性層構成。公式如下:
? ? ? ? ? ? ?
其中,x表示難度level,W和b是可訓練的模型參數。
實驗
數據集相關
實驗使用到了三個多跳問題集:
WebQuestionsSP,ComplexWebQuestions,PathQuestion
對于每個實例,WebQuestionsSP,ComplexWebQuestions都包含自然語言問題,SPARQ query及答案實體和一些輔助信息
PathQuestion相對上述數據集缺少了實體對應知識庫(Freebase)的ID,因此處理方式稍有不同。
數據集統計信息如下表:
? ? ? ? ? ? ?
作者對其實驗細節在文章中做了詳細描述,有需要可以去瞅瞅
?
實驗結果
? ? ? ? ? ? ?
由于是自然語言生成類的任務,這里使用的評價指標均為翻譯常用的自動評價指標BLEU,METEOR等
?同時,作者也提供了人工評價結果如下:
? ? ? ? ? ? ?
?
OpenKG
開放知識圖譜(簡稱 OpenKG)旨在促進中文知識圖譜數據的開放與互聯,促進知識圖譜和語義技術的普及和廣泛應用。
點擊閱讀原文,進入 OpenKG 博客。
總結
以上是生活随笔為你收集整理的论文浅尝 | 基于知识图谱难度可控的多跳问题生成的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 论文浅尝 | ICLR2020 - 基于
- 下一篇: 领域应用 | 美团商品知识图谱的构建及应