1. 程式人生 > 其它 >Spider資料集論文研讀

Spider資料集論文研讀

過去一些優秀的模型例如seq2seq架構已經能夠實現80%以上的匹配精確度在SQL查詢上,但是這些工作實際上是在做語義匹配而非語義解析。現有的語義解析資料集存在兩個問題,一個是資料集規模太小,無法訓練一個更加現代化的模型,同時單一資料庫同時用於訓練和測試當中,那任務難度肯定簡單很多;二是邏輯形式的SQL標籤規模很小,並且每個program中都多多少少存在一些在資料集規模變大時查詢有誤的問題。

論文來源:Spider: A large-scale human-labeled dataset for complex and cross-domain semantic parsing and text-to-sql task

1. Introduction

  1. 過去一些優秀的模型例如seq2seq架構已經能夠實現80%以上的匹配精確度在SQL查詢上,但是這些工作實際上是在做語義匹配而非語義解析。現有的語義解析資料集存在兩個問題,一個是資料集規模太小,無法訓練一個更加現代化的模型,同時單一資料庫同時用於訓練和測試當中,那任務難度肯定簡單很多;二是邏輯形式的SQL標籤規模很小,並且每個program中都多多少少存在一些在資料集規模變大時查詢有誤的問題。
  2. 有人測試了嘗試分開訓練集和測試集上的資料庫以後,發現模型無法推廣到沒看到過的資料庫中,也就是泛化能力較差,另外資料集類似WikiSQL,SQL查詢難度過於簡單,無法很好的測試模型在複雜問題上的表現,因此亟需一個包含大量複雜程式和多表資料庫的SP資料集。
  3. 建立此類的SP資料集有以下難度:線上平臺上很難找到那麼多的資料庫同時有很多表;另外標註的人也必須要理解複雜資料庫的模式從而創建出一系列的查詢問題並且包含了所有SQL的查詢型別。並且還需要對問題和SQL進行審查和質量檢查,這些都需要非常充足的資料庫知識。
  4. Spider的好處在於可以在SQL查詢上實現訓練集和測試集在database上的區分,克服了之前資料集的兩個缺點。並且定義了一個新的任務模式,模型不僅需要推廣到新的程式,也就是查詢組合方式,同時還需要推廣到新的資料庫。測試發現目前最先進的模型僅實現了12.4%的精確匹配精度。表明提升空間還很大。
  1. 具有不同查詢的語義解析資料集已經有很多了,但是都是針對於特定的domain,並且沒有針對多SQL查詢的標籤規範
  2. 以前的工作訓練模型都不需要考慮schema作為輸入,因為他們使用的是單一的資料庫作為訓練和測試。
  3. 我們希望模型不僅能夠泛化未看到過的SQL查詢,同時也能夠泛化到未看見的資料庫,WikiSQL似乎做到了這一點,但是它的SQL標籤僅僅包含了簡單的SELECT語句,所有的資料庫只包含了單一的table,並且沒有JOIN,GROUP BY,ORDER BY等語句。

3. Corpus Construction

  1. 收集具有複雜模式的資料庫是很困難的 ,大部分工業界和學術界的資料庫都不是公開可用的。論文提出的資料庫共有200個,來源於三種渠道:一、大學資料庫課程、SQL教程網站、線上csv、教科書示例(70個);二、DatabaseAnswers1中收集了40個;三、基於WikiSQL建立了剩餘的90個數據庫
  2. 如果存在一些無意義的列名以及遺漏相關的外來鍵,則會手動更正一些資料庫模式;同時對於學生id,通常資料庫中都會使用stuid這種縮寫形式,但為了保證系統僅需要處理語義解析問題,因此把stuid這種形式轉回student id的形式
  3. 對於question和sql標註,都是人工由精通sql的cs專業學生來完成,同時確保了以下三方面:A)SQL查詢類別常見的全部都覆蓋到了,並且確保每個表都至少出現在一次查詢中;B)設計了一個SQL註釋協議,避免多個可接受的SQL查詢影響模型訓練,都採取一套標註模式;C)沒有建立模稜兩可的問題,同時也沒有建立那些需要額外的資料庫以外的知識才能回答的問題。模稜兩可就比如說學校裡最受歡迎的課程是什麼,這個最受歡迎也許是指學生的評價,或者也可能是選課人數最多的課程,儘管這些最受歡迎的概念可以通過系統與使用者多輪詢問來確定具體的含義,但是本資料庫的目的不是探討這個問題,並且在單資料集的問題當中,模稜兩可性不是大問題,而就複雜的跨域問題,即使問題不是模稜兩可的,對於目前最佳的模型跑出來的效果都很差,所以就避免了模稜兩可性;第二點說的是,比如查詢語句為:請告訴我向John彙報工作的員工的id號,彙報工作在人類的理解當中當然知道是John的手下,而這個知識是額外需要提供的,這一點是未來的研究方向
  4. 標註的工具採用的是sqlite web3
  5. 審閱過程首先檢視SQL語句能否正確執行,同時對於同一問題多個SQL同時成立的問題,審閱者需要檢視SQL標註是否符合之前規定的協議。最後是檢查當前資料庫中的所有SQL標籤是否涵蓋了所有常見的SQL子句。
  6. 檢查完SQL標註後,英語母語的人需要重新審閱修改每一個查詢的問題,包括語法上是否正確自然,並且檢查問題是否正確反映了對應的SQL查詢屬性和標註。最後為了提高問題的多樣性,還會要求標註者給一些問題新增一個釋義版本【不理解】。
  7. 最後的最後,讓最有經驗的標註者進行最後的審查,如果之前多個審閱者對於某個標註問題上產生了歧義,則由這個最有經驗的人負責拍版。另外還寫了一個指令碼來執行和解析所有SQL標註,確保都是正確無誤的。

4. Dataset Statistics and Comparison

  1. Spider資料集有很多獨特特性,包括相較於之前text2sql資料集總數的 10倍的ORDER BY和GROUP BY語句,Spider是目前唯一一個同時包含複雜 SQL查詢和跨域多表資料庫的text2sql資料集,它不僅可以測試系統泛化查詢語句的能力,也能夠檢測系統泛化到新的domain的能力。

5. Task Defifinition

  1. 模型需要能夠真正理解問題的語義含義才能夠做出正確的推斷預測,而不是死記硬背。模型在這個人物上的表現可以反映真實的語義解析的能力。
  2. 泛化能力不是這個資料集當前最主要的考察任務,目前最主要的任務是考察如何能夠預測準確SQL結構以及列(因為目前最優秀的模型跑出來的預測結果都很一般),現實當中一般都要多次和使用者確認需求,實際上大多數人知道怎麼用自然語言表達而不知道SQL的邏輯。
  3. 外部知識諸如XX的壽命有多長這種,在本資料集中不是主要考察的能力內容
  4. 需要假設所有的表名和列名都是直觀清晰的,因此對於stu id這種都需要轉換成student id

6. Evaluation Metrics

  1. 根據查詢的難度來衡量系統的準確性,伴隨語料庫一起釋出了官方的評測指令碼
  2. 元件匹配:對SELECT/WHERE/GROUP BY/KEYWORDS這些元件分解成多個子元件,例如SELECT avg(col1), max(col2), min(col1),首先解析並分解為一個集合(avg, min, col1), (max, col2),然後再檢視是否匹配;在評估中,將每個元件視為一個集合,也就是調整順序不影響結果,例如SELECT avg(col1), min(col1), max(col2)和SELECT avg(col1), max(col2), min(col1)被認為是相同的查詢。對於每個元件的整體效能,採用的是在每個精確集匹配上的F1 score
  3. 精確匹配:當且僅當每個元件都正確時,預測的查詢才是正確的。
  4. 精確匹配可能會導致false negative【不理解】的評估,因此還考慮了執行準確度,同樣的如果返回的結果是和標準一樣,但語義不同時,可能會出現false positive的報錯,這一點也可以彼此互補;最後如果出現了JOIN和GROUP在查詢語句中,則評估可以接受多個keys。
  5. 為了更好地瞭解模型在不同查詢上的效能,將SQL查詢分為了4個級別:簡單、中等、困難、特別困難。根據SQL元件的數量、選擇和條件來定義難度,包含更多SQL關鍵字例如GROUP BY、ORDER BY、INTERSECT、巢狀子查詢、列選擇和聚合語句等會被認為難度是很大的。

7. Methods

  1. 為了更好地分析語料庫的難度,嘗試了幾種最先進的語義解析模型,由於資料集有著根本性差異,所以調整任務,將資料庫的所有表中列連線在一起建立一個大列列表來給到model輸入,同時對於每個模型,都把問題例項的列選擇空間限制到所查詢的資料庫的所有列,而不是整個語料庫中的所有列

8. Experimental Results and Discussion

  1. 示例拆分:分為8659個train,1034個dev,以及2147個test
  2. 資料庫拆分:將206個數據庫拆分為146個train,20個dev,以及40個test,同一個資料庫的所有問題都在同一個分組中(train/dev/test)
  3. 基於seq2seq的模型表現效能非常低,在可能某一的特別難的示例中能夠取得好的結果,但大多數情況下都會出現語法錯誤,注意力機制也幫助不大
  4. 相比之下SQLNet和TypeSQL表現明顯優於seq2seq,儘管能夠生成有效查詢,但是無法生成巢狀以及帶關鍵字的查詢
  5. 所有的模型在WHERE子句預測方面都遇到了很大的困難。
  6. 總體來說所有模型表現都很低,表明此任務挑戰難度很大。
  7. 在示例拆分和資料庫拆分中,資料庫拆分後的效能遠低於示例拆分的效能,特別是TypeSQL的效能在資料庫拆分資料集上降幅最大,這可以總結為該模型在複雜的SQL預測上表現良好,但是未能推廣到新的資料庫中(泛化能力不足)
  8. 所有模型在資料庫拆分的情況下,對於列選擇的表現都要比示例拆分差很多。
  9. 對於複雜的資料庫模式,外來鍵數量越多,模型的效能會快速下降(參照圖4),一個原因是模型從複雜資料庫模式很多候選鍵中選取表名和列名,另外,複雜的模式使得模型更難捕捉擁有外來鍵的幾張表之間的關係。這表明這個任務需要更加有效的方法來編碼表和外來鍵的關係。

9. Conclusion

  1. 本論文介紹了Spider資料集,是一個相較於之前的資料集有著更大挑戰性的語義解析任務。通過測試表現發現現有模型依舊有很大的提升空間。