论文浅尝 | 使用变分推理做KBQA
Yuyu Zhang, Hanjun Dai, Zornitsa Kozareva, Alexander J.Smola, and Le Song: Variational Reasoning for Question Answering with KnowledgeGraph. AAAI 2018
?
鏈接:https://arxiv.org/abs/1709.04071
?
本文提出了一個可端到端訓練的 KBQA 框架,可以在模型內部完成實體鏈接,并且在找到用戶 query 的 topic entity 后,可以通過變分推斷完成多跳推理,找到答案。本文的框架將實體鏈接得到的實體 y 看做是隱變量,通過求解包含隱變量的極大似然函數得到模型參數。
具體而言,第一步,給定用戶 query,計算出知識庫中每個實體可能是 topic entity 的概率。 做法是用一個神經網絡得到 query 的向量表示,然后做 softmax 多分類即可。由于這里并沒有使用傳統的類似于字符串匹配的方式做實體鏈接,因此用戶 query 的形式比較自由,可以使文本的,也可以是語音的。
第二步,給定了問題和一個鏈接到的實體 y,要找到在 y 的鄰域 (T 跳之內,T 是一個超參數,文中為3)內每個實體可能是 query 答案的概率。文中的做法是給從y到a的所有路徑構成的子圖 G_(y→a) 訓練一個向量表示 g(G_(y→a)),那么如果給從y到其鄰域內的每個實體的路徑都訓練了一個向量表示,就可以用如下方式計算出所有實體可能是答案的概率。
如何計算 g(G_(y→a)) 是本文中體現出推理的地方。本文計算路徑的向量表示采用了傳播式的方法,即假設 b 是從 y 到 a 的路徑上 a 的所有父節點的集合,那么計算 g(G_(y→a)),只需要利用到所有的 g(G_(y→b) ) 即可。
以上雖然解決了極大似然函數 p_θ1(y|q_i) 中和 p_θ2(a_i |y,q_i) 的求解問題,但是如果要優化這個包含隱變量的極大似然函數,由于后驗概率 p(y|q_i,a_i) 無法求解,因此無法直接使用EM算法。故本文采用變分推斷的方法,由神經網絡訓練出另一個分布 Q_φ(y│q_i,a_i) 來近似代替。由于計算 Q_φ(y│q_i,a_i) 和計算p_θ2 (a_i |y,q_i) 的過程剛好相反,因此可以同樣使用前面傳播式的方法計算 g(G_(a→y)),只是方向相反。
本文框架的總體結構為:
最后,本文采用了 REINFORCE 算法來求解參數,具體而言,是用變分推斷近似替代后的新的損失函數為
求梯度得到
然后迭代至收斂即可。
實驗結果:在本文新發布的 KBQA 數據集 Meta QA 上相比對照模型提升較為明顯,尤其是要求多跳推理的問題。另外,在問題的形式是語音,機器翻譯后的結果,以及訓練時不給定標注好的 topic entity 的情況下, 都有較大的提升。
筆記整理:王梁,浙江大學碩士,研究方向為自然語言處理,知識圖譜。
OpenKG.CN
中文開放知識圖譜(簡稱OpenKG.CN)旨在促進中文知識圖譜數據的開放與互聯,促進知識圖譜和語義技術的普及和廣泛應用。
轉載須知:轉載需注明來源“OpenKG.CN”、作者及原文鏈接。如需修改標題,請注明原標題。
點擊閱讀原文,進入 OpenKG 博客。
總結
以上是生活随笔為你收集整理的论文浅尝 | 使用变分推理做KBQA的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在服务器上安装anaconda遇到的问题
- 下一篇: 打破场景边界,PDFlux助你多领域表格