1. 程式人生 > >KBQA 知識庫問答領域研究綜述(未完待續。。)

KBQA 知識庫問答領域研究綜述(未完待續。。)

論文終於提交了,心情非常激動。。從去年9月開始做知識庫問答到現在,總算是可以告一段落了。從前期的調研,到11月份艱難地復現別人的論文,12月1月看論文調模型,中間幾近放棄。。3.9又重新開始跑模型,3.19開始寫論文,到今天全部完成,深刻地體會到科研的道路真是道阻且長。趁著對KBQA的淺薄理解,在這裡做個總結吧。

從開這個坑到現在已經十天過去了。。今天終於有時間來把坑填上。
這期間把論文放到了arxiv,沒想到沒幾天時間就有很多人發郵件來要原始碼要資料。。看來知識庫問答最近真是太火了。
這篇綜述不談我的工作,只講我的參考文獻的工作。

Overview

我在 各類QA問答系統的總結與技術實現

中已經簡要地介紹過解決KBQA的三種方法:語義解析、資訊抽取、向量建模。前兩種方法偏向於傳統NLP的句法、語法分析,需要人工構建特徵,效果較單純的向量建模方法要好。而這幾個方向都有結合深度學習的方法提出,其中語義解析+深度學習在WebQuestion資料集上達到了最高的F1score。根據近幾年這一領域的論文效果,我做了一個對比圖:
這裡寫圖片描述
這裡主要關注WebQuestion和SimpleQuestion這兩個資料集。這兩個資料集均是基於Freebase構建的,其中WebQuestion是Stanford在2013年的論文 Semantic Parsing on Freebase from Question-Answer Pairs 中提出,其中包含了5,810 條問答對。SimpleQuestion由Facebook在2015年的論文 Large-scale Simple Question Answering with Memory Networks 中開放,包含了10w多條問答對,但是隻包括簡單問題:由一條三元組就可以回答的問題,也叫single-relation問題。
從圖中可以看到,向量建模+深度學習的方法在WebQuestion資料集上的表現差強人意,遠達不到語義解析的效果;而語義解析結合深度學習能夠有很大的提升。這表明目前還沒有很好的方法只通過向量建模這種端到端的方法來解決較為複雜的問題,尤其是涉及到知識庫中多條路徑的,畢竟這種方法把問題簡單化,不再提取特徵,而是直接丟到模型裡去學習。因此大多數深度學習的研究者都更關注於簡單問題,也就是SimpleQuestion這一資料集,在該資料集上的研究基本都使用向量建模+深度學習的方法。大家的思路是,我先用深度學習把簡單問題解決好,再想辦法擴充套件到複雜問題上。雖然各有各的建模方法,從不同的角度各自都有不同的解釋,但巨集觀上來看其實都大同小異。
這裡主要介紹幾種基於深度學習的向量建模方法。對於複雜問題和簡單問題,解決問題的思路還是有些區別的。

複雜問題

Multi-Colunm CNN 2015

Question Answering over Freebase with Multi-Colunm Convolutional Neural Network

Cross-Attention 2016

An End-to-End Model for Question Answering over Knowledge Base with Cross-Attention Combining Global

簡單問題

CFO 2016

CFO: Conditional Focused Neural Question Answering with Large-scale Knowledge Bases
原始碼:

https://github.com/zihangdai/cfo

Character-Level with attention 2016

AMPCNN 2016

Word + Character Level 2017

Neural Network-based Question Answering over Knowledge Graphs on Word and Character Level
原始碼:https://github.com/WDAqua/teafacto

HR-BiLSTM 2017

Improved Neural Relation Detection for Knowledge Base Question Answering