论文笔记:HIE-SQL:History Information Enhanced Network for Context-Dependent Text-to-SQL Semantic Parsing
論文筆記:HIE-SQL: History Information Enhanced Network for Context-Dependent Text-to-SQL Semantic Parsing
目錄
- 論文筆記:HIE-SQL: History Information Enhanced Network for Context-Dependent Text-to-SQL Semantic Parsing
- 導語
- 摘要
- 1 簡介
- 2 相關工作
- 3 HIE-SQL
- 3.1 預備知識
- 3.2 Multimodal Encoder
- 3.3 SQLBERT
- 3.4 HIE層
- 3.5 Decoder
- 3.6 Regularization Strategy
- 4 實驗
- 4.1 實驗設置
- 4.2 實驗結果
- 4.3 Ablation Study
- 4.4 Case Study
- 5 總結
導語
論文的核心亮點如下:
- 會議:ACL 2022 Findings
- 地址:https://openreview.net/pdf?id=fX8TXF-LD21
摘要
近年來,上下文相關(Context Dependent)的Text-to-SQL語義解析在交互過程中將自然語言轉換為SQL,引起了人們的廣泛關注。以前的工作利用了來自交互歷史語句或之前預測的SQL查詢的上下文依賴信息,但由于自然語言和邏輯形式SQL之間的不匹配,無法同時利用這兩種信息。在這項工作中,我們提出了一個歷史信息增強的Text-to-SQL模型(HIE-SQL),以利用來自歷史語句和最后一次預測SQL查詢的上下文依賴信息。針對這種不匹配,我們將自然語言和SQL作為兩種模態,提出了一個雙模態預訓練模型來彌補它們之間的差距。此外,我們還設計了一個模式鏈接圖來增強語句和SQL查詢與數據庫模式的連接。我們展示了歷史信息增強方法顯著提高了HIE-SQL的性能,它在寫入時在兩個上下文相關的Text-to-SQL基準測試SparC和CoSQL數據集上實現了最新的結果。
1 簡介
對話形式的數據庫查詢是Text-to-SQL語義解析的一個新的研究熱點,并使我們在工業應用中受益。以前的大多數工作都集中在上下文無關的Text-to-SQL任務上,并提出了許多具有競爭力的模型。一些模型在上下文相關的任務上通過簡單地將交互歷史信息添加到輸入的最后獲得了令人驚訝的表現。尤其是PICARD (Scholak等人,2021年)在Spider和CoSQL兩種測試中都實現了最先進的性能。然而,任何事物都有兩面性。這意味著在上下文相關的Text-to-SQL語義解析中對上下文信息的探索還不夠。
與上下文無關的text-toSQL語義分析相比,上下文相關的text-toSQL語義分析更具挑戰性,因為話語中的各種依賴類型使模型容易出現解析錯誤。R2SQL認為,兩個相鄰的話語之間的不同上下文依賴關系需要模型謹慎地在話語和數據庫模式之間建立動態連接。然而,語境信息并不僅僅來自上一句話語。如圖1所示,對于 S 3 S_3 S3?的預測,其依賴于用戶話語(即Question)中的"the name of the teachers and the courses"。對于長距離依賴,一個可行的建議是從先前預測的SQL查詢中繼承上下文信息。但是,由于自然語言和邏輯形式的SQL之間的不匹配,利用先前預測的查詢并不是一件容易的事情。正如Liu等人(2020)得出的結論,對上一個預測的SQL查詢和話語進行粗略編碼是不可能的,而在對13種現有上下文建模方法的評估中,將交互歷史話語和當前話語連接起來似乎具有驚人的競爭性。
在本文中,我們提出了一個歷史信息增強網絡,以充分利用歷史交互語句和以前的預測SQL查詢。我們首先將邏輯形式的SQL查詢作為使用自然語言的另一種形式。我們提出了SQLBERT,這是一個用于SQL和自然語言的雙模預訓練模型,它能夠捕獲語義連接并彌合SQL和自然語言之間的差距。它生成通用表示,并支持上下文相關的Text-to-SQL語義解析。
此外,我們提出了一個歷史信息增強的模式鏈接圖來表示當前話語、交互歷史話語、最后一次預測查詢和相應的數據庫模式之間的關系。考慮到在互動中來回轉換話題是很奇怪的,我們假設長期依賴是連續的。例如, S 3 S_3 S3?依賴于 U 1 U_1 U1?意味著在圖1中 S 2 S_2 S2?也依賴于 U 1 U_1 U1?。在這種情況下,我們可以利用上次預測查詢的長期依賴性。因此,與之前僅包含語句和數據庫模式的模式鏈接圖不同,上一個預測查詢參與了我們的圖。此外,我們在圖式連接圖中區分了當前話語和互動歷史話語。我們使用相對自我注意機制對圖式鏈接關系進行編碼。
在我們的實驗中,提出的SQLBERT方法和歷史信息增強的模式鏈接大大提高了我們的模型的性能。在撰寫本文時,我們的模型在兩個大型跨域上下文相關的text-to-SQL排行榜上都排名第一,SparC和CoSQL。具體來說,我們的模型在SparC上的問題匹配準確率為64:6%,交互匹配準確率為42:9%,在CoSQL上的問題匹配準確率為53:9%,交互匹配準確率為24:6%。
2 相關工作
Text-to-SQL的語義解析是一個從自然語言到邏輯語言的語義解析研究過程。近年來,與上下文無關的Text-to-SQL語義分析得到了廣泛的研究。Spider是一個著名的數據集,用于復雜的、跨域上下文獨立的Text-to-SQL任務。一些工作應用圖神經網絡對數據庫模式進行編碼。Xu等人(2021)成功地將深度轉換器應用于上下文無關的text-to-SQL任務。Yu等人(2018a)使用基于樹的解碼器來匹配SQL語法。Rubin和Berant(2021)采用自底向上的方法改進了基于樹的解碼器。Scholak等人(2021)通過精心設計的限制規則改進基于序列的解碼器。Guo等人(2019)和Gan等人(2021)提出了SQL中間表示,以彌合自然語言和SQL之間的差距。Lei等人(2020)研究了模式鏈接在文本到sql語義解析中的作用。Wang等人(2020)提出了一個統一的框架來捕捉模式鏈接。Lin等人(2020)將模式鏈接表示為一個標記序列。Cao等人(2021)通過利用模式鏈接圖及其對應的線圖進一步集成非局部和局部特征。此外,許多以前的工作的重點是訓練預模型的上下文無關的Text-to-SQL語義解析。
隨著上下文相關的Text-to-SQL語義分析越來越受到重視,現有的研究工作主要集中在上下文相關的Text-to-SQL語義分析上。SparC和CoSQL數據集是專門為該任務提出的。EditSQL和IST-SQL專注于利用上一個預測查詢的優勢來預測當前查詢。EditSQL試圖從上一個預測查詢中復制重疊標記,而IST-SQL提出了一種交互狀態跟蹤方法來對來自最后一個預測查詢的信息進行編碼。IGSQL和R2SQL通過上下文感知的動態圖利用了當前話語、交互歷史話語和數據庫模式之間的上下文信息。值得注意的是,R2SQL通過將模式圖與交互話語中的標記連接起來來模擬信息。Yu等人(2021b)創造性地提出了一個上下文感知的預訓練語言模型。然而,對于上下文相關的Text-toSQL任務,充分利用交互歷史語句和預測查詢的問題仍然存在。
3 HIE-SQL
首先,我們正式定義多輪對話Text-to-SQL的語義解析問題。在本節的其余部分,我們將詳細介紹歷史信息增強的Text-to-SQL模型(HIE-SQL)的體系結構。
3.1 預備知識
任務定義 給出用戶當前的Question語句 u τ u_{\tau} uτ?、交互歷史 h = [ u 1 , u 2 , ? , u τ ? 1 ] h=[u_1, u_2, \cdots, u_{{\tau}-1}] h=[u1?,u2?,?,uτ?1?]和數據庫schema D = < T , C > D=<T,C> D=<T,C>,我們的任務目標是生成當前輪次對應的SQL語句 s τ s_{\tau} sτ?
模型架構 圖2展示了HIE-SQL的Encoder-decoder框架,我們將介紹以下四個模塊:
3.2 Multimodal Encoder
由于SQL和自然語言之間存在巨大的語法結構差異,使用單一語言模型同時對兩種語言進行編碼增加了訓練模型的難度和成本。受Tsimpoukelli等人為了解決多模態問題的啟發,我們構建了一個額外的預訓練編碼器,名為SQLBERT(我們將在下一節詳細介紹它),以預編碼SQL查詢。然后,我們學習一個參數 W ∈ R N × M W\in R^{N\times M} W∈RN×M來將N維的SQL語句的embedding映射到語言模型的M維的token嵌入空間:
其中, f ( ? ) f(\cdot) f(?)是SQLBERT最后一層的隱層狀態。
我們按 x = ( [ C L S ] , U , [ C L S ] , S , [ S E P ] , T , [ S E P ] , C ) x=([\mathrm{CLS}],{U},[\mathrm{CLS}],S,[\mathrm{SEP}],T,[\mathrm{SEP}],C) x=([CLS],U,[CLS],S,[SEP],T,[SEP],C)的格式輸入給HIE-SQL。
通過語言模型的嵌入層,將x中所有特殊的分隔符標記和語言詞標記轉換為詞嵌入。收集自然語言和SQL的嵌入,我們將它們放到語言模型中的self-attention塊中。在訓練階段,我們直接將上一輪的gold SQL查詢作為輸入SQL查詢,在第一輪時將S設為空。在推理階段,我們在最后一輪采用了由HIE-SQL生成的SQL查詢。
3.3 SQLBERT
如上所述,我們將SQL查詢視為另一種模式,它可以提供上一輪SQL查詢的信息作為模型的參考。因此,我們需要一個編碼器來提取SQL查詢的表示。
模型架構 考慮到多模態預訓練模型的成功,例如語言-圖像的ViLBERT和自然語言和編程語言的CodeBERT,我們提出了一個用于自然語言和SQL的雙模態預訓練模型SQLBERT。我們使用與RoBERTa相同的模型架構開發SQLBERT。參數總數為125M。
輸入格式 如圖3所示的訓練方法,我們設置了與CodeBERT相同的輸入。為了減少訓練的難度,解決自然語言和模式之間的不一致,我們在SQL查詢和問題的連接中附加了與問題相關的數據庫模式。我們將整個輸入序列表示為
x = ( [ C L S ] , s 1 , s 2 , . . . s n , [ S E P ] , q 1 , q 2 , . . . q m , [ S E P ] , t 1 : c 11 , c 12 , … , [ S E P ] , t 2 : c 21 , … , [ S E P ] , … ) x=(\left[\mathrm{CLS}\right],s_{1},s_{2},...s_{n},\left[S\mathrm{EP}\right],q_{1},q_{2},...q_{m},\left[S\mathrm{EP}\right], t_{1}\ :\ c_{11},c_{12},\ldots,\ [\,S\mathrm{EP}\,]\;,t_{2}\ :\ c_{21},\ldots,\,[\,\mathrm{SEP}\,]\;,\ldots) x=([CLS],s1?,s2?,...sn?,[SEP],q1?,q2?,...qm?,[SEP],t1??:?c11?,c12?,…,?[SEP],t2??:?c21?,…,[SEP],…)
其中s、q、t和c分別是SQL查詢、問題、表和列的token表示。
訓練目標 SQLBERT的主要訓練目標是遮罩語言建模(MLM)。值得注意的是,我們只mask SQL查詢的標記,因為我們只需要SQLBERT來在下游任務中對SQL查詢進行編碼。具體來說,我們利用了一個特殊的目標引用span mask(Sun et al., 2019),在SQL子句中采樣除保留詞(如SELECT、FROM、WHERE)外的15%獨立span,旨在避免泄漏答案,幫助SQLBERT更好地學習SQL的信息結構。在訓練階段,我們采用動態mask策略,隨機打亂原模式中表和列的順序。我們將span mask預測損失描述為
θ代表模型參數, s k m a s k s_k^{mask} skmask?是SQL中被mask掉的span, s / m a s k s^{/mask} s/mask是未掩碼部分。
訓練數據 與SCoRe使用多種開源的text-to-SQL數據集(WIKITABLES、WikiSQL、Spider、SparC和CoSQL)和數據合成方法來獲得大量的預訓練數據不同,我們只使用包括Spider、SparC和CoSQL在內的數據集來訓練SQLBERT。對于每個示例,我們只使用其問題、SQL查詢和相應的數據庫模式。至于SparC和CoSQL,這是一個上下文依賴的版本,我們只是將當前話語與歷史話語連接起來,構建問題輸入。訓練數據集的大小為34175。
3.4 HIE層
Schema-Linking Graph 為了顯式的編碼復雜的數據庫schema之間的關系。我們將其轉換為一個有向圖 G = ? V , E ? {\mathcal{G}}\ =\ \langle\mathcal{V},\mathcal{E}\rangle G?=??V,E?,其中 V = C ∪ T {\mathcal{V}}=C\cup T V=C∪T, E ? \mathcal{E}\rangle E?表示節點之間的預先連邊關系,如主鍵-外鍵關系。此外,我們還考慮了在當前語句、交互歷史語句和上一次預測SQL查詢的上下文中與模式的不可見鏈接。具體來說,我們定義了上下文相關的模式鏈接圖 G c = ? ν c , ξ c ? {G}_{c}=\langle\nu_{c},\xi_{c}\rangle\, Gc?=?νc?,ξc??其中, V c = C ∪ T ∪ U ∪ H ∪ S {\mathcal V}_{c}=C\cup T\cup U\cup H\cup S Vc?=C∪T∪U∪H∪S, E c = E ∪ E U ? D ∪ E H ? D ∪ E S ? D {\mathcal{E}}_{c}={\mathcal{E}}\cup{\mathcal{E}}_{U\leftrightarrow D}\cup{\mathcal{E}}_{H\leftrightarrow D}\cup{\mathcal{E}}_{S\leftrightarrow D} Ec?=E∪EU?D?∪EH?D?∪ES?D?。表1列出了其他的關聯邊。在圖4中,我們展示了提議的模式鏈接圖的一個示例。
Graph Encoding RAT-SQL展示了一種有效的編碼token-level的圖關系的方式。在計算Attention時,添加relation到其中,即
HIE-Layers由8個Transformer層組成,其自我注意模塊如上所述。特別地,我們對上面定義的每種類型的邊初始化一個學習的嵌入。對于每個輸入樣本,我們建立一個關系矩陣 R ? ( L × L ) \textstyle{R}\,\subseteq\,(L\times L) R?(L×L),其中L是輸入標記的長度。R(i;j)表示第i個和第j個輸入標記之間的關系類型。在計算相對注意時,我們設 r i j K = r i j V = R e ( i , j ) r_{i j}^{K}=r_{i j}^{V}=R_{e}^{(i,j)} rijK?=rijV?=Re(i,j)?,其中 R e ( i , j ) R_{e}^{(i,j)} Re(i,j)?是 R ( i , j ) R^{(i,j)} R(i,j)的對應嵌入。
3.5 Decoder
為了構建HIE-SQL的解碼器,我們應用了Wang等人提出的方法,通過使用LSTM輸出解碼器動作序列,以深度優先遍歷順序生成SQL作為抽象語法樹。
3.6 Regularization Strategy
我們引入了R-Drop,一種簡單的正則化策略,以防止模型的過擬合。具體來說,我們將每個輸入數據 x i x_i xi?輸入到我們的模型中,遍歷兩次,損失函數如下:
其中KaTeX parse error: Undefined control sequence: \cal at position 8: -l o g{\?c?a?l? ?P}_{1}(y_{i}|x_…、KaTeX parse error: Undefined control sequence: \cal at position 8: -l o g{\?c?a?l? ?P}_{2}(y_{i}|x_…為輸入 x i x_i xi?在所有解碼器步驟的兩個輸出分布, L N L L i {{L}}_{N L L}^{i} LNLLi?為解碼器動作的負對數似然學習目標, L K L i {{L}}_{KL}^{i} LKLi?為這兩個輸出分布之間的雙向Kullback-Leibler (KL)散度。
4 實驗
4.1 實驗設置
模型的權重由GRAPPA初始化。在SParC和CoSQL上進行評測,指標為QM和IM。
4.2 實驗結果
實驗結果如下表所示,
在不同輪次表現對比如下:
4.3 Ablation Study
作者首先驗證了去掉各個部分的表現,
以及使用R-Drop的有效性。
4.4 Case Study
這里與RAT-SQL進行了對比。
5 總結
我們提出了HIE-SQL,這是一種歷史信息增強的上下文依賴的文本到SQL模型,它的目標是從交互歷史語句和上一次預測的SQL查詢中顯式地捕獲上下文依賴。在提出的雙模預訓練模型的幫助下,盡管自然語言和邏輯形式的SQL不匹配,但SQLBERT、HIE-SQL在語句和預測SQL之間架起了橋梁。此外,我們還引入了一種模式鏈接的方法來增強語句、SQL查詢和數據庫模式之間的連接。
總之,HIE-SQL在與上下文相關的Text-toSQL任務上實現了一致的改進,特別是在交互匹配度量方面。HIE-SQL在兩個著名的上下文相關的Text-to-SQL數據集SparC和CoSQL上實現了最優的結果。
總結
以上是生活随笔為你收集整理的论文笔记:HIE-SQL:History Information Enhanced Network for Context-Dependent Text-to-SQL Semantic Parsing的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WinRAR 被曝严重安全漏洞;苹果预计
- 下一篇: uni-app中的生命周期钩子函数