论文浅尝 | SMBOP: Semi-autoregressive Bottom-up Semantic Parsing
筆記整理:陳永銳,東南大學博士
來源:NAACL 2021
概述
近年來語義解析的事實上的標準解碼方法是使用自頂向下的深度優先遍歷對目標程序的抽象語法樹進行自回歸解碼。該工作提出了一種替代方法:半自回歸自底向上解析器(SMBOP),它在解碼步驟 t 構建高度為 t 的 top-K 子樹。與自上而下的自回歸解析相比,我們的解析器享有多項優勢。
從效率的角度來看,自下而上的解析允許并行解碼特定高度的所有子樹,導致對數運行時復雜度而不是線性。
從建模的角度來看,自下而上的解析器在每一步學習有意義的語義子程序的表示,而不是語義空的部分樹。
在Spider數據集上,與使用自回歸解碼的語義解析器相比,SMBOP 使解碼時間加快了 2.2 倍,訓練時間加快了 5 倍,獲得了69.5%的完全匹配準確率, 71.1 %的執行準確率。
動機
盡管語義解析中的自下而上解碼很少受到關注,它實際上存在幾個優點。從效率的角度來看,自底向上解析自然可以半自回歸完成:在每個解碼步驟 t,解析器并行生成深度為 t 的 top-K 程序子樹(類似于波束搜索)。這導致運行時復雜性在樹的大小上是對數的,而不是線性的,可以提升效率。從建模的角度來看,神經自下而上的解析為有意義的(和可執行的)子程序提供了學習表示,這些子程序是在搜索過程中計算的子樹。
上圖說明了SMBOP解析器的單個解碼步驟。 給定一個具有 K = 4 個高度為 t 的樹(藍色向量)的beam Zt,SMBOP使用cross-attention機制將樹與來自輸入問題(橙色)的信息關聯起來。然后,對邊界進行評分,即可以使用當前beam 的語法構造的所有高度為 t + 1 的樹的集合,并保留 top-K 樹(紫色)。最后,生成每個新 K 樹的表示并將其放置在新的beam ? Zt+1 中。在 T 個解碼步驟之后,解析器返回 ZT 中對應于完整程序的最高得分樹。
SMBOP解析器
SMBOP算法如下所示:
在每一步 t,注意力都被用來將樹與來自輸入問題表示(第 5 行)的信息關聯起來。這種表示用于對邊界上的每棵樹進行評分:深度為 t + 1 的子樹集合,可以從梁上深度為 t 的子樹(第 6-7 行)構建。在為步驟 t+1 選擇前 K 棵樹后,我們為它們計算一個新的表示(第 8 行)。最后,從最終解碼步驟 T 中返回得分最高的樹。SMBOP模型中的步驟獨立地對樹表示進行操作,因此每個步驟都被有效地并行化。
SMBOP 類似于波束搜索,因為在每個步驟中它都擁有固定高度的前 K 棵樹。它也與(修剪的)圖表解析有關,因為步驟 t + 1 處的樹是根據在步驟 t 找到的樹計算出來的。這與序列到序列模型不同,在序列到序列模型中,光束上的項目是相互競爭的假設,沒有任何交互。
下圖給出了SMBOP所使用的關系代數語法
模型架構
SMBOP 在每個解碼步驟保持一個beam。與標準beam search不同,SMBOP波束上的樹不僅相互競爭,而且相互組合(類似于圖表解析)。SMBOP使用cross attention將beam上的樹表示上下文化。接下來,計算邊界上所有高度為t+1的樹的分數。可以通過對梁樹應用一元(包括 KEEP)運算或二元運算來生成樹。我們為邊界樹定義了一個評分函數,其中通過在樹 zi 上應用一元規則 u 生成的新樹的評分定義如下:
訓練過程
為了指定損失函數,SMBOP定義了監督信號。給定正確 SQL 程序,將其轉換為黃金平衡關系代數樹。在訓練期間,我們應用“自下而上的教師強制”,也就是說,我們用來自 Zgold 的所有樹填充光束 Zt,然后用得分最高的非黃金預測樹填充光束的其余部分(大小為 K)。這保證了我們將能夠在每個解碼步驟計算損失,如下所述。損失函數如下所示:
實驗結果
該論文使用了Spider數據集進行了實驗。
可見,SMBOP在執行準確率上取得了最優的結果。
SMBOP在效率上也比自回歸解碼器更強。
OpenKG
OpenKG(中文開放知識圖譜)旨在推動以中文為核心的知識圖譜數據的開放、互聯及眾包,并促進知識圖譜算法、工具及平臺的開源開放。
點擊閱讀原文,進入 OpenKG 網站。
總結
以上是生活随笔為你收集整理的论文浅尝 | SMBOP: Semi-autoregressive Bottom-up Semantic Parsing的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 论文浅尝 | 可建模语义分层的知识图谱补
- 下一篇: 论文浅尝 | WWW2020 - 知识图