梁志劍,郝 淼
(中北大學(xué) 大數(shù)據(jù)學(xué)院,山西 太原 030051)
傳統(tǒng)語義角色標(biāo)注方法(semantic role labeling,SRL)[1-3]主要依賴句法分析結(jié)果,增加了語義角色標(biāo)注系統(tǒng)的復(fù)雜性?;诙说蕉薣4]和基于長短期記憶神經(jīng)網(wǎng)絡(luò)[5](long-term and short-term memory,LSTM)的語義角色標(biāo)注模型,雖然在一定程度上降低了標(biāo)注系統(tǒng)的復(fù)雜性,但在任意長度序列的預(yù)測任務(wù)中對句子長短和語句結(jié)構(gòu)的依賴性強。王明軒等提出的深層雙向長短期記憶神經(jīng)網(wǎng)絡(luò)(deep bidirectional long short term memory,DBLSTM)[6],易于實現(xiàn)且能進行并行處理,在任意長度序列的預(yù)測任務(wù)中效果良好,但隨著網(wǎng)絡(luò)模型深度的增加,標(biāo)注效果質(zhì)量下降。Zhixing Tan等[7]提出了基于注意力機制的深度注意神經(jīng)網(wǎng)絡(luò)模型DEEPATT(deep attention neural network),自我注意機制可實現(xiàn)任意兩個實體之間的直接連接,即使句子中距離很遠的論元也可以通過較短的路徑建立聯(lián)系,使得信息更加通暢,但標(biāo)簽之間具有很強的依賴關(guān)系,且模型深度過大也會加重梯度消失,影響了標(biāo)注準(zhǔn)確率。本文提出了一種基于自注意力機制的DEEPATT模型的優(yōu)化方法,通過在模型的層與層之間使用Layer Normalization進行歸一化處理,并引入Highway Networks優(yōu)化的DBLSTM替代DEEPATT模型中的RNN,增強了模型的穩(wěn)定性,提高了標(biāo)注準(zhǔn)確率。
當(dāng)給定某一個語句,語義角色標(biāo)注的任務(wù)就是用來識別每個目標(biāo)動詞并對其進行分類。例如:“小紅昨天從小明那兒借了一輛自行車”,SRL會產(chǎn)生如下輸出:[ARG0 小紅][J借來][ARG1一輛自行車][ARG2向小明][AM-TMP昨天]。其中ARG0代表借方,ARG1代表被借方,ARG2代表借方實體,AM-TMP表示動作發(fā)生的時間,J是動詞。語義角色標(biāo)注任務(wù)的第一步是標(biāo)識,為給定的謂語動詞標(biāo)注屬性類別,第二步需要為它們分配語義角色。
本文提出的模型則是將語義角色標(biāo)注作為一個序列標(biāo)注問題,以上文語句為例,構(gòu)建一個詳細詞匯表,用向量V表示,V={小紅,昨天,向小明,借來,一輛自行車},向量V的長度等于5。除了詞匯表中相應(yīng)單詞索引處的元素外,其余元素使用0表示,詞匯表編碼為:小紅=[1,0,0,0,0]T,昨天=[0,1,0,0,0]T,向小明=[0,0,1,0,0]T,借來=[0,0,0,1,0]T,一輛自行車=[0,0,0,0,1]T,這些編碼代表五維空間,其中每個詞都占據(jù)一個維度,且相互獨立,與其它維度無關(guān)。這意味著上面語句中的每一個詞都是相互獨立的,詞語和詞語之間沒有任何關(guān)系。而語義角色標(biāo)注的目的是為了讓具有相似背景的詞語占據(jù)緊密的空間位置,即在數(shù)學(xué)上,這些矢量之間角度的余弦值應(yīng)接近1,即角度接近0。為此引入詞嵌入向量(Word Embedding),直觀地說是引入了一個詞對另一個詞的依賴性。用詞嵌入向量可以用更低維度的特征向量代替高維度的特征向量,這些嵌入向量作為新的輸入被送到下一層。本文用改進的DEEPATT作為基本模型,以捕捉句子之間復(fù)雜的嵌套結(jié)構(gòu)和詞語標(biāo)簽之間存在的潛在依賴關(guān)系。
DEEPATT模型是基于注意力機制[8]的神經(jīng)網(wǎng)絡(luò)模型,本文采用DEEPATT模型作為整體架構(gòu),每一層神經(jīng)網(wǎng)絡(luò)都包含一個注意力機制子層和一個非線性變換子層,第N層神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)通過SoftMax輸出層輸出,完成最后的分類。DEEPATT模型中探討了3種非線性子層,即遞歸子層、卷積子層、前饋子層。本文首先在層與層之間使用了Layer Normalization來進行全局優(yōu)化,其次還針對非線性子層的RNN進行了優(yōu)化,優(yōu)化后的模型如圖1所示。
圖1 優(yōu)化模型
1.2.1 注意力機制子層
近兩年,注意力機制的提出為語義角色標(biāo)注領(lǐng)域帶來了新的活力。目前很多研究者開始將注意力機制運用于自己的研究領(lǐng)域,也用注意力機制來搭建整個模型框架。Zhixing Tan等同樣將注意力機制應(yīng)用到了語義角色標(biāo)注任務(wù)中,在CoNLL-2005和CoNLL-2012兩個數(shù)據(jù)集中取得了很好的訓(xùn)練效果。本文運用DEEPATT模型作為整體架構(gòu),它的注意力機制層計算步驟主要分為3步,第一步是計算query和key的相似度,得到權(quán)重。第二步是用SoftMax函數(shù)來做歸一化處理。第三步是將得到的權(quán)重和相應(yīng)的value計算求和。計算公式如式(1)所示
(1)
其中,Q表示query vectors,K表示keys,V表示values,d表示網(wǎng)絡(luò)隱藏單元。
1.2.2 非線性變換子層
DEEPATT模型中的深度注意神經(jīng)網(wǎng)絡(luò)模型的非線性變換子層可由遞歸子層、卷積子層以及前饋子層組成,本文也針對3種非線性子層做了討論。
對于遞歸子層,RNN用遞歸關(guān)系來傳播網(wǎng)絡(luò)的信息。神經(jīng)元節(jié)點連接形成一個有向圖,對于信息有部分記憶能力。循環(huán)神經(jīng)網(wǎng)絡(luò)可以使用其內(nèi)部狀態(tài)來處理輸入序列。
對于卷積子層,本文使用Dauphin等在2016提出的門控線性單元 (gated linear units,GLU)。與標(biāo)準(zhǔn)卷積神經(jīng)網(wǎng)絡(luò)相比,GLU更容易學(xué)習(xí),在語言建模和機器翻譯任務(wù)上都取得了令人印象深刻的成績。給定兩個過濾器W∈RK×d和V∈RK×d, GLU的輸出激活計算過程如式(2)所示
GLU(X)=(X*W)⊙(X*V)
(2)
濾波器寬度K被設(shè)置為3。
對于前饋子層,它由兩個中間隱藏ReLU非線性的線性層組成,計算過程如式(3)所示
FFN(X)=ReLU(XW1)W2
(3)
1.2.3 SoftMax輸出層
模型通過一層層非線性子層和注意子層的訓(xùn)練,最后通過SoftMax的輸出層輸出。SoftMax回歸是邏輯回歸的一種形式,它將輸入值歸一化為值向量,該值向量遵循總和為1的概率分布,且輸出值在[0,1]范圍之間。在數(shù)學(xué)中,SoftMax函數(shù),也稱為歸一化指數(shù)函數(shù)。它將K個實數(shù)的向量作為輸入,并將其歸一化為由K個概率組成的概率分布。也就是說,在應(yīng)用SoftMax之前,一些矢量分量可能是負的,或者大于1,并且可能不等于1,SoftMax函數(shù)通常作為神經(jīng)網(wǎng)絡(luò)分類器的最后一層,即輸出層,經(jīng)過自注意力機制子層和非線性子層的訓(xùn)練,最后通過輸出層輸出,完成最后的分類。
在DEEPATT模型的層與層間加入Layer Normalization[9]進行全局優(yōu)化,對同一層網(wǎng)絡(luò)的輸出作標(biāo)準(zhǔn)的歸一化處理,使模型訓(xùn)練時更趨于穩(wěn)定。其計算如式(4)至式(5)所示
(4)
(5)
1.4.1 LSTM單元
如上文所說,深度注意神經(jīng)網(wǎng)絡(luò)模型的靈活變換性主要由于它的非線性變換子層,而非線性變換子層的靈活性主要因為循環(huán)神經(jīng)網(wǎng)絡(luò)的存在。在語義角色標(biāo)注任務(wù)中,循環(huán)神經(jīng)網(wǎng)絡(luò)的應(yīng)用無處不在。谷歌在科研過程中廣泛使用循環(huán)神經(jīng)網(wǎng)絡(luò)來進行語義角色標(biāo)注,并將其應(yīng)用于機器翻譯,語音識別以及其它一些NLP任務(wù)。實際上,通過利用循環(huán)神經(jīng)網(wǎng)絡(luò)實現(xiàn)了幾乎所有與NLP相關(guān)的任務(wù),然而傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(luò)對于上下文信息的存取是有限的。隨著深度學(xué)習(xí)框架TensorFlow的興起,Hochreiter等發(fā)明了LSTM[10],將一個稱為細胞的存儲單元引入網(wǎng)絡(luò)來解決這個問題,LSTM結(jié)構(gòu)如圖2所示。
圖2 長短期記憶神經(jīng)網(wǎng)絡(luò)單元結(jié)構(gòu)
圖2中xt表示LSTM單元在t時刻的輸入向量,ft表示LSTM單元在t時刻忘記門的激活矢量,it表示LSTM單元在t時刻輸入門的激活矢量,ot表示LSTM單元在t時刻輸出門的激活矢量,ht表示LSTM單元在t時刻隱藏狀態(tài)向量也稱為LSTM單元的輸出向量,ct表示LSTM單元在t時刻的細胞狀態(tài)向量。W、U、b表示訓(xùn)練時間需要學(xué)習(xí)的權(quán)重矩陣和偏差以及矢量參數(shù),其計算公式如式(6)至式(10)所示
ft=σg(Wfxt+Ufht-1+bf)
(6)
it=σg(Wixt+Uiht-1+bi)
(7)
ot=σg(Woxt+Uoht-1+bo)
(8)
ct=ft*ct-1+it*σc(Wcxt+Ucht-1+bc)
(9)
ct=ot*σh(ct)
(10)
其中,σg表示sigmoid函數(shù),σc,σh表示雙曲正切函數(shù)。從圖2的LSTM結(jié)構(gòu)圖可以看出,LSTM單元最后的輸出不僅僅與上一層網(wǎng)絡(luò)的輸入有關(guān),還與隱藏狀態(tài)向量有關(guān)。于是本文用Highway Networks優(yōu)化的DBLSTM代替DEEPATT模型中的RNN來解決SRL序列標(biāo)注問題,以此來獲得標(biāo)簽之間更復(fù)雜的依賴關(guān)系。
1.4.2 深層雙向長短期記憶神經(jīng)網(wǎng)絡(luò)
首先對于DBLSTM來說,第一層LSTM正向處理輸入的句子序列,得到的輸出結(jié)果作為第二層的輸入,同時反向處理得到輸出結(jié)果,以此循環(huán)。這樣就可以從向前和向后兩個方向來處理LSTM單元的原始輸入。實際上在標(biāo)注過程當(dāng)中,對于一個句子的信息是同時提取的,DBLSTM相比于LSTM的優(yōu)點在于將兩個經(jīng)過不同方向處理的輸入得到的輸出相互連接,不僅可以利用過去的信息,還可以充分利用未來的信息,在一定的參數(shù)下,該方法能在空間上訓(xùn)練出更深層次的神經(jīng)網(wǎng)絡(luò)模型。
其計算公式如式(11)至式(14)所示:
圖2中從左向右循環(huán)神經(jīng)網(wǎng)絡(luò)層的公式為
(11)
圖2中從右向左循環(huán)神經(jīng)網(wǎng)絡(luò)層的更新公式為
(12)
雙向LSTM的計算公式為
(13)
在這種拓撲結(jié)構(gòu)中,第l層的輸入恰好就是第l-1層的輸出,第l層的輸出公式如式(14)所示
(14)
根據(jù)式(14)可以得出,訓(xùn)練更深層次的神經(jīng)網(wǎng)絡(luò)會增加網(wǎng)絡(luò)模型的表達能力,但更深層次的神經(jīng)網(wǎng)絡(luò)模型會為訓(xùn)練帶來更大的復(fù)雜性,訓(xùn)練起來也會更加困難。因此,為了解決神經(jīng)網(wǎng)絡(luò)訓(xùn)練達到更深層數(shù)時帶來的梯度消失、梯度爆炸問題,本文引入Highway Networks來優(yōu)化DBLSTM替換DEEPATT模型中的RNN來構(gòu)建非線性子層,相對于DEEPATT(RNN)的結(jié)果取得了明顯的進步,有效減緩了由于神經(jīng)網(wǎng)絡(luò)層數(shù)加深導(dǎo)致梯度回流受阻而造成的深層神經(jīng)網(wǎng)絡(luò)訓(xùn)練困難問題。
1.4.3 基于Highway Networks優(yōu)化的DBLSTM
神經(jīng)網(wǎng)絡(luò)的深度在一定程度上決定著訓(xùn)練結(jié)果的準(zhǔn)確性,Highway Networks就是受到長短期記憶網(wǎng)絡(luò)LSTM的啟發(fā),使用自適應(yīng)門控單元來調(diào)節(jié)信息流。即使有數(shù)百層,也可以通過簡單的梯度下降直接訓(xùn)練高速公路網(wǎng)。加入Highway Networks優(yōu)化的DBLSTM就在一定程度上緩解了訓(xùn)練模型的復(fù)雜性。
Highway Networks的基本公式如式(15)至式(22)所示
y=H(x,WH)⊙T(x,WT)+x⊙C(x,Wc)
(15)
其中,y向量由兩項組成。T表示轉(zhuǎn)換門transform gate,C表示攜帶門carry gate。C和T的激活函數(shù)都是sigmoid函數(shù)
T=(a1,a2,…,an)
(16)
C=(b1,b2,…,bn)
(17)
C=1-T
(18)
y=H(x,WH)⊙T(x,WT)+x⊙C(1-T(x,WT))
(19)
最后得
(20)
雅可比變換
(21)
最后的輸出公式為
yi=Hi(x)*T(x)+xi*(1-T(x,WT))
(22)
其中,x,y,H(x,WH),T(x,WT)是同維度向量,不夠的話用0補全。或者我們想更改x的維度從A變成B的話,只需要引入一個維度為A×B的矩陣做乘法。由式(21)可以看出,最終通過sigmoid變化,當(dāng)T(x,WT)=0時,原始輸入直接輸出,不做任何改變;當(dāng)T(x,WT)=1時,原始信息在轉(zhuǎn)換之后輸出。即使訓(xùn)練層數(shù)加深時,也可以用這種方法來收斂層數(shù),從而減少由于網(wǎng)絡(luò)層數(shù)的增加而帶來的復(fù)雜性,并且可以降低訓(xùn)練模型的難度。
本文所用實驗環(huán)境:MacBook Pro;處理器是2.5 GHz Intel Core i7;圖形加速卡:Intel Iris Plus Graphics 640 1536 MB;內(nèi)存:16 GB 2133 MHz LPDDR3;操作系統(tǒng):IOS;使用Google 開源深度學(xué)習(xí)框架 TensorFlow 以及anaconda構(gòu)建神經(jīng)網(wǎng)絡(luò),并在PyCharm軟件平臺上運行python進行實驗。
CoNLL-2005共享任務(wù)數(shù)據(jù)集和CoNLL-2012共享任務(wù)數(shù)據(jù)集。
本文的模型的設(shè)置如下。字嵌入和謂詞掩碼嵌入的維度設(shè)置為100,隱藏層的數(shù)量設(shè)置為10。我們將隱藏神經(jīng)元數(shù)量d設(shè)置為200。且采用了Dropout機制來防止神經(jīng)網(wǎng)絡(luò)過擬合。
實驗結(jié)果見表1、表2。
表1 優(yōu)化模型測試結(jié)果(CoNLL-2005)
由實驗結(jié)果表1、表2可知,在加入Layer normalization[11]改進后的模型在CoNLL-2005共享任務(wù)數(shù)據(jù)集的表現(xiàn)中比之前最好模型DEEPATT的結(jié)果優(yōu)化了0.12個百分比,在CoNLL-2012共享任務(wù)數(shù)據(jù)集的表現(xiàn)中比之前的最好模型DEEPATT的結(jié)果優(yōu)化了0.03個百分比。本文同時也針對DEEPATT模型中的RNN進行了優(yōu)化,引入基于Highway Networks優(yōu)化后的DBLSTM替代原模型的RNN層,在CoNLL-2005共享任務(wù)數(shù)據(jù)集中優(yōu)化后的結(jié)果比DEEPATT(RNN)模型的結(jié)果提高了0.34個百分比,在CoNLL-2012共享任務(wù)數(shù)據(jù)集中優(yōu)化后的結(jié)果比DEEPATT(RNN)模型的結(jié)果提高了0.22個百分比。這說明本文優(yōu)化后的模型提高了標(biāo)注準(zhǔn)確率。同時也間接說明了Layer normalization和Highway Networks對深度注意神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練的重要性。
表2 優(yōu)化模型測試結(jié)果(CoNLL-2012)
本文提出了一種基于注意力機制的DEEPATT模型的改進方法,首先對DEEPATT模型的層與層之間使用Layer Normalization進行歸一化處理,其次引入Highway networks優(yōu)化的DBLSTM對DEEPATT中的RNN進行了優(yōu)化,用來解決語義角色標(biāo)注過程中存在的問題。本文的實驗結(jié)果驗證了Highway Networks對于解決深度注意神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練困難的能力,以及Layer Normalization對于提高深度注意神經(jīng)網(wǎng)絡(luò)模型穩(wěn)定性的能力。雖然本文優(yōu)化后的方法較之前最好的模型DEEPATT取得的結(jié)果有所進步,但本文優(yōu)化后的模型仍然有可以改進的地方。本文并沒有在標(biāo)注速度上取得很明顯的成果,所以筆者接下來將對這一方面進行深入探索。