張祥文 陸紫耀 楊 靜 林 倩 盧 宇 王鴻吉 蘇勁松
1(廈門大學(xué) 福建廈門 361000)2 (江蘇省計(jì)算機(jī)信息處理技術(shù)重點(diǎn)實(shí)驗(yàn)室(蘇州大學(xué)) 江蘇蘇州 215006)
如何生成高質(zhì)量的句子語義表示一直是自然語言處理的核心問題之一.由于現(xiàn)實(shí)中自然語言句子的數(shù)量是無限的,因此,我們訓(xùn)練好的模型往往需要處理從未在訓(xùn)練語料中出現(xiàn)過的句子.對此,傳統(tǒng)方法通常以高頻詞或多元詞串為基礎(chǔ)來表示句子,然后在此基礎(chǔ)上進(jìn)行各種運(yùn)算,以獲得表示句子語義的向量.然而,這些方法往往需要人工事先定義特征,所以建模效率較為低下.近年來,隨著深度學(xué)習(xí)研究及其應(yīng)用的快速發(fā)展[1],學(xué)術(shù)界和產(chǎn)業(yè)界將目光轉(zhuǎn)向了神經(jīng)網(wǎng)絡(luò),通過構(gòu)建深度神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)句子的語義表示[2],以應(yīng)用到后續(xù)的自然語言處理任務(wù)中.
在基于深度學(xué)習(xí)的句子語義表示建模方面,循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural networks, RNNs)[3]得到了廣泛應(yīng)用.相比于傳統(tǒng)的非神經(jīng)網(wǎng)絡(luò)模型,RNN能夠保存序列的歷史信息,因此對長序列文本具有更好的建模能力.特別地,RNN的一些變種,例如LSTM(long short term memory)[4]和GRU(gated recurrent unit)[5],進(jìn)一步引入門機(jī)制(gating mechanism)來控制信息流動,提高捕獲序列內(nèi)部長距離依賴的能力.針對中文等沒有天然詞語分隔符的語言,神經(jīng)網(wǎng)絡(luò)模型有2種實(shí)現(xiàn)句子語義建模的方案:第1種方案直接建模字序列.該方法忽略詞語的邊界信息,不需要分詞,而這一信息對于建模字、詞之間的組合關(guān)系至關(guān)重要;第2種方案則先進(jìn)行分詞,然后以詞為單位來建模.該方法同樣存在缺陷:一方面,分詞工具產(chǎn)生的錯誤分詞對句子的結(jié)構(gòu)造成破壞,并通過錯誤傳播的形式對后續(xù)的表示建模產(chǎn)生負(fù)面影響;另一方面,使用單一的詞序列來表示句子,使得文本表示建模缺乏靈活性.因此,對于中文等語言,如何利用RNN來提高句子語義表示建模的質(zhì)量是一個有待深入研究的重要問題.
針對上述問題,本文提出基于帶權(quán)詞格的循環(huán)神經(jīng)網(wǎng)絡(luò)模型.詞格是一個能夠容納多種分詞結(jié)果的壓縮數(shù)據(jù)結(jié)構(gòu),與單一分詞結(jié)果相比,它具有豐富的表示能力.目前,詞格已經(jīng)廣泛地應(yīng)用于許多自然語言處理任務(wù)當(dāng)中,并取得了很好的效果,例如機(jī)器翻譯[6]和語音識別[7].通過基于帶權(quán)詞格進(jìn)行句子語義表示建模,我們期望提出的模型可以減輕分詞錯誤造成的錯誤傳播,同時(shí)也能使句子語義表示建模具備更強(qiáng)的靈活性.在本文工作中,我們提出了2種基于帶權(quán)詞格的GRU神經(jīng)網(wǎng)絡(luò)模型:1)基于帶權(quán)詞格的淺層融合循環(huán)神經(jīng)網(wǎng)絡(luò)模型(shallow weighted word lattice RNN, SWWL-RNN),該模型直接對多個分詞輸入和相應(yīng)的前隱狀態(tài)進(jìn)行融合,再輸入到標(biāo)準(zhǔn)的RNN單元生成當(dāng)前隱狀態(tài);2)基于帶權(quán)詞格的深層融合循環(huán)神經(jīng)網(wǎng)絡(luò)模型(deep weighted word lattice RNN, DWWL-RNN).不同于SWWL-RNN,該模型先根據(jù)每個分詞輸入和相應(yīng)的前隱狀態(tài)分別產(chǎn)生各自的當(dāng)前隱狀態(tài),然后再對這些隱狀態(tài)進(jìn)行融合,生成最終的當(dāng)前隱狀態(tài).顯然,2種模型都以融合函數(shù)為核心.因此,針對隱狀態(tài)的融合函數(shù),本文嘗試了4種不同的融合策略:
1) 池化(pooling)融合函數(shù);
2) 門機(jī)制融合函數(shù);
3) 基于詞格邊權(quán)重的融合函數(shù);
4) 融入詞格邊權(quán)重的門機(jī)制融合函數(shù).
最后,我們在情感分類和問句分類實(shí)驗(yàn)上,分析對比了2種模型、4種融合策略的效果.實(shí)驗(yàn)結(jié)果表明,基于帶權(quán)詞格的RNN模型的性能明顯超過傳統(tǒng)的RNN變體模型和現(xiàn)有的其他模型.
本節(jié)介紹本文工作的基礎(chǔ):帶權(quán)詞格[6]和GRU[5]循環(huán)神經(jīng)網(wǎng)絡(luò).
帶權(quán)詞格[6]是一種包含指數(shù)級別分詞結(jié)果的壓縮數(shù)據(jù)結(jié)構(gòu).圖1所示為1個句子根據(jù)3種不同的分詞標(biāo)準(zhǔn)進(jìn)行分詞的結(jié)果及相對應(yīng)的詞格結(jié)構(gòu).3種分詞標(biāo)準(zhǔn),分別來自北京大學(xué)(Peking University, PKU)、中文樹庫(Chinese treebank, CTB)和微軟研究院(Microsoft Research, MSR)公開的分詞語料訓(xùn)練的分詞模型.如圖1(d)所示,給定由N個字組成的1個序列c1:N=c1c2…cN,帶權(quán)詞格在形式上表現(xiàn)為1個帶權(quán)重的有向圖G=V,E.這里,V表示結(jié)點(diǎn)的集合,其中結(jié)點(diǎn)vi∈V(i=1,2,…,N-1)表示ci和ci+1之間的位置.此外,詞格還包含2個特殊的結(jié)點(diǎn):1)v0,該結(jié)點(diǎn)在c1之前,表示字序列的開始位置;2)vN,該結(jié)點(diǎn)在cN之后,表示字序列的結(jié)束位置.E表示邊的集合,以邊ei:j為例,它以vi為起點(diǎn),并指向vj,同時(shí)覆蓋了字序列ci:j,ci:j對應(yīng)潛在的一個候選分詞.而ei:j對應(yīng)的權(quán)重weightei:j,則代表ci:j被作為候選分詞的可能性.
Fig. 1 A weighted word lattice圖1 一個句子的帶權(quán)詞格
詞格中的邊權(quán)重可以使用前后向算法[8-9]來計(jì)算.具體而言,對于結(jié)點(diǎn)vi,我們首先遞歸遍歷它左邊的前序結(jié)點(diǎn),以迭代方式累加計(jì)算出從v0到vi的路徑數(shù)目αvi,即:
(1)
其中,vik是結(jié)點(diǎn)vi的第k個前序結(jié)點(diǎn).然后,對于結(jié)點(diǎn)vj,我們遞歸地遍歷它右邊的后序結(jié)點(diǎn),同樣以迭代累加的方式計(jì)算出從vN到vj的路徑數(shù)目βvj,即:
(2)
其中vjk是結(jié)點(diǎn)vj的第k個后序結(jié)點(diǎn).最后,weightei:j可定義為
(3)
如圖1(d)所示,從v0指向v3的邊e0:3,覆蓋了c1到c3的字序列,表示一個候選詞“下雨天”,其權(quán)重為0.33.邊權(quán)重在一定程度上體現(xiàn)了不同分詞標(biāo)準(zhǔn)的一致性.權(quán)重越大,邊覆蓋的字序列被切分為詞的可能性就越高.同時(shí),邊權(quán)重也增強(qiáng)了詞格的容錯性,使詞格結(jié)構(gòu)的信息表示更加豐富,從而得以有效應(yīng)用于各種自然語言處理任務(wù)中.
RNN[1]雖然具有較好的文本序列建模能力,但仍然面臨著模型參數(shù)梯度消失和爆炸的難題[10-12].對此,研究者引入了帶有門機(jī)制的LSTM[4]和GRU[5]來控制網(wǎng)絡(luò)信息流動,以提高RNN在長序列文本上的建模能力.由于GRU與LSTM性能相同,同時(shí)所需參數(shù)更少.因此,本文選擇GRU作為循環(huán)神經(jīng)網(wǎng)絡(luò)單元進(jìn)行文本建模.需要說明的是,本文方法同樣適用于LSTM等其他RNN的變種模型.
如圖2所示,與RNN相同,GRU在每個輸入單元循環(huán)地應(yīng)用1個轉(zhuǎn)移函數(shù),以生成當(dāng)前時(shí)刻的隱狀態(tài)表示.
具體來說,時(shí)刻t的隱狀態(tài)向量ht∈d,由當(dāng)前輸入向量xt∈d和前一時(shí)刻的隱狀態(tài)向量ht-1生成:
ht=f(xt,ht-1),
(4)
其中,f(*)通常定義為一個仿射變換及雙曲正切函數(shù)tanh.對于文本序列而言,xt是句子中第t個詞的向量表示,ht則代表到時(shí)刻t為止的詞序列向量.
正如本節(jié)第1段所述,GRU在RNN的基礎(chǔ)上,進(jìn)一步引入了重置門和更新門來控制信息流動.圖2所示為一個時(shí)刻t的GRU單元,其轉(zhuǎn)移函數(shù)定義為
rt=σ(W(r)xt+U(r)ht-1+b(r)),
(5)
zt=σ(W(z)xt+U(z)ht-1+b(z)),
(6)
(7)
(8)
受現(xiàn)有工作[6,13-14]的啟發(fā),本節(jié)對基于詞格的循環(huán)神經(jīng)網(wǎng)絡(luò)[15]進(jìn)行擴(kuò)展,提出了基于帶權(quán)詞格的GRU循環(huán)神經(jīng)網(wǎng)絡(luò),以學(xué)習(xí)句子語義表示,用于后續(xù)的自然語言處理任務(wù).顯然,與詞序列相比,帶權(quán)詞格具有更為豐富的信息和更為復(fù)雜的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu).以它為基礎(chǔ)來進(jìn)行神經(jīng)網(wǎng)絡(luò)建模將面臨著2個難題:1)在帶權(quán)詞格中,一個句子通常會存在許多分詞結(jié)果,這意味著當(dāng)前單元可能會同時(shí)存在多個輸入和多個前隱狀態(tài),傳統(tǒng)循環(huán)神經(jīng)網(wǎng)絡(luò)[4-5]無法建模這樣的結(jié)構(gòu);2)帶權(quán)詞格的邊權(quán)重能夠較好地區(qū)別不同分詞結(jié)果的可能性.如何在本文所提出的模型中體現(xiàn)出不同分詞結(jié)果在句子建模過程中作用的差異,是本文研究工作的一個關(guān)鍵問題.
在建模過程中,我們的模型以句子的字序列為輸入,逐字地讀取句子.在時(shí)刻t,對于當(dāng)前結(jié)點(diǎn)vt,我們首先確定以字ct為結(jié)尾的一個入度邊集合,即{etk:t=(xtk,htk)|0≤tk 淺層帶權(quán)詞格GRU模型的單元結(jié)構(gòu)如圖3所示: Fig.3 A SWWL-GRU unit圖3 淺層帶權(quán)詞格GRU單元 形式上,該單元的建模函數(shù)定義為 (9) (10) (11) (12) (13) (14) 深層帶權(quán)詞格GRU循環(huán)神經(jīng)網(wǎng)絡(luò)的單元結(jié)構(gòu)如圖4所示: Fig. 4 A DWWL-GRU unit圖4 深層帶權(quán)詞格GRU單元 與淺層帶權(quán)詞格GRU單元相比,深層模型在更細(xì)粒度的語義表示層次上,對多種分詞結(jié)果進(jìn)行分詞狀態(tài)的融合生成.淺層模型選擇融合循環(huán)單元的輸入,而深層模型采取對循環(huán)單元的輸出進(jìn)行融合的方式.簡單來說,兩者的具體區(qū)別在于選取融合操作的時(shí)機(jī)不同.從時(shí)間復(fù)雜度來考慮,深層模型的時(shí)間復(fù)雜度為O(KN),即關(guān)于句子的字?jǐn)?shù)和邊的最大個數(shù)成正比;而淺層模型的時(shí)間復(fù)雜度為O(N),與基于字的普通RNN模型相等.這2個模型涉及到融合函數(shù)的部分,時(shí)間代價(jià)可以忽略不計(jì). 形式上,該單元的建模函數(shù)定義為 rtk=σ(W(r)xtk+U(r)htk+b(r)), (15) ztk=σ(W(z)xtk+U(z)htk+b(z)), (16) (17) (18) (19) 其中,xtk,htk與2.1節(jié)公式符號的含義相同.式(15)~(18)用于生成第k個分詞對應(yīng)的隱狀態(tài),式(19)采用語義融合函數(shù)g(*)生成ht. 在常見的基于字或詞的模型中,句子可以被視為一個特殊的有向無環(huán)圖,其中每個結(jié)點(diǎn)的入度和出度均為1.然而,對于詞格,每個結(jié)點(diǎn)的入度和出度則至少為1,因此基于RNN的序列建模模型[4-5]無法處理詞格結(jié)構(gòu)的輸入數(shù)據(jù)[6-7]. 在淺層、深層帶權(quán)詞格模型的基礎(chǔ)上,我們進(jìn)一步提出了使用融合函數(shù)來融合循環(huán)單元的輸入或輸出,生成單一的壓縮表示,以轉(zhuǎn)換成標(biāo)準(zhǔn)循環(huán)單元能夠接受的輸入形式.這里,本文在文獻(xiàn)[15]中2種融合函數(shù)的基礎(chǔ)上,進(jìn)一步提出2種基于詞格邊權(quán)重的融合函數(shù).為了不失一般性,本文以深層帶權(quán)詞格中的ht為例,描述在帶權(quán)詞格GRU單元中如何使用這些融合函數(shù).需要注意的是,這些定義同樣適用于生成其他向量,例如xt. 首先介紹文獻(xiàn)[15]中2種基礎(chǔ)的融合函數(shù):池化融合函數(shù)與門機(jī)制融合函數(shù);接著,介紹本文提出的以門機(jī)制為基礎(chǔ)的2種新融合函數(shù). 1) 池化融合函數(shù) (20) 其中,max(*)是一個逐元素最大值函數(shù). 池化融合函數(shù)忽略了詞格的邊權(quán)重信息,直接通過聚集入度邊集合對應(yīng)的隱狀態(tài)來獲取最重要的特征. 2) 門機(jī)制融合函數(shù) 目前,門機(jī)制已經(jīng)大量應(yīng)用于神經(jīng)網(wǎng)絡(luò)中,用以自動學(xué)習(xí)不同輸入信息的權(quán)重.與文獻(xiàn)[16]相似,該融合函數(shù)在形式上定義為 (21) 其中,u(g)和b(g)分別是門機(jī)制融合函數(shù)的參數(shù)向量和偏置項(xiàng)標(biāo)量,上標(biāo)g表示門. 門機(jī)制融合函數(shù)則計(jì)算每個隱狀態(tài)的歸一化分?jǐn)?shù),作為邊的權(quán)重,對隱狀態(tài)進(jìn)行加權(quán)平均.這個分?jǐn)?shù)可以視為動態(tài)生成的邊權(quán)重,表示模型將該邊作為候選分詞的置信度. 3) 基于詞格邊權(quán)重的融合函數(shù) 帶權(quán)詞格的一大特點(diǎn)是邊權(quán)重可以有效區(qū)分不同分詞結(jié)果的可能性.基于詞格邊權(quán)重,我們將ht定義為不同分詞結(jié)果的隱狀態(tài)的加權(quán)和,即: (22) 其中,weightetk:t是根據(jù)式(3)計(jì)算出的邊權(quán)重.顯然,在這種融合方式中,融合權(quán)重主要取決于詞格本身,而獨(dú)立于網(wǎng)絡(luò)模型. 與門機(jī)制融合函數(shù)不同,基于詞格邊權(quán)重的融合函數(shù)使用1.1節(jié)所述算法計(jì)算的詞格邊權(quán)重,對隱狀態(tài)進(jìn)行加權(quán)平均.同門機(jī)制生成的動態(tài)權(quán)重相比,詞格邊權(quán)重是靜態(tài)的,可以直接表示邊上的詞作為候選分詞的可能性. 4) 融入詞格邊權(quán)重的門機(jī)制融合函數(shù) 該融合函數(shù)與2)基于門機(jī)制的融合函數(shù)相類似.不同的地方在于,門機(jī)制融合函數(shù)是無監(jiān)督的,直接受模型訓(xùn)練目標(biāo)影響,而相比之下,基于詞格邊權(quán)重的門機(jī)制融合函數(shù)則利用詞格邊權(quán)重作為外部監(jiān)督信息來改進(jìn)門機(jī)制學(xué)習(xí)到的融合權(quán)重.具體而言,我們要求門機(jī)制學(xué)習(xí)到的融合權(quán)重與詞格邊權(quán)分布盡量接近.為此,本文進(jìn)一步引入門機(jī)制權(quán)重與詞格邊權(quán)重的歐式距離來作為懲罰項(xiàng): (23) 融入詞格邊權(quán)重的門機(jī)制融合函數(shù)進(jìn)一步使用靜態(tài)邊權(quán)重作為正則化項(xiàng),指導(dǎo)動態(tài)邊權(quán)重的生成,這一方法可以視為門機(jī)制融合函數(shù)與基于詞格邊權(quán)重的融合函數(shù)的結(jié)合. 上述4種融合函數(shù),各自以遞進(jìn)的方式,從靜態(tài)和動態(tài)到動靜態(tài)結(jié)合地利用詞格邊權(quán)重,從而充分發(fā)揮模型的運(yùn)算能力和利用詞格結(jié)構(gòu)提供的監(jiān)督信息. 基于帶權(quán)詞格的GRU模型的訓(xùn)練過程與標(biāo)準(zhǔn)RNN相同.模型目標(biāo)函數(shù)與后續(xù)所應(yīng)用任務(wù)緊密相關(guān).對于分類任務(wù),本文模型首先建模學(xué)習(xí)句子語義表示,然后通過一個softmax層來預(yù)測句子的標(biāo)簽分布: (24) 其中,θ代表模型參數(shù);hNs∈d是句子s在時(shí)刻t的隱狀態(tài),作為句子的向量表示;W(y)和b(y)分別是softmax層的參數(shù)矩陣和偏置項(xiàng)向量,上標(biāo)y表示該層的輸出用于預(yù)測標(biāo)簽.設(shè)數(shù)據(jù)中共有L個候選標(biāo)簽,L為模型建模的概率分布,并且滿足給定訓(xùn)練數(shù)據(jù)D,模型的目標(biāo)函數(shù)最終定義為 (25) 其中,pl(s)是句子真實(shí)標(biāo)簽的one-hot向量的第l個分量,Rgate是根據(jù)式(23)定義的懲罰項(xiàng).當(dāng)本文模型使用前3種融合函數(shù)時(shí),λ=0;反之,當(dāng)使用第4種融合函數(shù)時(shí),λ為一個大于0的常數(shù). 本文采用基于Adadelta[17]的隨機(jī)梯度下降算法來優(yōu)化模型.此外,本文在訓(xùn)練過程中使用dropout[18]和最大范數(shù)正則化[19]來防止模型訓(xùn)練過擬合. 為了驗(yàn)證本文模型的有效性,我們將2種基于帶權(quán)詞格的GRU循環(huán)神經(jīng)網(wǎng)絡(luò)和4種融合策略,分別應(yīng)用于情感分類和問句分類任務(wù),與傳統(tǒng)GRU及現(xiàn)有的其他模型進(jìn)行比較. 本文將在情感分類和問句分類2個數(shù)據(jù)集上測試我們提出的方法.下面從數(shù)據(jù)集大小和數(shù)據(jù)特點(diǎn)等方面分別介紹這2個數(shù)據(jù)集. 1) 情感分類 數(shù)據(jù)集來自于新浪微博,為了保證數(shù)據(jù)信息的充分性,我們刪除長度不足6個字的句子,然后安排2名標(biāo)注人員對句子按照不同的情感(消極、中性和積極)傾向進(jìn)行獨(dú)立標(biāo)注,最后保留標(biāo)注結(jié)果完全一致的數(shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù).按照上述方式,本任務(wù)實(shí)驗(yàn)數(shù)據(jù)集共包含消極情感句子4 454條、中性情感句子5 100條和積極情感句子5 594條.然后,本文采取分層抽樣的方式,按照7∶1∶2的比例從每個類別隨機(jī)抽取樣本,將數(shù)據(jù)劃分為訓(xùn)練集(10 603條實(shí)例)、驗(yàn)證集(1 514條實(shí)例)和測試集(3 031條實(shí)例).句子的平均長度17.19個詞或25.69個字. ① https://code.google.com/archive/p/fudannlp/ 2) 問句分類 數(shù)據(jù)來自FudanQuestionBank①提供的中文問句分類數(shù)據(jù)集.為了降低數(shù)據(jù)類別不均衡問題的影響,本文只選取數(shù)據(jù)量最大的5個分類.該數(shù)據(jù)包含1 517,4 987,1 101,3 185,2 174條文本,對應(yīng)的類別分別為枚舉、事實(shí)、評價(jià)、推薦和需求.同樣,本文對該數(shù)據(jù)集按照7∶1∶2的比例劃分為訓(xùn)練集(9 075條實(shí)例)、驗(yàn)證集(1 297條實(shí)例)和測試集(2 592條實(shí)例).平均長度為9.33個詞或14.60個字. 3) 帶權(quán)詞格生成 本文使用北京大學(xué)(PKU)、賓州大學(xué)中文樹庫(CTB)以及微軟研究院(MSR)的分詞語料分別訓(xùn)練3個分詞模型,然后按照1.1節(jié)中所述方法生成每個句子的帶權(quán)詞格. 本文所考察的對比模型包括: 1) GRU GRU[5]的最后一個序列狀態(tài)作為句子語義表示用于預(yù)測句子標(biāo)簽.另外,除了最簡單的單層單向GRU模型之外,本文還同時(shí)比較了3個GRU的簡單變種模型:雙層單向(2 layer GRU, 2L-GRU)、單層雙向(bidirectional GRU, BiGRU)和雙層雙向(2 layer bidirectional GRU, 2L-BiGRU)模型. 2) LSTM LSTM[4]的實(shí)驗(yàn)設(shè)置與GRU模型相同.這一對比實(shí)驗(yàn)的目的是驗(yàn)證GRU與LSTM的性能,證明2個RNN的變種模型在本文2個任務(wù)上的效果相近. 3) CNN 卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network, CNN)[20]使用不同大小的窗口處理輸入序列,能夠獲得句子在不同粒度,包括字、詞語甚至短語級別的語義信息.本文參考Kim[20]的實(shí)驗(yàn)設(shè)置,使用單層卷積神經(jīng)網(wǎng)絡(luò)模型. 4) DCNN 動態(tài)卷積神經(jīng)網(wǎng)絡(luò)(dynamic convolutional neural network, DCNN)[21]通過利用動態(tài)k最大池化操作,具有與RNN相似的處理變長序列,以及捕捉句子內(nèi)部長短距離依賴關(guān)系的能力.DCNN使用2個卷積層,k最大池化操作的k=4. 5) RAE RAE(recursive autoencoder)[22]通過貪婪方式構(gòu)造文本序列的樹結(jié)構(gòu),并將樹的根結(jié)點(diǎn)作為該句子的向量表示.RAE能夠建模序列中詞與詞之間的組合順序關(guān)系,學(xué)習(xí)句子內(nèi)部成分的結(jié)構(gòu)特征.模型參數(shù)參考Socher等人[22]的實(shí)驗(yàn)設(shè)置. 6) MulSrc MulSrc(multiple source)獨(dú)立地建模句子的字序列及詞序列,最終通過2.3節(jié)所述的融合函數(shù)將句子表示進(jìn)行一次融合,生成句子的語義表示.MulSrc可以同時(shí)基于字和詞建模,是本文模型的簡化版本.與詞格不同,由于不存在句子級別的權(quán)重,我們簡單地使用平均分布作為加權(quán)系數(shù)(Avg),模擬2.3節(jié)中基于邊權(quán)重的融合函數(shù),與本文所提出的帶權(quán)詞格GRU模型進(jìn)行對比. 7) SWWL-GRU和DWWL-GRU 本文提出的基于帶權(quán)詞格的GRU循環(huán)神經(jīng)網(wǎng)絡(luò)模型在4種融合函數(shù)上進(jìn)行了實(shí)驗(yàn),相應(yīng)的模型分別記為SWWL(Pool),SWWL(Gate),SWWL(Weight),SWWL(wGate),DWWL(Pool),DWWL(Gate),DWWL(Weight),DWWL(wGate). 此外,字序列與詞序列相比,是更簡單的一種句子表示形式.為了研究這種表示是否有助于文本語義建模,本文同樣引入字序列到SWWL-GRU和DWWL-GRU的詞格中,并與之進(jìn)行對比實(shí)驗(yàn)與分析. 在實(shí)驗(yàn)參數(shù)方面,本文統(tǒng)一使用dropout[18]防止模型訓(xùn)練過擬合,并根據(jù)驗(yàn)證集結(jié)果對dropout值進(jìn)行選擇.我們根據(jù)驗(yàn)證集挑選式(22)中調(diào)節(jié)懲罰項(xiàng)的λ值,將其設(shè)為1.0.詞表由語料中出現(xiàn)次數(shù)在2次及以上的高頻詞構(gòu)成.詞向量和隱狀態(tài)的維度分別為50和300維.所有模型均使用基于隨機(jī)梯度下降的Adadelta算法[17]實(shí)現(xiàn)優(yōu)化,批梯度更新的大小為1.每個模型分別訓(xùn)練5次,根據(jù)開發(fā)集的效果選擇最優(yōu)模型,并取測試集上的平均準(zhǔn)確率作為最終結(jié)果. 表1和表2分別給出了基線模型與本文模型在情感分類和問句分類任務(wù)上的實(shí)驗(yàn)結(jié)果.從表1和表2中數(shù)據(jù)可以看出,本文模型的分類效果要顯著高于單一字序列或詞序列的模型. 從表1和表2可得出5條結(jié)論: 1) GRU和LSTM的性能相近 GRU[5]與LSTM[4]模型,是針對梯度消失和梯度爆炸問題[10-12]所提出的2個RNN[3]變種模型.在本文實(shí)驗(yàn)中,GRU和LSTM在2個數(shù)據(jù)集上的性能沒有表現(xiàn)出顯著差異,然而GRU模型具有更少的參數(shù),因此在某種程度上降低了過擬合的風(fēng)險(xiǎn). Table 1 Results of Baseline Models on Sentiment Classification and Question Classification表1 基線模型的情感分類和問句分類實(shí)驗(yàn)結(jié)果 % Notes:The values in boldface indicate the best accuracy in that experimental group. Table 2 Results of Our Work on Sentiment Classification and Question Classification表2 本文模型的情感分類和問句分類實(shí)驗(yàn)結(jié)果 Notes:The values in boldface indicate the best accuracy in that experimental group. 2) 基于詞序列的GRU及其變種模型一致地優(yōu)于基于字序列的模型 分詞在中文等沒有詞語分隔符的自然語言處理任務(wù)中具有非常重要的作用,這是因?yàn)榉衷~可以在一定程度上消除純字序列存在的語義歧義現(xiàn)象.相比之下,基于字序列的模型忽略了句子中的詞語邊界信息,從而無法消除句子中存在的語義歧義,導(dǎo)致模型學(xué)習(xí)到的句子語義表示不能很好地服務(wù)于分類任務(wù).然而,模型在問題分類任務(wù)上的結(jié)果并沒有明顯地反映出這一趨勢.據(jù)統(tǒng)計(jì)結(jié)果顯示,GRU具備強(qiáng)大的捕捉長短期依賴的能力,但對于短序列而言,短期依賴則占據(jù)了主要地位.這使得循環(huán)神經(jīng)網(wǎng)絡(luò)無法發(fā)揮其建模長期依賴關(guān)系的優(yōu)勢,從而對以短句為主的問句分類任務(wù),弱化了基于詞序列與基于字序列的模型在結(jié)果上的差異. 3) 基于CNN的模型效果弱于基于RNN的模型 正如文獻(xiàn)[23]所示,相比于CNN,RNN模型對長序列文本的建模優(yōu)勢較為明顯.盡管CNN在速度上具有明顯優(yōu)勢,但在性能表現(xiàn)上卻難以取代RNN.就表1中實(shí)驗(yàn)結(jié)果來說,CNN由于同時(shí)使用多個卷積核,使其在某種程度上能夠捕捉所有的多元詞串,從而與本文所提出的模型一樣具備建模不同分詞結(jié)果的能力.然而,并非所有多元詞串都能表示一般意義上的有效詞語,因此CNN也同時(shí)引入了更多的錯誤分詞,導(dǎo)致基于CNN的模型在2個任務(wù)上的表現(xiàn)均明顯不如RNN模型 4) 基于帶權(quán)詞格的模型優(yōu)于基于字、詞序列以及MulSrc的模型 相比于對比模型,本文提出的2個模型在情感分類和問句分類任務(wù)上均一致取得了更高的準(zhǔn)確率.首先,只基于字和詞建模的模型,缺乏表達(dá)分詞多樣性的能力;其次,同時(shí)基于字和詞建模的MulSrc模型,由于僅在句級別融合句子語義表示,使得句子的最小單元無法在字、詞序列間進(jìn)行交互.此外,在大部分情況下,DWWL-GRU性能超過SWWL-GRU,取得了2個任務(wù)上的最好結(jié)果,這證明深層次的語義融合比淺層次的語義融合效果更好.此外,本文提出的2個模型在使用融入詞格邊權(quán)重的門機(jī)制融合函數(shù)上均取得最好結(jié)果,其次分別是門機(jī)制融合函數(shù),以及基于詞格邊權(quán)重的融合函數(shù).這一實(shí)驗(yàn)結(jié)果與我們的直覺相符.首先,門機(jī)制是無監(jiān)督的權(quán)重學(xué)習(xí),而基于詞格邊權(quán)重的融合函數(shù)則直接根據(jù)詞格邊權(quán)重來進(jìn)行加權(quán)融合.相比之下,融入詞格邊權(quán)重的門機(jī)制融合函數(shù),有效結(jié)合了上述2種融合機(jī)制的特點(diǎn),進(jìn)一步提高了所生成權(quán)重的質(zhì)量,從而得到了更好的融合文本語義表示. Fig. 5 The semantic modeling of an example sentence圖5 一個例句的語義建模 5) 融合函數(shù)的建模能力影響模型性能 引入字信息后,基于帶權(quán)詞格的模型在問句分類任務(wù)上的效果得到進(jìn)一步提升,但情感分類任務(wù)的效果卻降低.直觀上看,字信息的引入能夠有效擴(kuò)充詞格的信息量.但實(shí)際而言,情感分類的詞表大小為42 685,問句分類則只有11 634,因此情感分類任務(wù)的詞表更大,更難學(xué)習(xí)到有效的句子表示.在情感分類上引入字后,詞格模型所要建模的分詞組合數(shù)量進(jìn)一步增加.我們的融合函數(shù)無法充分建模所有相應(yīng)的分詞情況,從而加劇了數(shù)據(jù)稀疏問題的影響.問句分類任務(wù)則恰恰相反,單純就詞表大小而言,即使引入字,詞格模型中可能的分詞組合數(shù)量也遠(yuǎn)遠(yuǎn)低于情感分類.因此與Words相比,我們的模型對于問句分類任務(wù)可以在Char+Words上更有效地建模,充分利用引入字后的詞格信息增益,進(jìn)而提升模型效果.實(shí)際上,本文提出的4種融合函數(shù)中最復(fù)雜的wGate融合函數(shù),依然只包含一個與隱狀態(tài)同等維度的參數(shù)向量,所以建模能力有限.因此,一個更復(fù)雜的融合函數(shù)應(yīng)當(dāng)能夠在情感分類的Char+Words上進(jìn)一步改進(jìn)模型的性能.但為了證明基于帶權(quán)詞格的循環(huán)神經(jīng)網(wǎng)絡(luò)模型相對于傳統(tǒng)基于詞序列模型的有效性,我們在盡量不引入額外參數(shù)的前提下,保證融合函數(shù)足夠簡單.本文的討論范圍限于驗(yàn)證基于帶權(quán)詞格模型的有效性,因此我們將對具有更強(qiáng)學(xué)習(xí)能力的融合函數(shù)的研究放到未來工作中深入探討. 為了探究所提出模型的工作機(jī)制,以性能最好的DWWL(wGate)為例,我們在圖5中展示了一個句子的文本建模結(jié)果.在所示詞格中,每條邊標(biāo)注有一個分?jǐn)?shù),該分?jǐn)?shù)為模型動態(tài)生成的權(quán)重,表示該邊所對應(yīng)的詞,在特定上下文中被作為一個候選分詞的可能性,該權(quán)重直接影響模型的文本語義表示建模質(zhì)量. 圖5中所示為句子:“不然肯定是納稅人白花冤枉錢.”的建模結(jié)果.句中存在歧義的部分集中在v8~v13部分,即“白花冤枉錢”這一片段,根據(jù)上下文,我們判斷其正確的分詞結(jié)果應(yīng)當(dāng)為“白花冤枉錢”或“白花冤枉錢”.圖5中粗邊表示錯誤的候選分詞,實(shí)邊表示正確的候選分詞.可以觀察到,詞格中存在來自不同分詞模型產(chǎn)生的錯誤分詞,如“白花冤”和“枉錢”.結(jié)點(diǎn)v13有3條入度邊,分別對應(yīng):“錢”、“枉錢”、“冤枉錢”3個候選分詞.其中,正確的分詞“錢”和“冤枉錢”被作為候選詞的置信度p為0.36和0.35;而錯誤分詞“枉錢”的置信度p只有0.29.盡管“白花冤”在結(jié)點(diǎn)v11的置信度為1.00,但由于錯誤分詞“枉錢”存在于“白花冤”的分詞路徑中,因此該路徑依然得到了更低的分?jǐn)?shù).我們可以將模型建模的邊置信度視為概率,通過路徑的概率來更好地理解這一示例.圖5中包含錯誤分詞“白花冤枉錢”的路徑,其概率p(false)=1.00×0.29=0.29.而包含正確分詞“白花冤枉錢”和“白花冤枉錢”的路徑,通過將其概率相加,可知正確路徑的總概率為p(true)=1.00×1.00×0.36+1.00×0.35=0.71.因而在示例中正確路徑的置信度是遠(yuǎn)高于錯誤路徑的.不難看出,詞格模型具有容錯的能力,當(dāng)錯誤的候選分詞被賦予低權(quán)重后,錯誤路徑的權(quán)重被降低,而正確路徑所產(chǎn)生的影響通過高權(quán)重放大,從而減輕純詞序列中分詞錯誤傳播的問題.另一方面,單純基于字和詞序列的建模方法,則易受到錯誤分詞的影響,而基于帶權(quán)詞格的模型則能夠利用其容錯能力來保證即使存在錯誤分詞,模型仍然能夠?qū)W習(xí)到高質(zhì)量的句子語義表示. 目前,基于深度神經(jīng)網(wǎng)絡(luò)的文本語義表示學(xué)習(xí)已經(jīng)成為自然語言處理的熱門研究方向.其中,神經(jīng)詞袋(bag-of-words)模型是最為簡單的一個模型,它對句子中所有詞的詞向量取平均直接得到句子的語義表示向量.顯然,這種建模方式忽略了對文本語義表示極為重要的詞序信息.因而,許多研究者轉(zhuǎn)向研究考慮詞序信息的模型,包括序列神經(jīng)網(wǎng)絡(luò)模型和拓?fù)渖窠?jīng)網(wǎng)絡(luò)模型等.典型的序列神經(jīng)網(wǎng)絡(luò)模型包括RNN[3],LSTM[4,24-30],以及帶門機(jī)制的其他變形[31-33].而與序列神經(jīng)網(wǎng)絡(luò)模型不同,拓?fù)渖窠?jīng)網(wǎng)絡(luò)模型依賴給定的詞間拓?fù)浣Y(jié)構(gòu)來建模生成文本語義表示[22,34-36].例如句子的依存和組合范疇語法可被作為骨架用于學(xué)習(xí)句子語義表示[28,37-39].進(jìn)一步,一些研究者提出多維度的神經(jīng)網(wǎng)絡(luò)模型,該類模型將文本組織成一個多維網(wǎng)格而非序列作為輸入[40-41].此外,除了上述模型,卷積神經(jīng)網(wǎng)絡(luò)也被用于句子建模[20-21].該類網(wǎng)絡(luò)也是以詞向量序列作為輸入,建模過程中通過多層的卷積和池化操作來得到句子語義表示. 在上述工作中,與本文較為相關(guān)的工作主要有文獻(xiàn)[15,27-28]中所提出的模型.文獻(xiàn)[27-28]在本質(zhì)上屬于拓?fù)渖窠?jīng)網(wǎng)絡(luò)模型,分別將序列LSTM擴(kuò)展到樹結(jié)構(gòu)和森林結(jié)構(gòu)的網(wǎng)絡(luò).文獻(xiàn)[40]提出了基于網(wǎng)格的LSTM,把LSTM單元按照多維網(wǎng)格的方式排列,以應(yīng)用到一維、二維甚至更多維度的序列數(shù)據(jù)的語義建模學(xué)習(xí).此外,文獻(xiàn)[42]提出在生成當(dāng)前隱狀態(tài)時(shí),對RNN中多個前隱狀態(tài)使用與本文門機(jī)制相似的方式分別計(jì)算權(quán)重,然后將多個前隱狀態(tài)加權(quán)輸入到RNN單元.文獻(xiàn)[15]提出基于詞格的循環(huán)神經(jīng)網(wǎng)絡(luò),通過Pooling運(yùn)算和門機(jī)制來融合生成詞格單元的輸入.不同于這些網(wǎng)絡(luò),本文工作在文獻(xiàn)[15]的基礎(chǔ)上進(jìn)行擴(kuò)展,引入了帶權(quán)詞格來提高句子建模的能力,更重要的是本文模型引入詞格權(quán)重來指導(dǎo)融合函數(shù)的建模學(xué)習(xí),進(jìn)一步提高詞格循環(huán)神經(jīng)網(wǎng)絡(luò)語義表示的學(xué)習(xí)效果. 文本提出了2種基于帶權(quán)詞格的GRU循環(huán)神經(jīng)網(wǎng)絡(luò)模型,用于句子的語義表示建模.2種模型均以帶權(quán)詞格為基礎(chǔ),利用任意數(shù)量的輸入詞和前隱狀態(tài)信息來融合生成當(dāng)前隱狀態(tài),最終得到句子語義表示.在以句子語義表示為基礎(chǔ)的情感分類和問句分類2個任務(wù)上的實(shí)驗(yàn)結(jié)果證明了本文模型的有效性. 未來,我們將在下面3個研究方向展開工作: 1) 研究如何把帶權(quán)詞格集成到其他神經(jīng)網(wǎng)絡(luò)中,例如卷積神經(jīng)網(wǎng)絡(luò)等; 2) 融入詞格邊權(quán)重的門機(jī)制融合函數(shù)雖然取得最好效果,但與其他融合函數(shù)相比優(yōu)勢有限,如何設(shè)計(jì)其他更加有效融合函數(shù)也是下一步工作的重點(diǎn)之一; 3) 本文所使用構(gòu)造詞格的方法較為簡單,因此,我們將嘗試使用其他的語言學(xué)信息構(gòu)造詞格,以進(jìn)一步提升模型性能.2.1 淺層帶權(quán)詞格
2.2 深層帶權(quán)詞格
2.3 融合函數(shù)
3 模型目標(biāo)和訓(xùn)練
4 實(shí)驗(yàn)與分析
4.1 任務(wù)和數(shù)據(jù)集
4.2 實(shí)驗(yàn)設(shè)置
4.3 實(shí)驗(yàn)結(jié)果分析
5 相關(guān)工作
6 總 結(jié)