(十九)基于知識圖譜的問答系統(tǒng)(KBQA)
作者簡介
作者:孟繁中
原文:https://zhuanlan.zhihu.com/p/339722352
轉(zhuǎn)載者:楊夕
面筋地址:https://github.com/km1994/NLP-Interview-Notes
個人筆記:https://github.com/km1994/nlp_paper_study

從本章開始介紹對話機器人的能力擴展。知識圖譜是將知識連接起來形成的一個網(wǎng)絡(luò)。由節(jié)點和邊組成,節(jié)點是實體,邊是兩個實體的關(guān)系,節(jié)點和邊都可以有屬性。知識圖譜除了可以查詢實體的屬性外,還可以很方便的從一個實體通過遍歷關(guān)系的方式找到相關(guān)的實體及屬性信息。例如:人脈路徑查詢,企業(yè)實際控制人查詢等。KBQA系統(tǒng)就是基于知識圖譜的問答系統(tǒng),給定一個用戶信息,在知識圖譜中通過推理的方式找到相關(guān)信息并回答。
知識圖譜構(gòu)建
構(gòu)建過程
1、用戶定義實體類別及屬性
用戶通過控制臺定義實體類別及描述,這個很關(guān)鍵,后續(xù)訓(xùn)練的時候會根據(jù)這些數(shù)據(jù)來從數(shù)據(jù)文件中抽取實體。還需要定義實體屬性,屬性的類型及描述,后續(xù)訓(xùn)練根據(jù)這些數(shù)據(jù)抽取屬性值。實體之間的關(guān)系自動抽取。
2、上傳數(shù)據(jù)
數(shù)據(jù)需要包含實體,屬性及關(guān)系信息,否則會抽取失敗。
3、啟動信息抽取
相關(guān)算法
第一部分,信息抽取,涉及到的實體識別、實體鏈接、實體關(guān)系識別、概念抽取 等,需要用到許多自然語言處理的技術(shù),包括但不僅限于分詞、詞性標注、分布式語義表達、篇章潛在主題分析、同義詞構(gòu)建、語義解析、依存句法、語義角色標注、語義相似度計算等等。
第二部分才到融合,目的是將不同數(shù)據(jù)源獲取的知識進行融合構(gòu)建數(shù)據(jù)之間的關(guān)聯(lián)。包括實體對齊、屬性對齊、沖突消解、規(guī)范化等,更多的是做一個數(shù)據(jù)的映射、實體的匹配,可能還會涉及的是本體的構(gòu)建和融合。最后融合而成的知識庫存入上一部分提到的數(shù)據(jù)庫中。
知識圖譜問答
使用Rasa平臺連接知識圖譜的回答,本質(zhì)上就是獲取意圖和實體信息,然后到知識庫里面去查找對應(yīng)的內(nèi)容。
第一種辦法,rasa的意圖識別很粗獷,比如只有kbqa_intent,那么kbqa_action里面就需要根據(jù)rasa提供的實體信息來區(qū)分如何讀取知識圖譜,應(yīng)該是查詢屬性,還是查詢關(guān)系等等。Rasa論壇中,有個kbqa機器人的文章,大體也是這個思路,只是他將知識圖譜相關(guān)的意圖分為三類,實體查詢,關(guān)系查詢和屬性查詢,本質(zhì)上都是要在只是圖譜里面做細致的分類。這種方式相對于第二種方法,耦合度更低。知識圖譜的問答可以直接將用戶的問題使用圖計算的方式,從圖數(shù)據(jù)庫中檢索。所以更靈活。
配置流程
在rasa的nlu中配置對應(yīng)的意圖,如kbqa_intent
在rasa的rule或story中,將對應(yīng)的kbqa intent轉(zhuǎn)到自定義kbqa_action
在kbqa_action調(diào)用知識圖譜的推理接口
推理過程
由于在rasa的pipeline里面,實體的實體和關(guān)系比較粗,只是為了給用戶的問題轉(zhuǎn)到kbqa_action,因此在kbqa_action要重新對用戶的問題做分析計算,找出答案。
第二種方法,rasa提供的意圖很細節(jié),已經(jīng)到了知識圖譜的關(guān)系或者屬性的級別,kbqa_action只需要在kb中實體對其,然后找到匹配的關(guān)系或者屬性即可。
配置流程
在rasa的nlu中配置對應(yīng)的意圖,如kbqa_intent
在rasa的rule或story中,將對應(yīng)的kbqa intent轉(zhuǎn)到自定義kbqa_action
在kbqa_action調(diào)用知識圖譜的推理接口
推理過程
在rasa的pipeline里面,已經(jīng)將實體和意圖識別出來了,因此,這里的推理算法就容易很多,主要步驟如下:
1、實體連接
根據(jù)kbqa_action傳過來的實體,在知識圖譜中找到對應(yīng)的實體。
2、屬性或關(guān)系預(yù)測
根據(jù)kbqa_action傳過來的意圖,對實體相關(guān)的屬性和關(guān)系做匹配,最終找到對應(yīng)的答案。
例如,傳過來的實體和意圖(蘋果,顏色),那么實體連接就是“蘋果”,蘋果包含屬性有[顏色,味道,產(chǎn)地],那么經(jīng)過相似算法后會匹配到顏色這個屬性,查詢知識圖譜找到答案。
相關(guān)算法
實體的連接方法就是同義詞表和模糊匹配算法即可。
關(guān)系和屬性的匹配算法,考慮到知識圖譜的訓(xùn)練數(shù)據(jù)和rasa nlu的數(shù)據(jù)可能有些不同,因此考慮語義相似度和同義詞表2種匹配。例如word2vec的余弦距離等。
