中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

人工智能時代如何高效發(fā)掘數(shù)據(jù)庫的價值?NL2SQL值得你關(guān)注

2019-06-04    來源:raincent

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

NL2SQL(Natural Language to SQL)是一項將用戶的自然語句轉(zhuǎn)為可執(zhí)行 SQL 語句的技術(shù),有很大的實際應(yīng)用價值,對改善用戶與數(shù)據(jù)庫之間的交互方式有很大意義。在本文中,追一科技介紹了 NL2SQL 的價值,及其過去、現(xiàn)在與未來,希望能有更多關(guān)于 NL2SQL 的落地場景研究。

NL2SQL 的價值

在 AI、區(qū)塊鏈、IoT、AR 等高新技術(shù)飛速發(fā)展的當下,數(shù)據(jù)庫這一寶庫似乎被大家遺忘在了角落。數(shù)據(jù)庫存儲了大量的個人或者企業(yè)的生產(chǎn)運營數(shù)據(jù),我們每天都會和數(shù)據(jù)庫產(chǎn)生或多或少的交互。通常,查詢數(shù)據(jù)庫中的數(shù)據(jù)需要通過像 SQL 這樣的程序式查詢語言來進行交互,這就需要懂 SQL 語言的專業(yè)技術(shù)人員來執(zhí)行這一操作。為了讓非專業(yè)用戶也可以按需查詢數(shù)據(jù)庫,當前流行的技術(shù)方案設(shè)計了基于條件篩選的專門界面,用戶可以通過點選不同的條件來查詢數(shù)據(jù)庫,比如下面這個篩選汽車的界面。

 

 

然而,在這個界面上操作,極大地限制了數(shù)據(jù)庫查詢的使用場景和查詢界限。同時,即使對于精通數(shù)據(jù)庫程序語言的專業(yè)人士,經(jīng)常構(gòu)思 SQL 語句、維護這樣一個查詢界面也是一項重復(fù)度較高的工作。

在 CUI(Conversation User Interface)的大背景下,如何通過自然語言自由地查詢數(shù)據(jù)庫中的目標數(shù)據(jù)成為了新興的研究熱點。Natural Language to SQL (NL2SQL) 就是這樣的一項技術(shù),它可以將用戶的自然語句轉(zhuǎn)為可以執(zhí)行的 SQL 語句。

 

 

表格數(shù)據(jù)是信息在經(jīng)過人為整理、歸納后的一種高效的結(jié)構(gòu)化表達形式,信息的價值、密度和質(zhì)量高于普通的文字文本。用很多文字才能描述清楚的信息,可能一張表格就夠了。在行業(yè)研報、業(yè)績報告、新聞公告、使用說明書等各種書面信息載體上,尤其是金融、快消等行業(yè)的各種報告中,充斥著許多表格形式的結(jié)構(gòu)化數(shù)據(jù)。而當用戶去查詢表格中的內(nèi)容時,需要肉眼去從表格中篩選滿足條件的數(shù)據(jù),準確率和效率都較低。通過 NL2SQL,用戶在查詢這些表格的內(nèi)容時,可以直接通過自然語言與表格進行交互,并得到結(jié)果,用戶體驗會很自然。比如下面這張出自某房地產(chǎn)行業(yè)研報的表格:

 

 

 

 

如今,在很多日常應(yīng)用場景中,用戶都會和數(shù)據(jù)庫進行交互,比如訂餐、訂票、查天氣、查報表等等,絕大部分的解決方案也是通過輸入條件和點選條件來進行查詢。即使部分場景已經(jīng)進行了技術(shù)升級,可以通過對話機器人的方式來進行交互,但其背后仍然預(yù)設(shè)了不同的條件入口,需要模型通過一系列的實體識別、槽值提取等流程來填充預(yù)先規(guī)定好的 SQL 模板。對于這樣的方案,不僅查詢的信息和篩選的條件會局限于預(yù)先設(shè)好的字段,這些功能模塊的開發(fā)和維護也需要大量的人力資源。而如果使用 NL2SQL 的技術(shù)方案,用戶與數(shù)據(jù)庫之間的距離可以進一步縮短,用戶可以更自由地查詢更多信息、表達自己更豐富的查詢意圖,還可以減輕目前技術(shù)方案的繁瑣,解放程序員。

NL2SQL 不僅可以獨當一面,降低人機交互的距離和門檻,也可以與其它技術(shù)相輔相成。比如,現(xiàn)今的機器閱讀理解技術(shù)已經(jīng)可以在 SQUAD 1.0、SQUAD 2.0 等數(shù)據(jù)集上超越人類水平,還可以在其它各種形式的數(shù)據(jù)集上尋找答案,比如多段落、多文檔、抽取式答案、生成式答案等形式。但目前機器閱讀理解技術(shù)還不能對文章中出現(xiàn)的表格進行解讀,如果用戶想要的答案存在于文章中的表格內(nèi),那么現(xiàn)有的模型就都束手無策了。

然而表格數(shù)據(jù)在真實場景中存在很多,且表格中的數(shù)據(jù)很有價值,用戶也會經(jīng)常針對其中的數(shù)據(jù)進行提問。比如下圖中的這一真實場景,用戶如果想問「在哪些年里平均溢價率高于 20%」這樣的問題,依靠現(xiàn)有的機器閱讀理解技術(shù),在文本中是找不到答案的。而 NL2SQL 可以很好地彌補現(xiàn)有技術(shù)的不足,完善非結(jié)構(gòu)化文本問答在真實落地場景中的應(yīng)用,更充分地發(fā)掘此類結(jié)構(gòu)化數(shù)據(jù)的價值。

 

 

研報部分來源于東吳證券《房地產(chǎn)行業(yè) 2019 年度策略》

存儲在 Excel 中的表格數(shù)據(jù)也可以被利用起來。設(shè)想一下這樣的場景,財務(wù)人員將日常的財務(wù)數(shù)據(jù)存儲在 Excel 中,日積月累產(chǎn)生了大量的 Excel 文件。財務(wù)人員需要了解其中的數(shù)據(jù)時,首先要從層層深入的文件夾、密密麻麻的 Excel 中找到正確的文件,然后打開 Excel 文件去密集的單元格中找到想要的答案。在這個過程中找錯文件是常事,效率十分低下。如果利用 NL2SQL 技術(shù),這一場景就會非常的優(yōu)雅高效:首先定位預(yù)處理存入數(shù)據(jù)庫的表格,再執(zhí)行查詢邏輯,最后將結(jié)果直接返回。

 

 

我們可以期待,NL2SQL 將改變傳統(tǒng)的人與表格之間的交互方式,作為不可或缺的功能來改善人與機器之間的交流,讓這場 CUI 升級革命可以走進更多的場景、行業(yè),惠及更廣泛的群體。

NL2SQL 的歷史與現(xiàn)在

早在上世紀中后期,人們就已經(jīng)在嘗試開發(fā)通過自然語言直接訪問數(shù)據(jù)庫中存儲數(shù)據(jù)的界面了(NLIDB,Natural Language Interfaces to Databases),其中最知名的是二十世紀六十年代的 LUNAR 系統(tǒng),它通過對問句的句式語法分析,來回答關(guān)于從阿波羅任務(wù)中帶回的月巖的地質(zhì)學(xué)分析問題。再比如二十世紀七十年代初的 LADDER 系統(tǒng),它已經(jīng)支持通過一定的語義語言從數(shù)據(jù)庫提取信息。但這種系統(tǒng)對自然語言問題的解析并不依賴于句子成分,這要求每一個具有特定知識的數(shù)據(jù)庫都需要特定的語義語法,所以該方法在普適性上不夠完善。

受限于當時技術(shù)發(fā)展,NLIDB 面臨很大的挑戰(zhàn),系統(tǒng)語言的支持上限以及對于語言的理解上限不明確、語言上邏輯和含義的歧義、生僻詞的出現(xiàn)等,以及替代品的發(fā)展(如 Excel 表格這種存儲表格新形式的出現(xiàn)),這些都極大限制了這個領(lǐng)域的發(fā)展。

直到 2015 年 AI 的復(fù)蘇和自然語言處理的創(chuàng)新,人們才慢慢把關(guān)注拉回了 NLIDB。如何利用自然語言更自然更自由地與數(shù)據(jù)庫交互成為了新興的研究熱點。

那 NL2SQL 在學(xué)術(shù)中的定位是怎么樣的呢?NL2SQL 這一任務(wù)的本質(zhì),是將用戶的自然語言語句轉(zhuǎn)化為計算機可以理解并執(zhí)行的規(guī)范語義表示 (formal meaning representation),是語義分析 (Semantic Parsing) 領(lǐng)域的一個子任務(wù)。NL2SQL 是由自然語言生成 SQL,那么自然也有 NL2Bash、NL2Python、NL2Java 等類似的研究。下面是來自 NL2Bash Dataset 的一條數(shù)據(jù):

雖然生成的程序語言不同,但核心任務(wù)與 NL2SQL 相同,都是需要計算機理解自然語言語句,并生成準確表達語句語義的可執(zhí)行程序式語言。廣義來說,KBQA 也與 NL2SQL 技術(shù)有著千絲萬縷的聯(lián)系,其背后的做法也是將用戶的自然語言轉(zhuǎn)化為邏輯形式,只不過不同點在于前者轉(zhuǎn)化的邏輯形式是 SPARQL,而不是 SQL。將生成的查詢語句在知識圖譜執(zhí)行,直接得到用戶的答案,進而提升算法引擎的用戶體驗。

 

 

圖片來自谷歌搜索

目前,NL2SQL 方向已經(jīng)有 WikiSQL、Spider、WikiTableQuestions、ATIS 等諸多公開數(shù)據(jù)集。不同數(shù)據(jù)集都有各自的特點,這里簡單介紹一下這四個數(shù)據(jù)集。

WikiSQL 是 Salesforce 在 2017 年提出的大型標注 NL2SQL 數(shù)據(jù)集,也是目前規(guī)模最大的 NL2SQL 數(shù)據(jù)集。它包含了 24,241 張表、80,645 條自然語言問句及相應(yīng)的 SQL 語句。下圖是其中的一條數(shù)據(jù)樣例,包括一個 table、一條 SQL 語句及該條 SQL 語句所對應(yīng)的自然語言語句。

 

 

該數(shù)據(jù)集自提出之后,已經(jīng)有 18 次公開提交。由于 SQL 的形式較為簡單,該數(shù)據(jù)集不涉及高級用法,Question 所對應(yīng)的正確表格已經(jīng)給定,不需要聯(lián)合多張表格,這些簡化使得強監(jiān)督模型已經(jīng)可以在 WikiSQL 上達到執(zhí)行 91.8% 的執(zhí)行準確率。

Spider 是耶魯大學(xué) 2018 年新提出的一個較大規(guī)模的 NL2SQL 數(shù)據(jù)集。該數(shù)據(jù)集包含了 10,181 條自然語言問句、分布在 200 個獨立數(shù)據(jù)庫中的 5,693 條 SQL,內(nèi)容覆蓋了 138 個不同的領(lǐng)域。雖然在數(shù)據(jù)數(shù)量上不如 WikiSQL,但 Spider 引入了更多的 SQL 用法,例如 Group By、Order By、Having,甚至需要 Join 不同表,這更貼近真實場景,也帶來了更高的難度。因此目前在該榜單上只有 8 次提交,在不考慮條件判斷中 value 的情況下,準確率最高只有 54.7,可見這個數(shù)據(jù)集的難度非常大。

 

 

上圖是該數(shù)據(jù)集中的一條樣例。在這個以 College 為主題的數(shù)據(jù)庫中,用戶詢問「講師的工資高于平均工資水平的部門以及相應(yīng)的預(yù)算是什么?」,模型需要根據(jù)用戶的問題和已知的數(shù)據(jù)庫中各種表格、字段及其之間錯綜復(fù)雜的關(guān)系來生成正確的 SQL。

WikiTableQuestions 是斯坦福大學(xué)于 2015 年提出的一個針對維基百科中那些半結(jié)構(gòu)化表格問答的數(shù)據(jù)集,包含了 22,033 條真實問句以及 2,108 張表格。由于數(shù)據(jù)的來源是維基百科,因此表格中的數(shù)據(jù)是真實且沒有經(jīng)過歸一化的,一個 cell 內(nèi)可能包含多個實體或含義,比如「Beijing, China」或「200 km」;同時,為了很好地泛化到其它領(lǐng)域的數(shù)據(jù),該數(shù)據(jù)集測試集中的表格主題和實體之間的關(guān)系都是在訓(xùn)練集中沒有見到過的。下圖是該數(shù)據(jù)集中的一條示例,數(shù)據(jù)闡述的方式展現(xiàn)出作者想要體現(xiàn)的問答元素。

 

 

The Air Travel Information System (ATIS) 是一個年代較為久遠的經(jīng)典數(shù)據(jù)集,由德克薩斯儀器公司在 1990 年提出。該數(shù)據(jù)集獲取自關(guān)系型數(shù)據(jù)庫 Official Airline Guide (OAG, 1990),包含 27 張表以及不到 2,000 次的問詢,每次問詢平均 7 輪,93% 的情況下需要聯(lián)合 3 張以上的表才能得到答案,問詢的內(nèi)容涵蓋了航班、費用、城市、地面服務(wù)等信息。下圖是取自該數(shù)據(jù)集的一條樣例,可以看出比之前介紹的數(shù)據(jù)集更有難度。

 

 

圖片來自于 http://www.aclweb.org/anthology/H90-1021

在深度學(xué)習(xí)端到端解決方案流行之前,這一領(lǐng)域的解決方案主要是通過高質(zhì)量的語法樹和詞典來構(gòu)建語義解析器,再將自然語言語句轉(zhuǎn)化為相應(yīng)的 SQL。

 

 

圖片來自于 Natural Language Interfaces to Databases(https://arxiv.org/pdf/cmp-lg/9503016.pdf)

現(xiàn)在的解決方案則主要是端到端與 SQL 特征規(guī)則相結(jié)合。以在 WikiSQL 數(shù)據(jù)集上的 SOTA 模型 SQLova 為例:首先使用 BERT 對 Question 和 SQL 表格進行編碼和特征提取,然后根據(jù)數(shù)據(jù)集中 SQL 語句的句法特征,將預(yù)測生成 SQL 語句的任務(wù)解耦為 6 個子任務(wù),分別是 Select-Column、Select-Aggregation、Where-Number、Where-Column、Where-Operation 以及 Where-Value,不同子任務(wù)之間存在一定的依賴關(guān)系,最終使用提取到的特征依次進行 6 個任務(wù)的預(yù)測。

 

 

圖片來自于 SQLNet(https://arxiv.org/pdf/1711.04436.pdf)

NL2SQL 的未來

WikiSQL 數(shù)據(jù)集雖然是目前規(guī)模最大的有監(jiān)督數(shù)據(jù)集,但其數(shù)據(jù)形式和難度過于簡單:對于 SQL 語句,條件的表達只支持最基礎(chǔ)的>、<、=,條件之間的關(guān)系只有 and,不支持聚組、排序、嵌套等其它眾多常用的 SQL 語法,不需要聯(lián)合多表查詢答案,真實答案所在表格已知等,所以在這個數(shù)據(jù)集上,SQL 執(zhí)行結(jié)果的準確率目前已經(jīng)達到了 91.8%。

 

 

圖片來自于 WikiSQL(https://github.com/salesforce/WikiSQL)

但存在一個問題,這樣的數(shù)據(jù)集并不符合真實的應(yīng)用場景。在真實場景中,用戶問題中的值很可能不是數(shù)據(jù)表中所出現(xiàn)的,需要一定的泛化才可以匹配到;真實的表之間存在錯綜復(fù)雜的鍵關(guān)聯(lián)關(guān)系,想要得到真實答案,通常需要聯(lián)合多張表進行查詢;每張表都有不同的意義,并且每張表中列的意義也各不不同,甚至可能相同名字的列在不同的表格中所代表的含義也是不同的;真實場景中,用戶的問題表達會很豐富,會使用各種各樣的條件來篩選數(shù)據(jù)。諸如此類的實際因素還有很多。因此,WikiSQL 數(shù)據(jù)集起到的作用很大程度上是拋磚引玉,而不具備實際應(yīng)用場景落地的價值。

相比之下,Spider 等數(shù)據(jù)集更貼近真實應(yīng)用場景:涉及到查詢語句嵌套、多表聯(lián)合查詢,并且支持幾乎所有 SQL 語法的用法,用戶問句的表達方式和語義信息也更豐富。但即使作者們考慮到數(shù)據(jù)集的難度,貼心地將數(shù)據(jù)集按照難度分為簡單、中等和困難,該數(shù)據(jù)集的難度也依然讓人望而生畏,目前各項指標也都很低。如何更好地結(jié)合數(shù)據(jù)庫信息來理解并表達用戶語句的語義、如何編碼及表達數(shù)據(jù)庫的信息、如何生成復(fù)雜卻有必要的 SQL 語句,此類挑戰(zhàn)還有很多需要解決,它們都是非常值得探索的方向。

現(xiàn)在很多 NLP 子任務(wù)的指標已經(jīng)刷得讓人無路可走了,低垂的果實被摘得七零八落。而 NL2SQL 以及其它的語義分析任務(wù),因為各種各樣的原因,現(xiàn)在還沒有引起大家足夠的關(guān)注,但它們有著相比于其它任務(wù)更高的實際應(yīng)用價值。如果可以落地真實場景,這將極大地改變現(xiàn)有的用戶和數(shù)據(jù)庫之間的交互方式,人們可以自由地和數(shù)據(jù)庫進行交互,充分挖掘數(shù)據(jù)的價值,也減輕程序員的負擔(dān)。學(xué)界和工業(yè)界也越來越關(guān)注這方面的研究,追一科技 6 月份將發(fā)起首屆中文 NL2SQL 挑戰(zhàn)賽,期待 NL2SQL 在不遠的將來會迎來屬于自己的春天,學(xué)術(shù)應(yīng)用兩開花。

資源列表

數(shù)據(jù)集:

WikiSQL:https://github.com/salesforce/WikiSQL

Spider:https://yale-lily.github.io/spider

ATIS:https://www.kaggle.com/siddhadev/ms-cntk-atis

WikiTableQuestions:https://github.com/ppasupat/WikiTableQuestions

代碼:

SQLova:https://github.com/naver/sqlova

SQLNet:https://github.com/xiaojunxu/SQLNet

SyntaxSQL:https://github.com/taoyds/syntaxsql

其它相關(guān)資源:

Text2SQL 資源匯總:https://github.com/jkkummerfeld/text2sql-data

NLIDB 背景:http://jonaschapuis.com/2017/12/natural-language-interfaces-to-databases-nlidb/

ACL Semantic Parsing Tutorial:https://github.com/allenai/acl2018-semantic-parsing-tutorial

標簽: [db:TAGG]

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:IEEE 標準協(xié)會中國籍董事袁昱回應(yīng)各方質(zhì)疑

下一篇:DeepMind 綜述深度強化學(xué)習(xí):智能體和人類相似度竟然如此高!