论文浅尝 | 基于知识图谱的子图匹配回答自然语言问题
本文轉(zhuǎn)載自公眾號:珞珈大數(shù)據(jù)。
? ? ? ? 本次論文講解的是胡森? 鄒磊? ?于旭? 王海勛? 趙東巖等作者寫的論文-Answering Natural Language Questions by Subgraph Matching over Knowledge Graphs,主要是分享一些閱讀論文的收獲,希望能對正在學(xué)習(xí)自然語言的初學(xué)者帶來一些啟發(fā)。本次ppt的參考資料主要是論文和北京大學(xué)鄒磊教授的面向知識圖譜的自然語言問答。
? ? ? 目前基于KG的問答模式有兩種,一種是基于信息檢索的方式,一種是基于語義分析的方式。前者較之于后者,沒有真正關(guān)心語義,主要是ranker算法,擅于處理簡單問題,后者則是從語義的角度將用戶的自然語言問題轉(zhuǎn)化為邏輯形式,再在KG中執(zhí)行查詢。
? ? ? ?ganswer 就是基于語義分析的方法,區(qū)別于傳統(tǒng)的語義解析的方法,它是一種新穎的面向知識圖譜的自然語言問答系統(tǒng),以圖數(shù)據(jù)驅(qū)動的視角回答RDF知識庫上的自然語言問題,本文解決了查詢匹配時(shí)自然語言問題的模糊性,如果找不到匹配,則會保存消除歧義的陳本,稱之為RDF Q / A的圖數(shù)據(jù)驅(qū)動方法。
? ? ? 雖然本文的方法中仍然存在兩個(gè)階段“問題理解”和“查詢評估”,但本文并不像現(xiàn)有解決方案那樣在問題理解步驟中生成SPARQL。 正如本文所知,SPARQL查詢也可以表示為查詢圖,它不包含任何歧義。?相反,構(gòu)建了一個(gè)表示用戶查詢意圖的查詢圖,但它允許在問題理解階段存在歧義,例如短語鏈接和查詢圖結(jié)構(gòu)的模糊性。?
? ? ? ?圖數(shù)據(jù)驅(qū)動解決方案的核心在于兩個(gè)方面:一個(gè)是如何精確構(gòu)建語義查詢圖Q^s,另一個(gè)是如何有效地找到匹配。為了解決上述問題,本文提出了兩個(gè)不同的框架:第一個(gè)被稱為“關(guān)系(邊)優(yōu)先”。這意味著總是從自然語言問句N中提取關(guān)系,并將它們表示為邊。然后,組裝這些邊形成一個(gè)語義查詢圖。第二個(gè)框架采用了另一個(gè)角度,稱為“節(jié)點(diǎn)優(yōu)先”。它從查找節(jié)點(diǎn)(實(shí)體/類短語和通配符)開始,嘗試引入邊來連接它們以形成語義查詢圖Q^s。此外,兩個(gè)框架之間的另一個(gè)主要區(qū)別是,當(dāng)問題句子中存在一些隱含或不確定的關(guān)系時(shí),節(jié)點(diǎn)優(yōu)先框架定義了Q^s的超級圖(稱為Q^u)。換句話說,節(jié)點(diǎn)優(yōu)先框架并不是像關(guān)系優(yōu)先框架那樣在子圖匹配評估之前修復(fù)Q^s的結(jié)構(gòu)。
? ? ?
? ? ? 除了KG以外,我們在離線階段,構(gòu)建了兩個(gè)字典,它們是實(shí)體提及字典和關(guān)系提及字典。 它們將用于在線階段從用戶的問題句子中提取實(shí)體和關(guān)系。實(shí)體提及字典有助于實(shí)體鏈接,關(guān)系提及字典將自然語言關(guān)系短語映射到RDF數(shù)據(jù)集中的謂詞。實(shí)體提及字典的構(gòu)建不是本文的貢獻(xiàn),本文采用CrossWikis詞典。關(guān)系提及字典借用TF-IDF計(jì)算映射關(guān)系rel的置信概率。
? ? ?
? ? ? 首先先介紹下關(guān)系優(yōu)先框架,看整體的框架圖,首先給定一個(gè)自然語言問題:What is the budget of the film directed by Paul Anderson?,之后進(jìn)行關(guān)系抽取構(gòu)建語義查詢圖,進(jìn)行短語映射到RDF中G上的實(shí)體或者謂詞邊徑,根據(jù)top-k子圖匹配算法計(jì)進(jìn)行打分。
? ? ?
? ? ? 本文兩個(gè)框架都存在兩個(gè)階段:“問題理解”和“查詢評估”,在關(guān)系優(yōu)先框架中,問題理解的目標(biāo)是建立一個(gè)語義查詢圖來表示用戶在N中的查詢意圖,接下來我們詳細(xì)講一下如何構(gòu)建一個(gè)語義查詢圖。
? ? ? 首先是關(guān)系識別,如何從一個(gè)自然語言問題識別關(guān)系提及,本文通過為關(guān)系提及字典中的所有關(guān)系提及建立倒排索引。對于上述具體問題,我們識別出buget of和direct by兩種關(guān)系。
? ? ?
? ? ?? ?在Y中找到關(guān)系后,我們查找兩個(gè)相關(guān)的節(jié)點(diǎn)。如果一個(gè)短語被認(rèn)為是實(shí)體/類的提及,它就被認(rèn)為是一個(gè)節(jié)點(diǎn)。? ? ? 外,節(jié)點(diǎn)也基于嵌入周圍的語法主語和類似對象的關(guān)系來識別,這些關(guān)系如ppt中所示。
? ? ? 假設(shè)我們找到一個(gè)關(guān)系rel的嵌入子樹y。我們通過檢查節(jié)點(diǎn)w中的每個(gè)短語w來確認(rèn)arg1是否是實(shí)體/類提及,或者w和它的一個(gè)子元素之間是否存在上述主體類關(guān)系(通過檢查依賴樹中的邊標(biāo)簽),如果存在主體關(guān)系,我們將該子項(xiàng)添加到arg1。同樣,arg2被類對象關(guān)系所識別。
? ? ? ?另一方面,當(dāng)arg1 / arg2在這一步之后為空時(shí),我們引入幾個(gè)啟發(fā)式規(guī)則如ppt中所示。如果在應(yīng)用上述啟發(fā)式規(guī)則后,我們?nèi)匀粺o法找到節(jié)點(diǎn)短語arg1 /arg2,我們只需在進(jìn)一步考慮丟棄關(guān)系提及rel。
? ? ? 在獲得了自然語言N的所有語義關(guān)系后,我們需要建立一個(gè)語義查詢圖。如上圖中的例子,兩個(gè)語義關(guān)系?“budget of”, “what”, “film”?和?“direct by”, “film”, “Paul Anderson”?表示為邊,兩個(gè)邊共享一個(gè)公共端點(diǎn)film,則這兩條邊共享一個(gè)公共端點(diǎn),
? ? ?
? ? ? 討論如何將關(guān)系提及和節(jié)點(diǎn)短語映射到候選謂詞/謂詞路徑和實(shí)體/類,給定語義查詢圖中的節(jié)點(diǎn)vi,如果vi是一個(gè)實(shí)體短語或類短語,我們可以使用基于實(shí)體字典的實(shí)體鏈接算法來檢索所有可能對應(yīng)于vi的實(shí)體/類(在RDF圖G中),標(biāo)記為C(vi),例如v3(“Paul Anderson”)對應(yīng)于“Paul Anderson(actor)”,“Paul Anderson”和“Paul ·W·S·Anderson”,?;如果vi是一個(gè)通配符(如wh-word),我們假設(shè)C(vi)包含RDF圖G中的所有頂點(diǎn)。使用δ(arg,u)或δ(arg,c)來表示置信概率。
? ? ? ?同樣,根據(jù)關(guān)系提及字典將Q^S中的每個(gè)邊vivj映射到候選預(yù)測列表,表示為?Cvivj。? 每個(gè)映射與置信概率? ? ? δ(rel,L)相關(guān)聯(lián)? ?和邊徑“v2v3”映射到?director?,?writer?和?producer?。? ?
? ? ?閱讀本文的時(shí)候是帶著問題去讀的,就是語義查詢圖需要轉(zhuǎn)換為sparql查詢語言,其實(shí)本文中有一句話寫到:SPARQL查詢也可以表示為查詢圖,它不包含任何歧義。 下面走進(jìn)代碼。
? ? ?在ganswer的源碼中查找到關(guān)于如何去數(shù)據(jù)庫gstore中查找,也只是一種形式上的轉(zhuǎn)換。
? ? ? ?本文定義了子圖匹配的定義,需要滿足三個(gè)條件,假設(shè)所有候選列表都按置信概率的非遞減順序排列。Q^s的每個(gè)子圖匹配都有一個(gè)分?jǐn)?shù)。 它是從每個(gè)邊和頂點(diǎn)映射的置信概率計(jì)算出來的。 計(jì)算公式如上,權(quán)重α的默認(rèn)值是0.5,這意味著實(shí)體分?jǐn)?shù)和關(guān)系分?jǐn)?shù)具有相同的權(quán)重。
? ? ? ?一旦我們確定中每個(gè)候選人名單的候選人,我們就會獲得一個(gè)“選擇”。該選擇由n長度向量表示,其中n是候選列表的總數(shù)(算法3中的第3行)。最初矢量值為0,這意味著我們?yōu)槊總€(gè)候選列表選擇第一個(gè)候選(第4-5行)。每次我們從H的堆頂獲得最佳選擇時(shí)。我們可以使用所選候選項(xiàng)(第6-7行)替換中的所有頂點(diǎn)/邊界標(biāo)簽來構(gòu)建查詢圖。第8行應(yīng)用VF2等現(xiàn)有的子圖同構(gòu)算法來查找上G的所有子圖匹配。然后我們保持最大堆H,以保證從H得到的每個(gè)選擇在所有未嘗試選擇中得分最高,如第9行所示。對于每個(gè)候選列表Li,我們在當(dāng)前選擇Γ的第i位添加一個(gè)以獲得新的選擇Γ并將其放入H.因此,當(dāng)我們找到k個(gè)匹配時(shí),我們可以提前終止。
? ? ? ?目前關(guān)系優(yōu)先框架有兩個(gè)主要的障礙:一是高度依賴解析器和啟發(fā)式規(guī)則,如果句法依賴樹存在某些錯(cuò)誤,就會導(dǎo)致錯(cuò)誤的語義查詢圖的結(jié)構(gòu)和錯(cuò)誤的答案。另一個(gè)是無法識別隱含關(guān)系。如果關(guān)系沒有明確出現(xiàn)在問題句子中,則很難說明這種語義關(guān)系,因?yàn)槲覀兊年P(guān)系抽取依賴于關(guān)系提及字典中的關(guān)系提及。例如中國女孩。
? ? ? 考慮到上述兩個(gè)障礙,我們設(shè)計(jì)了一個(gè)健全的框架,即使存在隱含關(guān)系和依賴關(guān)系解析樹中的錯(cuò)誤。 第二個(gè)框架中有兩個(gè)關(guān)鍵點(diǎn):
? ? ? ? 1)第一步是從問句N中提取節(jié)點(diǎn)短語(如實(shí)體短語,類短語和wh-詞),而不是第一個(gè)框架中的關(guān)系提取。
? ? ? ? 2)我們不打算在問題理解步驟中構(gòu)建語義查詢圖Q^s。 相反,我們構(gòu)建了一個(gè)超語義查詢圖Q^u,它可能具有一些不確定或隱含的關(guān)系(即邊)。 換言之,我們允許在問題理解步驟中查詢圖的結(jié)構(gòu)模糊性,這將在查詢評估步驟中解決。
? ? ? ? ?節(jié)點(diǎn)優(yōu)先框架也存在問題理解和查詢執(zhí)行兩個(gè)階段。問題理解部分的目標(biāo)是構(gòu)建超級語義查詢圖Q^u,超語義查詢圖與類似,但允許明確或不確定的關(guān)系。
? ? ?
? ? ?例如問題:What is the budget of the film directed by Paul Anderson and starred by a Chinese actor?? ? ? 通常,我們提取實(shí)體,類和通配符作為節(jié)點(diǎn)。 我們采用基于字典的實(shí)體鏈接方法來查找實(shí)體和類。 我們收集所有不能映射到任何實(shí)體和類作為通配符的wh-詞和名詞。節(jié)點(diǎn)識別結(jié)果如圖所示即“what”,“film“,”Paul Anderson“,”chinese“,”actor“等。
? ? ? 鑒于所有節(jié)點(diǎn)都已被識別,下一步是構(gòu)建一個(gè)超語義查詢圖,? ? ? 給定一個(gè)節(jié)點(diǎn)集合V(已經(jīng)在第一步中被識別)和問題句子的依賴樹Y,對于任意兩個(gè) 節(jié)點(diǎn)vi和vj(∈V),當(dāng)且僅當(dāng)vi和vj之間的簡單路徑不包含V中的其他節(jié)點(diǎn)時(shí),引入vi和vj之間的邊。
? ? ? 依賴關(guān)系樹中“what”和“film”之間的路徑包含三個(gè)詞:“is”,“budget”和“of”,因此v1和v2之間的邊緣標(biāo)簽(在中)是“…budget of “。 如果簡單路徑不包含任何單詞(例如“actor”和“Chinese”之間的路徑),則邊標(biāo)簽為空。
? ? ? 映射節(jié)點(diǎn)和標(biāo)記邊的方法與的短語映射相同,關(guān)注如何將未標(biāo)記的邊映射到RDF圖G中的謂詞。首先vi與vj之間滿足以上兩個(gè)假設(shè)。
? ? ? ?如果兩個(gè)節(jié)點(diǎn)都是常數(shù)(即,實(shí)體或類),例如“中國演員”,則我們將兩個(gè)節(jié)點(diǎn)定位在RDF圖G處并找出它們之間的謂詞。如果一個(gè)節(jié)點(diǎn)vi是一個(gè)通配符,另一個(gè)vj是一個(gè)實(shí)體或類,我們在RDF圖G中定位vj,并選擇最頻繁的相鄰謂詞作為匹配邊緣的候選謂詞。
? ? ? 節(jié)點(diǎn)優(yōu)先框架的算法采用自下而上的算法,具有四個(gè)特點(diǎn),下面詳細(xì)介紹下算法。
? ? ? 與基線算法不同,我們在開始時(shí)不決定查詢圖。相反,我們試圖通過擴(kuò)展當(dāng)前的部分結(jié)構(gòu)來構(gòu)建“正確”的圖形結(jié)構(gòu)。通常,在每一步中,我們通過擴(kuò)展一個(gè)更多的邊來擴(kuò)展當(dāng)前的部分結(jié)構(gòu)Q,(算法5中的第6行)。最初,Q僅包含中的一個(gè)起始頂點(diǎn)。我們選擇候選數(shù)量最少的頂點(diǎn)作為起始頂點(diǎn)。如果新的擴(kuò)展的部分結(jié)構(gòu)Q可以通過RDF圖G找到匹配(第7-11行),我們繼續(xù)搜索分支。此外,如果Q已經(jīng)是的一個(gè)跨越子圖(第9-11行),我們記錄Q的匹配以及答案集RS中的匹配分?jǐn)?shù)。我們只保留RS中的當(dāng)前top-k匹配和當(dāng)前閾值δ。如果Q無法通過RDF圖G找到匹配(第12-13行),我們回溯搜索分支。
? ? ? 我們分別使用兩個(gè)基準(zhǔn)評估我們的DBpedia和Freebase系統(tǒng)。 對于DBpedia,我們使用QALD-6作為基準(zhǔn)。 我們知道,QALD是一系列開放式域名問答系列活動,主要基于DBpedia。?
? ? ? NFF方法加入了QALD-6比賽,并以F-1的方式獲得第二名8。 NFF可以正確回答68個(gè)問題,而關(guān)系優(yōu)先框架(RFF)可以正確回答40個(gè)問題。請注意,CANaLI旨在回答受控的自然語言問題,其中用戶需要在問句中指定精確的實(shí)體和謂詞(用URI表示)。換句話說,CANaLI要求用戶為短語鏈接做消歧任務(wù),而CANaLI不是一個(gè)完全自然的語言問答系統(tǒng)。
? ? ? 對于Freebase,我們使用WebQuestions [17]作為基準(zhǔn),我們系統(tǒng)的平均F1(49.6%)略低于最先進(jìn)的工作[21](52.5%)和Yavuz等人。 [22](52.6%)。? ? 這是因?yàn)閃ebQuestions中的問題比QALD更簡單,大多數(shù)問題可以轉(zhuǎn)化為“一個(gè)三重”的查詢,即只有一個(gè)實(shí)體和一個(gè)關(guān)系。實(shí)際上,我們的方法的優(yōu)勢在于回答復(fù)雜的問題(即多跳關(guān)系問題),例如QALD基準(zhǔn)測試中的一些問題。?
? ? ? 列出了在線演示的網(wǎng)址:http://ganswer.gstore-pku.com/,大家有興趣的可以在網(wǎng)站上嘗試一下。我試了關(guān)系優(yōu)先框架和節(jié)點(diǎn)優(yōu)先框架的兩個(gè)問題,并點(diǎn)擊查詢,獲得結(jié)果如ppt中所示。
分享至此接近尾聲,歡迎感興趣人士留言一起探討。
OpenKG.CN
中文開放知識圖譜(簡稱OpenKG.CN)旨在促進(jìn)中文知識圖譜數(shù)據(jù)的開放與互聯(lián),促進(jìn)知識圖譜和語義技術(shù)的普及和廣泛應(yīng)用。
點(diǎn)擊閱讀原文,進(jìn)入 OpenKG 博客。
總結(jié)
以上是生活随笔為你收集整理的论文浅尝 | 基于知识图谱的子图匹配回答自然语言问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Dockerfile构建docker镜像
- 下一篇: 从GAN到WGAN到LipschitzG