亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        SQL-to-text 模型的組合泛化能力評估方法

        2024-03-21 08:15:28陳琳范元凱何震瀛劉曉清楊陽湯路民
        計算機工程 2024年3期
        關鍵詞:單詞方法能力

        陳琳,范元凱,何震瀛,劉曉清,楊陽,湯路民

        (1.復旦大學計算機科學技術學院,上海 200433;2.星環(huán)信息科技(上海)股份有限公司,上海 200233)

        0 引言

        隨著信息技術的高速發(fā)展,各類應用產生大量數據,關系數據庫被廣泛用于數據的存儲和管理。用戶在與關系數據庫交互時,常使用結構化查詢語言(SQL)。然而,SQL 的使用受限于用戶對SQL 的熟練程度和對關系數據庫中數據的了解程度,導致SQL 的使用門檻相對較高。針對這一問題,根據自然語言的翻譯到SQL(text-to-SQL)[1]和根據SQL 到自然語言的翻譯(SQL-to-text)成為降低SQL 使用門檻、提高數據庫易用性的重要嘗試,引起了研究人員的關注。其中,SQL-to-text 能夠幫助用戶理解查詢的含義,在需要解釋SQL 語義的場景下具有重要意義[2],并且有助于強化搜索引擎的SQL 程序查找能力,還可以用于搭建數據庫的自然語言交互接口[3]。

        雖然SQL-to-text 已逐漸成為業(yè)界關注的熱點問題之一,但就其效果而言,在現階段還難以達到廣泛應用的程度。其主要原因有翻譯模型的能力不足、對數據庫應用中的數據理解程度不足和對數據庫應用中的知識使用不足。其中,翻譯模型的能力不足是一個重要原因,鑒于組合泛化能力對翻譯模型的重要性,需要對SQL-to-text 模型的組合泛化能力展開研究。

        組合泛化一詞由語言學家提出,是通過已知的成分理解和產生無限新組合的代數能力[4],此概念于近年來被引入機器學習領域。對神經網絡模型而言,若學習得到的知識以不同的方式組合后仍能理解其含義,則表明該模型具有組合泛化能力。此能力不足的模型一般只學習到模式間的映射,需要大量訓練數據才能達到人們用少量數據即可達到的學習效果[5]。

        針對SQL-to-text 任務,當模型在訓練時學習的SQL 子句以不同的方式組合后,若模型仍能理解其含義并提供正確翻譯,則說明此模型具有組合泛化能力。例如,模型已學習了SELECT first_name,last_name FROM players WHERE hand=‘L’和SELECT first_name,last_name FROM players ORDER BY birth_date 如何翻譯,具有組合泛化能力的模型應能正確翻譯SELECT first_name,last_name FROM players WHERE hand=‘L’ ORDER BY birth_date。在實際應用場景中,模型使用者通常更需要模型為復雜SQL 提供翻譯,而提供的訓練數據對復雜SQL 的覆蓋程度較低。此情況要求SQL-totext 模型從簡單的SQL 中學習到當前應用場景所需的基礎知識,并在面對復雜SQL 時通過對基礎知識的重組得到正確的理解,即具備組合泛化能力。

        雖然SQL-to-text 領域的研究已取得一定成果,但現有的數據集缺乏對模型組合泛化能力的考察,模型難以發(fā)揮其組合泛化能力。鑒于此,本文提出一種評估SQL-to-text 模型組合泛化能力的方法。該方法對現有數據集中的SQL 和相應的自然語言翻譯(SQL-自然語言對)進行切分再組合,并按照生成的SQL-自然語言對所含SQL 子句的個數將其劃分為訓練數據與測試數據,以此達到評估模型組合泛化能力的目的。最終基于Spider[6]數據集創(chuàng)建SpiderCompose 數據集,選取序列到序列、樹到序列、圖到序列3 種類型的SQL-to-text 模型進行實驗,對比模型的組合泛化能力強弱,并對模型的翻譯錯誤進行分析。

        1 相關工作

        1.1 組合泛化數據集

        文獻[7]于2018 年提出了組合泛化數據集SCAN(Simplified version of the CommAI Navigation tasks)。該數據集包含一組簡單的導航命令以及對應的動作序列,模型的學習目標是將簡潔描述的命令翻譯成表示動作的序列。文獻[8]于2020 年提出COGS(COmpositional Generalization challenge based on Semantic interpretation)數據集。該數據集的任務是將英文句子通過語義解析映射成邏輯形式。文獻[9]提出DBCA(Distribution-Based Compositionality Assessment)方法,并用此方法構造出 CFQ(Compositional Freebase Questions)數據集。它為每個問題提供針對Freebase 知識庫[10]的相應查詢。文獻[11]則對組合泛化進行更細致的定義與分類,并提出PCFG(Probabilistic Context Free Grammar)數據集,其任務是在輸入序列上遞歸應用字符串編輯函數,得到輸出序列。

        1.2 SQL-to-text 數據集

        由于SQL-to-text 與text-to-SQL 領域的數據集主要內容都是SQL-自然語言對,因此兩個領域的研究可以共用數據集。目前text-to-SQL 領域的數據集主要包括ATIS[12-13]、GeoQuery[14]、Restaurants[15-16]、Scholar[17]、Academic[18]、Advising[19]、WikiSQL[20]、Spider[6]等。由 于WikiSQL 和Spider 數據集 規(guī)模較大,SQL-to-text 領域一般使用這兩個數據集進行研究。

        2 方法框架

        SQL-to-text 任務的輸入是一個SQL 和SQL 所屬的數據庫相關信息,輸出是一個自然語言翻譯。為評估SQL-to-text 模型的組合泛化能力,需要改變已有的SQL-to-text 數據集,使其測試數據中的組合泛化基本單元(SQL 子句)皆以不同的組合方式在訓練數據中出現。

        圖1 所示為提出SQL-to-text 模型組合泛化能力評估方法的整體框架,主要分為3 個部分,包含了4 個主要步驟。數據轉化是評估方法的核心部分,負責輸入的數據集,構造出一個能夠評估SQL-to-text模型組合泛化能力的新數據集,其核心思路是將現有的數據集中的SQL 與自然語言進行切分再組合,得到新數據集中的SQL-自然語言對,再通過數據劃分操作分出用于訓練和測試的數據。模型訓練及能力評估是方法的重要部分,此部分基于數據轉化部分創(chuàng)建出的新數據集用于評估的SQL-to-text 模型,并基于新數據集對模型進行能力評估,得到最終的模型組合泛化能力評估結果。

        圖1 SQL-to-text 模型組合泛化能力評估方法整體框架Fig.1 Overall framework of compositional generalization ability evaluation method for SQL-to-text models

        3 SQL 與自然語言的切分再組合

        為使現有的SQL-to-text 數據集轉化為能夠評估模型組合泛化能力的新數據集,評估方法先對現有數據集中的SQL 與自然語言進行切分再組合。為方便說明,使用Spider 數據集中的一個SQL-自然語言對作為輸入,對此步驟內的具體操作進行詳細介紹。

        SQL:SELECT first_name,last_name FROM players WHERE hand=‘L’ ORDER BY birth_date。

        自然語言翻譯:What are the full names of all left handed players in the order of birth date。

        3.1 SQL 子句切分

        由于組合泛化考察的是以一種與訓練不同的方式組合基本單元時模型能否理解其含義,因此需要對任務中的基本單元進行定義。本文將SQL-to-text任務中組合泛化的基本單元定義為按SELECT、WHERE、GROUP BY、ORDER BY、INTERSECT、UNION、EXCEPT 關鍵字切分SQL 得到的子句,稱為SQL 子句。其中,查詢連接和嵌套子查詢不會額外切分SQL 子句,如此設置的原因是:自然語言比SQL 更加凝練,往往一句話就能夠表達出整句SQL的含義,如果更細地劃分SQL 子句,將導致自然語言片段難以切分。為了與其他SQL 關鍵字進行區(qū)分,將用于SQL 子句切分的關鍵字稱為頂層關鍵字。表1 所示為切分后SQL 子句的類型及示例。

        表1 SQL 子句的類型及示例Table 1 Types and examples of SQL clauses

        對SQL-to-text 任務中組合泛化的基本單元進行定義后,即可完成對SQL 的切分操作。以上述SQL為例,使用SELECT、WHERE 和ORDER BY 3 個頂層關鍵字將其切分為SELECT first_name,last_name FROM players、WHERE hand=‘L’以及ORDER BY birth_date 3 個子句。SQL-to-text 模型在測試時將面臨與訓練時不同的SQL 子句的組合。

        3.2 自然語言片段到SQL 子句對齊

        為了確定訓練及測試時的正確翻譯結果,將SQL 切分為SQL 子句,在得到組合泛化的基本單元后,需要將自然語言也切分為與SQL 子句語義相符的片段,即令自然語言片段對齊到SQL 子句。表2所示為自然語言片段到SQL 子句對齊的示例,示例中的自然語言被切分為3 個片段,每個自然語言片段都與一個SQL 子句語義相符。

        表2 自然語言片段到SQL 子句對齊的示例Table 2 Examples of aligning natural language fragments to SQL clauses

        由于自然語言比SQL 更加凝練,往往一句話表達出整句SQL 的含義,因此自然語言比SQL 的切分更為復雜,并且切分出的自然語言片段可能存在重疊的部分。例如,表2 中的players 一詞既屬于SELECT 子句對應片段,又屬于WHERE 和ORDER BY 子句對應片段。在一些情況下,即使采取人工切分的方式仍難以得到與SQL 子句一一對應的自然語言片段。

        自然語言片段到SQL 子句對齊是SQL 與自然語言的切分再組合過程中的主要難點。此操作有2 種實現手段:通過啟發(fā)式規(guī)則進行切分與借助神經網絡模型進行切分。由于此領域缺乏自然語言切分模型所需的數據集,因此選擇使用啟發(fā)式規(guī)則進行此操作,具體可細分為關鍵字標注和自然語言單詞拼接兩步。

        3.2.1 關鍵字標注

        圖2 所示為關鍵字標注的一個示例。此操作是依據SQL 和數據庫模式等相關信息,通過一系列規(guī)則對自然語言中的部分單詞標注上對應SQL 中的頂層關鍵字,它是自然語言片段到SQL 子句對齊的基礎。在圖2 中,SQL 的SELECT 子句查詢的是球員的全名,因此給自然語言中的names 和players 單詞加上標注,表示這2 個單詞與SELECT 子句有關。WHERE 子句則提到查詢限定的是使用左手的球員,因此給自然語言中的left、handed、players 單詞加上標注,表示這3 個單詞與WHERE 子句有關。ORDER BY 子句則提到查詢的球員是按照生日排序的,因此給players、birth、date 單詞加上標注,表示這2 個單詞與ORDER BY 子句有關。最后,觀察到自然語言中的What 疑問代詞一般對應SQL 的SELECT 子句,以及in the order of 詞組一般對應SQL 的ORDER BY 子句,也為這些單詞加上相應的標注。

        圖2 關鍵字標注示例Fig.2 Example of keyword tagging

        由于頂層關鍵字與SQL 子句一一對應,因此關鍵字標注的本質是SQL 子句與自然語言單詞的匹配。受文獻[21-23]的啟發(fā),為了盡可能地縮小SQL與自然語言間的語義差距,首先從SQL 出發(fā),為每個SQL 子句生成一個備選詞集合,再使用SQL 子句對應的備選詞集合與自然語言中的單詞進行匹配,為匹配成功的單詞標注上引導該SQL 子句的頂層關鍵字,最后再對標注的結果進行調整,目的是使最終得到的自然語言片段更優(yōu)。

        SQL 子句的備選詞為:該SQL 子句若翻譯為自然語言表達可能會使用到的詞。SQL 子句的備選詞集合中包含兩類詞:第1 類是與當前特定查詢相關的詞,例如SQL 子句涉及的表名、列名、取值等;第2 類是適用于所有場景的詞,例如SQL 子句在自然語言中通常對應的疑問代詞、連詞等。要獲取與當前特定查詢相關的詞,需要先對SQL 進行解析。在Spider 數據集中,每句SQL 都對應了一個名為SQL 的字典[6](下文簡稱為SQL 字典),該字典能夠無歧義地表達SQL 的含義,因此能夠從SQL 字典中提取出與當前特定查詢相關的詞,放入相應的SQL子句的備選詞集合中。而要獲取適用于所有場景的詞,需要依靠對Spider 數據集中大量SQL 及自然語言的觀察與歸納。例如:SELECT 子句一般對應自然語言中的疑問代詞、與查詢或返回相關的動詞,WHERE 子句一般對應定語從句引導詞以及表示條件的介詞等。

        為SQL 的每個子句生成備選詞集合后,即可使用此集合與SQL 對應的自然語言中的單詞進行匹配,為匹配成功的單詞標注上引導該SQL 子句的頂層關鍵字。在進行匹配之前,需要先對單詞進行預處理,將單詞的時態(tài)、單復數、比較級、最高級等去除,只留下其主干部分,方便后續(xù)的匹配。例如將had 轉為have,dogs 轉為dog。

        經過匹配后,自然語言中的部分單詞被標注了一個或多個頂層關鍵字,但是標注的結果還能通過進一步調整達到更好的效果?;趯pider 數據集和實際標注情況的觀察,設置了一系列標注結果調整規(guī)則,設置規(guī)則的目的是減少關鍵字誤標注并提高后續(xù)單詞拼接得到的自然語言片段的連貫性。標注調整規(guī)則的具體示例如下:

        若單詞為when、where、which、who、why 其中之一,且不是句子中的第一個單詞,當前一個詞為and且SQL 的頂層關鍵字中沒有INTERSECT 時,將and和此單詞的標注設置為只有SELECT;當前一個詞是名詞時,將此單詞的SELECT 標注去除。此規(guī)則的目的是盡可能地減少疑問代詞上的多重標注情況,考慮到查詢多個列以及疑問代詞作為定語從句引導詞2 種情況。查詢多個列,例如:SELECT T1.emp_lname,T1.emp_hiredate FROM employee AS T1 JOIN professor AS T2 ON T1.emp_num=T2.emp_num WHERE T2.prof_office=“DRE 102”。對應的自然語言翻譯為:What is the last name of the professor whose office is located in DRE 102,and when were they hired。在初步匹配后,when 的標注為 SELECT 和WHERE,經過規(guī)則的調整,when 的標注為SELECT。在自然語言翻譯中使用疑問代詞作為定語從句引導詞,例如:What are the id of students who registered course 301。對 應SQL 為:SELECT student_id FROM student_course_attendance WHERE course_id=301。在初步 匹配后,who 的標注 為SELECT 和WHERE,經過規(guī)則的調 整,who 的標注為WHERE。

        3.2.2 自然語言單詞拼接

        為自然語言翻譯中的部分單詞標注對應SQL 的頂層關鍵字后,即可依據標注對自然語言中的單詞進行拼接,得到與SQL 子句語義相符的自然語言片段。此操作需要考慮:并非在每個單詞上都帶有標注,在部分單詞上帶有多個標注,同一種標注可能在句子中不連續(xù)。通過算法1 為一個SQL 子句生成自然語言片段,此算法的關鍵是依據關鍵字標注確定自然語言片段對應的單詞位置區(qū)間。經過關鍵字標注后,自然語言翻譯中的每個位置都標注了0 或多個頂層關鍵字,算法1 將這些分散的位置連接成區(qū)間,SQL 子句對應的自然語言片段正是由這些區(qū)間內的單詞拼接而成。算法1 的輸入為自然語言翻譯中的單詞、單詞的標注以及引導當前SQL 子句的頂層關鍵字,輸出為關鍵字對應的單詞列表以及單詞位置區(qū)間列表(方便后續(xù)自然語言片段的組合)。算法偽代碼如下:

        算法1自然語言單詞拼接

        算法1從左到右遍歷自然語言翻譯,找到第1 個標注有輸入的關鍵字的位置,將其設置為區(qū)間的開頭。從區(qū)間開頭往右繼續(xù)遍歷,若某個位置上存在關鍵字標注,但不含輸入的關鍵字,則將其定為區(qū)間的結尾。由于關鍵字對應的位置區(qū)間可能不止一個,因此還需繼續(xù)向右遍歷,重復上述方法尋找新的區(qū)間。若遍歷結束后當前區(qū)間只有開頭沒有結尾,則將其結尾定為自然語言翻譯的結尾,得到最后一個區(qū)間。假設一個SQL 對應的自然語言翻譯中有N個詞,則算法1 的時間復雜度為O(N)。

        3.3 SQL 子句和自然語言片段組合

        將SQL 切分為SQL 子句,即得到組合泛化的基本單元后,便能得出基本單元的多種組合,作為模型需要翻譯的內容。如表3 的第1 列所示,將切分出的SQL 子句進行拼接組合即可得到多種組合結果。為保證組合結果的合理性,并避免人工書寫新的自然語言翻譯,僅對來自同一個SQL 的子句進行組合。以Spider 數據集中的SQL 為例,若對來自SELECT avg(age),min(age),max(age)FROM singer WHERE country=“France”以 及SELECT DISTINCT country FROM singer WHERE age >20 中 的SQL 子句進行組合,可得到SELECT avg(age),min(age),max(age)FROM singer WHERE age >20 以 及SELECT DISTINCT country FROM singer WHERE country=“France”。在此情況下,第1 個SQL 雖然符合語法,但是沒有實際意義,2 個SQL 都需要人工書寫新的自然語言翻譯。相比在同一SQL 內進行SQL子句的組合,能避免為組合出的SQL 人工書寫對應的自然語言翻譯,且更容易組合出具有實際意義的SQL。這些SQL 子句的組合結果即為模型需要翻譯的內容。

        表3 SQL 子句和自然語言片段的組合示例Table 3 Examples of combinations of SQL clauses and natural language fragments

        確定了模型需要翻譯的內容后,還需要確定正確的翻譯結果。因此,在組合SQL 子句時還需要將SQL 子句所對應的自然語言片段以相同方式進行拼接組合。表3 的第2 列展示了與第1 列相對應的自然語言片段的組合結果。由于僅對來自同一個SQL 的子句進行組合,因此也只對來自同一個翻譯結果的自然語言片段進行組合,保證自然語言片段組合結果的合理性。需要注意的是,一些自然語言片段間存在重疊部分,例如從表3 可以看出,SELECT 子句和WHERE 子句對應的兩個自然語言片段都含有players 一詞,需避免在組合的結果中重復出現。

        得到SQL 子句的組合及對應的自然語言片段的組合后,就確定了模型需要翻譯的內容及相應的正確翻譯結果。如表3 所示,第1 列是模型需要翻譯的內容,第2 列是正確的翻譯結果,由一個翻譯內容和其翻譯結果構成的一組數據為一個SQL-自然語言對,是SQL-to-text 模型組合泛化能力評估數據集的主要組成成分。

        4 數據劃分

        通過對SQL 與自然語言的切分再組合,得到了大量的SQL-自然語言對,為評估SQL-to-text 模型的組合泛化能力,按SQL-自然語言對中含有的SQL 子句個數對數據進行劃分,得到用于模型訓練和測試的兩種數據。如表4 所示,令SQL 子句個數小于3 的數據作為模型的訓練數據,令SQL 子句個數大于等于3 的數據作為模型的測試數據。

        數據劃分后,組成測試數據的SQL 子句會以不同的組合方式在訓練數據中出現,采用這種數據劃分方式可以得知,當訓練時學習的知識以不同方式組合后,模型是否仍能理解其含義,即模型是否具有組合泛化能力。并且,模型測試時需要翻譯的內容與訓練時相比,SQL 子句個數更多,普遍長度更長且復雜度更高,此設置更加貼近SQL-to-text 模型的實際應用場景,也更符合研究SQL-to-text 模型組合泛化能力的初衷。

        通過對SQL 與自然語言的切分再組合得到大量的SQL-自然語言對,再按所含的SQL 子句個數對數據進行劃分,便完成了評估方法的數據轉化部分,創(chuàng)建出了用于評估SQL-to-text 模型組合泛化能力的新數據集。

        5 實驗與結果分析

        5.1 實驗設置

        5.1.1 對比方法

        對比方法主要有以下2 種:

        1)Template 方法[19]。此方法將SQL 中的地名、人名、數字等內容進行匿名化處理,得到SQL 對應的查詢模板,并按模板劃分訓練數據與測試數據,使同一模板對應的SQL 只能同時出現在訓練數據或測試數據中。

        2)TMCD 方法[24]。此方法將SQL 中的單詞視為組合泛化的基本單元,保證每個單元至少在訓練數據中出現一次,并使訓練與測試數據中的分布差異盡可能大。

        5.1.2 參與評估的SQL-to-text 模型

        根據目前SQL-to-text 以及組合泛化領域的研究工作,選擇對文獻[3]在研究中所使用的SQL-to-text模型進行組合泛化能力的評估,并沿用了該研究使用的模型名稱。這些模型都是編碼器-解碼器架構的模型,涵蓋了序列到序列、樹到序列、圖到序列3 大類型,是SQL-to-text 領域常用的神經網絡模型。由于這些模型都使用了基于注意力機制的長短期記憶(LSTM)模型[25]作為解碼器,因此按其使用的編碼器類型命名。以下為參與評估的5 個模型:

        1)BiLSTM:序列到序列模型。編碼器為雙向長短期記憶(BiLSTM)模型[26],輸入為SQL 序列。

        2)Transformer-Absolute position(ABS):序列到序列模型。編碼器為使用絕對位置編碼的Transformer 模型[27],為表述方便簡稱為ABS 模型,輸入為SQL 序列。

        3)Transformer-Relative position(REL):序列到序列模型。編碼器為使用相對位置編碼[28]的Transformer 模型,為表述方便簡稱為REL 模型。輸入為SQL 序列。

        4)TreeLSTM:樹到序列模型。編碼器為子結點的TreeLSTM 模型[29],輸入為SQL 構造出的樹。

        5)RGT:圖到序列模型。編碼器為文獻[3]提出的RGT 模型,輸入為SQL 構造出的樹。

        5.1.3 數據集

        根據提出的SQL-to-text 模型[30-31]組合泛化能力評估方法,基于Spider 數據集構造出評估SQL-totext 模型組合泛化能力的新數據集,將其命名為SpiderCompose 數據集。由于Spider 數據集的測試集未公開,輸入數據來自Spider 訓練集與驗證集,訓練集包含7 000 個SQL-自然語言對,驗證集包含1 034 個SQL-自然語言對。為了評估模型的組合泛化能力,按SQL 子句的個數對數據進行劃分,因此SpiderCompose 訓練集包含了所有SQL 子句個數為1 和2 的數據,共有25 709 個SQL-自然語言對;驗證集包含所有由Spider 訓練集得到的SQL 子句個數為3 和4 的數據,共有1 584 個SQL-自然語言對;測試集包含所有由Spider 驗證集得到的SQL 子句個數為3 和4 的數據,共有200 個SQL-自然語言對。

        在此數據劃分設置下,SpiderCompose 數據集與Spider 數據集具有不同的數據長度分布情況。表5和表6 分別展示了Spider 數據集和SpiderCompose數據集中SQL 和自然語言的長度分布情況。Spider數據集在設計時并未考慮到評估模型組合泛化能力的需求,其訓練集和驗證集具有相似的SQL 長度分布和自然語言長度分布。由于SpiderCompose 訓練集中的SQL 包含1~2 個子句,而驗證集和測試集中的SQL 包含3~4 個子句,因此訓練集中的SQL 和自然語言普遍較短,而驗證集和測試集中的SQL 和自然語言普遍較長。整體上SpiderCompose 數據集的訓練集、驗證集和測試集具有不同的SQL 和自然語言長度分布,這種分布更貼近模型的實際應用場景,符合評估模型組合泛化能力的需求[11]。

        表5 Spider 數據集的SQL 和自然語言長度分布Table 5 SQL and natural language length distribution of Spider dataset

        表6 SpiderCompose 數據集的SQL 和自然語言長度分布Table 6 SQL and natural language length distribution of SpiderCompose dataset

        為了將本文提出的評估方法與Template 和TMCD 方法進行實驗對比,使用文獻[24]的開源代碼將 Spider 數據集轉化為 SpiderTemplate 和SpiderTMCD 數據集。表7 展示了SpiderTemplate 數據集中SQL 和自然語言的長度分布情況。由于Template 方法將查詢模板隨機地劃分到數據集的不同部分,使其訓練集、驗證集、測試集具有相似的SQL 和自然語言長度分布。表 8 展示了SpiderTMCD 數據集中SQL 和自然語言的長度分布情況。由于TMCD 方法使訓練數據和測試數據間的組合分布差異盡可能得大,其訓練集、驗證集和測試集具有不同的SQL 和自然語言長度分布,然而此方法未對數據的長度進行控制,導致驗證集和測試集中的SQL 普遍較短,這種分布不符合SQL-to-text 模型的實際應用場景。

        表7 SpiderTemplate數據集的SQL 和自然語言長度分布Table 7 SQL and natural language length distribution of SpiderTemplate dataset

        表8 SpiderTMCD 數據集的SQL 和自然語言長度分布Table 8 SQL and natural language length distribution of SpiderTMCD dataset

        5.1.4 評估指標

        模型的能力評估實驗使用了BLEU-4 評分[32]、人工評分、完全匹配率3 種指標,并取平均值作為評估結果。

        雙語評估替補(BLEU)是目前常用的翻譯模型自動評估方法。它采用N元組匹配的規(guī)則計算模型翻譯結果與參考翻譯結果之間的相似度,結果的值域范圍是[0,1],值域越大表示模型的翻譯質量越好。

        由于BLEU 算法只計算精度而不關心召回率,并且僅從字符串匹配的角度評估模型的翻譯質量,無法重點關注對語義影響程度較大的詞,未考慮到同義表達的情況,因此加入了人工評分以彌補這些缺陷。

        完全匹配率指模型翻譯結果與數據集提供的參考翻譯結果完全相同的比例,在計算時不會引入誤差,能夠較好地反映出模型提供完全正確的翻譯的能力,是模型能否投入實際應用的關鍵指標。

        5.2 結果分析

        5.2.1 基于SpiderCompose 數據集的評估實驗

        使用SpiderCompose 測試集對5 個SQL-to-text模型的組合泛化能力進行評估。為得到更準確的評估結果,此部分包含2 組實驗,在實驗1 中模型能發(fā)揮其組合泛化能力,在實驗2 中模型無法發(fā)揮其組合泛化能力。通過2 組實驗排除模型其他翻譯能力對評估結果的影響。

        在實驗1 中,5 個模型皆基于SpiderCompose 訓練集進行學習,基于SpiderCompose 測試集進行評估,測試集中的SQL 子句皆以不同組合方式在訓練集中出現,保證模型能夠發(fā)揮其組合泛化能力。鑒于組合泛化能力僅為模型翻譯能力的一部分,需要進一步確認實驗1 中模型在測試集上提供正確翻譯的原因以及其中依靠組合泛化能力的占比。因此,在實驗2 中同樣使用SpiderCompose 測試集對5 個模型進行評估,區(qū)別是去除了訓練集中與測試集含有相同SQL 子句的SQL-自然語言對。在實驗2 的設置下,SQL-to-text 模型無法發(fā)揮其組合泛化能力,它們?yōu)镾QL 提供正確翻譯依靠的是其他翻譯能力。對比實驗1 與實驗2 的結果,即可進一步確認模型的組合泛化能力。表9 展示了實驗1 和實驗2 中5 個模型在SpiderCompose 測試集上翻譯的BLEU-4 評分、人工評分和完全匹配率的平均值以及2 次實驗結果的差值,使用此落差作為最終的組合泛化能力評估結果。

        表9 基于SpiderCompose 數據集的評估結果Table 9 Evaluation results based on Spider Compose dataset %

        如表9 所示,5 個模型在實驗2 中的表現和實驗1 相比都存在較大的落差。此結果反映出模型在SpiderCompose 測試集上提供正確翻譯主要依靠其組合泛化能力,且模型組合泛化能力的發(fā)揮依賴于數據集的設置。在實驗2 中所有模型的完全匹配率均為0,說明組合泛化能力在模型提供完全正確的翻譯方面起到了重要作用,而能否提供完全正確的翻譯對于模型能否投入正式的使用具有重要的影響。結合實驗1 與實驗2 的結果可知,ABS、BiLSTM、REL 3 個模型的組合泛化能力相對較高,RGT 模型的組合泛化能力最低,而它在實驗2 中表現最好,說明現有的專為SQL-to-text 任務設計的模型(RGT 模型)雖具有較強的其他翻譯能力,但其組合泛化能力仍有較大的提升空間。

        5.2.2 基于多個數據集的評估對比實驗

        使用5 個SQL-to-text 模型在SpiderTemplate、SpiderTMCD、Spider 數據集上進行實驗,與基于SpiderCompose 數據集的評估實驗結果進行對比。其中,Spider 數據集并非為評估模型組合泛化能力而設計,其余3 個數據集則是為了評估模型組合泛化能力由Spider 數據集轉化得到。表10 展示了5 個模型在4 個數據集上的評估結果。如表10 所示,4 個數據集上的評估結果并不一致,在總體上,SpiderCompose 數據集與SpiderTMCD 數據集上的模型表現排序較為接近,SpiderTemplate 數據集與Spider 數據集上的模型表現排序較為接近。

        表10 5 個模型在4 個數據集上的評估結果對比Table 10 Comparison of evaluation results of five models on four datasets %

        由于完全匹配率對于模型能否投入實際應用影響較大,表11 對5 個模型在4 個數據集上的完全匹配率進行了對比。如表11 所示,在SpiderCompose數據集上模型的完全匹配率遠高于其他2 個數據集,其中在Spider 數據集上模型的完全匹配率都為0。受完全匹配率影響,在表10 中SpiderCompose 數據集上的模型總體表現也優(yōu)于其他數據集上的模型總體表現。

        表11 5 個模型在4 個數據集上的完全匹配率對比Table 11 Comparison of perfect match rates of five models on four datasets %

        以下對3 種組合泛化能力評估方法進行對比分析,說明結果存在差異的原因以及本文提出方法的優(yōu)勢。

        首先,查詢知識的使用程度不同。Template 和TMCD 方法提出時的初衷是評估text-to-SQL 模型的組合泛化能力,受此影響,Template 和TMCD 方法未使用到SQL 子句的概念,導致模型在SpiderTemplate和SpiderTMCD 數據集上無法學習到SQL 子句的含義,對查詢相關知識的學習程度不足。雖然模型在SpiderTemplate 訓練集中學習到了一些查詢模板的含義,但難以從中學習到模板的每個組件的含義,導致模型難以泛化到其他查詢模板。而TMCD 方法將SQL 包含的單詞設置為組合的基本單元,未充分考慮到同一單詞在不同的SQL 上下文中具有不同含義,使模型難以學習到完整的查詢知識。本文所提的方法則通過SQL 與自然語言的切分再組合,顯式地引導模型學習SQL 子句的含義以及子句間組合后的含義,幫助模型加深對SQL 結構和查詢知識的理解,因此SpiderCompose 數據集上模型的翻譯表現優(yōu)于其他數據集。并且,模型翻譯結果的完全匹配率取得了大幅的提升,為模型投入實際應用提供了啟發(fā)。

        其次,劃分數據的方式不同。Template 方法首先提取出SQL 對應的查詢模板,然后將屬于同一查詢模板的SQL 一起隨機地劃分到訓練數據或測試數據中,雖然保證了訓練數據與測試數據中的SQL 具有不同的組合方式,但隨機劃分無法保證兩類數據間的關系。而本文方法依據SQL 子句的個數對數據進行劃分,排除了隨機劃分帶來的問題,不僅符合組合泛化的要求,而且貼近SQL-to-text 模型的實際應用場景。

        最后,組合泛化能力對評估結果的影響不同。Template 和TMCD 方法未排除組合泛化能力以外的其他翻譯能力對模型評估結果的影響,即無法確認模型提供正確翻譯的原因中依靠組合泛化能力的占比,導致評估結果不夠客觀準確。相比之下,本文提出的方法不僅通過兩組實驗排除了模型其他翻譯能力對結果的影響,得到了更為準確的組合泛化能力評估結果,而且通過對SQL 和自然語言的切分再組合保證了模型在訓練時能夠學習到所需的基礎知識,不受來自原始數據集的限制,因此在基于SpiderCompose 數據集的實驗中組合泛化能力對評估結果的影響較為明確。

        綜上所述,本文所提方法對查詢知識的使用程度更高,劃分數據的方式更加合理,得到的數據集更符合評估組合泛化能力的需求且更貼近模型的實際應用場景,受到原始數據集的限制程度更低,能使模型發(fā)揮出其組合泛化能力,得到的評估結果也更準確,并且為模型投入實際應用提供了啟發(fā)。因此,與其他評估方法相比,本文提出的方法更具有優(yōu)勢。

        6 結束語

        本文主要對SQL-to-text 模型的組合泛化能力評估進行研究,分析組合泛化能力對于SQL-to-text 模型的重要性,提出一種評估SQL-to-text 模型組合泛化能力的方法,將Spider 數據集轉化為能夠評估模型組合泛化能力的SpiderCompose 數據集,并對SQL-to-text 模型進行組合泛化能力評估,彌補現有數據集對模型能力考察的不足。實驗結果表明,本文評估方法優(yōu)于Template 和TMCD 方法,且現有模型在組合泛化維度上仍有較大提升空間,對模型投入實際應用具有較大影響。后續(xù)將加強數據集對模型的引導,或對模型結構及訓練方式進行改變,以提升SQL-to-text 模型的組合泛化能力。

        猜你喜歡
        單詞方法能力
        消防安全四個能力
        單詞連一連
        大興學習之風 提升履職能力
        人大建設(2018年6期)2018-08-16 07:23:10
        看圖填單詞
        你的換位思考能力如何
        看完這些單詞的翻譯,整個人都不好了
        可能是方法不對
        用對方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        抄能力
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        午夜福利理论片在线观看| 亚洲美女av二区在线观看| 日韩精品极品系列在线免费视频| 国产成人亚洲精品无码青| 在线观看免费人成视频色9| 久久AV中文综合一区二区| 国产av一区仑乱久久精品| 男女av一区二区三区| 黑人巨大跨种族video| 久久精品国产亚洲AⅤ无码| 国产成人精品中文字幕| 后入丝袜美腿在线观看| 亚洲日韩国产一区二区三区在线| 亚洲区小说区图片区qvod伊| 青春草在线观看免费视频| 蜜桃视频国产一区二区| 国产人妖伦理视频在线观看| 日韩人妻中文字幕专区| 亚洲色成人www永久在线观看| 无码AV高潮喷水无码专区线| 国产偷闻隔壁人妻内裤av| 国产av精品麻豆网址| 少妇无码av无码一区| 国产精品亚洲专区无码web| 国产亚洲视频在线观看播放| 亚洲国产精品av麻豆网站| 精品视频无码一区二区三区| 日韩毛片在线| 在线视频一区二区三区中文字幕| 99e99精选视频在线观看| 中文字幕一区在线观看视频| 无码Av在线一区二区三区| 99视频一区二区日本| 日本一区二区在线播放| 中文字幕无码无码专区| 久久麻豆精亚洲av品国产精品| 日韩精品人妻中文字幕有码在线| 久久夜色精品国产| 久久免费精品国产72精品剧情| 中文字幕人乱码中文字幕乱码在线| 夜夜爽妓女8888888视频|