?

融入句法感知表示進行句法增強的語義解析

2021-09-18 06:21謝德峰吉建民
計算機應用 2021年9期
關鍵詞:句法語義解析

謝德峰,吉建民

(中國科學技術大學計算機科學與技術學院,合肥 230027)

(*通信作者電子郵箱jianmin@ustc.edu.cn)

0 引言

伴隨著21 世紀第二個十年期間人工智能領域的發展與各種深度學習模型的提出,人工智能已經成為當今計算機學科中非常重要的一個子學科,成為了21 世紀最火熱的話題。與此同時,機器人作為人工智能領域的一個子學科,綜合了計算機學科中多個研究方向,也成為了許多學術團隊和科技公司正在大力研究的對象。隨著經濟的發展,生活輔助型智能應用越來越多,給人們帶來了非常大的便利,智能機器人也逐步進入市場,為人們提供簡單的勞動服務。人們希望能用自然語言直接與機器人或者應用進行溝通,從而讓機器人或者應用更好地服務人們,為人們帶來便利。

文獻[1]中指出,自然語言理解是機器人或者應用能夠提供智能服務的關鍵技術之一。語義解析(semantic parsing)的定義就是這樣一個任務:將一個自然語言語句轉化成機器能夠理解或執行的語言,比如邏輯表達形式或可執行的程序,從而使計算機理解自然語言。語義解析作為自然語言理解的核心,在很多任務中都是關鍵步驟。語義解析是讓機器人理解自然語言的關鍵步驟。

隨著深度學習的發展,許多團隊也試著利用深度學習模型來完成語義解析的任務。但由于現有語義解析數據集的規模較小,遠遠不能滿足深度學習所需要的數據量,且構建和標注新的數據集非常困難,因為標注形式不是簡單的類別而是一串邏輯符號組成的表達式,標注人員需要專業知識背景,因此,數據集少且規模小成為了制約語義解析發展的一個問題。此外,語義解析還對模型輸出的精度要求高,輸出序列只要有其中一個字符解析錯誤,那么一整串序列輸出都是不正確且不可用的。同時,語義解析過程中還存在兩大難題:其中一個問題是長期依賴問題,即需要生成的某個元素依賴于另一個遙遠的元素;另一個問題是結構建模問題,即所要生成的序列需要符合邏輯表示的語法要求,該語法包含了豐富的結構信息。如何在上述一系列制約因素以及精度要求之下進一步提高語義解析模型準確率及效率,成為亟須研究和解決的難題。

句法解析(syntactic parsing)是自然語言處理中一個重要的任務,其目標是分析句子的語法結構并將其表示為容易理解的結構(通常是樹形結構)。句法解析與語義解析是兩個完全不同的任務,二者的實現方式也截然不同:句法解析的目標是解析出句子中詞匯與詞匯之間的句法關系(包括結構關系和依存關系);語義解析的目標在于解析句子的內在含義并將該含義抽象成邏輯表示。一般而言,句法解析模型生成圖形式的句法關系,而語義解析生成序列形式的邏輯語句。句法解析得到的句法關系可作為特征信息用于輔助語義解析任務。句法解析是所有工具性自然語言處理(Natural Language Processing,NLP)任務中較為高級、復雜的一種任務。文獻[2]闡述了句法解析可進一步分為句法結構解析(syntactic structure parsing)和依存關系解析(dependency parsing)兩種,其中:句法結構解析是通過分析語句中詞與詞之間的相互聯系,相互作用的方式,得到的整個涵蓋整個句子全局的句法結構樹;而依存關系解析則是根據語法依存理論,分析語言單位內成分之間的依存關系從而揭示其句法依存結構。

以往的基于深度學習的語義解析方法大多是以序列到序列(Seq2Seq)模型[3-4]為基礎。在這些研究中,大多沒有直接用到輸入源的自然語言句子的句法特性,而是將識別句法特性的任務統一地交給了端到端神經網絡去自主處理,但神經網絡很難能在沒有相關標注信息的情況下自主識別出輸入句子的句法特性。利用自然語言本身的句法特征信息可以為模型增加可參考的輸入信息,有助于緩解語義解析中語言結構建模和數據集規模小的瓶頸問題。為了進一步提高語義解析模型的準確率和效率,本文采用一種利用句法信息來增強模型效率的語義解析方法,即利用句法解析任務來輔助語義解析任務。該方法利用輸入句子的句法依存關系來增強端到端語義解析模型的效率?;舅悸肥窃谝延卸说蕉苏Z義解析模型的基礎上,先對一個端到端的依存關系解析器進行預訓練,將該依存關系解析器的中間表示作為句法感知表示,與原有的字詞嵌入(word embedding)表示拼接到一起,產生新的輸入嵌入表示,而后再將該新的輸入嵌入表示用于端到端語義解析模型,以此來提高語義解析模型的效率。

近幾年也有一些工作開始嘗試利用句法信息來增強端到端語義解析,例如文獻[5-6]采用樹形長短期記憶(Tree Long Short-Term Memory,Tree-LSTM)單元來處理句法結構信息,但本文提出的融入句法感知表示進行句法增強的語義解析更加簡單且有效。文獻[7]采用了融入句法感知表示的思路,受其啟發,本文工作將該思路應用于語義解析領域。本文實驗使用基于Transformer 的Seq2Seq 模型作為基準模型,采用轉導融合學習方式進行模型融合。實驗同時對比了最近10 年的語義解析研究工作。最終實驗結果表明,在ATIS、GEO、JOBS 數據集上,本文采用的句法增強語義解析方法不僅全面超過了基準水平,還在大部分指標上超越了其他相關工作。

1 相關工作

最傳統的語義解析包括模板匹配、手寫語法規則進行推導等方法。雖然有些工作已經能達到非常高的準確率,但是都需要進行大量的前期工程,依賴于手工設計的規則,通用性較差。

統計語義解析方法主要是運用了機器學習方法,依賴于有標注的自然語言和邏輯表達式配對的數據集。文獻[8-10]中依賴了自然語言語句的依存關系解析結果,用lambda 算子或者組合范疇語法分析器來將語句的依存結構轉化為邏輯形式;文獻[11]中沒有用到手工規則或者組合范疇語法,而是直接采用了較為暴力的方法,通過連接(Join),求交(Intersection)和聚合(Aggregate)三種操作,以及提出的橋接操作自底向上地對語法樹的節點進行兩兩合并,從而在根節點得到邏輯形式;文獻[12]將物理特征分類器和基于概率范疇語法的語言模型兩者進行聯合學習,以此讓語言模型能夠構造組合意義表示;文獻[13]中采用了組合類別語法歸納來處理語義解析任務;文獻[14]通過構建一個詞法語法分解詞典來建模詞類之間的詞法、語法和語義,以此提升組合范疇文法的效率。

隨著深度學習的發展,許多基于神經網絡Seq2Seq 模型或其衍生模型大量涌現。深度學習的優點在于其在不需要特征工程的情況下,取得了不亞于手工轉換方法的準確率,但同時也帶來了難以解釋模型的缺點。文獻[15]中采用基于LSTM 單元[16-17]和基于注意力機制[4,18]的Seq2Seq 模型來解決語義解析問題;同時文獻[15]還提出了統一基于LSTM 和注意力機制的序列到樹(Seq2Tree)模型來解決語義解析中的結構建模問題,提高語義解析效率。自此,許多研究團隊都以文獻[15]為基礎,在編碼器端或者解碼器端進行模型上的改進。文獻[19]在編碼器端融入了自然語言的句法信息,考慮了單詞順序、依存結構特征和句法成分特征,構建了一個圖-序列(Graph2Seq)模型。文獻[20]則在解碼器端生成了一個語義圖,構建了一個序列-語義圖模型。文獻[21]雖然是以Seq2Seq 模型為基礎,但是根據結構化查詢語言(Structured Query Language,SQL)的特點,在解碼器端分成三個頻道并加入了一個門單元。三個頻道分別預測數據表中列名稱、表中單元格名稱以及SQL 語法關鍵字;而門單元則是一個控制開關,在每個時間節點預測應該選擇哪個頻道的預測結果作為輸出。文獻[22]則用了兩層的編碼器+解碼器模型(encoderdecoder)來實現從粗略到精細的語義解析過程:第一層先生成草稿,第二層再生成其中的變量作為補充。TRANX[23]借鑒了抽象語法樹(Abstract Syntax Tree,AST)的思想,根據目標語言的語法構建規約文法,基于該文法可以將生成目標表示為語法樹,然后實現自頂向下的語法樹生成系統。文獻[24]提出了一種自適應的解碼方式來幫助解碼器自主學習要生成的邏輯形式結構。

近年來隨著預訓練語言模型的興起,很多領域都開始注意到了眾多預訓練語言模型的基礎模型Transformer[25]。Transformer具有媲美LSTM的處理遠距離依賴的能力,同時也具備與卷積神經網絡相似的并行可行性,它在處理大規模數據集時比LSTM 要更具魯棒性,不容易過擬合。TreeGen[26]借助Transformer[25]作為解碼器(decoder),同時也采用基于Transformer 改造的可用于語義解析的AST 閱讀器來編碼抽象句法樹。

2 方法與模型

2.1 基于深度學習的依存關系解析器

為了在語義解析模型中融入依存句法信息感知表示,首先需要預訓練一個依存關系解析器。本文所使用的句法信息為依存關系信息,依存關系解析是根據語法依存理論,解析語言單位內成分之間的依存關系從而揭示其句法依存結構,依存關系樹則描述了原句中詞與詞之間的依存關系。如圖1 所示為一個句子中的依存關系信息示例。

圖1 依存關系信息示例Fig.1 Example of dependency relation information

依存關系解析器的作用是根據輸入句子及其詞性標注標記出其依存關系,從而獲得該句子的依存關系解析結構圖。依存關系解析器本質上是一個序列到圖的生成器,該依存關系解析過程可如圖2 所示。其中,r1~r8為編碼器生成的中間表示。

圖2 依存關系解析的解析過程Fig.2 Process of dependency relation parsing

本文所采用的依存關系解析器源自于文獻[27],該解析器已被證明了相較于文獻[28]中所提出的模型更加簡單卻更高效,因此采用該依存關系解析器提取輸入句子中的依存關系信息。如圖3 所示,該依存關系解析器由雙向LSTM、四個全連接層和兩個特殊的計算參數矩陣所構成??梢詫⒃撃P涂醋魇蔷幋a器(encoder)和decoder 兩個部分,嵌入層和LSTM層為encoder 部分,其余上層為decoder 部分。首先,模型的輸入是單詞和單詞各自的詞性標注信息(part-of-speech),將輸入的句子的詞嵌入(word embedding)和詞性標注信息嵌入(Part-Of-Speech embedding,POS embedding)拼接起來作為輸入,然后用多層雙向長短期記憶層(Bi-directional LSTM,BiLSTM)處理該輸入,得到中間表示R。如式(1)~(2):

圖3 依存關系解析器模型結構Fig.3 Structure of dependency relation parser

其中:e(word-dependency)、e(pos)為依存關系解析器端的詞嵌入和標注信息嵌入。

隨后,用4 個不同的全連接層分別處理中間表示R,得到4 個表示,如式(3)~(6)所示,其含義與文獻[27]中含義相同。這一步的操作的目的是在保證LSTM解析能力不損失的情況下對R進行降維處理,達到防止過擬合的目的。

接著,將上一步得到邊以及邊上標簽的表示進行雙衍射處理[28],如式(7)~(8)所示。雙衍射公式計算過程如式(9)~(10)所示。

值得注意的是:當雙衍射處理是為了處理是否有邊存在的,即結果為得到S(edge)時,U的維度為(d×1×d),d表示的維度;當雙衍射處理是為了處理是否有邊上標簽信息,即結果為得到S(label)時,U的維度為(d×c×d),其中c是所有邊可能標簽的數量總和。最后得到的邊矩陣S(edge)中,s(edge)[i][j]表示節點i指向節點j的邊存在的概率,而邊標簽矩陣S(label)中,s(label)[i][j]表示節點i指向節點j的邊(若存在)的所有可能標簽的概率。該過程如式(11)~(12)所示:

與文獻[27]相同,本文通過計算預測分布與真實標簽分布的損失,然后通過反向傳播梯度下降來訓練模型。用softmax cross-entropy 來計算邊標簽預測與邊真實標簽之間的損失,用sigmoid cross-entropy 來衡量邊存在概率與邊存在真實標簽之間的損失。然后引入超參數λ來平衡這兩個損失函數的權重。過程如式(13)~(15)所示:

2.2 基于Transformer的語義解析模型

在語義解析領域,以往的多數研究都是以LSTM 和注意力機制為基礎Seq2Seq 模型。近年來隨著預訓練語言模型的興起,Transformer[25]憑借其處理遠距離關系依賴的能力和與卷積神經網絡相似的并行能力而受到廣泛關注。本文也采用Transformer作為基礎的語義解析模型。

Transformer 引入了自注意力機制和多頭自注意力結構。和一般的Seq2Seq模型一樣,本質上是一個encoder-decoder的結構。encoder 和decoder 都由多個單獨的處理單元堆疊而成,單元與單元之間采用層歸一化和殘差鏈接。如式(16)所示:

Transformer 由多頭自注意力層(multi-head self-attention)和位置前饋網絡層(position-wise feed-forward networks)組成,其中多頭自注意力模塊有多個縮放點乘運算構(scaled dotproduct)。上述多頭自注意力層和位置前饋網絡層的計算過程如式(17)~(19)所示:

decoder 部分跟encoder 相比,多了個一層用于處理encoder 所輸出中間表示的多頭注意力層,并且在自身的自注意力層加入了掩碼機制。Transformer 還采用三角函數還表示位置編碼(position encode),以表明輸入節點的位置信息。

2.3 融入句法信息感知的語義解析模型

與文獻[7]中的思路相同,為了融入句法信息感知,需要先預訓練2.1 節所示的依存關系解析器模型,讓依存關系解析器有了初步理解句子依存關系的能力。而后將預訓練好的依存關系解析器模型的encoder 部分的輸出,也就是式(2)中所示的R,作為所要用來提供句法信息的句法感知表示(syntax-aware representation)。

如式(20)所示,該過程是將得到的句法感知表示R與語義解析模型encoder 端的詞嵌入拼接到一起,加上位置編碼(position encode),再將其作為Transformer-encoder 的輸入,其中e(transformer-word-embed)是encoder 端的詞嵌入,e(position-encode)是 位 置編碼。

decoder 部分保持與Transformer 的decoder 部分一致。如圖4 所示,左側模型為用來提取依存關系信息的依存關系解析器,右側模型為Transformer 模型??梢钥闯?,原本的Transformer只需要輸入詞嵌入+位置編碼,采用本文方法改進后,Transformer 的輸入是詞嵌入與依存關系解析器的中間表示R拼接后的向量+位置編碼,這樣的改進旨在讓帶有依存句法信息的中間表示R以嵌入(embedding)的形式,讓模型可以通過解析該中間表示R得到句法信息。

圖4 融入句法信息感知后的Transformer整體結構Fig.4 Overall structure of Transformer after fusing syntax-aware representation

2.4 轉導融合學習

模型融合是提高機器學習任務準確性的一種常見實踐。由于語義解析任務的數據集規模小,標注成本昂貴,常規的集成方法僅能對語義解析任務帶來微不足道的改進。為了探索更好的模型融合效果,本文將轉導融合學習用于語義解析任務。轉導融合學習是由文獻[29]提出的一種簡單有效的模型融合方式,它使用若干個單獨的模型將源測試集的輸入數據轉換到目標語言空間,然后用單模型在轉換后的合成數據上進行微調。相較于傳統模型融合方式,不需要多個子模型同時在線預測,對于像Seq2Seq 這種推理過程為貪婪搜索或束搜索(beam search)的模型,轉導融合學習算法過程簡單、高效,但缺點是在融合過程中需要用到待預測的不包含標注的輸入信息。轉導融合學習可以看為是一種半監督學習方式。

轉導融合學習使用若干子模型來對驗證集或測試集的輸入進行預測。式(21)~(23)表示驗證集,測試集和已在訓練集上訓練得到的K個子模型。采用子模型對驗證集和測試集的輸入部分進行推理,得到基于子模型的合成數據,如式(24)~(25)所示。選擇式(23)中的任意一個子模型,用合成數據集對其進行微調,在微調過程中,用驗證集進行驗證或采用交叉驗證選出合適參數的模型,最終得到融合好的模型。

3 實驗和結果分析

3.1 數據集

實驗使用ATIS、GEO、JOBS三個語義解析數據集,并采用了文獻[15]提供的預處理版本,這些數據集的輸入是自然語言描述,而輸出則是lambda 演算形式的代碼序列。在實驗中遵循了這些數據集的標準train-dev-test劃分,數據集的統計信息在表1中列出。

表1 數據集統計信息Tab.1 Statistics of datasets

3.2 實驗設置和細節

3.2.1 評價指標

對ATIS 和GEO 數據集采用完全匹配(Exact Match)和樹型匹配(Tree Match)這兩個基于準確率的指標來度量最終模型結果的好壞。Exact Match是只有當模型預測序列的單詞及位置均與測試結給定的標注完全一致時,才認為該例的預測結果是正確的。而Tree Match 則遵循文獻[16]中的度量標準,文獻[16]認為預測結果只需與標注結果含義相同即可認為是正確的預測結果,采用Tree Match 意味著當預測結果序列的樹形結構表示與標注結果目標邏輯形式的樹形結構相同時即可認為該例的預測結果是正確的。對于JOBS數據集,本實驗只采用Exact Match進行最終結果度量。

3.2.2 實驗細節參數設置

實驗采用Stanford corenlp-4.1.0[30]對數據集的輸入部分進行分詞(tokenization)、詞性標注(part-of-speech tagging)和依存關系解析,將各個數據集的訓練集部分輸入部分的分詞結果和詞性標注結果作為2.1 節中的依存關系解析器的輸入,將依存關系解析結果作為2.1 節中的依存關系解析器的標注數據,以此來預訓練該依存關系解析器。

對于兩個模型,實驗均采用AdamW 作為優化器,AdamW的 參 數betas 為(0.9,0.999),eps 為1E-8,weight decay coefficient為1E-2,實驗采用提前停止(early stop)來防止模型過擬合。對于GEO、JOBS,實驗利用交叉驗證來尋找合適的模型參數,而對于ATIS 則是在其驗證集上驗證。實驗所使用的依存關系解析器與基于Transformer語義解析模型的各項參數設置如表2~3 所示,表中DR 為丟棄率(Dropout Rate),DI 為維度(DImension)。

表2 依存關系解析器的參數設置Tab.2 Parameter setting of dependency relation parser

表3 語義解析器的參數設置Tab.3 Parameter setting of semantic parser

3.3 實驗結果

本文在不同數據集上做了四組實驗:

實驗1 基于Transformer 的語義解析模型作為實驗的基準模型(baseline);

實驗2 在實驗1的基礎上加入了轉導融合學習;

實驗3 本文所提出的融入依存關系信息感知表示的語義解析模型;

實驗4 在實驗3的基礎上加入了轉導融合學習。

融入依存關系信息感知表示的語義解析模型為實驗主要模型,同時,采用了轉導融合學習來進一步提高各自的效率,以此來對比兩個模型各自融合前和融合后的效果差異。在ATIS、GEO 數據集上的實驗結果如表4 所示。JOBS 數據集上的實驗結果如表5 所示。外延匹配是一種使用了外部知識庫來輔助計算準確率的方式。

表4 ATIS、GEO數據集上的準確率 單位:%Tab.4 Accuracy on ATIS and GEO datasets unit:%

表5 JOBS數據集上的準確率 單位:%Tab.5 Accuracy on JOBS dataset unit:%

3.4 實驗結果分析

對比實驗1 和基于LSTM 的Seq2Seq[15]工作,在三個數據集上,使用基于Transformer 的Seq2Seq 模型均可以達到比基于LSTM 的Seq2Seq 模型更好的效果,可以看出Transformer 確實對于遠距離依賴的解析能力較強。對比實驗2和實驗1(或對比實驗4 和實驗3)的實驗結果,可以看出轉導融合學習對于ATIS、GEO、JOBS 這類規模較小但標注復雜的語義解析數據集有較好的提升效果。對比實驗3 和實驗1 可以看出融入了依存句法信息感知表示的模型比不融入該信息的模型表現更好,說明該本文所提的融入句法信息感知方式是有效的。

對于ATIS 數據集,實驗2、實驗3 和實驗4 在Exact match指標上都超越了之前已有的基于神經網絡的工作的最佳結果,而實驗4在Tree match 指標上達到了與之前最佳結果相同的水準。對于GEO 數據集,實驗4 在Tree match 指標上超越了之前已有基于神經網絡的工作的最佳結果,而在Exact match 指標上表現不好,通過分析可看出,是由于模型的解析能力較強,能較靈活地學到語義解析中的結構建模信息,因而在Tree match 指標上表現良好,但在Exact match 指標上卻表現一般。對于JOBS,由于現有可對比工作較少,只在Exact match 指標上進行對比,實驗4 超越了之前已有工作的最佳結果,而實驗3也達到了接近于現有工作最佳水平的結果。

可以看到融入依存句法信息感知表示以及轉導融合學習對語義解析模型的有效性。實驗結果表明本文提出的融入依存信息感知的句法信息增強模型即使在沒有使用轉導融合學習的情況下,也能達到與現有工作水平相近甚至在某個指標上可以超越的結果,而加入轉導融合學習之后,可以在多個指標數超過其他相關工作。這驗證了引入句法依存關系信息的有效性。

4 結語

本文提出了一個融入依存關系信息的端到端句法信息增強語義解析模型,并采用了轉導融合學習的方法來融合模型。在ATIS、GEO、JOBS數據集上,該句法增強語義解析方法不僅全面超過了基準水平,還在大部分指標上超越了其他相關工作。且即使在沒有經過轉導融合學習的情況下,也能達到與現有相關工作水平相近甚至在某些指標上超越相關工作的水平。接下來我們將會進一步在語義解析這個方向上探究如何更好地融入句法信息,或尋找更有效的新方法。

猜你喜歡
句法語義解析
真實場景水下語義分割方法及數據集
三角函數解析式中ω的幾種求法
述謂結構與英語句法配置
句法二題
詩詞聯句句法梳理
睡夢解析儀
復合場中類拋體運動解析
對稱巧用解析妙解
“分”的音變構詞及其句法語義特征
“吃+NP”的語義生成機制研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合