吳泰中,顧 敏,周俊生,曲維光,李 斌,顧彥慧
(1. 南京師范大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 南京 210023;2. 南京師范大學(xué) 文學(xué)院,江蘇 南京 210097)
語義是語言形式所要表達(dá)的內(nèi)在含義,如何實現(xiàn)對自然語言句子的完整語義理解,是人工智能和自然語言處理研究領(lǐng)域的一個重要研究目標(biāo)[1]。從某種意義上來講,自然語言處理研究的最終目標(biāo)是在語義理解的基礎(chǔ)上實現(xiàn)各類自然語言處理的應(yīng)用任務(wù)。然而,由于語義的表示形式多樣,傳統(tǒng)的句子語義解析通常針對一個特定領(lǐng)域設(shè)計一套形式化意義表示語言[2-3],高度的領(lǐng)域相關(guān)性使得語義分析的難度增大,同時對語義分析模型的泛化性提出了更高要求。
針對整句的邏輯語義表示規(guī)范和語料庫缺失的問題,Banarescu等于2013年提出了抽象語義表示(abstract meaning representation, AMR)[4]。AMR 是一種全新的、領(lǐng)域無關(guān)的句子語義表示方法,它將一個句子的語義抽象為一個單根有向無環(huán)圖。相比于英文AMR標(biāo)注,中文AMR標(biāo)注的研究起步較晚[5]。Li等基于英文AMR的框架結(jié)構(gòu),將AMR語義表示體系引入到漢語中,同時也充分考慮了漢語與英語的表達(dá)差異性,重點解決了AMR概念和詞語對齊的問題,初步建立了一套漢語抽象語義的表示方法和標(biāo)注規(guī)范[6],并發(fā)布了對應(yīng)的AMR標(biāo)注語料庫。由于中文具有特有的動補(bǔ)結(jié)構(gòu)、量詞、重疊式、離合詞、省略等現(xiàn)象,因此中文AMR的標(biāo)注相對復(fù)雜。圖1給出了中文句子的AMR 圖表示示例。句子中的詞語與AMR圖中的節(jié)點對齊,AMR圖中的邊及邊的標(biāo)簽表示了其語義層面的關(guān)聯(lián)。在AMR圖中,一個語義概念通常對應(yīng)一個節(jié)點,而一個專有名詞往往對應(yīng)于一個子圖結(jié)構(gòu),概念之間的語義關(guān)系則對應(yīng)于相應(yīng)節(jié)點之間的有向邊。
在AMR標(biāo)注規(guī)范和AMR語料庫的基礎(chǔ)上,研究人員嘗試通過不同的AMR解析算法實現(xiàn)句子到AMR圖的自動轉(zhuǎn)化。AMR標(biāo)注規(guī)范的提出和AMR解析算法研究推動著自然語言處理上層應(yīng)用的發(fā)展,例如: 文本摘要、信息抽取、標(biāo)題生成等[7-8]。
隨著神經(jīng)網(wǎng)絡(luò)模型的應(yīng)用,與基于統(tǒng)計學(xué)習(xí)模型的英文AMR解析相比,基于神經(jīng)網(wǎng)絡(luò)模型的英文AMR解析在模型架構(gòu)、特征表示和學(xué)習(xí)、模型訓(xùn)練等方面都有了一定的提升。神經(jīng)網(wǎng)絡(luò)模型解決了特征稀疏表示導(dǎo)致的參數(shù)爆炸問題,實現(xiàn)了組合特征的自動學(xué)習(xí),避免了繁瑣的特征工程。低維稠密的特征表示在向量空間上呈現(xiàn)出共性或相似性,為模型的訓(xùn)練提供了更適合的特征,同時為多任務(wù)學(xué)習(xí)提供了統(tǒng)一底層表示。
針對中文AMR解析任務(wù),本文提出了一個基于轉(zhuǎn)移神經(jīng)網(wǎng)絡(luò)的增量式中文AMR解析模型。轉(zhuǎn)移解碼算法在依存分析和英文AMR解析中應(yīng)用廣泛且取得了一定的效果[9-11]。中文AMR表示是一種復(fù)雜的圖結(jié)構(gòu)形式。因此,本文引入基于雙棧的擴(kuò)展Shift/Reduce解碼算法,以實現(xiàn)完整AMR圖的生成。
此外,漢語表達(dá)具有省略、隱喻等復(fù)雜的語義特點,如何有效地進(jìn)行語義表示學(xué)習(xí)是一個亟待解決的問題。因此,本文在基于轉(zhuǎn)移解碼方法的中文AMR解析基線系統(tǒng)的基礎(chǔ)之上,通過依存路徑語義關(guān)系表示學(xué)習(xí)和上下文相關(guān)詞語語義表示學(xué)習(xí),強(qiáng)化了特征的表示。中文AMR中允許補(bǔ)全句子中省略或者隱含的概念,且同一個詞語在不同的語境下語義各不相同,其對齊的概念也不相同。如圖1(b)中,AMR圖中補(bǔ)全了概念節(jié)點“person”。概念之間語義關(guān)系邊的構(gòu)建依賴于概念識別的結(jié)果,概念識別的性能直接影響AMR解析模型的性能。針對概念識別和消歧問題,本文采用序列化標(biāo)注思想,基于深度雙向LSTM-CRF模型實現(xiàn)概念識別和消歧,以進(jìn)一步提高中文AMR解析模型的性能,為語義分析及上層的應(yīng)用奠定基礎(chǔ)。
AMR解析旨在將句子解析成對應(yīng)的AMR圖。AMR 圖中的每個節(jié)點表示一個語義概念,語義概念可以是詞語、PropBank framesets或特殊的關(guān)鍵詞。概念片段可以是單個概念節(jié)點,也可以是由多個概念節(jié)點連接組成的子圖結(jié)構(gòu),如圖1所示,虛線框內(nèi)的子圖表示一個概念片段。有向邊的標(biāo)注表示的是兩個概念之間的關(guān)系。如圖2所示,節(jié)點“我”與節(jié)點“買-01”之間的邊標(biāo)記為“:arg0”關(guān)系,表示主謂關(guān)系。節(jié)點“黃金”與節(jié)點“點兒”之間的邊標(biāo)記為“:quant”關(guān)系,表示數(shù)量關(guān)系。
圖2 句子“我想買點兒黃金”對應(yīng)的AMR圖示例
中文AMR具有如下特點:
(1) AMR的基本組成單元是概念,而非詞語。AMR 圖中的每個節(jié)點表示一個語義概念,語義概念可對齊到句子中的詞語上。
(2) 在AMR圖中,會出現(xiàn)一個子節(jié)點有多個父節(jié)點的情況,該子節(jié)點被稱為可重入節(jié)點(reentrant nodes),對應(yīng)的邊稱為重入邊(reentrant arcs)。如圖2中節(jié)點“我”有兩個父節(jié)點“買-01”和“想-02”。
(3) AMR圖中存在非投影現(xiàn)象。非投影(non-projective)現(xiàn)象指將圖結(jié)構(gòu)表示的句子中的每個詞語向下垂直投影形成的線性詞序列同句子的詞語排列順序不一致,即從AMR圖上看,邊之間存在交叉情況。如圖2(a)中虛線框內(nèi)的節(jié)點對齊到圖2(b)中句子中虛線框內(nèi)詞語,將AMR圖投影成線性詞序列順序時,節(jié)點“想-02”和節(jié)點“我”之間的邊與節(jié)點“Root”和節(jié)點“黃金”之間的邊存在交叉。
在英文AMR解析中,傳統(tǒng)的基于統(tǒng)計學(xué)習(xí)模型的AMR解析按照解析過程與解析策略的不同,可以分為基于圖的解析方法、基于轉(zhuǎn)移的解析方法、基于組合范疇語法的解析方法以及基于機(jī)器翻譯的方法。其中,基于圖的解析方法和基于轉(zhuǎn)移的解析方法最為常見。Flanigan等在2014年提出了第一個AMR解析器JAMR[12],這是一種基于圖的解析方法,將AMR解析任務(wù)劃分為兩個子任務(wù): 概念識別和關(guān)系識別。概念識別將輸入的句子中的詞語或詞串映射到AMR圖中的概念片段。通過半馬爾科夫模型實現(xiàn)概念片段的序列化標(biāo)注,在概念識別輸出的概念片段序列基礎(chǔ)上,通過最大生成連通子圖(maximum spanning connected subgraph, MSCG)算法從概念片段之間所有的關(guān)系中搜索具有最大得分的子圖。以CAMR[13]為代表的基于轉(zhuǎn)移的解析方法則通過預(yù)測轉(zhuǎn)移動作,生成AMR圖。
然而,傳統(tǒng)的基于統(tǒng)計的模型過度依賴人工特征工程獲取復(fù)雜的組合特征,且組合特征造成模型參數(shù)空間過大,造成了AMR解析的時間、空間效率較低。借助于神經(jīng)網(wǎng)絡(luò)模型強(qiáng)大的表示學(xué)習(xí)能力,Damonte等人將神經(jīng)網(wǎng)絡(luò)模型引入AMR解析[11]。
根據(jù)特征提取方法的不同,基于神經(jīng)網(wǎng)絡(luò)的AMR解析模型可分為組合特征提取模型、基于循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)的特征提取模型和基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)的特征提取模型。
為了捕捉特征與模型評分之間的非線性關(guān)系,Damonte等使用數(shù)值型特征和embedding特征的組合[11],通過隱藏層進(jìn)行特征的連接,形成組合向量表示。
為進(jìn)一步簡化特征設(shè)計,F(xiàn)oland等提出的AMR解析模型中將RNN引入模型[14]。Ballesteros等人則使用Stack-LSTM(stack long short-term memory)進(jìn)行AMR狀態(tài)表示學(xué)習(xí),不借助外部資源獲取特征表示[15]。Barzdins和Gosko在AMR解析中首次使用了序列到序列(sequence to sequence, Seq2seq)模型,他們使用深度優(yōu)先算法序列化AMR圖,通過LSTM編碼中間表示,再通過解碼獲得序列化的AMR表示[16]。但是由于數(shù)據(jù)稀疏問題,其精度遠(yuǎn)低于基于統(tǒng)計的模型。在此基礎(chǔ)上,Konstas等優(yōu)化了表示學(xué)習(xí),同時利用大規(guī)模未標(biāo)注數(shù)據(jù)集作為外部資源進(jìn)行自訓(xùn)練,提高了AMR解析效果[17]。
對于AMR圖而言,圖中的概念節(jié)點可以對齊到句子中的詞語。英文單詞的詞綴、詞根含有豐富的語義信息。如單詞“unprecedented”中,前綴“un”在AMR中需要標(biāo)注為“:polarty”關(guān)系。雖然詞向量可以在語義空間上描述一個單詞的信息,但是對于詞綴、詞根所含有的信息可能無法清晰地表達(dá)。所以,Wang等使用CNN編碼字符特征向量[18],獲取字符級別的特征,以提高AMR解析性能。
與傳統(tǒng)的基于統(tǒng)計學(xué)習(xí)模型的英文AMR解析類似,Wang等提出了一種通過對依存樹進(jìn)行轉(zhuǎn)換的方法來實現(xiàn)中文AMR解析[19]。該模型主要包括兩個步驟: 首先,使用現(xiàn)有的依存解析器將句子生成相應(yīng)的依存句法樹;然后,采用轉(zhuǎn)移算法將依存樹轉(zhuǎn)換為AMR圖。該模型設(shè)計了9種轉(zhuǎn)移動作,通過對轉(zhuǎn)移動作進(jìn)行打分,利用貪心解碼算法從轉(zhuǎn)移動作集合中選擇得分最高的動作對依存樹進(jìn)行相應(yīng)的動作,從而實現(xiàn)從依存樹到AMR圖的轉(zhuǎn)換。然而,該模型依賴于依存樹作為中介,依存解析中的錯誤會直接傳播到AMR解析中。
結(jié)合中、英文AMR解析的研究現(xiàn)狀,針對中文AMR解析任務(wù),本文提出了基于轉(zhuǎn)移神經(jīng)網(wǎng)絡(luò)的中文AMR解析模型。
由于依存樹與AMR圖在結(jié)構(gòu)上較為相似,受到依存分析中基于Shift/Reduce的依存分析算法的啟發(fā),本文采用轉(zhuǎn)移解碼算法,實現(xiàn)AMR解析。由于傳統(tǒng)的轉(zhuǎn)移解碼方法(如Arc-standard算法和 Arc-eager算法)主要用于生成滿足投影性質(zhì)的依存樹結(jié)構(gòu),而對于交叉邊(crossing arcs)和可重入邊情形一般無法進(jìn)行有效處理。在現(xiàn)有的依存圖分析研究的基礎(chǔ)上[20],本文采用一種基于雙棧的擴(kuò)展Shift/
Reduce解碼算法實現(xiàn)AMR解析。
基于轉(zhuǎn)移的解析方法基于預(yù)先定義的轉(zhuǎn)移動作集合,一步一步地從當(dāng)前狀態(tài)分析、預(yù)測轉(zhuǎn)移動作,實現(xiàn)增量式的AMR解析。本文使用一個四元組表示當(dāng)前分析狀態(tài)c=(σ,σ′,β,A),其中,σ用于主棧(primary stack)存放已解析概念節(jié)點;次棧σ′(secondary stack)用于暫時存放概念節(jié)點;β表示緩存(buffer),存放未解析的詞語序列;A存放已產(chǎn)生的部分子圖。初始化時,待解析的句子中的所有詞語存放于緩存中,主棧中包含一個根節(jié)點。從當(dāng)前狀態(tài)開始,通過預(yù)測轉(zhuǎn)移動作,不斷更新狀態(tài)。循環(huán)操作下去,直到棧中只包含根節(jié)點,且緩存為空時,解析過程終止,形成完整的AMR圖表示。
擴(kuò)展Shift/Reduce模型中共需要定義五種轉(zhuǎn)移動作,具體的動作集如表1所示。其中前四種動作與Arc-eager方法中的動作相似,僅針對主棧執(zhí)行操作。引入的第五個動作MEM是用于將主棧中的棧頂元素壓入到次棧中,從而滿足交叉邊或多個父節(jié)點等特殊情形的處理。
表1 動作集的形式化定義和描述
其中,a(β0)=(Va,Ea)表示β0對應(yīng)的AMR子圖,包含節(jié)點集合Va和邊集合Ea。
算法1給出了擴(kuò)展Shift/Reduce算法中的Oracle算法定義。在模型訓(xùn)練中,按從左到右的順序依次處理輸入句子中的每一個詞語,根據(jù)當(dāng)前的分析狀態(tài)執(zhí)行相應(yīng)的轉(zhuǎn)移動作,直到處理完輸入句子的所有詞語為止,最終Oracle返回整個轉(zhuǎn)移動作序列T,作為訓(xùn)練的標(biāo)準(zhǔn)轉(zhuǎn)移動作。
算法1 Oracle算法輸入: 句子x={x0,x1,…,xn}和標(biāo)準(zhǔn)AMR圖輸出: 轉(zhuǎn)移動作序列T1: T=[]2: while index Oracle算法首先對轉(zhuǎn)移動作序列變量T進(jìn)行初始化(第1行),然后循環(huán)處理輸入句子中的每一個單詞,獲取當(dāng)前詞對應(yīng)的概念片段(2~5行),然后進(jìn)行初始化(第6行)。Oracle根據(jù)當(dāng)前狀態(tài)依次進(jìn)行判斷并將相應(yīng)的轉(zhuǎn)移動作添加到T中(7~17行)。具體地,Oracle首先檢查主棧中的棧頂元素與隊列中的隊頭元素之間是否可以創(chuàng)建AMR圖中的某條邊(左弧或右弧),如果可以創(chuàng)建左弧,則將動作LEFT_ARC添加到T中;如果可以創(chuàng)建右弧,則將動作RIGHT_ARC添加到T中。在當(dāng)前狀態(tài)不滿足前面兩個條件的情況下,如果主棧中的棧頂元素α0與隊列中除隊頭元素外的其他元素之間存在標(biāo)準(zhǔn)AMR圖中的某條邊,則將轉(zhuǎn)移動作MEM添加到轉(zhuǎn)移動作序列T中(第11行到第12行)。如果當(dāng)前狀態(tài)滿足上一次執(zhí)行的轉(zhuǎn)移動作不為MEM且主棧中的棧頂元素α0與隊列中除隊頭元素外的其他元素之間不存在標(biāo)準(zhǔn)AMR圖中的邊,則將轉(zhuǎn)移動作REDUCE添加到轉(zhuǎn)移動作序列T中(第13行到第14行)。如果當(dāng)前狀態(tài)不滿足前面四個條件,則將動作SHIFT添加到轉(zhuǎn)移動作序列T中(第15行到第16行),最后返回轉(zhuǎn)移動作序列T(第17行)[21]。 基于雙棧的擴(kuò)展Shift/Reduce解碼算法是本文提出的中文AMR解析模型的基礎(chǔ)?;€系統(tǒng)基于該解碼算法,同時采用啟發(fā)式搜索的方法進(jìn)行概念識別,實現(xiàn)增量式AMR解析。在此基礎(chǔ)之上,本文引入依存路徑語義關(guān)系和上下文相關(guān)詞語語義表示學(xué)習(xí)。同時,應(yīng)用序列化標(biāo)注思想實現(xiàn)AMR概念識別,由此提出了基于轉(zhuǎn)移神經(jīng)網(wǎng)絡(luò)的中文AMR解析模型。該模型可分為6個部分,其模型結(jié)構(gòu)如圖3所示。其中,預(yù)訓(xùn)練模塊、AMR概念標(biāo)注模塊和命名實體標(biāo)注模塊屬于預(yù)處理操作。本文基于外部語料資源,使用Word2vec[注]https://code.google.com/p/word2vec模型預(yù)訓(xùn)練詞向量,作用于模型的輸入層。AMR概念標(biāo)注基于規(guī)則完成AMR語料概念標(biāo)注,作為概念識別模塊的訓(xùn)練語料?;陬A(yù)先定義的概念類別,結(jié)合AMR對齊結(jié)果,通過規(guī)則判斷,給出AMR語料的句子中每一個詞對應(yīng)的概念標(biāo)簽。此外,本文使用Corenlp[注]https://stanfordnlp.github.io/CoreNLP/標(biāo)注AMR語料中的命名實體,作為概念識別模塊和基于轉(zhuǎn)移解碼的AMR解析模塊的特征輸入。 在進(jìn)行了相應(yīng)的預(yù)處理后,基于序列化標(biāo)注的概念識別模塊利用預(yù)先定義AMR概念標(biāo)簽集和根據(jù)標(biāo)簽集標(biāo)注的AMR概念訓(xùn)練語料,訓(xùn)練基于深度雙向LSTM-CRF的深度概念識別模型。該概念識別模型中使用外部語料資源預(yù)訓(xùn)練詞向量,輸入為詞向量、詞性標(biāo)記向量和命名實體標(biāo)記向量的組合,使用深度雙向LSTM-CRF學(xué)習(xí)整句的特征,經(jīng)過多層全連接層降維和CRF層計算得分,得到最佳標(biāo)簽序列,生成對應(yīng)的AMR概念片段序列。 在AMR概念識別結(jié)果的基礎(chǔ)上,本文基于擴(kuò)展Shift/Reduce算法,通過訓(xùn)練前饋神經(jīng)網(wǎng)絡(luò)分類器,預(yù)測轉(zhuǎn)移動作和關(guān)系標(biāo)簽,生成AMR圖。針對中文AMR解析任務(wù),本文設(shè)計了兩個分類器: (a)轉(zhuǎn)移動作分類器,(b)關(guān)系標(biāo)簽分類器。根據(jù)概念識別標(biāo)簽序列和分類器的預(yù)測結(jié)果,選擇最優(yōu)的概念子圖和轉(zhuǎn)移動作,構(gòu)造一個單根有向無環(huán)的AMR圖。最后,對生成的AMR圖進(jìn)行相關(guān)的評價、分析。 圖3 基于轉(zhuǎn)移神經(jīng)網(wǎng)絡(luò)的中文AMR解析模型結(jié)構(gòu)圖 2.2.1 概念識別 AMR對齊將句子中的單詞或由多個單詞構(gòu)成的單詞序列與AMR圖中的概念(即節(jié)點)或概念片段(即多個節(jié)點構(gòu)成的子圖)對應(yīng)起來。本文使用人工標(biāo)注的對齊結(jié)果,獲取單詞到AMR圖概念的映射關(guān)系。 圖4 概念分布情況示意圖 由圖4可以看出,在中文AMR語料中,AMR概念片段中單個謂詞和非謂詞所占比重較大,由多個節(jié)點構(gòu)成的概念片段約占5.89%。由于對齊信息的缺失,導(dǎo)致在AMR解析過程中,僅依賴對齊表進(jìn)行啟發(fā)式搜索會造成部分AMR概念節(jié)點的缺失。同時,由于同一個詞語在不同的語境下對齊的概念各異,因此,本文采用序列化標(biāo)注的思想,基于深度雙向LSTM-CRF模型進(jìn)行概念識別和消歧,其模型結(jié)構(gòu)如圖5所示。本文對解析的詞語序列進(jìn)行的AMR概念標(biāo)簽標(biāo)注,通過概念標(biāo)簽序列,生成對應(yīng)的AMR概念子圖。 圖5 基于LSTM-CRF的概念識別模型 AMR概念標(biāo)簽集的制定依賴于AMR概念片段的內(nèi)部結(jié)構(gòu),標(biāo)記使用“BIOES+概念類別”的形式表示。本文使用“BIOES”體系標(biāo)識句子中的各個詞語是否為概念片段的組成并區(qū)分概念片段的邊界,其中“B”標(biāo)記概念片段起始的第一個詞,“I”標(biāo)記概念片段內(nèi)部非起始并且非結(jié)尾的詞,“E”標(biāo)記概念片段的最后一個詞,“S”標(biāo)記單個詞組成的概念片段,“O”標(biāo)記未有對齊概念片段的詞語。本文定義了32個類別,設(shè)計了119個概念標(biāo)簽。例如,圖1(a)中虛線框內(nèi)的概念片段,對應(yīng)句子中的詞語“中國”,所屬概念標(biāo)簽為“S_txNamed”,表示單個詞語構(gòu)成的命名實體類概念。 其中,“;”表示向量的連接。 本文使用的是4個雙向LSTM堆疊形成的深度雙向LSTM模型,每層之間增加一層全連接層進(jìn)行降維,底層雙向LSTM的輸出作為上層雙向LSTM的輸入,最后一個雙向LSTM的輸出記為H∈n*k,n為句子長度,k表示標(biāo)簽數(shù)目,Hi,j表示第i個詞語的第j個標(biāo)簽得分。 對于一個輸出標(biāo)簽序列y=(y1,y2,…,yi,…,yn),定義其得分如式(3)所示。 其中,A表示轉(zhuǎn)移得分矩陣。 模型訓(xùn)練選用交叉熵?fù)p失函數(shù),使用SGD算法進(jìn)行優(yōu)化,同時加入dropout和L2正則化方法,防止模型過擬合。在該模塊通過計算得分,選擇得分最高的概念標(biāo)簽序列?;讷@取的AMR概念標(biāo)簽序列,利用規(guī)則生成對應(yīng)的AMR子圖,用于基于轉(zhuǎn)移解碼的AMR解析模塊。 2.2.2 語義關(guān)系表示學(xué)習(xí)與上下文相關(guān)詞語語義表示學(xué)習(xí) 對于AMR圖而言,僅僅獲取當(dāng)前棧頂元素和下一個詞語之間的依存句法標(biāo)簽無法滿足需求。相關(guān)聯(lián)的兩個概念所對應(yīng)的詞,在依存樹中并不一定是父子節(jié)點的關(guān)系,還有可能存在更為復(fù)雜的關(guān)聯(lián)。因此,本文嘗試對依存句法路徑進(jìn)行建模,獲取依存句法路徑語義表示,實現(xiàn)長距離依存表示建模。本文將依存樹中兩個節(jié)點v1和v2的最近公共祖先(nearest common ancestor)記為nca(v1,v2)。v1、v2到其nca(v1,v2)的兩條路徑分別為v1→…→nca(v1,v2)和nca(v1,v2)←…←v2。 模型中將依存的路徑分為兩部分路徑——詞路徑和關(guān)系路徑。這兩種路徑分別用兩個LSTM(LSTMtok和LSTMrel)進(jìn)行建模。nca(v1,v2)所對應(yīng)的LSTM單元中的隱藏層輸出向量就作為v1、v2之間語義關(guān)系的表示,示例如圖6所示。 圖6 句子“我想買點兒黃金”中“我”和“買”的語義關(guān)系表示模型 詞路徑部分的表示定義為Rtok(v1,v2), 如式(4)所示。 關(guān)系路徑部分的表示定義為Rrel(v1,v2), 如式(5)所示。 v1、v2之間語義關(guān)系的表示定義為R(v1,v2), 如式(6)所示。 本文將所得到的語義關(guān)系的表示R(σ0,β0),送入到轉(zhuǎn)移神經(jīng)網(wǎng)絡(luò)的輸入層。其中,σ0和β0分別表示棧頂元素和緩存中的第一個元素。 由于中文的語言環(huán)境相對復(fù)雜,省略、隱喻等現(xiàn)象增大了中文AMR的研究難度。并且,當(dāng)前的上下文語境直接影響AMR解析。因此,本文采用語言模型學(xué)習(xí)上下文相關(guān)的詞語語義表示,得到基于語言模型的詞向量表示(embeddings from language model,ELM),模型結(jié)構(gòu)如圖7所示。Peters等使用神經(jīng)網(wǎng)絡(luò)建立語言模型,從語言模型中獲取詞的向量表示[22]。該種基于語言模型訓(xùn)練的向量表示在語義角色標(biāo)注、命名實體識別和情感分析等任務(wù)中都取得了較好的效果。本文采用類似的語言模型,基于CTB5.0[注]https://catalog.ldc.upenn.edu/ldc2005t01語料和中文AMR標(biāo)注語料,學(xué)習(xí)針對中文AMR解析任務(wù)的上下文相關(guān)語義表示。 圖7 基于語言模型的上下文相關(guān)語義表示模型 對于每一個詞xt,一個L層雙向語言模型可以計算出2L+1個表示, 如式(8)所示。 本文將每一層LSTM輸出的表達(dá)加權(quán)求和,得到基于語言模型的詞表達(dá), 如式(9)所示。 其中,因子γ用于避免計算出的詞表達(dá)過大或者過小。 基于語言模型訓(xùn)練得到的詞表達(dá)具有很好的上下文依賴性。我們將其與原有詞表達(dá)相連接,作為新的詞語表示使用。 2.2.3 轉(zhuǎn)移動作分類器和標(biāo)簽分類器 在轉(zhuǎn)移解碼過程中,本文基于前饋神經(jīng)網(wǎng)絡(luò)模型設(shè)計了兩個分類器,分別是: 轉(zhuǎn)移動作分類器和標(biāo)簽分類器。 轉(zhuǎn)移動作分類器根據(jù)當(dāng)前狀態(tài),預(yù)測出下一個需要執(zhí)行的動作(包括SHIFT、LEFT_ARC、RIGHT_ARC、REDUCE和MEM)。分類器中定義的特征模板如表2所示。 表2 轉(zhuǎn)移動作分類器的特征模板 當(dāng)系統(tǒng)執(zhí)行LEFT_ARC和RIGHT_ARC動作時,需要判斷添加的新邊的類型,并給出邊的標(biāo)簽(如:arg0、:arg1等)。標(biāo)簽分類器可以根據(jù)執(zhí)行完LEFT_ARC和RIGHT_ARC動作后的狀態(tài),預(yù)測邊的類型。其定義的特征模板如表3所示。 表3 標(biāo)簽分類器的特征模板 續(xù)表 分類器使用Adagrad優(yōu)化算法對如下目標(biāo)函數(shù)進(jìn)行最小化,如式(10)所示。 本文使用的實驗語料為中文AMR標(biāo)注語料[23],將該數(shù)據(jù)集隨機(jī)劃分為訓(xùn)練集、驗證集和測試集三個部分,其中的句子數(shù)量分布信息如表4所示。 表4 中文AMR語料句子數(shù)量分布 本文中使用CTB5.0語料訓(xùn)練詞向量,包含507 222個詞語,詞向量維數(shù)為100。對于概念識別部分,模型dropout率為0.3,表示學(xué)習(xí)和分類器部分dropout為0.3。模型batch size為64,各個LSTM層維數(shù)均為200,ELM中隱藏層單元數(shù)為100,其他均為200。 對于實驗的評測,本文采用的是目前公認(rèn)的AMR評測方法Smatch[24],通過計算其正確率(P)、召回率(R)和F1值進(jìn)行評價。 為方便表示,本文將使用啟發(fā)式搜索概念識別的轉(zhuǎn)移解碼AMR解析模型基線記為TC-AMR(transition based Chinese AMR parser);在基線模型的基礎(chǔ)上,將僅優(yōu)化語義關(guān)系表示學(xué)習(xí)的模型記為TC-AMR2;將優(yōu)化語義關(guān)系表示學(xué)習(xí)和上下文相關(guān)詞語語義表示學(xué)習(xí)的模型記為STC-AMR(Semantic-enhanced transition based Chinese AMR parser);將基于深度雙向LSTM-CRF模型優(yōu)化概念識別的中文AMR解析模型記為LC-AMR(LSTM-CRF-AMR)。 3.2.1 學(xué)習(xí)整體解析對比 本文對比分析了中文AMR解析整體的Smatch結(jié)果,如圖8所示。 圖8 中文AMR整體解析結(jié)果對比圖 圖8中,基于深度雙向LSTM-CRF模型優(yōu)化概念識別的中文AMR解析模型LC-AMR在中文AMR自動解析任務(wù)上達(dá)到了0.61的Smatch F1值,優(yōu)于TC-AMR,TC-AMR2和STC-AMR模型。與基線模型相比,增加語義關(guān)系表示學(xué)習(xí)和上下文相關(guān)詞語語義表示學(xué)習(xí)的模型STC-AMR整體F1值提高了3%。由此可見,基于LSTM學(xué)習(xí)的語義關(guān)系表示和上下文相關(guān)詞語語義表示可以有效提高中文AMR解析性能。相比于使用啟發(fā)式搜索的方法實現(xiàn)概念識別的STC-AMR模型,LC-AMR基于序列化標(biāo)注實現(xiàn)概念識別,提高了概念識別性能,同時使得后續(xù)的關(guān)系識別效果提高,達(dá)到了最優(yōu)的中文AMR解析性能。本文使用的數(shù)據(jù)集是隨機(jī)劃分的,而Wang等使用的數(shù)據(jù)集未進(jìn)行此項操作[19]。在未隨機(jī)劃分的數(shù)據(jù)集上,Wang等提出的CAMR系統(tǒng)獲得的SmatchF1值為0.587。而本文提出的模型達(dá)到了0.591,略高于CAMR。 3.2.2 單項指標(biāo)對比 此外,本文對比分析了AMR圖的各個單項評價指標(biāo),共計7種,分別為: Unlabeled表示不帶關(guān)系標(biāo)簽的評價;No WSD表示去除Propbank suffix的概念節(jié)點評價;Named Ent.表示命名實體識別評價,Negations表示否定關(guān)系(:polarity關(guān)系邊)識別評價,Reentrancies表示重入邊識別評價,Concepts表示概念識別評價,SRL表示“:arg”關(guān)系邊評價。具體結(jié)果如表5所示。因為Wang等論文中未給出單項評價的具體數(shù)值結(jié)果,所以本文此處未與其進(jìn)行比較。 表5 中文AMR解析單項評價結(jié)果 注: 表中同一行加粗表示的數(shù)值為模型對比結(jié)果的最高值。 從表5中可以看出,基于深度雙向LSTM-CRF優(yōu)化概念識別的中文AMR解析模型LC-AMR相比于其他模型在關(guān)系邊的識別和概念的識別上都有了提升。但是,在對于否定關(guān)系邊的識別上,略低于其他模型。LC-AMR在進(jìn)行概念識別時,將否定概念節(jié)點標(biāo)記為txPolarity概念標(biāo)簽,對于此類概念標(biāo)簽的識別準(zhǔn)確率僅為0.90。對于否定節(jié)點的預(yù)測錯誤傳播到關(guān)系識別中,造成了否定關(guān)系邊預(yù)測的召回率較低,僅為0.58。 本文針對中文AMR解析任務(wù),探討如何使用神經(jīng)網(wǎng)絡(luò)模型進(jìn)行中文AMR解析研究。提出了一個基于擴(kuò)展Shift/Reduce轉(zhuǎn)移神經(jīng)網(wǎng)絡(luò)的中文AMR解析模型,并通過LSTM模型學(xué)習(xí)語義關(guān)系表示和上下文相關(guān)詞語語義表示,增強(qiáng)模型的特征表示學(xué)習(xí)。在此基礎(chǔ)上,模型引入深度雙向LSTM-CRF模型進(jìn)行概念識別和消歧。實驗結(jié)果表明,本文提出的模型在中文AMR解析任務(wù)中達(dá)到了0.61的Smatch F1值,明顯優(yōu)于基線系統(tǒng)。 在下一步的工作中,我們將擴(kuò)展現(xiàn)有概念標(biāo)簽集合,以覆蓋更大規(guī)模的AMR語料。另外,我們將研究如何進(jìn)一步優(yōu)化模型結(jié)構(gòu),引入帶有復(fù)雜門機(jī)制的記憶神經(jīng)網(wǎng)絡(luò)模型等來提高現(xiàn)有模型的表達(dá)能力,進(jìn)一步提高中文AMR解析性能。2.2 整體模型結(jié)構(gòu)
3 實驗分析
3.1 實驗數(shù)據(jù)及評價指標(biāo)
3.2 實驗結(jié)果分析
4 總結(jié)