1. <acronym id="pirhh"><pre id="pirhh"><dd id="pirhh"></dd></pre></acronym>
        1. <tt id="pirhh"><pre id="pirhh"><dd id="pirhh"></dd></pre></tt>
          <rt id="pirhh"></rt> <code id="pirhh"><object id="pirhh"></object></code>
            <listing id="pirhh"><object id="pirhh"><tr id="pirhh"></tr></object></listing>
            <code id="pirhh"></code>

            「蜘蛛」來了!耶魯大學11名學生標注完成大規模復雜跨域Text-to-SQL數據集Spider

            近期,耶魯大學創建了一個新型大規模復雜跨域語義解析和 Text-to-SQL 數據集 Spider。研究者用多個當前最優模型進行實驗,最好的模型在數據庫分割設置下僅能達到 14.3% 的精確匹配準確率。Spider 數據集對未來研究是一個巨大挑戰。

            項目地址: https://yale-lily.github.io/spider

            新千禧年開始后,每天生產的數據量呈指數級增長,它們大部分存儲在關系數據庫中。近年來,訪問這些數據成為大多數大公司的興趣,這些公司可以使用結構化查詢語言(SQL)查詢數據。隨著手機的發展,更多個人數據也被存儲。因此,更多來自不同背景的人嘗試查詢和使用自己的數據。盡管目前數據科學非常流行,但是大部分人不具備足夠的知識來寫 SQL、查詢數據。此外,大部分人沒有時間學習和了解 SQL。即使對于 SQL 專家,一次又一次地寫類似的查詢也是很單調的任務。因此,今天海量可用的數據無法有效訪問。

            標注問題和 SQL 對示例。

            如果你不了解上圖長長的 SQL 代碼,不要擔心!這就是數據庫自然語言接口的用武之地了。其目標是允許我們直接使用人類語言和數據進行互動!因此,這些接口可以幫助不同背景的用戶輕松查詢和分析海量數據。

            如何構建此類接口?

            要構建此類自然語言接口,系統必須理解用戶的問題,并將問題自動轉換為對應的 SQL查詢。那么我們如何構建此類系統呢?目前最好的方法是使用深度學習在大規模問題和 SQL 對標注數據上訓練神經網絡!與基于規則的完備系統相比,這些方法更具魯棒性和擴展性。

            好的數據太少了!

            但是,有一個關鍵的問題:我們從哪里找到大量問題和 SQL 對標注數據?創建此類數據集非常耗時,因為標注人員必須理解數據庫模式,問問題然后寫出 SQL 答案,所有這些都需要特定的數據庫知識。而讓這件事變得更加困難的是:具備多個表的非私人數據庫數量非常有限。為了解決該任務對大型高質量數據集的需求,我們創建了數據集 Spider,它包含 200 個具備多個表的數據庫、10181 個問題、5693 個對應的復雜 SQL查詢。所有這些由 11 名耶魯大學學生標注完成,共耗時 1000 小時!

            為什么要選 Spider?

            盡管創建此類數據很難,但在傳統的 9 個數據庫(包括 ATIS、GeoQuery、Scholar、Advising、WikiSQL 等)中還是有一些和 SQL查詢類似的數據資源。那么,為什么要選擇 Spider 數據集呢?我們來看下圖:

            一些 Text-to-SQL 數據集的 Spider 圖。

            • ATIS、Geo、Academic:這些數據集都只包含一個數據庫。而這些數據庫大部分僅包含不到 500 個獨特的 SQL查詢。基本上,在這些數據集上訓練的模型僅對特定的數據庫有效。在轉換數據庫后,模型將完全失敗。

            • WikiSQL:SQL查詢和表的數量很多,但是所有 SQL查詢都很簡單,僅包含 SELECT 和 WHERE 從句。此外,每個數據庫都只是沒有外鍵的簡單的表。在 WikiSQL 上訓練的模型在其它新數據庫上仍然可以運行,但是該模型無法處理復雜的 SQL(如 GROUP BY、ORDER BY 或嵌套查詢)和具備多個表和外鍵的數據庫。

            從上圖中可以看出,Spider 的范圍最大,因此它是最復雜的跨域 text-to-SQL 數據集。為什么我們說它是最大的復雜跨域數據集呢?

            • 大:超過 10000 個問題,6000 個對應的獨特 SQL查詢。

            • 復雜:大部分 SQL查詢覆蓋幾乎所有重要的 SQL 組件,包括 GROUP BY、ORDER BY、HAVING 和嵌套查詢。此外,所有數據庫都具備多個由外鍵鏈接的表。

            • 跨域:包含 200 個復雜數據庫。根據數據庫類型,我們將 Spider 數據集分割成訓練、開發和測試集。這樣,我們就可以在未見過的數據庫上測試系統性能。

            為什么大、復雜、跨域?

            首先,要訓練一個深度學習模型,數據集越大,性能越好。其次,你當然希望訓練數據盡可能多地覆蓋更多場景,包括不同的 SQL 組件和數據庫模式。這樣,系統可以更好地適應多種情形。最后,為什么我們想要跨域數據?簡單來講,當你遇到新數據庫時,你不想重新標注數據、重新訓練一個新模型,這很浪費時間!

            Spider 數據集下載

            你可以通過以下方式找到 Spider 數據集和排行榜:

            • 項目頁面:https://yale-lily.github.io/spider

            • GitHub 頁面:https://github.com/taoyds/spider

            我們希望 Spider 能夠幫助我們走向下一代數據庫自然語言接口!

            其它挑戰

            我們已經創建了一個不錯的數據集了,那么要構建現實世界的數據庫自然語言接口還需要解決哪些挑戰?從自然語言處理的角度來看,有三個主要任務:

            自然語言理解:該系統必須理解用戶的問題,這些問題可能是模糊、隨機和多樣的。

            數據庫模式表征:數據庫可以非常復雜,包括數百個列、很多表和外鍵。

            復雜的 SQL 解碼/生成:該系統理解用戶問題和用戶正在查詢的數據庫模式后,它還需要生成對應的 SQL 答案。但是,SQL查詢可能非常復雜,并且還包含具備不同條件的嵌套查詢。

            相關研究

            該領域已經經過 NLP 和數據庫社區數十年的研究。以下是近期相關研究的簡短列表:

            • SyntaxSQLNet: Syntax Tree Networks for Complex and Cross-Domain Text-to-SQL Task

            • Zero-shot Parser:Decoupling Structure and Lexicon for Zero-Shot Semantic Parsing(https://arxiv.org/abs/1804.07918)

            • Coarse2fine:Coarse-to-Fine Decoding for Neural Semantic Parsing(https://arxiv.org/pdf/1805.04793.pdf)

            • SQL 評估方法:TypeSQL: Knowledge-based Type-Aware Neural Text-to-SQL Generation(https://arxiv.org/pdf/1804.09769.pdf)

            • 在任務中加入背景信息:Learning to Map Context-Dependent Sentences to Executable Formal Queries(http://alanesuhr.com/atis.pdf)、DialSQL: Dialogue Based StructuredQueryGeneration(http://cs.ucsb.edu/~ysu/papers/acl18_dialsql.pdf)

            • TypeSQL:TypeSQL: Knowledge-based Type-Aware Neural Text-to-SQL Generation(https://arxiv.org/abs/1804.09769)

            • SQLNet:SQLNet: Generating Structured Queries From Natural Language Without Reinforcement Learning(https://arxiv.org/abs/1711.04436)

            • Seq2SQL:Seq2SQL: Generating Structured Queries from Natural Language using Reinforcement Learning(https://arxiv.org/abs/1709.00103)

            • 句法神經網絡:A Syntactic Neural Model for General-Purpose Code Generation(https://arxiv.org/abs/1704.01696)、Abstract Syntax Networks for Code Generation and Semantic Parsing(https://arxiv.org/abs/1704.07535)

            • Seq2Tree:Learning a Neural Semantic Parser from User Feedback(https://arxiv.org/pdf/1704.08760.pdf)

            • NaLIR:Constructing an Interactive Natural Language Interface for Relational Databases(http://www.vldb.org/pvldb/vol8/p73-li.pdf)

            以及一些相關的演講、博客或書籍:

            • How to Talk to Your Database(https://einstein.ai/research/blog/how-to-talk-to-your-database)

            • ACL 2018 Tutorial on Neural Semantic Parsing(https://github.com/allenai/acl2018-semantic-parsing-tutorial)

            • Natural Language Data Management and Interfaces(http://www.morganclaypoolpublishers.com/catalog_Orig/product_info.php?products_id=1286)

            • A Syntactic Neural Model for General-Purpose Code Generation(https://vimeo.com/234954608)

            • Learning to Map Context-Dependent Sentences to Executable Formal Queries(http://alanesuhr.com/sia2018-slides.pdf)

            論文:Spider: A Large-Scale Human-Labeled Dataset for Complex and Cross-Domain Semantic Parsing and Text-to-SQL Task

            論文鏈接:https://arxiv.org/abs/1809.08887

            摘要:我們展示了一個大規模復雜跨域語義解析和 text-to-SQL 數據集 Spider。該數據集由 11 名耶魯大學學生標注,包含 10181 個問題和 5693 個獨特的復雜 SQL查詢、200 個具備多個表的數據庫,覆蓋 138 個不同領域。我們定義了一個新的復雜跨域語義解析和 text-to-SQL 任務,其中訓練集和測試集中出現不同的復雜 SQL查詢和數據庫。因此,該任務要求模型在新的 SQL查詢和新數據庫模式上均實現良好的泛化。Spider 與之前的大部分語義解析任務都不同,因為它們使用單個數據庫,而且訓練集和測試集使用的是相同的數據庫。我們用多個當前最優模型進行實驗,最好的模型在數據庫分割設置下僅能達到 14.3% 的精確匹配準確率。這表明 Spider 對未來研究是一個巨大挑戰。

            原文地址:https://medium.com/@tao.yu/spider-one-more-step-towards-natural-language-interfaces-to-databases-62298dc6df3c

            我來評幾句
            登錄后評論

            已發表評論數()

            相關站點

            +訂閱
            熱門文章
            天辰线上娱乐

            1. <acronym id="pirhh"><pre id="pirhh"><dd id="pirhh"></dd></pre></acronym>
                  1. <tt id="pirhh"><pre id="pirhh"><dd id="pirhh"></dd></pre></tt>
                    <rt id="pirhh"></rt> <code id="pirhh"><object id="pirhh"></object></code>
                      <listing id="pirhh"><object id="pirhh"><tr id="pirhh"></tr></object></listing>
                      <code id="pirhh"></code>

                      1. <acronym id="pirhh"><pre id="pirhh"><dd id="pirhh"></dd></pre></acronym>
                            1. <tt id="pirhh"><pre id="pirhh"><dd id="pirhh"></dd></pre></tt>
                              <rt id="pirhh"></rt> <code id="pirhh"><object id="pirhh"></object></code>
                                <listing id="pirhh"><object id="pirhh"><tr id="pirhh"></tr></object></listing>
                                <code id="pirhh"></code>