論文淺嘗 | CoRR - 面向複雜知識問答的框架語義解析方法

論文筆記整理:譚亦鳴,東南大學博士。


 

     

來源:CoRR abs/2003.13956 (2020)

鏈接:https://arxiv.org/pdf/2003.13956.pdf

 

KBQA任務中的語義解析目標是將自然語言問題轉化爲標準查詢,而後用於構建知識庫查詢。現有的方法主要依賴於句法解析(例如依存句法),但是在長句的複雜問題上,這類表達形式存在準確性不足的問題。因此,在這篇文章裏,作者提出一種新的框架(skeleton,或者說骨架?)語法解析模型SPARQA,用於表達複雜問題的高層結構。

 

動機及概述

爲了理解和回答複雜問題,作者定義了兩個挑戰:

             

1. 語義解析,目前的語義解析主要依賴於依存句法,但是與簡單問題的解析不同,單純依靠依存句法在複雜問題的解析上會出現許多錯誤。隨着錯誤傳遞則會影響到整個語義解析以及問答的性能。圖2是作者列舉的一個例子,表明了長距離依賴下,依存解析的準確性將出現明顯偏差:“movie”和“had”原本是一組依存關係,但由於長句的影響,這組依存沒有被識別出來,卻生成了“in”和“had”這樣的錯誤依存。

             

2. 一般而言,一個問題通常被轉化爲獨立於知識庫的圖結構 ungrounded query,但是這個query的結構相比以知識庫爲基礎的formal grounded query可能有所不同,這種情況在複雜問題(包含更多謂詞)的情況下同樣存在。如圖1所示,問句“what movie that Miley Cyrus acted in had a director named Tom Vaughan?”的ungrounded query包含了兩個謂詞“acted in”以及“director”(見1c),但是在Freebase中,對應grounded query則包含三個謂詞(見1d),這是由Freebase的構建機制所決定的。

 

爲了處理上述兩個挑戰,作者提出了一種基於框架(骨架)的語義解析方法,如圖3所示,對於輸入的問題,首先定義其高層框架(骨架)結構,用於輔助生成更精確的ungrounded query,以KB爲基礎ungrounded query及其結構變體用於生成grounded query,而後利用一個多策略打分器對query做排序從而檢索得到問題的答案。

             

方法

Skeletion Parsing

首先需要對Skeletion語法的部分定義進行說明:

  1. Skeleton 句子的框架(骨架)是一棵有向樹,其中節點表示句子中的text span,邊表示節點之間的附加關係

  2. Text span表示句子中的短語級別語義單元,一般包含四種類型:從句Clause (S), 名詞短語Noun Phrase (NP), 動詞短語Verb Phrase (VP), and 介詞短語Prepositional Phrase (PP)。

  3. 附加關係 即text span之間的依存關係,這裏考慮依存語法中常見的七種:adjectival clause (acl), its sub-type relative clause modifier (acl:relcl), nominal modifier (nmod), its sub-type possessive alternation (nmod:poss), coordination (conj), open clausal complement (xcomp), and adverbial clause modifier (advcl).

 

Skeleton解析算法

下圖描述了本文提出的語義解析算法:

即對於輸入的自然語言問句Q, 通過一個循環過程逐步切分Q中的text span,並補充span之間的邊,從而得到Q對應的Skeleton。(示例見圖1b)

             

 

作者使用BERT實現了圖1中的四個過程,用於得到grounded query,如圖4所示:

四個步驟分別爲:

  1. Split(本質上是單句分類任務),預測句子是否能進一步被切分

  2. Textspan(視爲QA任務),預測下一個從Q中被切分的text span,並標記於Q中

  3. Headwordidentification(視爲QA任務),將剩餘Q視作文本段落,s視作問題,輸出Q中的一個span

  4. AttachmentRelationClassifiction 輸入s以及剩餘的Q,預測兩者之間的relation

             

 

Multi-Strategy Scoring

爲了全面地對query進行打分,作者提出並融合了兩種打分策略:

1. 句子級別的打分

對於給定的測試問句,首先找到訓練集中與之最爲相似的問題(在它們的pattern中具有相同數量的虛擬字符(佔位符?)) ,將測試問題中的實體對應的替換掉其中的佔位符,從而得到一個grounded query,如果這個query能夠獲取到非空答案,那麼它的得分爲1.0,否則爲0.0.

2. 詞彙級別的打分

這個打分基於詞袋,如圖5所示,首先問題和formal query被表示爲詞袋形式,移除了其中的具體實體以及停用詞,剩下的部分主要描述了其中的謂詞,利用GloVe進行embedding 之後,計算兩者的餘弦相似,從而給出詞級別得分。

             

實驗與結果

數據集:Graph Questions (Su et al. 2016) 包含5166個問題,其中2258用於訓練

ComplexWebQuestion,包含34689個問題,按照80-10-10的方式切分訓練驗證和測試集

 

實驗結果

             

             

 


 

OpenKG

開放知識圖譜(簡稱 OpenKG)旨在促進中文知識圖譜數據的開放與互聯,促進知識圖譜和語義技術的普及和廣泛應用。

點擊閱讀原文,進入 OpenKG 博客。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章