摘 要:信號(hào)與信息處理的需求日益增加,離不開數(shù)據(jù)處理技術(shù),數(shù)據(jù)處理需要數(shù)據(jù)庫的支持,然而沒有經(jīng)過訓(xùn)練的使用者會(huì)因?yàn)椴皇煜?shù)據(jù)庫操作產(chǎn)生諸多問題。文本轉(zhuǎn)結(jié)構(gòu)化查詢語言(Text to Structured Query Language,Text-to-SQL)的出現(xiàn),使用戶無需掌握結(jié)構(gòu)化查詢語言(Structured Query Language,SQL) 也能夠熟練操作數(shù)據(jù)庫。介紹Text-to-SQL 的研究背景及面臨的挑戰(zhàn);介紹Text-to-SQL 關(guān)鍵技術(shù)、基準(zhǔn)數(shù)據(jù)集、模型演變及最新研究進(jìn)展,關(guān)鍵技術(shù)包括Transformer 等主流技術(shù),用于模型訓(xùn)練的基準(zhǔn)數(shù)據(jù)集包括WikiSQL 和Spider;介紹Text-to-SQL 不同階段模型的特點(diǎn),詳細(xì)闡述Text-to-SQL 最新研究成果的工作原理,包括模型構(gòu)建、解析器設(shè)計(jì)及數(shù)據(jù)集生成;總結(jié)Text-to-SQL 未來的發(fā)展方向及研究重點(diǎn)。
關(guān)鍵詞:文本轉(zhuǎn)結(jié)構(gòu)化查詢語言;解析器;文本信息處理;數(shù)據(jù)庫;深度學(xué)習(xí)
中圖分類號(hào):TP391. 1 文獻(xiàn)標(biāo)志碼:A 開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
文章編號(hào):1003-3106(2024)05-1053-10
0 引言
隨著信號(hào)與信息處理領(lǐng)域(圖像處理、文本處理、數(shù)據(jù)處理、語音處理等)研究工作的快速發(fā)展,需要考慮如何高效和準(zhǔn)確地處理、查詢、存儲(chǔ)數(shù)據(jù)信息,因此數(shù)據(jù)庫成為首選工具。專業(yè)人員可以熟練使用結(jié)構(gòu)化查詢語言(Structured Query Language,SQL)對(duì)數(shù)據(jù)庫中的信息進(jìn)行增刪改查,但是越來越多的應(yīng)用開始投入到信號(hào)與信息處理領(lǐng)域,并非所有使用者都擁有專業(yè)的數(shù)據(jù)庫使用技巧,所以將用戶輸入的文本自動(dòng)轉(zhuǎn)換為機(jī)器可執(zhí)行SQL 的文本轉(zhuǎn)結(jié)構(gòu)化查詢語言(Text to Structured Query Language,TexttoSQL)文本信息處理技術(shù)產(chǎn)生并蓬勃發(fā)展[1]。
Text-to-SQL 研究面臨的挑戰(zhàn)主要集中在3 個(gè)方面:① 對(duì)輸入的文本進(jìn)行預(yù)處理,理解輸入的自然語言的含義,提取文本涉及的數(shù)據(jù)庫關(guān)鍵字、列名和表名,減小模型訓(xùn)練難度;② 將經(jīng)過預(yù)處理的文本轉(zhuǎn)換成一種中間表示,SQL 的作用并非是方便閱讀,而是提高計(jì)算機(jī)處理數(shù)據(jù)庫的效率,它與文本之間存在巨大的差距,所以需要建立文本與數(shù)據(jù)庫語句之間的映射關(guān)系,提高文本轉(zhuǎn)化數(shù)據(jù)庫語句的效率;③ 將中間表示轉(zhuǎn)化為最終的SQL 語句。
傳統(tǒng)的Text-to-SQL 方法雖然有效,但需要耗費(fèi)大量的人力,需要提前為各種場(chǎng)景下的SQL 設(shè)置轉(zhuǎn)換模板,過程十分繁瑣[2],并且傳統(tǒng)方法沒有解決上述Text-to-SQL 面臨的挑戰(zhàn),轉(zhuǎn)換模板沒有設(shè)置文本與SQL 之間的中間表示,導(dǎo)致文本與SQL 之間的轉(zhuǎn)換效率低下。隨著近年來深度學(xué)習(xí)的崛起,深度學(xué)習(xí)逐漸運(yùn)用到Text-to-SQL 中。在眾多深度學(xué)習(xí)模型中,循環(huán)神經(jīng)網(wǎng)絡(luò)模型在這一領(lǐng)域的效果最佳,因?yàn)槲谋菊Z言和SQL 都可以當(dāng)作序列信息,需要結(jié)合前后文信息預(yù)測(cè)當(dāng)前信息,所以主要用于處理序列信息(文本、視頻和音頻等)的循環(huán)神經(jīng)網(wǎng)絡(luò)模型在Text-to-SQL 研究中效果較好。
1 關(guān)鍵技術(shù)
文本和SQL 都是序列信息,使用處理序列信息的序列模型訓(xùn)練文本效果較好,本節(jié)針對(duì)常見的序列模型以及模型評(píng)判標(biāo)準(zhǔn)進(jìn)行介紹。Text-to-SQL工作過程示例如圖1 所示。
長短期記憶(Long ShortTerm Memory,LSTM)[3]神經(jīng)網(wǎng)絡(luò)是循環(huán)神經(jīng)網(wǎng)絡(luò)的變體,通過內(nèi)部的4 類門控單元:輸入門控單元、遺忘門控單元、候選記憶門控單元和輸出門控單元對(duì)序列信息進(jìn)行篩選。LSTM 單元在循環(huán)神經(jīng)網(wǎng)絡(luò)基礎(chǔ)上,除了隱藏狀態(tài)(對(duì)應(yīng)短期記憶),還加入了記憶單元(對(duì)應(yīng)長期記憶),解決了序列信息作為輸入面臨的長期信息保存和短期輸入缺失的問題。
門控循環(huán)單元(Gated Recurrent Unit,GRU)[4]是LSTM 神經(jīng)網(wǎng)絡(luò)的簡化版本,將LSTM 神經(jīng)網(wǎng)絡(luò)內(nèi)部的4 類門控單元簡化為2 個(gè)門控單元:重置門控單元和更新門控單元。雖然GRU 針對(duì)簡易輸入的訓(xùn)練速度更快、效果更好,但面對(duì)輸入文本包含復(fù)雜語法和語義信息的情況,LSTM 神經(jīng)網(wǎng)絡(luò)是更好的選擇。
Transformer[5]模型是當(dāng)前主流深度學(xué)習(xí)模型,諸多文本處理工作都是基于Transformer 完成的。Transformer 是一種基于編碼器- 解碼器的架構(gòu),編碼器用于編碼輸入序列,將輸入序列變成向量形式并添加位置編碼,然后將其編碼為隱藏狀態(tài)輸出到解碼器中。解碼器除了接收編碼器的輸出,在每一個(gè)當(dāng)前時(shí)間步處理序列信息時(shí),還會(huì)接受來自上一個(gè)時(shí)間步的輸出,解碼器也會(huì)將輸入信息轉(zhuǎn)變?yōu)橄蛄坎⑻砑游恢镁幋a?;冢裕颍幔睿?former 模型的Text-to-SQL 模型工作原理如圖2所示。
Bert[6]模型是Transformer 模型的變體,Trans-former 基于編碼器-解碼器架構(gòu),Bert 模型雖然僅有編碼器架構(gòu),但其內(nèi)部的參數(shù)是Transformer 的數(shù)倍,它是一種預(yù)訓(xùn)練微調(diào)模型,設(shè)置好預(yù)訓(xùn)練任務(wù)對(duì)模型進(jìn)行訓(xùn)練,訓(xùn)練后的模型僅需要針對(duì)不同的任務(wù)對(duì)輸出層進(jìn)行微調(diào)。Bert 模型具有極高的泛化性,基于Bert 的Text-to-SQL 模型工作原理如圖3所示。
域外數(shù)據(jù)(Out of Domain)。數(shù)據(jù)集分為訓(xùn)練集、開發(fā)集和測(cè)試集。訓(xùn)練集用于訓(xùn)練模型,開發(fā)集用于驗(yàn)證模型,測(cè)試集用于最后測(cè)試模型。因?yàn)闇y(cè)試集只能測(cè)試一次,不能用于多次訓(xùn)練測(cè)試模型好壞,所以在數(shù)據(jù)集比較大的情況下,可以劃分出開發(fā)集對(duì)模型訓(xùn)練效果進(jìn)行驗(yàn)證。域外數(shù)據(jù)是指訓(xùn)練集與開發(fā)集中不同的部分,過多會(huì)導(dǎo)致訓(xùn)練難度變大。
BLEU 分?jǐn)?shù)(Bilingual Evaluation UnderstudyScore)[7]用于評(píng)估序列模型語義解析的好壞,將文本解析為數(shù)據(jù)庫語句的好壞程度通常用BLEU 分?jǐn)?shù)去評(píng)估。分?jǐn)?shù)值介于0 ~ 1,越接近1 代表解析結(jié)果越接近參考值。除了BLEU 分?jǐn)?shù),還有METEOR、ROUGE 和PPL 等標(biāo)準(zhǔn)也可以評(píng)價(jià)解析模型的好壞,根據(jù)不同需求選擇不同的評(píng)價(jià)指標(biāo)。
2 基準(zhǔn)數(shù)據(jù)集
高質(zhì)量的數(shù)據(jù)集能夠直接決定模型訓(xùn)練的效果,在Text-to-SQL 領(lǐng)域,用于絕大多數(shù)模型檢驗(yàn)常用的基準(zhǔn)數(shù)據(jù)集為WikiSQL[8]和Spider[9]數(shù)據(jù)集,其為大規(guī)模、多領(lǐng)域的基準(zhǔn)測(cè)試集,也是使用最為廣泛的基準(zhǔn)數(shù)據(jù)集。
WikiSQL 是目前文本轉(zhuǎn)數(shù)據(jù)庫語句領(lǐng)域使用最頻繁的基準(zhǔn)數(shù)據(jù)集,包含約25 000 個(gè)維基百科數(shù)據(jù)表和80 000 個(gè)由人工創(chuàng)建的自然語言與SQL 句子對(duì),數(shù)據(jù)集中每一行由一個(gè)自然語言文本、一個(gè)文本對(duì)應(yīng)的SQL 查詢還有SQL 查詢中涉及的列和表組成。WikiSQL 中的SQL 復(fù)雜性較低,因?yàn)槠鋬?nèi)部沒有使用復(fù)雜的SQL 子句,如:“JOIN”“GROUP BY”“ORDER BY”“UNION”“INTERSECTION”等,且在執(zhí)行查詢語句時(shí)不允許在單個(gè)查詢中選擇多個(gè)列。因此在訓(xùn)練模型時(shí),WikiSQL 的訓(xùn)練難度比較低,這是WikiSQL 使用率最高的原因。
Spider 是一個(gè)大規(guī)模的、復(fù)雜的跨領(lǐng)域數(shù)據(jù)集,包含來自138 個(gè)不同領(lǐng)域的200 多個(gè)關(guān)系數(shù)據(jù)庫。相較于WikiSQL,Spider 數(shù)據(jù)集具有更多復(fù)雜的嵌套查詢子句、更多的域外數(shù)據(jù),讓訓(xùn)練更加困難。經(jīng)過Spider 訓(xùn)練的機(jī)器學(xué)習(xí)模型可以變得更加泛化,研究人員廣泛依賴它訓(xùn)練可以生成復(fù)雜SQL 查詢的模型,適應(yīng)更多的任務(wù)。還有數(shù)據(jù)集針對(duì)Spider做了擴(kuò)展,用于訓(xùn)練指定任務(wù)。Spider-dk 擴(kuò)展了Spider,用于訓(xùn)練跨領(lǐng)域泛化模型,探索模型在面對(duì)不同領(lǐng)域中專業(yè)名詞的表現(xiàn);Spider-syn 側(cè)重于訓(xùn)練模型區(qū)分同義詞、反義詞的性能。
此外,其他數(shù)據(jù)集,例如:KaggleDBQA 是一個(gè)跨域數(shù)據(jù)集[10],雖然規(guī)模比不上WikiSQL 和Spider,但它是從Kaggle 中提取出來的,包含相當(dāng)多工業(yè)界的真實(shí)數(shù)據(jù)。
3 模型演變
本節(jié)將按時(shí)間演變介紹文本轉(zhuǎn)數(shù)據(jù)庫領(lǐng)域的模型,模型發(fā)展歷程如圖4 所示。
(1)理論提出
在文本轉(zhuǎn)數(shù)據(jù)庫語句領(lǐng)域,Li 等[11]提出的SQLNet 是較早成理論體系的模型,該模型使用的方法基于草圖技術(shù),草圖中包含數(shù)據(jù)庫語句的關(guān)鍵字、列名和表名,通過這個(gè)草圖,SQLNet 僅需往草圖留空處添加信息,就可以實(shí)現(xiàn)自然語言到數(shù)據(jù)庫語句的轉(zhuǎn)換。
(2)理論發(fā)展
基于SQLNet,Min 等[12]提出一種樹型結(jié)構(gòu)返回輸出的模型———Sequence-to-Tree。該模型可以看作是序列到樹的模型,使用LSTM 網(wǎng)絡(luò)編碼器對(duì)輸入問題進(jìn)行編碼,在編碼器處理輸入序列后,通過解碼器輸出樹型結(jié)構(gòu)的SQL 查詢語句。模型通過識(shí)別單個(gè)詞元來理解輸入,并將其轉(zhuǎn)化為樹型結(jié)構(gòu),樹節(jié)點(diǎn)上包括關(guān)鍵字(如SELECT、WHERE)、表名和列名。
(3)理論加工
這一階段數(shù)據(jù)庫領(lǐng)域開始大規(guī)模使用深度神經(jīng)網(wǎng)絡(luò)構(gòu)建模型,采用中間表示生成查詢,顯著提高了計(jì)算效率。Kevin 等[13]提出Sequence-to-SQL 模型以深度學(xué)習(xí)模型為基準(zhǔn),引入了強(qiáng)化學(xué)習(xí)方法,將交叉熵?fù)p失和數(shù)據(jù)庫在運(yùn)行中執(zhí)行查詢的獎(jiǎng)勵(lì)函數(shù)作為模型評(píng)價(jià)指標(biāo)。該模型內(nèi)部采用了一種增強(qiáng)指針網(wǎng)絡(luò),該網(wǎng)絡(luò)是一種能夠改變輸出序列長度的網(wǎng)絡(luò)架構(gòu),相較于循環(huán)神經(jīng)網(wǎng)絡(luò)輸入輸出的序列長度需要一一對(duì)應(yīng),增強(qiáng)指針網(wǎng)絡(luò)能使模型具有更好的性能。Sequence-to-SQL 模型由聚合分類器、SELECT組件和WHERE 組件構(gòu)成。
Sequence-to-SQL 模型對(duì)查詢的聚合操作進(jìn)行分類,將輸入的文本數(shù)據(jù)分類為最大最小升序降序這類約束條件。聚類分類器內(nèi)部采用的是編碼器-解碼器架構(gòu),編碼器內(nèi)部使用了雙向LSTM 網(wǎng)絡(luò),解碼器內(nèi)部采用普通的LSTM;SELECT 組件用于處理輸入文本中的列名和表名;WHERE 組件,用于確定用于轉(zhuǎn)換的數(shù)據(jù)庫語句約束條件。
(4)理論成型
這一階段文本轉(zhuǎn)數(shù)據(jù)庫語句技術(shù)趨于成熟,開始運(yùn)用復(fù)雜跨域文本數(shù)據(jù)集訓(xùn)練模型。大部分模型訓(xùn)練選用基準(zhǔn)數(shù)據(jù)集WikiSQL 進(jìn)行訓(xùn)練,但Guo等[14]提出的IRNet 選用Spider 數(shù)據(jù)集訓(xùn)練模型。相較于Spider 數(shù)據(jù)集,WikiSQL 的生態(tài)更加成熟,沒有復(fù)雜的嵌套查詢語句和大量域外數(shù)據(jù),簡化了模型的訓(xùn)練過程,但Guo 等[14]的目的是訓(xùn)練適用于復(fù)雜且有跨域文本的數(shù)據(jù)庫,所以選用更為復(fù)雜的Spider 對(duì)模型進(jìn)行訓(xùn)練。
IRNet 是基于編碼器-解碼器架構(gòu)的模型,工作原理包括3 個(gè)關(guān)鍵步驟:① 編碼器,分為問題編碼器(Question Encoder)和模式編碼器(Schema En-coder)。問題編碼器內(nèi)部是雙向LSTM 神經(jīng)網(wǎng)絡(luò),負(fù)責(zé)預(yù)處理輸入數(shù)據(jù),將輸入的文本詞元化,并使用Ngram 算法對(duì)文本中出現(xiàn)的列名和表名賦予一個(gè)類,如果詞元是數(shù)據(jù)庫中的列則分配一個(gè)“Column”,如果詞元是數(shù)據(jù)庫中的表則分配一個(gè)“Table”;模式編碼器負(fù)責(zé)為N-gram 算法中識(shí)別的列名、表名的準(zhǔn)確性匹配一個(gè)類型。其中有2 個(gè)控制單元,模式單元和記憶單元,模式單元負(fù)責(zé)為N-gram 算法識(shí)別正確的列名和表名分配一個(gè)“ExactMatch”類型,沒有正確識(shí)別的列名和表名分配一個(gè)“Partial Match”類型,分配好類型后將這些信息送入記憶單元進(jìn)行存儲(chǔ)。② 解碼器,負(fù)責(zé)接收問題編碼器的輸出,將其作為自身的隱藏狀態(tài),將文本數(shù)據(jù)轉(zhuǎn)化為樹型結(jié)構(gòu)中間表示樹。解碼器中有一套樹型結(jié)構(gòu)的轉(zhuǎn)化規(guī)則,樹中節(jié)點(diǎn)用字母Z 表示數(shù)據(jù)庫中的交集(intersect)、并集(union)和補(bǔ)集(except)操作,沒有這些操作時(shí)也用字母Z 表示;樹中結(jié)點(diǎn)用字母R 表示“SELECT”關(guān)鍵字;樹中結(jié)點(diǎn)“Select”可以分化出一個(gè)或多個(gè)節(jié)點(diǎn);樹中結(jié)點(diǎn)“Order”對(duì)應(yīng)升序(asc)和降序(desc);樹中結(jié)點(diǎn)“Superlative”對(duì)應(yīng)最大(most)和最?。ǎ欤澹幔螅簦?;樹中結(jié)點(diǎn)“Filter”表示過濾操作,對(duì)應(yīng)條件關(guān)鍵字,比如:大于、小于、等于、be-tween、not in 等;樹中結(jié)點(diǎn)“A”表示可以分化出列和表,列和表分別用字母C 和T 表示。③ 輸出層,遍歷解碼器輸出的樹將其轉(zhuǎn)化為最終的SQL 語句。
4 最新研究進(jìn)展
Octavian 等[15]以編碼器-解碼器架構(gòu)為原型,提出了一個(gè)結(jié)合自動(dòng)訓(xùn)練數(shù)據(jù)增強(qiáng)及多模型集成技術(shù)的系統(tǒng),該系統(tǒng)可以處理和提取輸入問題中的特定信息,從數(shù)據(jù)庫中將詞元連接到特定的表和列。編碼器中常用的實(shí)體識(shí)別(Name Entity Recognition)模塊在該模型中被替換成消除歧義字典模塊(Dis-ambiguation Dictionary Module),用于提供模型所需要的關(guān)鍵信息。系統(tǒng)具有以下優(yōu)勢(shì):① 集成了種子訓(xùn)練數(shù)據(jù)增強(qiáng)技術(shù),基于被稱為種子的初始訓(xùn)練語料庫,利用這種方法生成更大的訓(xùn)練集;② 使用不同的自動(dòng)生成訓(xùn)練數(shù)據(jù)集,訓(xùn)練不同的模型,并使用集成技術(shù)來分析組合多個(gè)模型的輸出。
Li 等[16]提出了用于聚合表內(nèi)文本到數(shù)據(jù)庫語句轉(zhuǎn)換的方法———Wagg,該方法使用了一種動(dòng)態(tài)修剪策略對(duì)多個(gè)聚合表中的不相關(guān)項(xiàng)進(jìn)行修剪,大大減少模型訓(xùn)練的時(shí)間成本。聚合是一種數(shù)據(jù)批處理的操作,可以將數(shù)據(jù)分組,對(duì)每組數(shù)據(jù)執(zhí)行多種批處理操作。聚合表為經(jīng)過聚合處理的表,常用于頻繁使用查詢操作的情況。目前針對(duì)聚合表的文本轉(zhuǎn)數(shù)據(jù)庫語句方向的研究相對(duì)較少,主要面臨2 個(gè)方面的挑戰(zhàn):① 聚合表意味著更復(fù)雜的映射關(guān)系,在文本與數(shù)據(jù)庫語句進(jìn)行轉(zhuǎn)換時(shí)面臨更多歧義;② 目前的深度學(xué)習(xí)模型處理聚合表會(huì)產(chǎn)生巨大的時(shí)間成本。Li 等[16]的方法使用動(dòng)態(tài)修剪策略克服了上述困難,讓聚合表這種復(fù)雜的數(shù)據(jù)庫表可以輸入模型進(jìn)行訓(xùn)練。
W ei 等[17]在解碼器中引入了多任務(wù)學(xué)習(xí)的共享機(jī)制,通過不同的子任務(wù)共享同一個(gè)解碼器來實(shí)現(xiàn),可以有效降低模型的復(fù)雜性,并且允許不同子任務(wù)在訓(xùn)練過程中共享知識(shí),使模型能夠更好地學(xué)習(xí)到不同子任務(wù)之間的依賴關(guān)系。文本轉(zhuǎn)數(shù)據(jù)庫語句使用基于編碼器-解碼器架構(gòu)的模型時(shí),普通解碼器學(xué)習(xí)不同子任務(wù)之間相關(guān)性的能力有限,過于復(fù)雜的解碼器會(huì)增加訓(xùn)練成本。文獻(xiàn)[17]的方法避免了上面2 種情況,保證模型訓(xùn)練效果的同時(shí)避免了過高的模型復(fù)雜性。
Tomer 等[18]提出了一種基于弱監(jiān)督學(xué)習(xí)的方法———Odmrs 來訓(xùn)練模型中文本轉(zhuǎn)數(shù)據(jù)庫語句的解析器,其未使用手動(dòng)標(biāo)記的高質(zhì)量數(shù)據(jù)作為訓(xùn)練標(biāo)準(zhǔn),而是使用非專業(yè)用戶提供的數(shù)據(jù)進(jìn)行訓(xùn)練,證明了模型強(qiáng)大的泛化性。解析器中合成SQL 的算法流程,如算法1 所示。
算法1 的工作原理為:定義一個(gè)數(shù)組mapped 用于后續(xù)存儲(chǔ)變量(第1 行);利用啟發(fā)式函數(shù)f 將xi表達(dá)為結(jié)構(gòu)化形式Mi,根據(jù)模板推斷Mi 中的具體操作(第2 行);然后通過弱監(jiān)督學(xué)習(xí)模型將結(jié)構(gòu)化表示Mi 映射到數(shù)組中(第3 ~ 14 行),針對(duì)每個(gè)結(jié)構(gòu)化的表示Mi,提取出其中的列名和相關(guān)性強(qiáng)的SQL 查詢,并創(chuàng)建數(shù)組join(第3 ~ 7 行)。根據(jù)列與列之間的相關(guān)性和構(gòu)建的結(jié)構(gòu)化模板去生成SQL查詢(第8 ~ 14 行),JOINP 函數(shù)用于連接表之間的不同列,OPTYPE 函數(shù)用于從結(jié)構(gòu)化模板中推斷Mi中的具體數(shù)據(jù)庫操作,MAPSQL 函數(shù)將Mi 映射到SQL 中;最后返回SQL 查詢(第15 行)。Text-to-SQL 最新研究進(jìn)展總結(jié)如表1 所示。
Geunyeong 等[19]提出了一種混合譯碼器,為SQL 生成構(gòu)建出基本結(jié)構(gòu),結(jié)構(gòu)中包含每個(gè)查詢過程中可能需要使用的自行定義數(shù)據(jù)庫語句組件,混合解碼器依據(jù)該結(jié)構(gòu)依次生成SQL 查詢。Qi 等[20]提出了一種基于Transformer 的架構(gòu),利用Transformer 中的自注意力機(jī)制識(shí)別表與表之間的關(guān)系,將模式連接和模式編碼等關(guān)系結(jié)構(gòu)引入模型,讓模型生成更符合邏輯的SQL。Xu 等[21]提出一種基于循環(huán)神經(jīng)網(wǎng)絡(luò)的方法———SeaD,將自回歸模型與序列到序列模型結(jié)合,過濾輸入文本,克服解碼過程對(duì)模型的限制,提高文本到SQL 的準(zhǔn)確性。Qin等[22]設(shè)計(jì)了一種基于神經(jīng)網(wǎng)絡(luò)的方法———Sun,在Sun 中使用一種啟發(fā)式的約束規(guī)則來限制模型輸出,提高模型的泛化性和穩(wěn)定性。Shi 等[23]針對(duì)跨語言文本到SQL 語義解析的問題,提出一種基于遷移學(xué)習(xí)的文本解析模型———Transfer Learning inCross-Lingual(XRICL),利用基于英文數(shù)據(jù)集的訓(xùn)練成果遷移到其他語言模型中。Pi 等[24]設(shè)計(jì)了一種名為Adveta 的系統(tǒng),用于測(cè)試Text-to-SQL 模型魯棒性,使用Adversarial Table Perturbation(ATP)指標(biāo)評(píng)估模型魯棒性,該系統(tǒng)內(nèi)部結(jié)構(gòu)主要是對(duì)抗生成框架,在監(jiān)測(cè)模型魯棒性的同時(shí)也能對(duì)模型進(jìn)行改進(jìn)。Han 等[25]提出一種基于圖的方法———RuleSQLova,偏向于處理數(shù)據(jù)庫中的聚合操作符。Zheng 等[26]提出了一種基于模式連接圖的方法———HIESQL,該方法增強(qiáng)輸入文本與SQL 之間的連接,提升了模式連接的準(zhǔn)確率。Xiao 等[27]基于上下文相關(guān)文本序列問題提出Conversation Question Reformulation(CQR)方法,該方法基于遞歸增強(qiáng)模式來生成文本與SQL 之間的中間表示,讓模型充分理解上下文語義,增強(qiáng)SQL 的解析能力。Wang 等[28]提出了一種基于大規(guī)模預(yù)訓(xùn)練語言模型來誘導(dǎo)解析器對(duì)輸入文本進(jìn)行處理的方法———Proton,該方法是無監(jiān)督學(xué)習(xí)模型,無需對(duì)輸入文本進(jìn)行預(yù)處理。Abhijeet等[29]提出了一種名為REFILL 的框架,用于合成高質(zhì)量、多樣化的并行數(shù)據(jù)集,REFILL 框架從現(xiàn)有模式中檢索和添加文本查詢,提高模型訓(xùn)練效率。Chen 等[30]提出了一種基準(zhǔn)數(shù)據(jù)集修改器,用于預(yù)訓(xùn)練基準(zhǔn)數(shù)據(jù)集SQuALL 時(shí)進(jìn)行分割,該解析器由模式擴(kuò)展和模式修剪組成,在訓(xùn)練過程中對(duì)輸入數(shù)據(jù)SQuALL 進(jìn)行合成與分割。Lee 等[31]設(shè)計(jì)了一種符合醫(yī)院應(yīng)用場(chǎng)景的數(shù)據(jù)庫———Electronic HealthRecords(EHRs),用于醫(yī)學(xué)場(chǎng)景下的模型訓(xùn)練。
5 結(jié)束語
本文綜述了Text-to-SQL 文本處理技術(shù)最新研究成果,包括關(guān)鍵技術(shù)、基準(zhǔn)數(shù)據(jù)集、模型演變和最新研究進(jìn)展。關(guān)鍵技術(shù)包括LSTM、GRU、Transformer、Bert、域外數(shù)據(jù)和BLEU 分?jǐn)?shù)等技術(shù);基準(zhǔn)數(shù)據(jù)集主要介紹了WikiSQL 和Spider;模型演變從4 個(gè)階段詳述了Text-to-SQL 技術(shù),包括理論提出、理論發(fā)展、理論加工和理論成型;最新研究進(jìn)展從模型構(gòu)建、解析器設(shè)計(jì)和數(shù)據(jù)集生成3 個(gè)方面概述了最新研究成果。
在模型的構(gòu)建上,雖然大部分是基于Transformer 的編碼器-解碼器架構(gòu)模型,但是ChatGenerative Pe-trained Transformer(ChatGPT)模型的成功預(yù)示著這類架構(gòu)具有很大的潛力,未來仍可以針對(duì)該結(jié)構(gòu)進(jìn)行改良,從不同角度提高模型性能。對(duì)于解析器而言,未來可以設(shè)計(jì)基于圖神經(jīng)網(wǎng)絡(luò)的模型,利用圖中節(jié)點(diǎn)之間的關(guān)系解析上下文,增加文本與SQL 之間的轉(zhuǎn)換效率。目前常用的數(shù)據(jù)集主要包括WikiSQL 和Spider,數(shù)據(jù)集是決定模型訓(xùn)練效果好壞的重要因素,未來可以針對(duì)不同業(yè)務(wù)場(chǎng)景構(gòu)建出適合的基準(zhǔn)數(shù)據(jù)集用于該領(lǐng)域模型訓(xùn)練,如針對(duì)性的構(gòu)建適合法律、教育和互聯(lián)網(wǎng)等環(huán)境的訓(xùn)練數(shù)據(jù)集,讓模型在上述領(lǐng)域具有更好的性能。
此外,文本信息處理涉及隱私數(shù)據(jù),隱私保護(hù)問題是不可忽視的,通常獲取的文本信息是公開的、性比較低的,不能擅自使用未公開或是私密性高的數(shù)據(jù),未來可以制定相關(guān)規(guī)范或是制定更多的基準(zhǔn)數(shù)據(jù)集,吸引更多的研究者投入Text-to-SQL 領(lǐng)域的研究。
參考文獻(xiàn)
[1] GEORGEK M,GEORGIA K. A Survey on Deep LearningApproaches for TexttoSQL[J]. The International Journalon Very Large Data Bases,2023,32(4):905-936.
[2] GU Z H,FAN J,TANG N,et al. Sam Madden:FewshotTexttoSQL Translation Using Structure and ContentPrompt Learning[J]. Proceedings of the ACM on Management of Data,2023,1(2):147.
[3] ZHOU S L,LI J,WANG H,et al. GRLSTM:Trajectory Similarity Computation with Graphbased Residual LSTM[C]∥Proceedings of the Thirtyseventh AAAI Conference on Artificial Intelligence. [S. l. ]:AAAI,2023:4972-4980.
[4] CHEN Y,CAO H,ZHOU Y Q,et al. A GCNGRU BasedEndtoEnd LEO Satellite Network Dynamic Topology Prediction Method[C]∥2016 IEEE Wireless Communicationsand Networking Conference. Glasgow:IEEE,2023:1-6.
[5] CHATZIANASTASIS M,LUTZEYER J F,DASOULAS G,et al. Grph Ordering Attention Networks [EB / OL ].(2022-04-11)[2023-07-10]. https:∥arxiv. org / abs /2204. 05351.
[6] ZHAO W C,HU H Z,ZHOU W G,et al. BEST:BERTPretraining for Sign Language Recognition with CouplingTokenization[C]∥Proceedings of the 37th AAAI Conference on Artificial Intelligence. Washington D. C. :AAAI,2023:3597-3605.
[7] SAMANTA D,VENKATESH V,MONIKA G,et al. Evaluating Commit Message Generation:To BLEU or Not toBLEU?[C]∥2022 IEEE / ACM 44th IEEE InternationalConference on Software Engineering:New Ideas andEmerging Results. Pittsburgh:IEEE,2023:31-35.
[8] SEMIH Y,IZZEDDIN G,SU Y,et al. What It Takes toAchieve 100% Condition Accuracy on WikiSQL [C]∥Proceedings of the Conference on Empirical Methods inNatural Language Processing. Brussels: ACL,2018:1702-1711.
[9] YU T,ZHANG R,YANG K,et al. Spider:A LargescaleHumanlabeled Dataset for Complex and CrossdomainSemantic Parsing and TexttoSQL Task[C]∥Proceedingsof the 2018 Conference on Empirical Methods in NaturalLanguage Processing. Brussels:ACL,2018:3911-3921.
[10] LEE C H,POLOZOV O P,RICHARDSON M. KaggleDBQA:Realistic Evaluation of TexttoSQL Parsers[C]∥Proceedings of the 59th Annual Meeting of the Associationfor Computational Linguistics and 11th International JointConference on Natural Language Processing. [S. l. ]:ACL,2021:2261-2273.
[11] LI D,MIRELLA L. Language to Logical Form with NeuralAttention[C]∥ Proceedings of the 54th Annual Meetingof the Association for Computational Linguistics. Berlin:ACL,2016:33-43.
[12] MIN Q K,SHI Y F,ZHANG Y. A Pilot Study for ChineseSQL Semantic Parsing [C]∥ Proceedings of the 2019Conference on Empirical Methods in Natural LanguageProcessing and the 9th International Joint Conference onNatural Language Processing (EMNLPIJCNLP ). HongKong:ACL,2019:3652-3658.
[13] KEVIN S,DIRK K. Seq2SQLEvaluating Different DeepLearning Architectures Using Word Embeddings [C]∥15th International Conference Machine Learning and DataMining in Pattern Recognition. New York:MLDB,2019:343-354.
[14] GUO J Q,ZHAN Z C,GAOY,et al. Towards ComplexTexttoSQL in Crossdomain Database with IntermediateRepresentation [C ]∥ Proceedings of the 57th AnnualMeeting of the Association for Computational Linguistics.Florence:ACL,2019:4524-4535.
[15] OCTAVIAN P,IRENE M,NGOC P A O,et al. AddressingLimitations of EncoderDecoder Based Approach to TexttoSQL[C]∥Proceedings of the 29th International Conference on Computational Linguistics. Gyeongju:ICCL,2022:1593-1603.
[16] LI S Q,ZHOU K B,ZHUANG Z Y,et al. Towards TexttoSQL over Aggregate Tables[J]. Data Intelligence,2023,5(2):457-474.
[17] WEI C,HUANG S B,LIR S. Enhance TexttoSQL ModelPerformance with Information Sharing and Reweight Loss[J]. Multimedia Tools and Applications,2022,81 (11):15205-15217.
[18] TOMER W,DANIEL D,JONATHAN B. Weakly SupervisedTexttoSQL Parsing Through Question Decomposition[C]∥Findings of the Association for Computational Linguistics:NAACL 2022. Seattle:ACL,2022:2528-2542.
[19] GEUNYEONG J,MIRAE H,SEULGI K,et al. ImprovingTexttoSQL with a Hybrid Decoding Method [J ].Entropy,2023,25(3):513.
[20] QI J X,TANG J Y,HE Z W,et al. RASAT:IntegratingRelational Structures into Pretrained Seq2Seq Model forTexttoSQL[C]∥Proceedings of the 2022 Conference onEmpirical Methods in Natural Language Processing. AbuDhabi:ACL,2022:3215-3229.
[21] XU K,WANG Y B,WANGY L,et al. SeaD:EndtoEndTexttoSQL Generation with Schemaaware Denoising[C]∥Findings of the Association for Computational Linguistics.Seattle:ACL,2022:1845-1853.
[22] QIN B W,WANG L H,HUI B Y,et al. SUN:ExploringIntrinsic Uncertainties in TexttoSQL Parsers[C]∥Proceedings of the 29th International Conference on Computational Linguistics. Gyeongju:ICCL,2022:5298-5308.
[23] SHI P,ZHANG R,BAI H,et al. XRICL:CrosslingualRetrievalaugmented Incontext Learning for CrosslingualTexttoSQL Semantic Parsing[C]∥Findings of the Association for Computational Linguistics. Abu Dhabi:ACL,2022:5248-5259.
[24] PI X Y,WANG B,GAO Y,et al. Towards Robustness ofTexttoSQL Models Against Natural and Realistic Adversarial Table Perturbation [C]∥ Proceedings of the 60thAnnual Meeting of the Association for Computational Linguistics. Dublin:ACL,2022:2007-2022.
[25] HAN S K,GAO N,GUO X B,et al. RuleSQLova:Improving TexttoSQL with Logic Rules[C]∥2022 International Joint Conference on Neural Networks. Padua:IEEE,2022:1-8.
[26] ZHENG Y Z,WANG H B,DONG B H,et al. HIESQL:History Information Enhanced Network for Contextdependent TexttoSQL Semantic Parsing[C]∥Findings ofthe Association for Computational Linguistics. Dublin:ACL,2022:2997-3007.
[27] XIAO D L,CHAI L Z,ZHANG Q W,et al. CQRSQL:Conversational Question Reformulation Enhanced Contextdependent TexttoSQL Parsers[C]∥Findings of the Association for Computational Linguistics. Abu Dhabi:ACL,2022:2055-2068.
[28] WANG L H,QIN B W,HUI B Y,et al. Proton:ProbingSchema Linking Information from Pretrained LanguageModels for TexttoSQL Parsing[C]∥Proceedings of the28th ACM SIGKDD Conference on Knowledge Discoveryand Data Mining. New York:ACM,2022:1889-1898.
[29] ABHIJEET A,ASHUTOSH S,SUNITA S. Diverse ParallelData Synthesis for Crossdatabase Adaptation of TexttoSQL Parsers[C]∥Proceedings of the 2022 Conference onEmpirical Methods in Natural Language Processing. AbuDhabi:ACL,2022:11548-11562.
[30] CHEN Z,SU Y,ADAM P,et al. Bridging the GeneralizationGap in TexttoSQL Parsing with Schema Expansion[C]∥Proceedings of the 60th Annual Meeting of the Associationfor Computational Linguistics. Dublin: ACL, 2022:5568-5578.
[31] LEE G,HWANG H,BAE S,et al. EHRSQL:A PracticalTexttoSQL Benchmark for Electronic Health Records[EB / OL]. (2023 - 01 - 16)[2023 - 07 - 18]. https:∥arxiv. org / abs / 2301. 07695.
作者簡介
彭鈺寒 男,(1999—),碩士研究生。主要研究方向:人工智能數(shù)據(jù)庫。
(*通信作者)喬少杰 男,(1981—),博士,教授。主要研究方向:人工智能數(shù)據(jù)庫、時(shí)空數(shù)據(jù)庫、機(jī)器學(xué)習(xí)。
薛 騏 男,(1999—),碩士研究生。主要研究方向:時(shí)空數(shù)據(jù)庫。
李江敏 男,(1997—),碩士研究生。主要研究方向:人工智能數(shù)據(jù)庫。
謝添丞 男,(1997—),碩士研究生。主要研究方向:軌跡預(yù)測(cè)。
徐康鐳 男,(1999—),碩士研究生。主要研究方向:人工智能數(shù)據(jù)庫。
冉黎瓊 女,(1998—),碩士研究生。主要研究方向:數(shù)據(jù)挖掘、云計(jì)算。
曾少北 男,(1980—),碩士。主要研究方向:數(shù)據(jù)智能應(yīng)用。
基金項(xiàng)目:國家自然科學(xué)基金(62272066,61962006);四川省科技計(jì)劃(2021JDJQ0021,2022YFG0186,2022NSFSC0511,2023YFG0027);教育部人文社會(huì)科學(xué)研究規(guī)劃基金(22YJAZH088);宜賓市引進(jìn)高層次人才項(xiàng)目(2022YG02);成都市“揭榜掛帥”科技項(xiàng)目(2022-JB00-00002-GX,2021-JB00-00025-GX);四川省教育廳人文社科重點(diǎn)研究基地四川網(wǎng)絡(luò)文化研究中心資助科研項(xiàng)目(WLWH22-1);成都信息工程大學(xué)國家智能社會(huì)治理實(shí)驗(yàn)基地開放課題(ZNZL2023B05);成都信息工程大學(xué)科技創(chuàng)新能力提升計(jì)劃(KYTD202222)