在知識問答中,要把一個自然語言的問句映射到知識庫 KB 中是很難的,目前的問答系統通常是將 NLP 問句轉換成一個 SPARQL 查詢語句去檢索 KB。如何完成這一轉換過程面臨著很多問題,比如怎麼在 KB 中找到和問句中匹配的實體與關係。
首先問題中的實體名可能不完全依照資料庫中的名稱,同一個實體有多種叫法。其次資料庫中多個實體對應的名稱可能是一樣的。比如 Freebase 裡叫 apple 的就有 218 種實體。精確匹配的話很難找到答案,模糊匹配又會從大型資料庫中搜索到冗餘的數據。
本文在學習算法基礎上採用了 learning-to-rank 來重點關注被大部分工作忽略掉的實體識別的問題。
模型介紹本文要完成的任務是根據 KB 知識來回答自然語言問題,給出了一個叫 Aqqu 的系統,首先為問題生成一些備選 query,然後使用學習到的模型來對這些備選 query 進行排名,返回排名最高的 query,整個流程如下:
比如要回答這個問題:What character does Ellen play in finding Nemo?
1. Entity Identification 實體識別
首先在 KB 中找到和問句中名詞匹配置信度較高的實體集合,因為問句中的 Ellen,finding Nemo 表達並不明確,會匹配到 KB 中的多個實體。
先用 Stanford Tagger 進行詞性標註。然後根據詞性挑出可能是實體的詞與 KB 進行匹配,利用了 CrossWikis 數據集匹配到名稱相似或別名相似的實體,並進行相似度評分和詞語流行度評分。
2. Template Matching 模板匹配
這一步對上一步得到的候選實體在資料庫中進行查詢,然後利用三種模板生成多個候選 query。三種模板和示例如圖所示:
3. Relation Matching 關係匹配
這一步將候選 query 中的 relation 與問句中剩下的不是實體的詞進行匹配,分別從 Literal,Derivation,Synonym 和 Context 四個角度進行匹配。
Literal 是字面匹配,Derivation 利用 WordNet 進行衍生詞匹配,Synonym 利用 word2vec,匹配同義詞。Context 則是從 wiki 中找出和 relation 匹配的句子,然後利用這些句子計算原問句中的詞語和這些 relation 匹配出現的概率,採用 tf-idf 算法。
4. Answer Type Matching 答案類型匹配
這裡採用了較為簡潔的方法,將 relation 連接的對象類型和問句中的疑問詞匹配,比如 when 應該和類型為日期的對象匹配。
5. Candidate Features 人工設計的特徵
實體匹配的特徵:(1)備選 query 中實體的個數(2)字面大部分匹配的實體個數(3)實體中匹配的token的數量(4-5)實體匹配概率的平均值和總和(6-7)實體匹配流行度的平均值和總和
關係匹配的特徵:(8)匹配模板中的關係個數(9)字面匹配的關係個數(10-13)分別在 literal,derivation,synonym 和 context 四個角度匹配的 token 個數(14)同義詞匹配總分(15)關係上下文匹配總分(16)答案的 relation 在 KB 中出現的次數(17)n-gram 特徵匹配度
綜合特徵:(18)特徵 3 和 10 的總和(19)問句中匹配到實體或關係的詞所佔比重(20-22)二進位結果大小為 0 或 1-20 或大於 20(23)答案類型匹配的二元結果
6. Ranking
本文採用了基於 learning-to-ranking 的方法根據上述特徵對備選結果進行 ranking。作者使用了 pairwise ranking,針對兩個備選的 query,預測哪一個評分更高,然後取勝出最多的那個。
分類器採用了 logistic regression 和 random forest。
實驗結果本文使用 Freebase 作為 KB,但對於 WikiData 同樣有效。
數據集使用了 Free917 和 WebQuestions。前者手動編寫了覆蓋 81 個 domain 的自然語言問句,語法準確,每個問句都對應一條 SPARQL 語句,用它可以在 KB 中查到標準答案。訓練集和測試集比例為 7:3。
WebQuestions 包含 5810 條從 Google Suggest API 上爬下來的問句,和 Free917 不同的是,它比較口語化,語法不一定準確,並且問題覆蓋的領域多為 Google 上被問到最多的領域。答案是用眾包生成的,噪聲較大,訓練集和測試集比例為 7:3。
和 Sempre,GraphParser 等結果較好的模型比較了 accuracy 和 F1 score,結果如下:
文章還分析了每個特徵對系統可靠性的影響:
對於 80% 的查詢,正確答案都能出現在 Top-5 裡。
文章評價本文給出了一種 end-to-end 的系統來自動將 NL 問題轉換成 SPARQL 查詢語言。系統綜合了實體識別以及距離監督和 learning-to-rank 技術。設計的特徵非常具體豐富,比以往的模型準確度高了不少。並且據說程序運行效率也很好,一秒就能回答出一個問題。
系統的準確雖然不是特別高,但在 Top-5 內的準確度很高,如果加上交互式問答的形式,結果可能就會改善。本文沒有採用深度學習的方法,採用的是統計學習的方法,並且手動設計了特徵,人工代價比較高,對數據集的要求和質量較高。
本文由 AI 學術社區 PaperWeekly 精選推薦,社區目前已覆蓋自然語言處理、計算機視覺、人工智慧、機器學習、數據挖掘和信息檢索等研究方向,點擊「閱讀原文」即刻加入社區!
#榜 單 公 布 #
2017年度最值得讀的AI論文 | NLP篇 · 評選結果公布
2017年度最值得讀的AI論文 | CV篇 · 評選結果公布
我是彩蛋
解鎖新功能:熱門職位推薦!
PaperWeekly小程序升級啦
今日arXiv√猜你喜歡√熱門職位√
找全職找實習都不是問題
解鎖方式
1. 識別下方二維碼打開小程序
2. 用PaperWeekly社區帳號進行登陸
3. 登陸後即可解鎖所有功能
職位發布
請添加小助手微信(pwbot01)進行諮詢
長按識別二維碼,使用小程序
*點擊閱讀原文即可註冊