論文筆記整理:譚亦鳴,東南大學博士。
來源: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語法的部分定義進行說明:
Skeleton 句子的框架(骨架)是一棵有向樹,其中節點表示句子中的text span,邊表示節點之間的附加關係
Text span表示句子中的短語級別語義單元,一般包含四種類型:從句Clause (S), 名詞短語Noun Phrase (NP), 動詞短語Verb Phrase (VP), and 介詞短語Prepositional Phrase (PP)。
附加關係 即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所示:
四個步驟分別爲:
Split(本質上是單句分類任務),預測句子是否能進一步被切分
Textspan(視爲QA任務),預測下一個從Q中被切分的text span,並標記於Q中
Headwordidentification(視爲QA任務),將剩餘Q視作文本段落,s視作問題,輸出Q中的一個span
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 博客。