目前高速發展的互聯網時代中,各種類型的數據不斷湧現,其中,我們較為常用的就有表格數據,表格作為一種通用的結構化數據,我們可以根據需求設計SQL 查詢語句來獲得表格中的知識,但是往往需要較高的設計成本以及學習成本。此時,Text-to-SQL 解析任務顯得格外重要,而根據對話場景的不同,也分為單輪Text-to-SQL 解析和多輪Text-to-SQL 解析,本文主要研究更加困難且更接近現實應用的多輪Text-to-SQL 解析任務。
近期,阿里巴巴達摩院聯合中國科學院深圳先進技術研究院提出針對多輪 Text-to-SQL 語意解析的 SQL 查詢語句導向型預訓練模型 STAR。截至目前,STAR 已連續 10 個月佔據 SParC 和 CoSQL 兩大榜單的第一名。研究論文已被自然語言處理領域國際會議 EMNLP 2022 Findings 接收。
#STAR 是一種新穎且有效的多輪對話表格知識預訓練語言模型,該模型主要透過兩個預訓練目標對多輪對話中的複雜上下文語義追蹤和資料庫模式狀態追蹤進行建模,目的是增強自然語言查詢和資料庫模式在對話流中的編碼表示。
該研究在對話式語義解析的權威榜單SParC 和CoSQL 上進行了評估,在公平的下游模型對比下,STAR 相比之前最好的多輪表格預訓練模型SCoRe,在SParC 資料集上QM/IM 提升了4.6%/3.3%,在CoSQL 資料集上QM/IM 顯著提升7.4%/8.5%。特別地,CoSQL 相比 SParC 資料集,擁有更多的情境變化,驗證了該研究提出的預訓練任務的有效性。
為了使得使用者在不熟悉SQL 語法的情況下也能夠透過自然語言對話與資料庫進行交互,多輪Text-to-SQL 解析任務應運而生,該任務作為使用者與資料庫之間的橋樑,將互動內的自然語言問題轉換為可執行的SQL 查詢語句。
預訓練模型最近幾年在NLP 的各種任務上大放異彩,但由於表格和自然語言之間內在的差異性,普通的預訓練語言模型(例如BERT,RoBERTa) 在該任務上無法達到最優的性能,所以預訓練表格模型(TaLM)[1-5] 應運而生。通常,預訓練表格模型(TaLM)需要處理兩個核心問題,包括如何建模上下文查詢之間的複雜依賴(指涉、意圖偏移)及如何有效利用歷史產生的 SQL 結果。針對上述兩個核心問題,現有的預訓練表格模型有以下缺陷:
圖1. 一個上下文依賴的多輪Text-to-SQL 解析範例。
第一,現有的表格預訓練模型僅僅探索了自然語言查詢的上下文信息,而不考慮歷史SQL 查詢語句中所蘊含的交互狀態訊息,這種訊息往往能以一種更準確而緊湊的形式概括使用者的意圖。因此,對歷史 SQL 資訊進行建模和追蹤能夠更好地捕捉當前輪查詢的意圖,從而更加準確地產生對應的 SQL 查詢語句。如圖1 所示,由於第一輪SQL 查詢中提到了表名“Compuses”,在第二輪SQL 查詢中很大可能會再次選擇該表,因此對錶名“Compuses” 的狀態進行追蹤顯得格外重要。
第二,由於使用者可能忽略對話歷史中提及的實體或引入一些指代,導致當前輪對話資訊缺失,因此多輪Text-to-SQL 解析任務需要有效地建模上下文訊息以便更好地解析當前輪自然語言對話。如圖 1 所示,第二輪對話省了第一輪對話中提到的 “campuses in year 2000”。然而大部分已有預訓練表格模型並沒有考慮上下文訊息,而是對每輪自然語言對話單獨進行建模。儘管 SCoRe [1] 透過預測相鄰兩輪對話之間的上下文切換標籤來建模上下文切換訊息,但是忽略了更複雜的上下文訊息,並且不能追蹤遠距離對話之間的依賴訊息。例如,在圖 1 中,由於第二輪對話和第三輪對話發生了上下文切換,而 SCoRe 並不能捕捉第一輪對話和第四輪對話之間長距離依賴資訊。
受到多輪對話中對話狀態追蹤任務的啟發,該研究提出了一種基於模式狀態追蹤預訓練目標來隊上下文SQL 的模式狀態進行追蹤;針對多輪對話中問題間複雜語義依賴問題,該研究提出了對話依賴追蹤方法,捕捉多輪對話之間的複雜語義依賴關係,並提出基於權重的對比學習方法來更好地建模對話之間的正例和負例關係。
該研究首先給出多輪 Text-to-SQL 解析任務涉及的符號和問題定義。 表示T 輪自然語言查詢,查詢的多輪Text-to-SQL 對話交互,其中表示第i 輪自然語言問題,每輪自然語言對話包含個tokens。此外,還有一個與互動的資料庫s,其中包含了N 個表格,並且所有表格包含m 個表名和列名,##表示資料庫模式s 中的第i 個表名或列名。假設目前輪為第t 輪,Text-to-SQL 解析任務的目的是根據當前輪自然語言查詢#,歷史查詢##,資料庫模式s 和上一輪預測的SQL 查詢語句,產生目前輪自然語言查詢對應的SQL 查詢語句。 如圖2 所示,研究提出了一個基於SQL 引導的多輪表格預訓練框架,充分利用了歷史SQL 的結構化資訊來豐富對話表示,進而對複雜的上下文資訊進行更有效地建模。 圖 2.STAR 的模型架構。 具體來說,研究提出基於模式狀態追蹤和基於對話依賴追蹤的表格預訓練目標,分別對多輪互動中的SQL 查詢語句和自然語言問題的意圖進行追蹤。 (1) 在多輪對話情境中,目前對話的SQL 查詢依賴於上下文的SQL 訊息,因此受到多輪對話中對話狀態追蹤任務的啟發,該研究提出了一種基於模式狀態追蹤(Schema State Tracking, SST)的表格預先訓練目標,以自我監督的方式追蹤上下文相關SQL 查詢語句的模式狀態(或使用者請求)。 (2) 針對多輪對話中自然語言問題之間的複雜語義依賴問題,提出了基於對話依賴追蹤(Utterance Dependency Tracking,UDT)的表格預訓練目標,利用基於權重的對比學習方法更好地學習自然語言查詢的特徵表示。以下詳細介紹這兩個表格預訓練目標。 基於模式狀態追蹤的表格預訓練目標 該研究提出了一種基於模式狀態追蹤的表格預訓練目標,以自監督的方式追蹤上下文相關 SQL 查詢語句的模式狀態 (或使用者請求),目的是預測模式槽的值。具體來說,該研究以模式狀態的形式追蹤 Text-to-SQL 會話的交互狀態,其中槽是資料庫模式(即所有表的列名),對應的槽值是 SQL 關鍵字。以圖 3 中的 SQL 查詢為例,模式槽 “[car_data]” 的值是 SQL 關鍵字 “[SELECT]”。首先,研究將第 t - 1 輪預測的 SQL 查詢語句轉換為一組模式狀態的形式。由於模式狀態的插槽是資料庫的所有表的列名,因此那些沒有出現在 SQL 查詢語句#對應的模式狀態中的值被設定為 [NONE]。如圖3 所示,研究以m 個模式狀態表示SQL 查詢語句#,其中##表示第i 個模式狀態的槽,表示該模式狀態的值。對於第t 輪,模式狀態追蹤的目標是在給定所有歷史自然語言問題,當前問題和上一輪SQL 查詢語句 的模式狀態的情況下,預測第t 輪的SQL 查詢語句的每個模式狀態槽的值 。也就是說,在第 t 輪,模式狀態追蹤預訓練目標的輸入為: # 由於每個模式狀態包含多個單字,因此應用注意力層來獲得的表示。具體來說,給定輸出上下文化表示 ( l 是的起始下標)。對於每個模式狀態,模式狀態的注意力感知的表示可以計算為: #然後預測目前問題的模式狀態: 最後,將模式狀態追蹤的預訓練損失函數可以定義為: #基於對話依賴追蹤的表格預訓練目標 #該研究提出了一個話語依賴追蹤的預訓練目標,利用基於權重的對比學習方法,以捕獲每個Text-to-SQL 話中自然語言問題之間的複雜語義依賴關係。基於權重的對比學習中的一個關鍵挑戰是如何透過自我監督的方式來建構適當的正例和負例標籤,直覺上可以透過從不同的會話中選擇自然語言問題來建構負例對。然而,建構正例問題對並非易事,因為當前的問題可能與那些發生了話題轉移的歷史問題無關,如圖 1 所示的第二和第三個話語。因此,該研究將同一會話中的自然語言問題視為正例對,並且給它們分配了不同的相似度分數。 SQL 是一種高度結構化的使用者話語指示,因此透過測量當前SQL 與歷史SQL 的相似性,可以獲得自然語言問題的語義依賴的偽標籤,以獲得不同語句建的相似度分數,從而指導上下文構建模。研究從語意和結構兩個角度出發提出了一種度量 SQL 相似性的方法。如圖 3 所示: 圖 3. 兩種計算 SQL 語句相似度的方法。 基於語意的SQL 相似度計算# 研究透過計算兩個SQL 查詢語句對應的模式狀態相似度來衡量它們之間的語意相似度。具體來說,如圖3 所示,該方法會分別取得兩個SQL 查詢語句#,#的模式狀態和#。然後,研究採用Jaccard 相似度來計算它們之間的語意相似度: ##其中表示和對應模式狀態的值不是[NONE] 的非重複模式狀態的數量。 基於結構的SQL 相似度計算 為了利用SQL 查詢語句的樹狀結構,研究首先將每個SQL 查詢解析為SQL 樹,如圖3 所示。給定SQL 查詢和的兩棵SQL 樹 ############## ###,該研究利用Weisfeiler-Lehman 演算法來計算的結構相似度分數##########,公式如下:#######
總的來說,研究定義兩個SQL 查詢語句#和的相似度分數如下: #基於權重的比較損失 在取得SQL相似度後,研究使用加權對比學習將會話中語義相似的自然語言問題的表示拉近,將語義不相似的自然語言問題的表示推遠。具體來說,首先該研究利用一個注意機制來學習輸入表示: 然後,研究將加權對比損失函數最小化以優化整體網路: #最後,為了學習基於上下文語境的自然語言查詢和資料庫模式表示,該研究也採用了基於掩碼語義建模的預訓練目標,損失函數表示為。基於上述的三個訓練目標,研究定義了基於同方差的聯合損失函數: #其中,#為可訓練的參數。 資料集# 研究在兩個對話式語意解析權威資料集SParC 和CoSQL 對STAR 模型的有效性進行了驗證。其中,SParC 是一個跨領域的多輪Text-to-SQL 解析資料集,包含了大約4300 次多輪互動和超過12000 個自然語言問題- SQL 查詢語句對;CoSQL 是一個跨領域的對話式Text- to-SQL 解析資料集,包含了大約3000 次對話互動和超過10000 個自然語言問題- SQL 查詢語句對。相較於 SParC,CoSQL 的對話上下文語意相關性更高,且 SQL 查詢語句的語法更加複雜。 基準模型 在基準模型方面,研究比較了以下方法:(1)GAZP [6],透過結合一個前向語意解析模型和一個後向對話產生模型合成自然語言對話- SQL 查詢語句對的訓練數據,最後選擇具有循環一致性的資料擬合前向語義解析模型。 (2)EditSQL [7],考慮了互動歷史訊息,透過編輯前時刻預測的 SQL 查詢語句來提升當前輪對話的 SQL 產生品質。 (3)IGSQL [8],提出了一個資料庫模式交互圖編碼模型,該模型使用資料庫模式的歷史資訊來捕捉自然語言輸入歷史訊息,並且在解碼階段引入門控機制。 (4)IST-SQL [9],受到對話狀態追蹤任務的啟發,定義了模式狀態和 SQL 狀態兩種互動狀態,並在每一輪中根據上一個預測的 SQL 查詢語句進行狀態更新。 (5)R2SQL [10],提出了一個動態圖框架,針對對話流中的對話、資料庫模式之間的複雜交互作用進行建模,透過動態記憶衰退機制豐富對話和資料庫模式的上下文表示。 (6)PICARD [11],提出一種增量式的語意解析,對語言模型的自迴歸解碼模型進行約束,在每個解碼步驟中,透過約束解碼結果的可接受性來尋找合法的輸出序列。 (7)DELTA [12],先使用對話重寫模型解決對話上下文的完整性問題,然後將完整的對話輸入單輪 Text-to-SQL 語意解析模型,得到最終 SQL 查詢語句。 (8)HIE-SQL [13],從多模態的角度出發,將自然語言和SQL 看作兩種模態,探索所有歷史對話和上一句預測的SQL 查詢語句之間上下文依賴信息,提出了一個雙模態預訓練模型並且設計了一個對話和SQL 查詢語句之間的模式連結圖。 整體實驗結果# 如圖4 所示,從實驗結果可以看出,STAR 模型在SParC和CoSQL 兩個資料集上的效果遠勝於其他對比方法。在預訓練模型比較方面,STAR 模型都遠超於其他預訓練模型(如BERT,RoBERTa,GRAPPA,SCoRe),在CoSQL dev 資料集上,比較SCoRE 模型,QM 分數提升7.4%,IM 分數提升7.5% 。在下游Text-to-SQL 模型對比方面,以STAR 為預訓練模型底座的LGESQL 模型,效果遠勝於將其他預訓練語言模型當作底座的下游方法,例如目前效果最好的以GRAPPA 為底座的HIE-SQL 模型。 圖4. 在SParC 和CoSQL 資料集上的實驗結果 消融實驗結果 本文也補充了完整的消融實驗來說明STAR 模型中每個模組的有效性。消融實驗結果如圖5 所示,當去掉SST 或UDT 預訓練目標時,效果會大幅下降,而結合所有預訓練目標的實驗結果在所有資料集上都達到了最好的效果,這說明了SST和UDT 的有效性。另外,研究針對UDT 中的兩種SQL 相似度計算方法進行了進一步的實驗,從圖6 可以看出,兩種SQL 相似度計算方法都能提升STAR 模型的效果,並且結合後的效果最佳。 圖 5. 圖 5.針對預訓練目標的消融實驗結果。 圖6.針對SQL 相似度計算方法的消融實驗結果。 不同难度样本的模型效果 如图 7 所示,从 SParC 和 CoSQL 两个数据集上的不同难度样本的实验结果可以看出,STAR 模型针对各种难度样本的预测效果都远胜于其他对比方法,即使是在难度最大的 extra hard 样本中也效果显著。 图 7. 在 SParC 和 CoSQL 数据集上不同难度样本的实验结果。 不同轮次样本的模型效果 如图 8 所示,从 SParC 和 CoSQL 两个数据集上的不同轮次样本的实验结果可以看出,随着对话轮次的增加,基准模型的 QM 指标在急剧下降,而 STAR 模型即使在第三轮和第四轮也能表现出更稳定的性能。这表明 STAR 模型可以更好地追踪和探索对话历史中的交互状态,以帮助模型更好地解析当前对话。 图 8. 在 SParC 和 CoSQL 数据集上不同轮次样本的实验结果。 实例分析 为了评估 STAR 模型的实际效果,该研究从 CoSQL 验证集中选择了两个样本,并在图 9 中对比了 SCoRe 模型和 STAR 模型生成的 SQL 查询语句。从第一个例子我们可以看到 STAR 模型能够很好地使用历史 SQL 的模式状态信息(例如,[car_names.Model]),从而正确生成了第三轮对话的 SQL 查询语句,而 SCoRe 模型则无法跟踪这种模式状态信息。在第二个例子中,STAR 模型有效地跟踪了第一轮和第四轮话语之间的长期对话依赖关系,并通过跟踪和引用第二轮对话中的 “the number of” 信息,在第四轮 SQL 查询语句中正确地生成了 SQL 关键字 [SELECT COUNT (*)]。然而,SCoRe 模型无法跟踪这种长期依赖关系,并受到第三轮话语的干扰生成了错误的 SQL 查询语句。 图 9. 实例分析。 ModelScope 模型开源社区 本文在 CoSQL 数据集上训练得到的模型,目前已集成到 ModelScope 模型开源社区。读者可以直接在 notebook 中选择 V100 GPU 环境,通过一个简单 pipeline 即可使用 demo 模型用于多轮 Text-to-SQL 语义解析任务。 本文中,研究团队提出了一个新颖且有效的多轮表格知识预训练模型(STAR 模型)。针对多轮 Text-to-SQL 语义解析任务,STAR 模型提出基于模式状态追踪和基于对话依赖追踪的表格预训练目标,分别对多轮交互中的 SQL 查询语句和自然语言问题的意图进行追踪。STAR 模型在两个权威多轮语义解析榜单很好的结果,连续 10 个月占据榜单第一名的成绩。 最后,欢迎对中国科学院深圳先进技术研究院SIAT-NLP组感兴趣的同学申请博后/博士/硕士/实习等职位,简历请发至min.yang@siat.ac.cn。方法描述
實驗效果
总结
以上是登頂對話式語意解析國際權威榜單SParC與CoSQL,全新多輪對話表格知識預訓練模式STAR解讀的詳細內容。更多資訊請關注PHP中文網其他相關文章!