引言
下圖是問答系統的發展歷史。從2010年起,基於知識庫的問答就起步了,因此這個領域已經有八年的研究歷史了。數據庫
![](http://static.javashuo.com/static/loading.gif)
圖1 問答的歷史發展分佈式
知識庫問答
知識庫問答(KBQA)是以天然語言的形式給出問題,經過對問題進行語義理解和解析,進而利用知識庫進行查詢、推理得出答案。ui
![](http://static.javashuo.com/static/loading.gif)
圖2 問題「姚明的老婆的國籍是?」最終獲得回答「中國」3d
語義解析將問題轉化爲語義表示,語義表示有兩種:基於符號的表示方法和基於分佈式的表示方法。blog
基於符號表示的知識庫問答(傳統)
首先將問句轉化爲邏輯表達式、Lambda Calculus等符號語義表示形式,林德康在知識圖譜與問答系統前沿技術研討會暨清華大學「計算將來」 博士生論壇上舉例,問題"Who was Tom Cruise's wife in 2007?" 將會被轉化爲「λx.∃e.Marriage(x, e) ∧ Spouse(e, TomCruise) ∧ Year(MarriageFrom(e)) =2007」的語義表示,而後將語義表示轉化爲SQL、SPARQL等數據庫檢索語句,並最終獲得問題的答案。資源
語義解析的方法至今研究成果挺多:同步
- Zettlemoyer在1995年提出組合範疇語法(Combinatory Categorical Grammars)
- Zelle在1995年提出「移位-規約」推導(Shift-reduce Derivations)
- Wong在2007年提出同步語法(Synchronous Grammars)
- Lu在2008年提出混合樹(Hybrid Tree)
- Clarke在2010年提出類CFG語法(CFG-like Grammars)
- Liang在2011年提出類CYK方法(CYK-like Grammars)
在這些研究成果基礎上總結出語義解析的基本過程:短語檢測+資源映射+語義組合,並最終生成邏輯表達式。以下圖3所示。it
![](http://static.javashuo.com/static/loading.gif)
圖3 語義解析的過程io
語義解析的兩個關鍵點就是如何得到短語到資源的映射和如何解決歧義問題。前者是將文本中的類別、關係和實體映射到知識庫中對應的類別、關係和實體。基礎
基於分佈式表示的知識庫問答(End to End DL-based)
這裏給出5篇論文:
- Bordes et al. Open Question Answering with Weakly Supervised Embedding Models, In Proceedings of ECML-PKDD 2014
- Bordes et al. Question Answering with Subgraph Embedding, In Proceedings of EMNLP 2014
- Yang et al. Joint Relational Embeddings for Knowledge-Based Question Answering, In Proceedings of EMNLP 2014
- Dong et al. Question Answering over Freebase with Multi-Column Convolutional Neural Network, In Proceedings of ACL 2015
- Bordes et al. Large-scale Simple Question Answering with Memory Network, In Proceedings of ICIR 2015
公開的評測數據集
![](http://static.javashuo.com/static/loading.gif)
【1】林德康,Singulariti聯合創始人,前Google高級科學家