于曉昕 何東 葉子銘 陳黎 于中華
現(xiàn)有Text2SQL方法嚴重依賴表名和列名在自然語言查詢中的顯式提及,在同物異名的實際應(yīng)用場景中準(zhǔn)確率急劇下降.此外,這些方法僅僅依賴數(shù)據(jù)庫模式捕捉數(shù)據(jù)庫建模的領(lǐng)域知識,而數(shù)據(jù)庫模式作為結(jié)構(gòu)化的元數(shù)據(jù),其表達領(lǐng)域知識的能力是非常有限的,即使有經(jīng)驗的程序員也很難僅從數(shù)據(jù)庫模式完全領(lǐng)會該數(shù)據(jù)庫建模的領(lǐng)域知識,因此程序員必須依賴詳細的數(shù)據(jù)庫設(shè)計文檔才能構(gòu)造SQL語句以正確地表達特定的查詢.為此,本文提出一種利用詞典擴展數(shù)據(jù)庫模式信息的Text2SQL方法,該方法從數(shù)據(jù)庫表名和列名解析出其中的單詞或短語,查詢詞典獲取這些單詞或短語的語義解釋,將這些解釋看成是相應(yīng)表名或列名的擴展內(nèi)容,與表名、列名及其他數(shù)據(jù)庫模式信息(主鍵、外鍵等)相結(jié)合,作為模型的輸入,從而使模型能夠更全面地學(xué)習(xí)數(shù)據(jù)庫建模的應(yīng)用領(lǐng)域知識.在Spider-syn和Spider數(shù)據(jù)集上進行的實驗說明了所提出方法的有效性,即使自然語言查詢中使用的表名和列名與數(shù)據(jù)庫模式中對應(yīng)的表名和列名完全不同,本文方法也能夠得到較好的SQL翻譯結(jié)果,明顯優(yōu)于最新提出的抗同義詞替換攻擊的方法.
數(shù)據(jù)庫模式; 語義擴展; 解釋信息; Text2SQL
TP391 A 2024.012004
A Text2SQL method utilizing database schema ?information expanded by ?dictionary
YU Xiao-Xin, HE Dong, YE Zi-Ming, CHEN Li, YU Zhong-Hua
(College of Computer Science, Sichuan University, Chengdu 610065, China)
The existing Text2SQL methods rely heavily on the explicit mention of tables and columns in natural language queries, which causes the accuracy rate drops sharply in real-world scenarios when the same object has different names. In addition, these methods only use the database schema to capture the domain knowledge of database modeling, but the database schema, as structured metadata, has a very limited ability to express domain knowledge. This makes it difficult even for experienced programmers to fully comprehend the domain knowledge of database modeling only from the database schema, so programmers require detailed database design documents to construct SQL statements to correctly express specific queries. Therefore, we propose a Text2SQL model that uses dictionaries to expand database schema information, which parses out words or phrases in the tables and columns, queries the dictionary to obtain the semantic interpretations of these words or phrases. These semantic interpretations and the corresponding tables or columns, combined with the tables, columns and other database schema information such as primary key, foreign key are introduced to the model to learn the application field knowledge of database modeling more comprehensively. Experiments on Spider-syn and Spider dataset illustrate the effectiveness of our method, even if the table and column names used in the natural language queries are completely different from the corresponding tables and columns in the database schema, our method can get better SQL translation results, which significantly better than the latest proposed method against synonym substitution.
Database schema; Semantic extension; Interpretation information; Text2SQL
1 引 言 現(xiàn)實世界中大量數(shù)據(jù)保存在關(guān)系數(shù)據(jù)庫中,用戶通過應(yīng)用系統(tǒng)提供的界面訪問這些數(shù)據(jù),應(yīng)用系統(tǒng)開發(fā)者負責(zé)將用戶請求轉(zhuǎn)化成數(shù)據(jù)庫查詢引擎所支持的SQL語句.上述數(shù)據(jù)訪問模式雖然應(yīng)用廣泛,但受限于應(yīng)用系統(tǒng)所提供的界面,普通用戶無法靈活利用數(shù)據(jù)庫中的數(shù)據(jù),任何數(shù)據(jù)訪問需求的變更必須依賴于應(yīng)用系統(tǒng)開發(fā)者設(shè)計新的SQL程序,而撰寫正確的SQL語句,即使對于有經(jīng)驗的開發(fā)者,也不是一項輕松的工作.為此,Text2SQL任務(wù)被提出 ?[1-3] ,旨在為數(shù)據(jù)庫系統(tǒng)提供自然語言查詢接口,這樣用戶和程序員無需掌握SQL語言,可以直接使用自然語言表達自己的數(shù)據(jù)訪問需求,由查詢接口自動將自然語言查詢轉(zhuǎn)化成SQL語句.采用自然語言表達數(shù)據(jù)庫查詢請求,既可以減輕程序員的工作負擔(dān),也可以為普通用戶提供自然靈活的數(shù)據(jù)庫訪問方式,因此Text2SQL提出后受到學(xué)術(shù)界和工業(yè)界的廣泛重視.
目前研究者針對三種場景構(gòu)建了標(biāo)注數(shù)據(jù)集并開展相關(guān)Text2SQL研究:單數(shù)據(jù)庫 ?[4] 、多數(shù)據(jù)庫單表 ?[5] 和多數(shù)據(jù)庫多表 ?[6] .單數(shù)據(jù)庫場景假定深度學(xué)習(xí)算法只需針對特定數(shù)據(jù)庫訓(xùn)練Text2SQL模型,這種場景雖然降低了任務(wù)的復(fù)雜性,但也導(dǎo)致模型應(yīng)用受限.多數(shù)據(jù)庫場景中,數(shù)據(jù)庫模式和自然語言查詢共同作為Text2SQL模型的輸入,模型需要捕捉數(shù)據(jù)庫模式和自然語言查詢之間的關(guān)聯(lián),并在不同的數(shù)據(jù)庫模式和自然語言查詢之間泛化.不同的是,多數(shù)據(jù)庫單表假定每個數(shù)據(jù)庫只有一張表,不存在嵌套查詢,而多數(shù)據(jù)庫多表允許一個數(shù)據(jù)庫含有多張表,可以多表連接或嵌套查詢,因此適用面更廣,是目前研究的熱點.
多數(shù)據(jù)庫多表Text2SQL目前面臨的主要挑戰(zhàn)是捕捉自然語言查詢與數(shù)據(jù)庫模式之間的關(guān)聯(lián),確定SQL查詢對象,即表名、列名.為了應(yīng)對上述挑戰(zhàn),研究者提出了一系列編碼器方法 ?[7-14] ,包括基于自然語言查詢和數(shù)據(jù)庫模式線性化的BERT ?[15] 編碼方法和基于圖神經(jīng)網(wǎng)絡(luò)的編碼方法.但這些方法的核心是模式鏈接,即建立數(shù)據(jù)庫模式(表名、列名)和自然語言查詢之間的對齊關(guān)系,一些方法基于字面或語義相似性建立硬對齊關(guān)系,另外一些通過數(shù)據(jù)庫模式與自然語言查詢之間的交互注意力建立軟對齊關(guān)系.這些嚴重依賴模式鏈接的方法雖然在Spider ?[6] 數(shù)據(jù)集上取得了近70%的Text2SQL準(zhǔn)確率,但Gan等人 ?[16] 進一步分析了上述方法在Spider數(shù)據(jù)集上表現(xiàn)良好的原因,發(fā)現(xiàn)Spider ?[6] 數(shù)據(jù)集是有偏的,被查詢數(shù)據(jù)庫的表名和列名在自然語言查詢中明確出現(xiàn),這不代表實際應(yīng)用的真實情況,普通用戶很難理解數(shù)據(jù)庫模式,更難準(zhǔn)確記憶表名和列名.為了模擬真實的應(yīng)用場景,Gan等人 ?[16] 針對Spider ?[6] 自然語言查詢中顯式提及的表名和列名,人工篩選同義詞替換它們,并把這種操作稱為同義詞替換攻擊,這樣替換得到的新數(shù)據(jù)集叫做Spider-syn.他們在Spider-syn上測試了上述模型中表現(xiàn)最好的三個 ?[7,9,12] ,發(fā)現(xiàn)這些模型在同義詞替換攻擊下Text2SQL效果大大下降,說明現(xiàn)有方法過度依賴模式鏈接,無法適用于真實的數(shù)據(jù)庫應(yīng)用場景.針對同義詞替換攻擊,Gan等人 ?[16] 分別提出了對抗訓(xùn)練和數(shù)據(jù)庫表名列名同義詞擴展兩種解決方法,并實驗驗證了這兩種方法的同義詞替換魯棒性.
實質(zhì)上,在數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)過程中,程序員在不理解數(shù)據(jù)庫建模的領(lǐng)域知識的情況下很難準(zhǔn)確構(gòu)造實現(xiàn)一個查詢功能的SQL語句,而數(shù)據(jù)庫模式作為結(jié)構(gòu)化的元數(shù)據(jù),其提供的領(lǐng)域知識是很有限的,有經(jīng)驗的程序員也必須依賴數(shù)據(jù)庫詳細設(shè)計文檔才能撰寫SQL語句.同樣,Text2SQL模型僅以數(shù)據(jù)庫模式和自然語言查詢作為輸入,也很難生成完成相應(yīng)自然語言查詢的SQL語句.例如,圖1給出的數(shù)據(jù)庫僅包含表“公司(收入,凈收入,預(yù)算,…)”,對該數(shù)據(jù)庫的自然語言查詢“貴公司明年預(yù)計投入多少錢來完成業(yè)務(wù)目標(biāo)?”,無論是有經(jīng)驗的程序員還是Text2SQL模型,只有在理解“預(yù)算”的含義(代表為未來發(fā)展的投入)后才能確定上述查詢涉及字段“預(yù)算”,而數(shù)據(jù)庫模式并不包含這樣的應(yīng)用背景知識.
基于上述考慮,本文提出一種利用詞典擴展數(shù)據(jù)庫模式信息的Text2SQL方法ExSQL(Expansion Enhanced SQL),利用詞典中包含的字段詞匯語義解釋,豐富數(shù)據(jù)庫建模的領(lǐng)域知識,進一步提高Text2SQL模型抵抗同義詞替換攻擊的能力,彌補數(shù)據(jù)庫模式與自然語言查詢之間的語義鴻溝.
本文的主要貢獻如下:(1) 提出了一種利用詞典擴展數(shù)據(jù)庫模式信息的Text2SQL方法ExSQL,利用擴展的解釋信息豐富數(shù)據(jù)庫建模的領(lǐng)域知識,從而更準(zhǔn)確地生成SQL語句.(2) 利用圖神經(jīng)網(wǎng)絡(luò)來捕捉數(shù)據(jù)庫模式、數(shù)據(jù)庫模式詞典解釋文本和自然語言查詢文本三者之間的語義關(guān)聯(lián),提高Text2SQL模型抵抗同義詞替換攻擊的能力.(3)在Spider-syn和Spider上進行了一系列實驗,驗證了ExSQL的有效性.從實驗數(shù)據(jù)可以發(fā)現(xiàn),ExSQL甚至優(yōu)于文獻[16]給出的算法的上界性能(上界性能是通過把自然語言查詢中出現(xiàn)的表名和列名都擴展到對應(yīng)的表和列上得到的Text2SQL結(jié)果).
2 相關(guān)工作
與人工智能的其他領(lǐng)域一樣,目前Text2SQL的主流方法也是數(shù)據(jù)驅(qū)動的深度學(xué)習(xí)方法,為此研究者發(fā)布了一系列基準(zhǔn)(benchmark)數(shù)據(jù)集,典型的有Scholar ?[17] 、Academic ?[18] 、WikiSQL ?[5] 、Spider ?[6] 等.它們不但為模型訓(xùn)練和測試提供了黃金標(biāo)注數(shù)據(jù),而且分別針對不同的應(yīng)用場景定義了三種具體的Text2SQL任務(wù).數(shù)據(jù)集Scholar ?[17] 和Academic ?[18] 針對相同數(shù)據(jù)庫構(gòu)造了大量自然語言查詢-SQL語句對,定義了單數(shù)據(jù)庫Text2SQL任務(wù),旨在訓(xùn)練深度學(xué)習(xí)模型捕捉固定數(shù)據(jù)庫不同自然語言查詢與對應(yīng)的SQL語句之間的關(guān)系.該任務(wù)無需在不同的數(shù)據(jù)庫模式之間進行泛化,相對簡單,一般的序列-序列模型往往可以取得很好的效果 ?[19] .但該任務(wù)要求為每個需要查詢的數(shù)據(jù)庫提供大量訓(xùn)練用的自然語言查詢-SQL語句對,并且為不同的數(shù)據(jù)庫訓(xùn)練不同的Text2SQL模型,這使開發(fā)數(shù)據(jù)庫自然語言查詢接口成為一項費時費力的工作,適用范圍受限.
數(shù)據(jù)集WikiSQL ?[5] 和Spider ?[6] 定義了多數(shù)據(jù)庫Text2SQL任務(wù).這兩個數(shù)據(jù)集均提供了多個數(shù)據(jù)庫,每個數(shù)據(jù)庫有多個自然語言查詢-SQL語句對,不同的是前者每個數(shù)據(jù)庫僅包含單張表 ?[5,20,21] ,而后者一個數(shù)據(jù)庫可能含有多張表,并且查詢包含多表連接或嵌套的情況 ?[6] .由于多數(shù)據(jù)庫多表的情況更一般,因此是目前研究的焦點.
針對多數(shù)據(jù)庫多表的Text2SQL,現(xiàn)有的工作普遍采用編碼器-解碼器架構(gòu) ?[22] ,并且在編碼器中顯式或隱含地堆疊模式鏈接器,捕捉SQL查詢的對象-表名和列名.在編碼器中引入模式鏈接器的方法主要有兩種,一種是基于圖神經(jīng)網(wǎng)絡(luò)的方法,另一種是基于注意力的序列建模方法.基于圖神經(jīng)網(wǎng)絡(luò)的編碼器 ?[7,10-13] 以數(shù)據(jù)庫模式元素(表名、列名)和自然語言查詢中的詞(Token)作為圖的結(jié)點,根據(jù)表名、列名與Token之間的字面相似性或語義嵌入表達相似性確定結(jié)點之間的邊或作為邊的權(quán)重,經(jīng)過圖神經(jīng)網(wǎng)絡(luò)訓(xùn)練后學(xué)習(xí)得到融合了自然語言查詢信息的數(shù)據(jù)庫模式元素表達和融合了數(shù)據(jù)庫模式信息的自然語言查詢表達.基于注意力的序列編碼器 ?[14] 將數(shù)據(jù)庫模式和自然語言查詢線性序列化(序列中包含表名、列名、主鍵和外鍵信息以及自然語言查詢中的Token),通過BERT中的自注意力機制 ?[14] 捕捉序列中不同類型元素之間的軟對齊關(guān)系,其中表名和列名與Token之間的注意力權(quán)重隱含地實現(xiàn)了模式鏈接器的功能,或者通過字面相似性確定自然語言查詢與數(shù)據(jù)庫模式之間的對齊關(guān)系,然后在序列編碼過程中編碼這些對齊關(guān)系 ?[14] .
現(xiàn)有工作在設(shè)計Text2SQL解碼器時多數(shù)采用了指針網(wǎng)絡(luò),區(qū)別在于一些工作將輸入編碼解碼成SQL語句的抽象語法樹AST ?[23] ,另外一些直接解碼成SQL語句的Token序列 ?[14] .
上述方法在Spider數(shù)據(jù)集上取得了大約70%的SQL語句精確匹配正確率,但是正如文獻[16]指出的那樣,他們強烈依賴表名和列名在自然語言查詢中的顯式提及,以及模式鏈接器對這些提及的準(zhǔn)確捕捉.在實際應(yīng)用中,普通用戶很難精確記憶數(shù)據(jù)庫模式中的表名和列名.為了驗證上述方法在真實應(yīng)用場景下的Text2SQL性能,Gan等人 ?[16] 用同義詞替換了Spider自然語言查詢中出現(xiàn)的表名和列名,構(gòu)建了數(shù)據(jù)集Spider-syn,說明了現(xiàn)有方法在Spider上虛高性能的假象.為了解決所發(fā)現(xiàn)的問題,Gan等人 ?[16] 提出了兩種解決方案,一種是以同義詞擴展數(shù)據(jù)庫模式中的表名和列名,將擴展后的數(shù)據(jù)庫模式作為Text2SQL模型的輸入,另外一種是采用對抗訓(xùn)練的方法,以對抗樣本結(jié)合正常樣本重新訓(xùn)練模型.在Spider-syn上進行的實驗發(fā)現(xiàn)前一種方法效果更好,并且具有不需要重新訓(xùn)練模型的優(yōu)點.
不同于已有工作,本文認為,在數(shù)據(jù)庫模式和自然語言查詢之間存在語義鴻溝是自然的,這種語義鴻溝就是數(shù)據(jù)庫建模的領(lǐng)域知識,而SQL查詢對象(表名、列名)在自然語言查詢中不出現(xiàn)只是這種語義鴻溝的特例,數(shù)據(jù)庫詳細設(shè)計文檔正是程序員彌補這種語義鴻溝的重要信息來源.但Spider數(shù)據(jù)集僅包含數(shù)據(jù)庫模式(表名、列名、主鍵、外鍵等),每個數(shù)據(jù)庫建模的領(lǐng)域知識缺失,更沒有數(shù)據(jù)庫的詳細設(shè)計文檔.為此,本文提出一種利用詞典擴展數(shù)據(jù)庫模式信息的Text2SQL方法,該方法利用數(shù)據(jù)庫模式中出現(xiàn)的Token的詞條解釋信息來彌補上述語義鴻溝,更全面地在Text2SQL模型中編碼數(shù)據(jù)庫建模的領(lǐng)域知識,降低現(xiàn)有模型對模式鏈接和數(shù)據(jù)庫模式顯式提及的依賴,提高Text2SQL實際應(yīng)用的魯棒性.
3 模 型
本文模型如圖2所示,由編碼器、相似度模塊、圖神經(jīng)網(wǎng)絡(luò)、解碼器和輔助任務(wù)五部分組成.
圖2中,編碼器接收自然語言查詢、數(shù)據(jù)庫模式和解釋信息作為輸入,輸出解釋信息和圖神經(jīng)網(wǎng)絡(luò)中結(jié)點的嵌入表達.相似度模塊利用解釋信息和圖中自然語言結(jié)點的嵌入表達獲取圖中邊的權(quán)重.圖神經(jīng)網(wǎng)絡(luò)更新結(jié)點的嵌入表達后輸入解碼器和輔助任務(wù)中. 解碼器使用有序神經(jīng)元LSTM(Ordered Neurons LSTM,On-LSTM) ?[24] 解碼生成AST.輔助任務(wù)用來幫助模型學(xué)習(xí)哪些表名、列名更可能在SQL語句中出現(xiàn).
3.1 問題定義
假定自然語言查詢 Q= ?q ??1 ,… q ??n ,… q ???Q ???,其中 ?Q ?表示自然語言查詢中詞的個數(shù).表 T= ?t ??1 ,…, t ??i …, t ???T ???, 列 C= ?c ??11 ,…, c ??ij … ??, ??T ?代表當(dāng)前數(shù)據(jù)庫中表的數(shù)量, ?t ??i ?是第 i 張表, ?c ??ij ?是第 i 張表的第 j 個列.每個表名和列名可能由多個詞組成,因此將 ?t ??i ?和 ?c ??ij ?進一步定義為 ?t ??i = ?t ??i1 ,… t ??iu ,… ?, ??c ??ij ={ c ??ij1 ,… c ??ijv ,…} ,其中 ?t ??iu ?和 ?c ??ijv ?是該表名和列名中的詞,然后利用 ?t ??i0 ?和 ?c ??ij0 ?標(biāo)識當(dāng)前字段為一張表或描述當(dāng)前列的數(shù)據(jù)類型.解釋信息 ??E={e ??s ??k ??,其中上標(biāo)代表第 s 個表名或列名的解釋信息,下標(biāo)表示當(dāng)前解釋信息中的第 k 個詞.
本文使用的圖神經(jīng)網(wǎng)絡(luò) ?G ??n = ?V ??n , R ??n ??共包含三種類型的結(jié)點, ?V ??n =Q∪S=Q∪T∪C ,其中 Q 為自然語言結(jié)點, T 為表名結(jié)點, C 為列名結(jié)點.圖中的邊 ?R ??n = R ??S~S ∪ R ??Q~S ∪ R ??Q~Q ?,其中 ?R ??S~S ?由預(yù)先定義的數(shù)據(jù)庫模式?jīng)Q定, ?R ??Q~S ?是通過自然語言查詢和表名與列名之間的字面相似性建立起的匹配關(guān)系, ?R ??Q~Q ?由自然語言查詢決定.
3.2 模式信息擴展
Spider數(shù)據(jù)集內(nèi)的數(shù)據(jù)庫中所有的表名和列名均使用完整英文單詞命名,在詞間使用下劃線進行分隔.本文將表名或列名解析為由單詞組成的字符串后,枚舉出所有長度為1~3的gram,將其按長度降序排列成一個待查詢序列,然后在oxford詞典中查詢每個gram的解釋.在當(dāng)前gram的查詢結(jié)果不為空時,本文會移除剩余的待查詢序列中所有與當(dāng)前查詢對象存在重疊的gram,當(dāng)查詢結(jié)果為空時,如果當(dāng)前gram的長度大于1則繼續(xù)向下查詢,否則為了統(tǒng)一操作直接將當(dāng)前gram本身作為解釋使用.查詢完成后,本文將所有g(shù)ram(未被移除)的解釋按順序拼接成一段文本,作為當(dāng)前數(shù)據(jù)庫模式元素的解釋信息,解釋信息的長度通常遠大于原本的表名或列名.
例如列名book_club_id,解析出的待查詢序列為:book club id; book club; club id; book; club; id;首先查詢book club id的解釋,結(jié)果為空則程序繼續(xù)向下查詢,book club的查詢結(jié)果不為空,所以移除club id, book, club三個與book club存在重疊部分的gram,然后繼續(xù)查詢id的解釋,最后將book club和id的解釋拼接后作為當(dāng)前列的解釋信息.
3.3 編碼器
本文將自然語言查詢和數(shù)據(jù)庫模式按照如下 順序組織成查詢-模式序列.
[CLS] q ??1 ?q ??2 ……[SEP] t ??10 ?t ??1 ?c ??110 ?c ??11 ?c ??120 ?c ??12 ……
t ??|T|0 ?t ??|T| ?c ??|T|10 ?c ??|T|1 ?c ??|T|20 ?c ??|T|2 ……[SEP]
將查詢-模式序列輸入BERT后,每個詞 w={ w ??1 ,……, w ???W ?} 被拆分為 ?w ?個子詞,然后利用注意力層加權(quán)聚合所有子詞的嵌入表達來獲取該詞的語義,如式(1)~式(2)所示.
α ??i = softmax(tan h( w ??i ?v ??1 ) v ??2 ) ?(1)
w=∑ ??|W| ??i=1 ?α ???i ?w ???i ??(2)
將自然語言查詢的嵌入表達,輸入雙向 ?LSTM ??1 ???[25] 中,拼接每個詞的前向和后向的隱藏層狀態(tài),作為該詞也即圖神經(jīng)網(wǎng)絡(luò)中自然語言結(jié)點的初始嵌入表達 ?h ??q ??n ∈ R ??n ?,如式(3)所示.
h ??q ??n = ?LSTM ????h ????q ??n-1 , q ??n ?; LSTM ????h ????q ??n+1 , q ??n ????(3)
圖神經(jīng)網(wǎng)絡(luò)中除自然語言結(jié)點外,還包含表名和列名兩種類型的結(jié)點,其初始嵌入表達均由兩部分組成,二者的計算方式完全相同,在下述公式中使用 s 表示當(dāng)前字段.將 ?t ??i = ?t ??i1 ,… t ??iu ,… ?或 ??c ??ij ={ c ??ij1 ,… c ??ijv ,…} 的嵌入表達輸入雙向 ?LSTM ??2 ?中,將前后向的最終時刻隱藏層狀態(tài)拼接后,作為表名結(jié)點或列名結(jié)點的嵌入表達的第一部分 ?h ??s1 ∈ R ??n ?,如式(4)~式(5)所示.
h ??s ??i =[ LSTM ?( ?h ????s ??i-1 , s ??i ); LSTM ?( ?h ????s ??i+1 , s ??i )] ?(4)
h ??s1 = ??h ????s ??N ; ?h ????s ??1 ???(5)
對于解釋信息,本文在其頭尾處分別拼接CLS和SEP標(biāo)識符后輸入BERT中,得到輸出的CLS標(biāo)識符的嵌入表達作為對應(yīng)結(jié)點語義表達的第二部分 ?h ??s2 ∈ R ??n ?,將 ?h ??s1 ?和 ?h ??s2 ?拼接后利用前饋神經(jīng)網(wǎng)絡(luò) g( R ??2n → R ??n ) 將其映射回 ?R ??n ?維度,作為圖中數(shù)據(jù)庫模式結(jié)點的初始嵌入表達,如式(6)所示.
h ??s =g( ?h ??s1 ; h ??s2 ?) ?(6)
3.4 相似度模塊
在編碼器輸出的解釋信息中所有子詞的嵌入表達 ?E ??s ??k ?上,拼接自然語言查詢中的第 n 個詞的嵌入表達 ?h ??q ??n ?后輸入雙向 ?LSTM ??3 ?中,將前后向的最終時刻隱藏層狀態(tài)拼接后輸入打分函數(shù) MLP ,獲得當(dāng)前表名或列名與自然語言查詢中第 n 個詞的語義相似度得分 ?s ??sn ?,計算方法如式(7)~式(9)所示.
E ??sn ??k = ?h ??q ??n ?;E ??s ??k ???(7)
h ??E ??k = ?LSTM ????h ????E ??k-1 , E ??k ?; LSTM ????h ????E ??k+1 , E ??k ????(8)
s ??sn =MLP ???h ????E ??N ; ?h ????E ??1 ????(9)
3.5 圖神經(jīng)網(wǎng)絡(luò)
將編碼器輸出的結(jié)點的嵌入表達、對預(yù)先定義的結(jié)點間關(guān)系進行編碼獲得的邊的嵌入表達和相似度模塊輸出的相似度得分三部分,作為圖神經(jīng)網(wǎng)絡(luò)的初始輸入.在自然語言結(jié)點和數(shù)據(jù)庫模式結(jié)點之間的邊的嵌入表達上,乘以對應(yīng)的語義相似性得分 ?s ??sn ?,從而利用帶權(quán)邊來影響結(jié)點間的圖注意力權(quán)重.
在本文使用的圖神經(jīng)網(wǎng)絡(luò)中,結(jié)點 X 由自然語言結(jié)點、表名結(jié)點和列名結(jié)點三部分組成,定義 X= ?h ??q ??n ; h ??t ??i ; h ??c ??ij ?={ x ??1 … x ??p … x ??q ,…, x ???X ?} ,其中 ?x ??p ?和 ?x ??q ?是第 p 個和第 q 個結(jié)點的嵌入表達,使用 ?r ??pq ?表示結(jié)點 ?x ??p ?和結(jié)點 ?x ??q ?之間的邊的嵌入表達.當(dāng)結(jié)點 ?x ??p ?和結(jié)點 ?x ??q ?分別是自然語言結(jié)點和數(shù)據(jù)庫模式結(jié)點時, ?s ??pq ?的值在0~1之間,否則將對應(yīng)位置的 ?s ??pq ?置為1,通過多頭注意力 ?[26] 來衡量圖中結(jié)點之間的關(guān)系 α ,計算方式如式(10)~式(14)所示.
e ??h ??pq = ?x ??p ?W ??h ??Q ?( x ??q ?W ??h ??K + s ??pq ??r ??K ??pq ) ??T ?????d ??z ????(10)
α ??h ??pq =softmax ?e ??h ??pq ???(11)
x ??p ??= H ‖ h=1 ∑ ??|X| ??q=1 ?α ???h ??pq ??x ???q ??W ???h ??V + r ???V ??pq ???(12)
y ??p ??= LayerNorm ??x ??p + ?x ??p ????W ??o ???(13)
y ??p = LayerNorm ???y ??p ???+FFN ???y ??p ??????(14)
在上述公式中, ?W ??h ??Q ?、 ?W ??h ??K ?、 ?W ??h ??V ∈ R ??n d/H ?和 ?W ??o ∈ R ??n d ?是可學(xué)習(xí)的參數(shù), H 是注意力頭數(shù), FFN 表示前饋神經(jīng)網(wǎng)絡(luò),LayerNorm表示歸一化層 ?[27] .在圖迭代的過程中,每個結(jié)點 ?x ??p ?在聚合圖中其他結(jié)點的嵌入表達時采用 H 頭注意力,其中一半的注意力頭只聚合來自預(yù)先定義的一跳鄰居結(jié)點的嵌入表達,剩余的一半注意力頭聚合來自圖中所有鄰居結(jié)點的嵌入表達,以此來解決圖神經(jīng)網(wǎng)絡(luò)的過渡平滑問題.經(jīng)過8輪圖迭代后,圖神經(jīng)網(wǎng)絡(luò)輸出所有結(jié)點的嵌入表達 ?f ??p =( f ??q ??n ; ?f ??t ??i ;f ??c ??ij ) .
3.6 解碼器
在解碼的過程中利用On-LSTM解碼生成AST,將 ?z ??m =[ a ??m-1 ; a ???p ??m ?; h ???p ??m ?; n ??m ] ?作為輸入,得到每個時刻的隱藏層狀態(tài) ?h ??m ?,其中 ?z ??m ?中 ?a ??m-1 ?是上一步解碼生成的action ?[13] 、 ?a ???p ??m ??是當(dāng)前action的父action、 ?h ???p ??m ??是生成父action時On-LSTM的隱藏層狀態(tài)、 ?n ??m ?是待拓展結(jié)點的類型,將每個時刻的隱藏層狀態(tài) ?h ??m ?作為查詢向量聚合圖中結(jié)點的嵌入表達 ?f ??p ?獲得上下文向量 c ,拼接 ?h ??m ?后輸入 MLP 中獲得 ?h ???att ???m ?,用于判斷當(dāng)前時間步如何拓展AST,過程如式(15)~式(19)所示.
c ??m , h ??m = OnLSTM ??z ??m , c ??m-1 , h ??m-1 ???(15)
e ??h ??mp = ?h ??m ?W ??h ??cq ???f ??p ?W ??h ??ck ????T ?????d ??z ????(16)
α ??h ??mp = softmax ??e ??h ??mp ???(17)
c= H ‖ h=1 ∑ ???X ???p=1 ?α ???h ??mp ?f ???p ??(18)
h ??att ??m =MLP [ h ??m ;c] ??(19)
當(dāng)待拓展的action不包含終結(jié)符時,使用式(20)所示的方式計算 ?p ???a ??m ??,否則通過式(21)和式(22)的公式計算 ?p ??m ???t ??i ??和 ?p ??m ???c ??ij ??,在AST中添加表名和列名.
p ???a ??m ?= softmax ??h ??att ??m ?W ??R ???(20)
ζ ??h ??mi = softmax ??h ??att ??m ?W ??h ??tq ????f ??t ??i ?W ??h ??tk ????T ??(21)
p ???m ???t ???i ?= 1 H ∑ ??H ??h=1 ?ζ ???h ??mi ??(22)
在上述公式中, H 是注意力頭數(shù),計算 ?p ??m ???c ??ij ??時除參數(shù)外與計算 ?p ??m ???t ??i ??完全相同,在解碼過程中使用如式(23)的負對數(shù)似然損失.
loss=-∑ ???p ???m ??log ?p ???m ??(23)
3.7 輔助任務(wù)
輔助任務(wù)利用圖中結(jié)點的嵌入表達 ?f ??p =( f ??q ??n ; ?f ??t ??i ;f ??c ??ij ) 來判斷表名或列名是否會出現(xiàn)在SQL語句中,首先將 ??f ??t ??i 和f ??c ??ij ?作為查詢向量聚合自然語言結(jié)點的嵌入表達 ?f ??q ??n ?獲得上下文向量 c ,然后將 ??f ??t ??i 或f ??c ??ij ?和 c 輸入biaffine ?[28] 分類器中,計算當(dāng)前表名或列名出現(xiàn)在SQL語句中的概率.在下述式(24)~式(27)中以表名為例,除參數(shù)外列名的計算和表名完全相同.
e ??h ??in = ?f ??t ??i ?W ??h ??sq ???f ??q ??n ?W ??h ??sk ????T ?????d ??z ????(24)
α ??h ??in = softmax ??e ??h ??in ???(25)
c=( H ‖ h=1 ∑ ??|Q| ??n=1 ?α ???h ??in ?f ???q ??n ?W ???h ??sv ) W ???H ??so ??(26)
p ??g ???t ??i ?=σ ?f ??t ??i ?W ???s ??1 ??c ??T + ?f ??t ??i ;c ?W ???s ??2 ?+ b ??s ???(27)
在輔助任務(wù)中,使用如式(28)的交叉熵損失.
loss=-∑ ???t ???i ?[ y ????t ???i ?log ( p ???g ???t ???i ?)+ ?(1- y ????t ???i ?)log (1- p ???g ???t ???i ?)] ?(28)
4 實驗與結(jié)果
4.1 實驗數(shù)據(jù)
本文在兩個基準(zhǔn)數(shù)據(jù)集Spider-syn和Spider上進行模型的評估.Spider-syn是由Spider衍生出的數(shù)據(jù)集,二者的數(shù)據(jù)集規(guī)模、自然語言查詢所表達的語義、執(zhí)行SQL語句的數(shù)據(jù)庫完全相同.區(qū)別之處在于,Spider數(shù)據(jù)集中的自然語言查詢和數(shù)據(jù)庫模式間具有通常不會在實際的應(yīng)用場景中出現(xiàn)的顯式對應(yīng)關(guān)系,而在Spider-syn數(shù)據(jù)集中,自然語言查詢中使用的是表名和列名的同義詞.二者均包含了7000條訓(xùn)練樣例,涉及到140個數(shù)據(jù)庫,驗證集中包含了1034條測試樣例,使用在訓(xùn)練過程中未知的20個數(shù)據(jù)庫.除此之外,Spider數(shù)據(jù)集還額外提供了從GeoQuery ?[29] 、Restaurants ?[30,31] 、Scholar ?[17] 、Academic ??[18] 、Yelp and IMDB ?[32] 數(shù)據(jù)集中提取的1965條訓(xùn)練樣例,共涉及6個數(shù)據(jù)庫.Spider數(shù)據(jù)集提供的測試集是不公開的,因此Gan等人 ?[16] 構(gòu)建的Spider-syn數(shù)據(jù)集不包含測試集.同理,本文也無法為測試集中的表名和列名擴展解釋信息,在原驗證集上進行模型的評估.
4.2 實驗設(shè)置
本文實驗中,Python版本為 3.6.13, Torch版本為1.7.0.服務(wù)器實驗環(huán)境為 Ubuntu 18.04.4 LTS,搭載的顯卡為NVIIDA GeForce RTX 3090.
使用AdamW ?[33] 作為優(yōu)化器,將初始學(xué)習(xí)率設(shè)置為0.1,將訓(xùn)練過程中的衰減率設(shè)置為1e-5.編碼器和解碼器使用的LSTM的丟棄率都是02 ?[34] ,其余超參數(shù)見表1.
4.3 基線模型
為了驗證模型的效果,本文在Spider-syn和Spider兩個基準(zhǔn)數(shù)據(jù)集上與以下基線模型進行比較.
GNN ?[7] :使用圖神經(jīng)網(wǎng)絡(luò)編碼數(shù)據(jù)庫模式,在自然語言查詢和表名與列名之間通過注意力進行交互.
Global-GNN ?[10] :利用表名與列名的嵌入表達選擇可能出現(xiàn)在SQL語句中的top-K后,利用自然語言查詢的語義對候選表名與列名進行重排序.
IRNet ?[9] :在自然語言查詢中劃分gram和表名與列名進行字面匹配,輔助識別出現(xiàn)在SQL中的表名和列名,并采用基于AST的解碼器解碼.
RAT-SQL ?[12] :將自然語言查詢和表名與列名都看成圖中的結(jié)點,利用關(guān)系感知注意力輔助圖編碼.
BRIDGE ?[14] :將自然語言查詢和數(shù)據(jù)庫模式拼接成一個序列,利用BERT的自注意力機制捕捉二者之間的軟對齊關(guān)系.
LGESQL ?[13] :利用線性圖挖掘問題、表、列之間的關(guān)系,而無需事先定義元路徑.
S2SQL ?[11] :將自然語言查詢中的詞間依存關(guān)系建模成圖中的邊,并引入解耦約束解決邊的耦合問題.
RoSQL ?[16] :構(gòu)建了Spider-syn數(shù)據(jù)集,并提出通過對抗訓(xùn)練和構(gòu)建同義詞詞表兩種方法提高模型的魯棒性.
ETA ?[35] :挖掘了預(yù)訓(xùn)練模型學(xué)習(xí)領(lǐng)域基礎(chǔ)知識的能力,結(jié)合其提出的“擦除喚醒”機制學(xué)習(xí)輸入和標(biāo)簽之間的關(guān)聯(lián).
4.4 實驗結(jié)果與分析
為了驗證模型的有效性,本文和現(xiàn)有的基線模型進行了準(zhǔn)確率上的對比,其中下標(biāo) L 表示large-BERT,ManualMAS和AutoMAS是Gan等人 ?[16] 為表名和列名擴展的同義詞詞表,ManualMAS是人工將測試集的自然語言查詢中使用的同義詞加入詞表中,可以使模型達到實際應(yīng)用場景中無法超越的性能上界,AutoMAS是利用預(yù)訓(xùn)練模型自動構(gòu)建的詞表.在Spider-syn和Spider數(shù)據(jù)集上的實驗結(jié)果如表2和表3所示.
從表2實驗結(jié)果可知,在受到了同義詞替換攻擊后,本文提出的ExSQL達到了最先進的性能,與Rosql + AutoMAS相比取得了2.13%的性能提升(此處的Rosql 是利用Gan等人 ?[16] 提出的同義詞擴展方法獲得的,比原論文模型性能更優(yōu)異的LGESQL).該實驗結(jié)果說明現(xiàn)有模型對表名和列名顯式提及的依賴,而本文為表名和列名拓展的解釋信息可以彌補數(shù)據(jù)庫模式與自然語言查詢之間的語義鴻溝,從而提高模型抵抗同義詞替換攻擊的能力.本文模型性能超過了Rosql和ManualMAS同時使用達到的性能上界,說明彌補自然語言查詢和數(shù)據(jù)庫模式間的語義鴻溝才是text2sql效果的關(guān)鍵.
從表3實驗結(jié)果可知,本文提出的ExSQL與LGESQL相比僅取得了0.39%的性能提升,這是因為現(xiàn)有模型利用模式鏈接器在表名和列名被自然語言查詢顯式提及時,可以較為準(zhǔn)確地判斷SQL查詢對象,因此ExSQL獲得的提升較小.S2SQL ?[11] 雖然利用比BERT效果更好的預(yù)訓(xùn)練模型RoBERTa在Spider數(shù)據(jù)集上達到了71.40%的性能,但在受到了同義詞替換攻擊后性能大大下降.本文的出發(fā)點即為提高模型的同義詞替換攻擊魯棒性.因此ExSQL在Spider-syn數(shù)據(jù)集上達到最先進的性能已經(jīng)可以證明其效果.
4.5 消融實驗
為了驗證模型中各個模塊的效果,本文在Spider-syn和Spider兩個基準(zhǔn)數(shù)據(jù)集上進行了一系列的消融實驗,實驗結(jié)果如表4和表5所示.本文對模型中使用的各個模塊進行了如下命名:
S:在自然語言查詢和表名與列名之間,利用字面相似性進行模式鏈接.
SIM:利用自然語言查詢和表名與列名的解釋信息計算語義相似度得分,作為對應(yīng)結(jié)點間的邊的權(quán)重.
MER:在通過表名和列名獲得的嵌入表達中,融合其解釋信息的語義.
ExSQL-S:在Spider數(shù)據(jù)集上,為了更好地模擬實際的應(yīng)用場景,不使用字面相似性進行模式鏈接.
在表4消融實驗結(jié)果中,取消SIM模塊導(dǎo)致了1.64%的性能下降,說明該模塊可以在數(shù)據(jù)庫模式不被自然語言查詢顯式提及時,幫助模型判斷哪些表名和列名與當(dāng)前問題更加相關(guān).取消MER模塊后模型的性能下降了1.21%,說明在數(shù)據(jù)庫模式的嵌入表達中融合解釋信息的語義可以彌補自然語言查詢和數(shù)據(jù)庫模式間的語義鴻溝,從而幫助模型在二者間建立對齊關(guān)系.取消AutoMAS模塊后模型的性能下降了1.26%,說明其可以起到類似表名和列名在自然語言查詢中的顯式提及的作用,也間接證明了這種顯式提及確實是現(xiàn)有模型在Spider-syn和Spider數(shù)據(jù)集上性能差距的原因.
在實際的應(yīng)用場景中,自然語言查詢和數(shù)據(jù)庫模式間難以建立顯式的對應(yīng)關(guān)系.因此,本文在spider數(shù)據(jù)集上取消了利用字面相似性的模式鏈接器,驗證本文提出的SIM模塊和MER模塊在這種情況下起到的作用.在表5的實驗中,取消SIM模塊和MER模塊,僅導(dǎo)致了0.29%和0.63%的性能下降,這說明在數(shù)據(jù)庫模式被自然語言查詢顯式提及時捕捉SQL查詢對象相對簡單,兩個模塊單獨使用即可得到相對較好的效果.
4.6 魯棒性驗證
為了探索在Spider數(shù)據(jù)集上受到破壞模式鏈接的攻擊后, ExSQL和其他模型的性能下降情況,本文進行了如圖3所示的實驗,圖中的-S表示取消利用字面相似性的模式鏈接器.
ExSQL的性能僅比LGESQL提高了039%,然而在表2實驗結(jié)果中,ExSQL和達到理論性能上界的LGESQL+ ManualMAS相比性能提高了1.01%.這說明與最新提出的擴展同義詞詞表方法相比,本文方法具有更好的同義詞替換魯棒性.在取消了利用字面相似性的模式鏈接器后,ExSQL-S和LGESQL-S分別取得了65.38%和63.80%的效果,說明LGESQL在Spider數(shù)據(jù)集上取得的虛高的性能嚴重依賴模式鏈接器,而本文提出的ExSQL對模式鏈接的依賴較小,具有更好的Text2SQL實際應(yīng)用魯棒性.
5 結(jié) 論
針對現(xiàn)有方法在新的基準(zhǔn)數(shù)據(jù)集Spider-syn上受到同義詞替換攻擊后性能下降的問題,本文提出了一種利用詞典擴展數(shù)據(jù)庫模式信息的Text2SQL方法,為表名和列名擴展解釋信息來豐富數(shù)據(jù)庫建模的領(lǐng)域知識,提高模型抵抗同義詞替換攻擊的能力.通過在Spider-syn和Spider數(shù)據(jù)集上的一系列對比實驗和消融實驗,驗證了本文模型的有效性.
本文在通用詞典中為表名和列名擴展的解釋信息,會不可避免地引入噪聲.例如詞mouse,在和動物領(lǐng)域有關(guān)的數(shù)據(jù)庫中更可能表示“老鼠”的語義,而在和電腦,辦公用品等領(lǐng)域有關(guān)的數(shù)據(jù)庫中更可能表示“鼠標(biāo)”的語義.因此,下一步工作從研究的角度考慮,可以嘗試利用數(shù)據(jù)庫建模的領(lǐng)域知識對擴展的解釋信息進行過濾,從應(yīng)用的角度考慮,可以通過人工為數(shù)據(jù)庫模式擴展更準(zhǔn)確的解釋信息,幫助模型獲得更優(yōu)異的性能.
參考文獻:
[1] ??Androutsopoulos ?I, Ritchie G D, Thanisch P. Natural language interfaces to databases-an introduction[J].Nat Lang Eng, 1995, 1: 29.
[2] ?Li F, Jagadish H V. Understanding natural language queries over relational databases[J]. Sigmod Rec, 2016, 45: 6.
[3] ?Affolter K, Stockinger K, Bernstein A. A comparative survey of recent natural language interfaces for databases [J]. Vldb J, 2019, 28: 793.
[4] ?Finegan-Dollak C, Kummerfeld J K, Zhang L, ?et al . Improving text-to-SQL evaluation methodology[C]// 56th Annual Meeting of the Association-for-Computational-Linguistics (ACL). Melbourne, AUSTRALIA: ASSOC Computational Linguistics-ACL, 2018: 351.
[5] ?Zhong V, Xiong C, Socher R. Seq2sql: generating structured queries from natural language using reinforcement learning[EB/OL].[2022-12-26]. https://arxiv.org/abs/1709.00103.
[6] ?Yu T, Zhang R, Yang K, ?et al . Spider: a large-scale human-labeled dataset for complex and cross-domain semantic parsing and text-to-SQL task[C]// Conference on Empirical Methods in Natural Language Processing (EMNLP). Brussels, BELGIUM: ASSOC Computational Linguistics-ACL, 2020: 3911.
[7] ?Bogin B, Berant J, Gardner M. Representing schema structure with graph neural networks for text-to-SQL parsing[C]// 57th Annual Meeting of the Association-for-Computational-Linguistics (ACL). Florence, ITALY: ASSOC Computational Linguistics-ACL, 2019: 4560.
[8] ?Lei W, Wang W, Ma Z, ?et al . Re-examining the Role of Schema Linking in Text-to-SQL[C]//Conference on Empirical Methods in Natural Language Processing (EMNLP). ELECTR NETWORK: ASSOC Computational Linguistics-ACL, 2020: 6943.
[9] ?Guo J, Zhan Z, Gao Y, ?et al . Towards complex text-to-SQL in cross-domain database with intermediate representation[C]// ?57th Annual Meeting of the Association-for-Computational-Linguistics (ACL). ??Florence, ITALY: ASSOC Computational Linguistics-ACL, 2019: 4524.
[10] ?Bogin B, Gardner M, Berant J. Global reasoning over database structures for text-to-SQL parsing[C]// Conference on Empirical Methods in Natural Language Processing /9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP). Hong Kong, China: ASSOC Computational Linguistics-ACL, 2019: 3659.
[11] Hui B, Geng R, Wang L, ?et al . S2SQL: Injecting syntax to question-schema interaction graph encoder for text-to-SQL parsers[C]// 60th Annual Meeting of the Association-for-Computational-Linguistics (ACL). Dublin, IRELAND: ASSOC Computational Linguistics-ACL, 2022: 1254.
[12] Wang B, Shin R, Liu X, ?et al . RAT-SQL: relation-aware schema encoding and linking for text-to-SQL parsers[C]//58th Annual Meeting of the Association for Computational Linguistics (ACL). Virtual, Online, United states: ASSOC Computational Linguistics-ACL, 2020: 7567.
[13] Cao R, Chen L, Chen Z, ?et al . LGESQL: line graph enhanced text-to-SQL model with mixed local and non-local relations[C]//Joint Conference of 59th Annual Meeting of the Association-for-Computational-Linguistics (ACL)/11th International Joint Conference on Natural Language Processing (IJCNLP). ELECTR NETWORK: ASSOC Computational Linguistics-ACL, 2021: 2541.
[14] Lin X V, Socher R, Xiong C. Bridging textual and tabular data for cross-domain text-to-SQL semantic parsing [C]//Findings of the Association for Computational Linguistics: EMNLP 2020. Brussels, BELGIUM: ASSOC Computational Linguistics-ACL, 2020: 4870.
[15] Kenton J D M W C, Toutanova L K. BERT: pre-training of deep bidirectional transformers for language understanding[C]//Proceedings of NAACL-HLT.Minneapolis, MN, United states: ASSOC Computational Linguistics-ACL, 2019: 4171.
[16] Gan Y, Chen X, Huang Q, ?et al . Towards Robustness of text-to-SQL models against synonym substitution [C]//Joint Conference of 59th Annual Meeting of the Association-for-Computational-Linguistics (ACL). Electr Network: ASSOC Computational Linguistics-ACL, 2021: 2505.
[17] Iyer ?S, Konstas I, Cheung A, ?et al . Learning a neural semantic parser from user feedback [C]//55th Annual Meeting of the Association-for-Computational-Linguistics (ACL). Vancouver, Canada: ASSOC Computational Linguistics-ACL, 2017: ??963.
[18] Li ?F, Jagadish H V. Constructing an interactive natural language interface for relational databases[J]. Proc Vldb Endow, 2014, 8: 73.
[19] Finegan-Dollak C, Kummerfeld J K, Zhang L, ?et al . Improving text-to-SQL evaluation methodology[C]// 56th Annual Meeting of the Association-for-Computational-Linguistics (ACL). Melbourne, Australia: ASSOC Computational Linguistics-ACL, 2018: 351.
[20] Xu X, Liu C, Song D. Sqlnet: Generating structured queries from natural language without reinforcement learning[EB/OL].[2022-12-10]. https://arxiv.org/abs/1711.04436.
[21] Yu T, Li Z, Zhang Z, ?et al . TypeSQL: knowledge-based type-aware neural text-to-SQL generation [C]// 2018 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, NAACL HLT 2018. New Orleans, United states: ASSOC Computational Linguistics-ACL, 2018: 588.
[22] Sutskever I, Vinyals O, Le Q V. Sequence to sequence learning with neural networks [J]. Adv Neural Inf Process Syst, 2014, 31: 27.
[23] Yin P, Neubig G. A syntactic neural model for general-purpose code generation [C]// 55th Annual Meeting of the Association-for-Computational-Linguistics (ACL). Vancouver, Canada: Assoc Computational Linguistics-ACL, 2017: 440.
[24] Shen Y, Tan S, Sordoni A, ?et al . Ordered neurons: integrating tree structures into recurrent neural networks [C]// International Conference on Learning Representations (ICLR). New Orleans, United States: ICLR Press, 2019.
[25] Hochreiter ?S, Schmidhuber J. Long short-term memory [J]. Neural Comput, 1997, 9: 1735.
[26] Vaswani A, Shazeer N, Parmar N, ?et al . Attention is all you need [C]//Proceedings of the 31st International Conference on Neural Information Processing Systems. Long Beach, California: MIT Press, 2017: 6000.
[27] Ba J L, Kiros J R, Hinton G E. Layer Normalization [EB/OL].[2022-12-20]. https://arxiv.org/abs/1607.06450.
[28] Dozat T, Manning C D. Deep biaffine attention for neural dependency parsing [C]// 5th International Conference on Learning Representations, ICLR 2017. Toulon, France: ICLR Press, 2016.
[29] Zelle J M, Mooney R J. Learning to parse database queries using inductive logic programming [C]//Proceedings of the National Conference on Artificial Intelligence. Portland, OR: Amer Assoc Artificial Intelligence, 1996: 1050.
[30] Tang L R, Mooney R J. Automated Construction of database interfaces: integrating statistical and relational learning for semantic parsing [C]// Joint SIGDAT Conference on Empirical Methods in Natural Language Processing and Very Large Corpora held in Conjunction with the 38th Annual Meeting of ?the Association-for-Computational-Linguistics.Hong ???Kong ?Univ Sci & Technol. Hong Kong, Peoples R China: Assoc Computational Linguistics, 2000: ??133.
[31] Popescu A M, Etzioni O, Kautz H. Towards a theory of natural language interfaces to databases[C]//Proceedings of the 8th International Conference on Intelligent User Interfaces.Miami Beach: Association for Computing Machinery (ACM), 2003: 327.
[32] Yaghmazadeh N, Wang Y, Dillig I, ?et al . SQLizer: query synthesis from natural language[J]. P ACM Program Lang, 2017, 1: 1.
[33] Loshchilov I, Hutter F. Decoupled weight decay regularization[C]//International Conference on Learning Representations.New Orleans, United States: ICLR Press, 2018.
[34] Gal Y, Ghahramani Z. A theoretically grounded application of dropout in recurrent neural networks[C]//Proceedings of the 30th International Conference on Neural Information Processing Systems.Barcelona, SPAIN: MIT Press, 2016: 1027.
[35] Liu Q, Yang D, Zhang J, ?et al . Awakening Latent grounding from pretrained language models for semantic parsing [C]//Findings of the Association for Computational Linguistics: ACL-IJCNLP 2021. Virtual, Online: ACL, 2021: 1174.
收稿日期: ?2023-01-28
基金項目: ?四川省重點研發(fā)項目(2023YFG0265)
作者簡介: ??于曉昕(1998-), 男, 黑龍江綏化人, 碩士研究生, 主要研究領(lǐng)域為自然語言處理.
通訊作者: ?陳黎. E-mail: cl@scu.edu.cn