摘 要:語義解析(SP)技術(shù)能夠幫助用戶將自然語言語句轉(zhuǎn)化為結(jié)構(gòu)化的語義表達(dá),從而可以在結(jié)構(gòu)化和半結(jié)構(gòu)化的知識(shí)庫中進(jìn)行高效的數(shù)據(jù)檢索。本文提出了一種基于空間注意力的轉(zhuǎn)導(dǎo)長(zhǎng)短期記憶網(wǎng)絡(luò)模型(TLSTM),并將其用于語義解析。這個(gè)模型在檢測(cè)時(shí)間序列數(shù)據(jù)中的微妙時(shí)間變化方面表現(xiàn)出優(yōu)越的能力,超過了傳統(tǒng)的LSTM模型。在Wiki SQL數(shù)據(jù)集上進(jìn)行測(cè)試時(shí),實(shí)驗(yàn)數(shù)據(jù)表明,該模型的表現(xiàn)優(yōu)于同類模型。
關(guān)鍵詞:語義解析;長(zhǎng)短時(shí)記憶網(wǎng)絡(luò);空間注意力;BERT
中圖分類號(hào):TP391.1 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1673-260X(2024)09-0012-04
在當(dāng)今這個(gè)數(shù)據(jù)豐富的環(huán)境中,大量的信息被存儲(chǔ)在結(jié)構(gòu)化和半結(jié)構(gòu)化的知識(shí)庫中。對(duì)這些信息的查詢和利用,往往需要使用諸如SQL之類的形式化查詢語言。然而對(duì)于普通用戶而言,很難在短時(shí)間內(nèi)掌握這類專業(yè)的查詢語言,這就造成了某種程度的“數(shù)字鴻溝”。語義解析[1,2]能夠?qū)⒆匀徽Z言語句轉(zhuǎn)化為結(jié)構(gòu)化的語義表達(dá),為這一問題的解決提供了一種現(xiàn)實(shí)可能。然而由于人類語言的復(fù)雜性,語義解析在實(shí)現(xiàn)上遇到了重重困難。
近年來,深度學(xué)習(xí)技術(shù)取得了飛速發(fā)展,并應(yīng)用到語義解析領(lǐng)域,大大提升了語義解析的準(zhǔn)確性[3,4],在Wiki SQL[5]等基準(zhǔn)測(cè)試上的準(zhǔn)確率已經(jīng)超過了80%。在深度學(xué)習(xí)領(lǐng)域,長(zhǎng)短時(shí)記憶(LSTM)網(wǎng)絡(luò)擅長(zhǎng)處理序列數(shù)據(jù)[6],這使得它們特別適合像語義解析[7]這樣的時(shí)間序列分析任務(wù)。LSTM的架構(gòu)獨(dú)特,通過“門”調(diào)節(jié)信息流向和流出記憶單元的流量,具有選擇性地保留或忽略時(shí)間信息的獨(dú)特能力,這種設(shè)計(jì)使它們能夠有效地解開序列數(shù)據(jù)中的長(zhǎng)期依賴性,同時(shí)保持對(duì)較長(zhǎng)序列的計(jì)算效率,這也是語義解析[8]所需的關(guān)鍵特性。
盡管LSTM在各種序列學(xué)習(xí)任務(wù)中已被證明有效,但標(biāo)準(zhǔn)的LSTM模型通常使用所有可用的訓(xùn)練數(shù)據(jù)開發(fā)全局模型,這可能會(huì)忽視特征空間內(nèi)的特定區(qū)域特性。相比之下,TLSTM采用歸納學(xué)習(xí)方法來解決這個(gè)限制。這種新穎的方法根據(jù)測(cè)試數(shù)據(jù)的接近程度調(diào)整權(quán)重,提高了模型在新數(shù)據(jù)點(diǎn)或以前未見過的數(shù)據(jù)點(diǎn)周圍的性能。將歸納學(xué)習(xí)與LSTM的優(yōu)勢(shì)相結(jié)合,轉(zhuǎn)導(dǎo)長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(TLSTM)為時(shí)間序列預(yù)測(cè)提供了更細(xì)致、更具上下文敏感性的方法。它巧妙地結(jié)合全局和局部的見解,應(yīng)對(duì)復(fù)雜的時(shí)間序列預(yù)測(cè)挑戰(zhàn),其中理解局部模式和時(shí)間依賴性至關(guān)重要[9]。TLSTM網(wǎng)絡(luò)的有效性在很大程度上取決于大量數(shù)據(jù)集的可用性。然而,獲取如此大規(guī)模的數(shù)據(jù)集往往涉及大量的成本和時(shí)間,對(duì)TLSTM網(wǎng)絡(luò)的廣泛應(yīng)用構(gòu)成挑戰(zhàn)。
為解決上述問題,本研究整合了一個(gè)基于空間注意力的TLSTM模型,設(shè)計(jì)了一個(gè)語義解析框架,并使用BERT模型進(jìn)行模型預(yù)訓(xùn)練,以捕獲更廣泛的語言細(xì)節(jié)。最后基于Wiki SQL數(shù)據(jù)集與其他同類方法進(jìn)行比較,以評(píng)估其性能。
1 基于轉(zhuǎn)導(dǎo)長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)的語義解析框架
本文提出了一種基于TLSTM的語義解析框架,如圖1所示。該框架通過輔助特征向量編碼來描述數(shù)據(jù),應(yīng)用增強(qiáng)的TLSTM模型進(jìn)行語義解析,能對(duì)包括SELECT、AGG和WHERE子句在內(nèi)的SQL語句不同片段進(jìn)行預(yù)測(cè),其中關(guān)鍵組件包括用于精確預(yù)測(cè)列名稱的SELECT列、用于準(zhǔn)確確定聚合(agg)槽的SELECT聚合、用于定位Where子句中具體數(shù)字或情況的WHERE數(shù)字確定、與Where條件關(guān)聯(lián)的列的WHERE列、試圖推斷在Where子句中使用的操作符的WHERE操作符和重點(diǎn)預(yù)測(cè)與Where條件對(duì)應(yīng)或交互的值的WHERE值,如圖1所示。
2.1 輔助特征向量編碼算法
負(fù)責(zé)數(shù)據(jù)描述的輔助特征向量編碼包括問題標(biāo)志向量與表頭標(biāo)志向量,這兩種向量的具體創(chuàng)建算法為算法1和算法2。
(1)算法1:創(chuàng)建問題的標(biāo)志向量。
①首先設(shè)置一個(gè)指示器向量vq,其長(zhǎng)度等于問題,所有元素最初都設(shè)置為0。
②遍歷數(shù)據(jù)表中的每一列col:檢查問題是否包含來自col的文本。
③如果是,找到index,這是問題中首次出現(xiàn)來自col的文本的位置。
④將值2分配給從index開始并擴(kuò)展到col長(zhǎng)度的vq段。
⑤將vp中位于index的元素設(shè)置為1。
⑥將值3分配給位于位置index+length的col中的元素的vp。
⑦結(jié)束對(duì)列的循環(huán)。
⑧如果在列中找不到匹配項(xiàng),則繼續(xù)檢查表頭中的每個(gè)item。
⑨如果問題包含item,則找到問題中首次出現(xiàn)item的位置index。
⑩更新位于index處的vq為4。
(2)算法2:創(chuàng)建表頭的標(biāo)記向量。
①首先創(chuàng)建一個(gè)與查詢長(zhǎng)度匹配的指標(biāo)向量vh,將所有元素初始化為0。
②設(shè)置一個(gè)計(jì)數(shù)器index為0。
③遍歷表頭的每個(gè)“項(xiàng)目”。
④如果item在查詢中找到,將vh中相應(yīng)的位置(由index指示)設(shè)置為1。
⑤每次迭代后,將index增加1。
⑥接下來,遍歷表中的每一列col。
⑦如果查詢包含col,確定tmp,它表示col在表中的位置。
⑧在vh中將tmp位置標(biāo)記為2的值。
在算法1中,初始、中間和最終標(biāo)簽分別用值1、2和3表示。從表頭和查詢得到的向量標(biāo)記為HV和QV。
2.2 TLSTM
LSTM在語義解析領(lǐng)域引起了相當(dāng)大的關(guān)注,主要是因?yàn)樗鼈兩瞄L(zhǎng)捕獲和利用時(shí)間序列數(shù)據(jù)中固有的時(shí)間相關(guān)性。與傳統(tǒng)的統(tǒng)計(jì)方法不同,LSTM獨(dú)立地學(xué)習(xí)和適應(yīng)數(shù)據(jù)中的復(fù)雜模式和相關(guān)性,從而提高它們?cè)谡Z義解析任務(wù)中的有效性。LSTM網(wǎng)絡(luò)的一個(gè)顯著優(yōu)點(diǎn)是它們能夠熟練處理長(zhǎng)期依賴性。在語義解析領(lǐng)域,這相當(dāng)于它們具備識(shí)別長(zhǎng)時(shí)間跨度內(nèi)的微妙關(guān)系和趨勢(shì)的能力。
LSTM設(shè)計(jì)了輸入門、輸出門和遺忘門,用于信息處理??紤]it、ft、ot、ct和ht作為給定時(shí)間t的輸入、遺忘、輸出門、記憶單元和隱藏狀態(tài)的指示器,xt表示該系統(tǒng)在該時(shí)間的輸入,LSTM單元的架構(gòu)可以有如下描述[10]:
it=σ(Wxixt+Whiht-1+Wcict-1+bi)(1)
ft=σ(Wxfxt+Whfht-1+Wcfct-1+bf)(2)
ct=ftct-1+ittanh(Wxcxt+Whcht-1+bc)(3)
ot=σ(Wxoxt+Whoht-1+Wcoct+bo)(4)
ht=ottanh(ct)(5)
在這里σ(.)代表sigmoid函數(shù),作為激活機(jī)制。邏輯sigmoid和雙曲正切函數(shù)都在元素級(jí)別上應(yīng)用。對(duì)于k∈{i,f,o,c},綜合權(quán)重矩陣表示為Wxk對(duì)應(yīng)各種門和記憶單元中xt的輸入權(quán)重。對(duì)于k∈{i,f,o},Wck矩陣配置為對(duì)角矩陣,建立記憶單元和不同門之間的連接。需要注意的是,所有門中的神經(jīng)元數(shù)量是預(yù)先確定的,并且式(1)到(5)在每個(gè)神經(jīng)元上獨(dú)立運(yùn)行。假設(shè)n表示神經(jīng)元的數(shù)量,{it,ft,ct,ot,ht}是集合Rn×1的一部分。為了清晰起見,LSTM的權(quán)重和偏差被稱為列向量wlstm和blstm。LSTM方程可以表示為:
引入TLSTM,假設(shè)z(η)是一個(gè)未觀察到的序列,因此TLSTM的狀態(tài)空間公式表達(dá)如下:
式(7)中概述的架構(gòu)與式(6)有明顯的區(qū)別。在式(6)中,模型參數(shù)無論評(píng)估點(diǎn)如何都保持不變,而在式(7)中,這些參數(shù)可以受到特定評(píng)估實(shí)例對(duì)應(yīng)的特征向量的影響。下標(biāo)η強(qiáng)調(diào)了模型參數(shù)對(duì)新數(shù)據(jù)點(diǎn)z(η)的可變性。需要注意的是,評(píng)估點(diǎn)的身份是未知的。在訓(xùn)練階段,評(píng)估點(diǎn)的主要功能是根據(jù)訓(xùn)練點(diǎn)的特征向量與評(píng)估點(diǎn)的相似性來判斷每個(gè)訓(xùn)練數(shù)據(jù)點(diǎn)的相關(guān)性。
在TLSTM框架內(nèi),空間注意力是一種使模型能夠在不同的時(shí)間有選擇地關(guān)注輸入數(shù)據(jù)的某些部分的機(jī)制,而不是均勻處理整個(gè)數(shù)據(jù)集。這個(gè)特點(diǎn)特別有用,因?yàn)樗试S模型強(qiáng)調(diào)數(shù)據(jù)中最相關(guān)的變量和屬性,同時(shí)忽略無關(guān)的噪聲或細(xì)節(jié)。在TLSTM網(wǎng)絡(luò)內(nèi)部引入空間注意力模塊,將其定位為輸入和TLSTM層之間的一個(gè)獨(dú)立的層。該模塊執(zhí)行輸入數(shù)據(jù)的加權(quán)求和,權(quán)重在訓(xùn)練期間根據(jù)每個(gè)輸入特征對(duì)于頭任務(wù)的相對(duì)重要性進(jìn)行分配。通常,輸入到空間注意力模塊的數(shù)據(jù)由矩陣X表示,其維度為N×D,其中N是時(shí)間步數(shù),D是輸入特征的數(shù)量。空間注意力模塊通過分析輸入數(shù)據(jù)和一組學(xué)習(xí)到的參數(shù)(用W和b表示)來計(jì)算每個(gè)輸入特征的一組權(quán)重,記作a。計(jì)算這些權(quán)重的過程如下:
a=softmax(XW+b)(8)
softmax函數(shù)將輸入值轉(zhuǎn)換為對(duì)輸入特征的概率分布,下一步是計(jì)算加權(quán)后的輸入數(shù)據(jù):
X′=Xa(9)
這個(gè)加權(quán)后的數(shù)據(jù)是對(duì)輸入數(shù)據(jù)的聚焦表示,引導(dǎo)模型將注意力轉(zhuǎn)向最關(guān)鍵的特征。最后,這個(gè)加權(quán)輸入以典型方式通過TLSTM層,隱藏狀態(tài)根據(jù)前述公式進(jìn)行調(diào)整。
2.3 模型預(yù)訓(xùn)練
基于BERT對(duì)模型進(jìn)行預(yù)訓(xùn)練,從BERT得到的查詢和標(biāo)題向量輸入到一個(gè)TLSTM網(wǎng)絡(luò)中,然后通過該網(wǎng)絡(luò)預(yù)測(cè)SELECT、AGG和WHERE段的可能性。
3 實(shí)證評(píng)估
3.1 數(shù)據(jù)集
實(shí)驗(yàn)基于WiktionarySQL數(shù)據(jù)集[11],這是一個(gè)人工標(biāo)注的從文本到SQL任務(wù)中最大的數(shù)據(jù)集,它包含了80 654對(duì)問題及其對(duì)應(yīng)的SQL查詢。為了保持測(cè)試的嚴(yán)謹(jǐn)性和有效性,我們將訓(xùn)練集與測(cè)試集進(jìn)行隔離,確保沒有表格重疊。這種隔離對(duì)于準(zhǔn)確評(píng)估模型在實(shí)際場(chǎng)景中的性能至關(guān)重要。
3.2 評(píng)估指標(biāo)
本研究使用兩個(gè)指標(biāo)來評(píng)估SQL查詢合成的效果。第一個(gè)指標(biāo)是邏輯形式(LF),用于衡量該模型生成的SQL查詢的準(zhǔn)確性。LF計(jì)算精確匹配率,將每個(gè)生成的SQL查詢與其真實(shí)等價(jià)物進(jìn)行比較。這個(gè)指標(biāo)對(duì)于理解模型如何復(fù)制正確SQL查詢的結(jié)構(gòu)和內(nèi)容至關(guān)重要。第二個(gè)指標(biāo)是執(zhí)行準(zhǔn)確性(EX),用于進(jìn)一步深入評(píng)估生成的SQL查詢的功能正確性。EX測(cè)量不僅與其真實(shí)對(duì)應(yīng)項(xiàng)匹配,而且考慮了在執(zhí)行時(shí)產(chǎn)生正確結(jié)果的SQL查詢的比例。這個(gè)指標(biāo)對(duì)于評(píng)估生成查詢的實(shí)際效用至關(guān)重要,因?yàn)樗从沉藦臄?shù)據(jù)庫中檢索正確數(shù)據(jù)的能力。LF關(guān)注的是查詢句法的正確性,EX強(qiáng)調(diào)的是操作效果。這兩個(gè)指標(biāo)共同提供了對(duì)模型性能的全面評(píng)估。
3.3 參數(shù)設(shè)置
模型運(yùn)行的計(jì)算機(jī)配置64位Windows操作系統(tǒng)、32GB RAM和64GB GPU。批量大小設(shè)置為64,以便在每次訓(xùn)練迭代中進(jìn)行大量的數(shù)據(jù)處理。模型經(jīng)歷了256個(gè)周期,確保了廣泛的訓(xùn)練期。學(xué)習(xí)率固定在0.02,平衡了收斂速度和超過最小損失的風(fēng)險(xiǎn)。此外,保持0.5的丟棄率以防止過度擬合,通過在訓(xùn)練過程中隨機(jī)禁用一些神經(jīng)元,從而促進(jìn)更廣泛的學(xué)習(xí)。經(jīng)過嚴(yán)格的訓(xùn)練后,模型在完成250個(gè)周期后達(dá)到了最佳狀態(tài),用時(shí)90分鐘。
3.4 實(shí)驗(yàn)結(jié)果
基于Wiktionary數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果如表1所示,為了說明本文方法的有效性,與其他方法進(jìn)行了對(duì)比。
3.5 結(jié)果分析
實(shí)驗(yàn)結(jié)果表明,本文方法優(yōu)于同類方法,在LF和EX指標(biāo)方面,錯(cuò)誤率分別超過AE模型的3.10%和5.85%。進(jìn)一步分析表1可知,不同方法的性能變化非常大。例如,SQLova、SQLNet和Seq2SQL在LF和EX得分的標(biāo)準(zhǔn)偏差表明,它們?cè)赪iktionary數(shù)據(jù)集中的不同查詢上的性能波動(dòng)很大。這表明這些模型雖然有效,但可能在不同的數(shù)據(jù)樣本上并不總是可靠。另一方面,本文方法不僅獲得了更高的平均分?jǐn)?shù),而且在LF和EX指標(biāo)上都保持了較低的標(biāo)準(zhǔn)偏差,這意味著在不同查詢上的性能更穩(wěn)定可靠。從表1中還可以看出,隨著時(shí)間的推移,模型性能逐漸改善。早期模型如SQLova、SQLNet和Seq2SQL的得分相對(duì)較低,而新的模型如HydraNet和AE則得分較高。這一趨勢(shì)反映了在查詢理解和SQL生成領(lǐng)域,自然語言處理和機(jī)器學(xué)習(xí)技術(shù)的快速進(jìn)步。
4 結(jié)論
本文提出了一種基于轉(zhuǎn)導(dǎo)長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)的語義解析框架。轉(zhuǎn)導(dǎo)長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)模型表現(xiàn)出了檢測(cè)時(shí)間序列數(shù)據(jù)中微妙變化的能力,超過了傳統(tǒng)的長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)模型。基于BERT模型進(jìn)行預(yù)訓(xùn)練,捕獲了更廣泛的細(xì)微語言差別,有助于提高模型的整體效能。在使用Wiktionary數(shù)據(jù)集進(jìn)行評(píng)估時(shí),該模型的性能優(yōu)于同類方法。
本文所提出的模型主要關(guān)注文本數(shù)據(jù),但是大量包括圖形、圖表和其他類型多媒體數(shù)據(jù)在內(nèi)的多模態(tài)數(shù)據(jù)可能存在于各種有組織和半組織的知識(shí)庫中。整合這些不同形式的數(shù)據(jù)可以大大豐富模型理解和表示復(fù)雜查詢的能力,特別是在僅靠文本無法完全表達(dá)底層上下文的情況下。例如,在藝術(shù)或醫(yī)學(xué)成像等領(lǐng)域的數(shù)據(jù)庫中,用戶可能需要使用文本描述和視覺內(nèi)容的組合進(jìn)行查詢。通過嵌入處理多模態(tài)數(shù)據(jù)的能力,模型可以適應(yīng)更廣泛的查詢范圍,提供更全面和具有上下文細(xì)節(jié)的結(jié)果。另一個(gè)值得進(jìn)一步研究的方向是,在模型訓(xùn)練階段還可以整合BERT詞嵌入或采用生成對(duì)抗網(wǎng)絡(luò)(GAN)。
參考文獻(xiàn):
〔1〕劉雨蒙,趙怡婧,王碧聰,等.結(jié)構(gòu)化數(shù)據(jù)庫查詢語言智能合成技術(shù)研究進(jìn)展[J].計(jì)算機(jī)科學(xué),2024, 51(07):40-48.
〔2〕劉澤洋.面向漢語數(shù)據(jù)庫問答的數(shù)據(jù)標(biāo)注平臺(tái)和語義解析模型構(gòu)建[D].蘇州:蘇州大學(xué),2023.
〔3〕XU X J, LIU C, SONG D. SQLNet: Generating structured queries from natural language without reinforcement learning[EB/OL]. 2017: 1711.04436.http://arxiv.org/abs/1711.04436v1.
〔4〕Shijie Chen, Ziru Chen, Huan Sun, et al. Error Detection for Text-to-SQL Semantic Parsing[J]. arxiv preprint arXiv:2305.13683,2023.
〔5〕ZHONG V, XIONG C M, SOCHER R. Seq2SQL: Generating structured queries from natural language using reinforcement learning[J].arxiv preprint arXiv:1709.00103,2017.
〔6〕SEHOVAC L, GROLINGER K.Deep Learning for Load Forecasting: Sequence to Sequence Recurrent Neural Networks With Attention[J].IEEE ACCESS,2020,8:36411-36426.
〔7〕Yintong Huo, Yuxin Su, Cheryl Lee, et al. SemParser: A Semantic Parser for Log Analysis[J]. arxiv preprint arXiv:2112.12636,2023.
〔8〕Pegah Eslamieh, Mehdi Shajari, Ahmad Nickabadi. User2Vec: A Novel Representation for the Information of the Social Networks for Stock Market Prediction Using Convolutional and Recurrent Neural Networks[J]. Mathematics,2023, 11(13): 2950.
〔9〕胡新辰.基于LSTM的語義關(guān)系分類研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2015.
〔10〕梁宏濤,劉碩,杜軍威,等.深度學(xué)習(xí)應(yīng)用于時(shí)序預(yù)測(cè)研究綜述[J].計(jì)算機(jī)科學(xué)與探索,2023,17(06):1285-1300.
〔11〕Tao Yu, Zifan Li, Zilin Zhang, et al. TypeSQL: Knowledge-based Type-Aware Neural Text-to-SQL Generation[J].arxiv preprint arxiv:1804.09769,2018.
〔12〕Wonseok Hwang, Jinyeong Yim, Seunghyun Park, et al. A Comprehensive Exploration on WikiSQL with Table-Aware Word Contextualization[J].arxiv preprint arxiv:1902. 01069, 2019.
〔13〕Li Dong, Mirella Lapata. Coarse-to-Fine Decoding for Neural Semantic Parsing[J]. arxiv preprint arxiv:1805.04793, 2018.
〔14〕Pengcheng He, Yi Mao, Kaushik Chakrabarti, et al. X-SQL: reinforce schema representation with context[J].arxiv preprint arxiv:1908.08113, 2019.
〔15〕Qin Lyu, Kaushik Chakrabarti, Shobhit Hathi, et al. Hybrid Ranking Network for Text-to-SQL[J].arxiv preprint arxiv:2008.04759, 2020.
〔16〕Jianqiang Ma, Zeyu Yan, Shuai Pang, et al. Mention Extraction and Linking for SQL Query Generation[J]. arxiv preprint arxiv:2012. 10074,2020.