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