王 星, 李 超, 陳 吉
(遼寧工程技術(shù)大學(xué) 電子與信息工程學(xué)院,遼寧 葫蘆島 125105)
不同于英語(yǔ)中每個(gè)單詞之間有分隔符,漢語(yǔ)中詞語(yǔ)沒有明確的分隔符。因此中文分詞(Chinese word segmentation, CWS)是中文處理的基礎(chǔ)任務(wù),分詞的好壞直接影響后面的自然語(yǔ)言處理任務(wù)[1]。自從Xue等[2]用最大熵模型四詞位標(biāo)注集進(jìn)行中文分詞之后,許多方法將中文分詞作為序列標(biāo)注問題進(jìn)行處理,這樣可以使用監(jiān)督學(xué)習(xí)[3-4]或半監(jiān)督學(xué)習(xí)[5-6]的方法處理,然而這些方法受到特征選擇和特征提取的限制[7]。
近年來(lái)深度神經(jīng)網(wǎng)絡(luò)模型已經(jīng)成功用于多項(xiàng)自然語(yǔ)言處理任務(wù)中。Collobert等[8]提出一種神經(jīng)網(wǎng)絡(luò)模型來(lái)完成序列標(biāo)注任務(wù)。此后,許多方法將神經(jīng)網(wǎng)絡(luò)模型應(yīng)用到中文分詞任務(wù)中。Zheng等[9]首先將帶窗口的前饋神經(jīng)網(wǎng)絡(luò)模型應(yīng)用到中文分詞任務(wù)中。Pei等[10]在Zheng等[9]的基礎(chǔ)上提出最大張量邊界模型MMTNN,利用張量和標(biāo)簽間的關(guān)系表示標(biāo)簽與上下文之間的關(guān)系。Chen等[11]提出了一種帶有重置門和更新門結(jié)構(gòu)的遞歸神經(jīng)網(wǎng)絡(luò)模型(GRNN)來(lái)保留上下文信息,并且提出了分層訓(xùn)練防止梯度擴(kuò)散現(xiàn)象。Chen等[12]提出用單向的LSTM神經(jīng)網(wǎng)絡(luò)來(lái)獲取前文信息的方法。Yao等[13]舍棄了窗口的方法,針對(duì)單向LSTM的不足進(jìn)行了改進(jìn),提出了基于雙向的LSTM網(wǎng)絡(luò)的中文分詞方法,有效提高了模型的效果。Xu等[14]同樣在GRNN模型上提出了一種改進(jìn)方案,利用LSTM和遞歸神經(jīng)網(wǎng)絡(luò)更好地結(jié)合局部信息。Cai等[15]提出一種新穎的神經(jīng)網(wǎng)絡(luò)模型,并不是采用上下文的窗口,而是構(gòu)建句子完整的切分歷史,直接在結(jié)果上進(jìn)行建模,但存在訓(xùn)練和測(cè)試速度慢的問題。Cai等[16]在這基礎(chǔ)上做了一定的改進(jìn),將模型里的Beam Search算法改進(jìn)為貪婪算法,大幅減少了模型訓(xùn)練和測(cè)試的時(shí)間。Zhang等[17]提出了基于詞的轉(zhuǎn)移模型,對(duì)句子從左往右進(jìn)行增量解碼,能有效利用字和詞的融合特征來(lái)進(jìn)行分詞。
以上分詞模型取得了不錯(cuò)的效果,但還存在以下不足:(1)輸入以漢字為主,沒有使用漢字的字根特征、五筆特征等更深層的信息;(2)模型以循環(huán)神經(jīng)網(wǎng)絡(luò)為主。采用循環(huán)神經(jīng)網(wǎng)絡(luò)特征提取時(shí),根據(jù)輸入序列長(zhǎng)度進(jìn)行順序計(jì)算,計(jì)算效率受到限制。針對(duì)第一個(gè)不足,本文在輸入特征時(shí)加入字根特征,字根特征能夠有效提高分詞效果[18],使用卷積神經(jīng)網(wǎng)絡(luò)對(duì)字根進(jìn)行特征提取,并將字根特征與字符特征融合作為整體輸入特征,能夠更好地理解漢字語(yǔ)義信息。針對(duì)第二個(gè)不足,本文模型采用卷積神經(jīng)網(wǎng)絡(luò),卷積神經(jīng)網(wǎng)絡(luò)能夠有效提高分詞效果[19],卷積神經(jīng)網(wǎng)絡(luò)能夠獨(dú)立于序列長(zhǎng)度運(yùn)算,減少訓(xùn)練和評(píng)估模型所花費(fèi)的時(shí)間。在整個(gè)序列中,卷積神經(jīng)網(wǎng)絡(luò)不是遞增表示每個(gè)字符,而是將卷積核作用于整個(gè)序列,其計(jì)算成本隨著卷積層數(shù)的增加而增加,而不再是由輸入序列的長(zhǎng)度所決定。為了減少卷積神經(jīng)網(wǎng)絡(luò)的層數(shù),提高計(jì)算效率,本文采用膨脹卷積作為主要模型。與典型的卷積神經(jīng)網(wǎng)絡(luò)層一樣,膨脹卷積也是使用滑動(dòng)窗口作用于文本序列上,不同的是膨脹卷積窗口可以跳過寬度為δ的輸入,通過控制膨脹卷積窗口跳過的字符長(zhǎng)度,能夠使用更少的卷積層來(lái)提取整個(gè)序列的特征。此外,本文在卷積層中加入殘差結(jié)構(gòu)來(lái)解決神經(jīng)網(wǎng)絡(luò)因?qū)訑?shù)增加而出現(xiàn)的退化問題。實(shí)驗(yàn)表明,字根特征的引入,并結(jié)合加入殘差結(jié)構(gòu)的膨脹卷積神經(jīng)網(wǎng)絡(luò),有效改善了中文分詞效果,并提高了中文分詞的速度。
中文分詞任務(wù)通常被認(rèn)為是序列標(biāo)注問題,通過所屬標(biāo)注來(lái)判斷每個(gè)字符在詞語(yǔ)中的位置,常用的標(biāo)注集是{B, M, E, S},利用這四種標(biāo)注獲取詞語(yǔ)的邊界信息,其中B、M、E表示詞語(yǔ)的開頭、中間、結(jié)尾,S表示單個(gè)字。
基于神經(jīng)網(wǎng)絡(luò)的序列標(biāo)注任務(wù)通常由三部分組成: (1)淺層特征層,即向量化表示;(2)神經(jīng)網(wǎng)絡(luò)層;(3)標(biāo)簽推理層。
在雙向長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)中文分詞模型中,淺層特征層使用漢字的嵌入式表示,通常用查找表來(lái)找到字符的向量表示。而本文加入字根特征,如圖1所示。字根特征用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提出,并與字符特征融合作為模型的輸入特征。用c表示字符,r表示字根,則字符c的字根列表xr=[r1,r2,…,rn],輸入特征如式(1)所示。

圖1 字符—字根融合特征
1.2.1 膨脹卷積
卷積操作是卷積神經(jīng)網(wǎng)絡(luò)的重要特征,卷積層以特征映射為組織方式,其中的每個(gè)單位與前一層的局部感受野相連接,利用共享的卷積核與局部感受野做卷積運(yùn)算,再經(jīng)過激活函數(shù)做非線性運(yùn)算來(lái)得到特征值。通常神經(jīng)網(wǎng)絡(luò)中卷積運(yùn)算以二維形式出現(xiàn),但由于自然語(yǔ)言處理任務(wù)的特殊性,卷積在自然語(yǔ)言處理任務(wù)中以一維卷積的形式出現(xiàn)。對(duì)于字符序列x,使用一維卷積核W卷積,結(jié)果c可由式(2)得出。
膨脹卷積核與一般卷積具有相同的操作,不同的是可以一次跳過δ個(gè)輸入寬度,在更長(zhǎng)的有效輸入上定義卷積操作。具體定義如式(3)所示,其中δ是膨脹寬度。當(dāng)δ=1時(shí),膨脹卷積就成為一般卷積操作,當(dāng)δ>1時(shí),膨脹卷積能夠擴(kuò)展字符上下文寬度。


圖2 堆疊膨脹卷積
隨著卷積神經(jīng)網(wǎng)絡(luò)層數(shù)的加深,會(huì)出現(xiàn)過擬合現(xiàn)象。在膨脹卷積神經(jīng)網(wǎng)絡(luò)中使用批量歸一化方法并加入殘差結(jié)構(gòu),使用模塊化方法來(lái)訓(xùn)練,這種模塊化方法將前一層輸出特征作為下一層的輸入特征,同時(shí)能夠共享網(wǎng)絡(luò)參數(shù),能夠有效緩解過擬合情況。
1.2.2 膨脹卷積神經(jīng)網(wǎng)絡(luò)


圖3 殘差結(jié)構(gòu)


最后使用線性變換得到每個(gè)字符xt屬于每個(gè)類別的得分,如式(9)所示。

本文使用兩種方法處理輸出標(biāo)簽的預(yù)測(cè)。首先使用式(11)。這種方法將每個(gè)字符的標(biāo)簽認(rèn)為是條件獨(dú)立的,使用貪婪算法得到輸出標(biāo)簽序列。
然而輸出標(biāo)簽彼此都要相互影響,因此考慮到線性條件隨機(jī)場(chǎng)模型作為預(yù)測(cè)模型,如式(12)所示。
其中,Ψ(y|x)是特征函數(shù)。如果具體只考慮連續(xù)的兩個(gè)標(biāo)簽,如式(13)、式(14)所示。
其中,s(x,y)是每個(gè)標(biāo)簽的評(píng)分函數(shù),具體如式(15)所示。
線性條件隨機(jī)場(chǎng)明確表明了相鄰標(biāo)簽間的相互作用,雖然需要在輸出空間中全局搜索,但能夠滿足某些輸出約束,具有更好的特征復(fù)雜性,對(duì)于標(biāo)簽之間的相互關(guān)系提供了更多的先驗(yàn)信息。
將膨脹卷積神經(jīng)網(wǎng)絡(luò)作為一種編碼器,由式(9)來(lái)得到每個(gè)字符的概率。如果將標(biāo)簽看作是相互獨(dú)立的,可以直接用最大似然方法訓(xùn)練解碼。如果將標(biāo)簽看作相互作用的,用條件隨機(jī)場(chǎng)方法訓(xùn)練解碼。

在每個(gè)模塊之后,通過增強(qiáng)正確的預(yù)測(cè)值來(lái)學(xué)習(xí)模型,后面的模塊則不斷優(yōu)化初始預(yù)測(cè)。這種處理?yè)p失的方法能夠緩解深層結(jié)構(gòu)的梯度消失問題,廣泛用于計(jì)算機(jī)視覺領(lǐng)域[21]。
本文在淺層特征層x和每個(gè)模塊的輸出mt之后使用了dropout方法來(lái)幫助緩解過擬合現(xiàn)象,在膨脹卷積網(wǎng)絡(luò)中使用批量歸一化(bath normalization,BN)方法并加入殘差結(jié)構(gòu),有效規(guī)避復(fù)雜參數(shù)對(duì)網(wǎng)絡(luò)訓(xùn)練產(chǎn)生的影響,加速訓(xùn)練收斂的同時(shí)提高了網(wǎng)絡(luò)的泛化能力。
本文實(shí)驗(yàn)配置為: Inter(R)Core i7-6800K@3.40GHZ處理器,操作系統(tǒng)Ubuntu16.04 LTS(64bit),運(yùn)行內(nèi)存16GB(RAM),顯卡: GIGABYTE GeForce GTX1080Ti,使用TensorFlow 1.12構(gòu)建神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練和測(cè)試。
本文實(shí)驗(yàn)數(shù)據(jù)采用由Bakeoff2005提供的PKU,MSR,CITYU,AS四種數(shù)據(jù)集,四種數(shù)據(jù)集的分詞標(biāo)準(zhǔn)各有不同。PKU是由北京大學(xué)計(jì)算語(yǔ)言學(xué)研究所提供的語(yǔ)料庫(kù),其分詞特點(diǎn)是姓名中姓和名要分開,組織機(jī)構(gòu)等在語(yǔ)法詞典中的直接標(biāo)記,大多數(shù)短語(yǔ)性的詞語(yǔ)先切分再組合。MSR是微軟亞洲研究院所提供的語(yǔ)料庫(kù),其分詞特點(diǎn)是由大量的命名實(shí)體構(gòu)成的長(zhǎng)單詞。AS是由臺(tái)灣中央研究院提供的語(yǔ)料庫(kù),分詞規(guī)范與北大制定的分詞規(guī)范類似,同時(shí)也與臺(tái)灣地區(qū)的語(yǔ)言使用習(xí)慣相關(guān)。CITYU是由香港城市大學(xué)提供的語(yǔ)料庫(kù),分詞規(guī)范受香港地區(qū)的使用習(xí)慣影響。數(shù)據(jù)集規(guī)模如表1所示。其中隨機(jī)選取訓(xùn)練數(shù)據(jù)的90%作為訓(xùn)練集,10%作為開發(fā)集。所有的數(shù)據(jù)在輸入前需要經(jīng)過預(yù)處理,將英文字母替換成X,數(shù)字替換成0。

表1 Bakeoff2005數(shù)據(jù)集
所有實(shí)驗(yàn)均采用標(biāo)準(zhǔn)Bakeoff評(píng)分程序計(jì)算常用的評(píng)測(cè)指標(biāo):P(準(zhǔn)確率),R(召回率),F(xiàn)1(召回率和準(zhǔn)確率的調(diào)和平均值),以F1值為主要評(píng)測(cè)指標(biāo)。計(jì)算公式如式(17)~式(19)所示。
本文與中文分詞中常用的雙向長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)模型做對(duì)比,解碼器分別使用貪婪算法(BiLSTM)和條件隨機(jī)場(chǎng)(BiLSTM+CRF)。對(duì)于膨脹卷積神經(jīng)網(wǎng)絡(luò)做了多種對(duì)比實(shí)驗(yàn): (1)使用基本的膨脹卷積神經(jīng)網(wǎng)絡(luò)模型(DCNN)進(jìn)行訓(xùn)練;(2)膨脹卷積神經(jīng)網(wǎng)絡(luò)模型使用條件隨機(jī)場(chǎng)解碼(DCNN+CRF);(3)膨脹卷積神經(jīng)網(wǎng)絡(luò)模型加入殘差結(jié)構(gòu)(DCNN+Res);(4)膨脹卷積神經(jīng)網(wǎng)絡(luò)模型加入殘差結(jié)構(gòu)并使用條件隨機(jī)場(chǎng)解碼(DCNN+Res+CRF)。以上BiLSTM模型和DCNN模型都使用字符和字根的融合特征作為淺層特征層的輸入特征。實(shí)驗(yàn)結(jié)果如表2所示。

表2 分詞模型評(píng)價(jià)指標(biāo)對(duì)比

續(xù)表
本文比較了各個(gè)模型的處理速度。在每個(gè)數(shù)據(jù)集中,以其中速度最慢的為1.0,其他模型的速度是與速度最慢的比值。實(shí)驗(yàn)結(jié)果如表3所示。

表3 分詞模型在Bakeoff2005數(shù)據(jù)上處理速度
本文將DCNN模型與近年來(lái)中文分詞神經(jīng)網(wǎng)絡(luò)模型做對(duì)比。實(shí)驗(yàn)結(jié)果如表4所示。

表4 與其他模型對(duì)比

續(xù)表
主要參數(shù)設(shè)置如表5所示。字根向量和字符向量采用隨機(jī)初始化的方式,向量維度都設(shè)置為100。對(duì)于淺層特征輸入和神經(jīng)網(wǎng)絡(luò)中每個(gè)模塊輸出都使用dropout,且設(shè)為0.15。優(yōu)化算法使用Adam對(duì)模型進(jìn)行優(yōu)化,初始學(xué)習(xí)率設(shè)為0.001,并以1.0的速度進(jìn)行衰減。卷積層數(shù)為4。梯度裁剪參數(shù)為5。設(shè)置每個(gè)batch為128,迭代100輪次。

表5 參數(shù)設(shè)置
3.3.1F1值結(jié)果分析
為了驗(yàn)證條件隨機(jī)場(chǎng)(CRF)的影響,本文在每個(gè)模型解碼的時(shí)候都分別使用了貪婪算法和條件隨機(jī)場(chǎng)兩種解碼方式。以表2中PKU數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果為例,BiLSTM+CRF比BiLSTM提高了0.89%,DCNN+CRF比DCNN提高了0.10%,DCNN+Res+CRF比DCNN+Res提高了0.08%。通過對(duì)比可以發(fā)現(xiàn),條件隨機(jī)場(chǎng)解碼確實(shí)能夠提高模型分詞結(jié)果,而且對(duì)于BiLSTM模型的影響較大,對(duì)于DCNN模型提高的較少。MSR、CITYU、AS三個(gè)數(shù)據(jù)集也出現(xiàn)同樣的現(xiàn)象。表明條件隨機(jī)場(chǎng)考慮到前后字符之間的相互關(guān)系進(jìn)行全局搜索時(shí),與BiLSTM這種與時(shí)間序列模型相關(guān)性更大。
為了驗(yàn)證DCNN模型的效果。將DCNN模型與BiLSTM模型的實(shí)驗(yàn)結(jié)果做對(duì)比。以表2中PKU數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果為例,DCNN模型比 BiLSTM 模型提高了1.26%,DCNN+CRF模型比BiLSTM+CRF模型提高了0.47%,DCNN模型比BiLSTM+CRF提高了0.37%。在MSR、CITYU、AS三個(gè)數(shù)據(jù)集中,DCNN(+CRF)模型的F1值也要高于BiLSTM(+CRF)模型。而且DCNN模型在不使用CRF情況下,其F1值已經(jīng)能夠達(dá)到與BiLSTM+CRF模型相同的效果,甚至要更好些。說明DCNN模型在處理中文分詞中有很好的優(yōu)勢(shì)。
為了驗(yàn)證殘差結(jié)構(gòu)的效果。將DCNN+Res模型與BiLSTM模型和DCNN模型的實(shí)驗(yàn)結(jié)果做對(duì)比。以表2中PKU數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果為例,DCNN+Res模型比BiLSTM模型提高了1.36%,DCNN+Res+CRF模型比BiLSTM+CRF模型提高了0.47%。DCNN+Res模型比DCNN模型提高了0.05%,DCNN+Res+CRF模型比DCNN+CRF模型提高了0.04%。加入殘差結(jié)構(gòu)后DCNN模型的實(shí)驗(yàn)結(jié)果有一定的提高。
3.3.2 模型速度分析
以表3中PKU數(shù)據(jù)集的實(shí)驗(yàn)速度為例,DCNN模型的速度約是BiLSTM模型的2.5倍,DCNN+CRF模型的速度是BiLSTM+CRF模型的兩倍,DCNN+Res(+CRF)和DCNN(+CRF)速度相差不大。DCNN模型整體要比BiLSTM模型速度要快。每個(gè)模型在使用CRF解碼時(shí),速度變慢許多。在MSR、CITYU、AS三個(gè)數(shù)據(jù)集中,實(shí)驗(yàn)速度的結(jié)果分析和PKU數(shù)據(jù)集中的實(shí)驗(yàn)結(jié)果相同。說明DCNN在處理速度上具有很大優(yōu)勢(shì)。
綜合表2和表3分析。DCNN模型F1值比BiLSTM模型好,處理速度更快。DCNN模型不使用CRF情況下與BiLSTM+CRF模型的F1值相差不大,處理速度卻約是BiLSTM+CRF模型的3倍。而加入殘差結(jié)構(gòu)后,DCNN+Res模型的F1值和速度都要比BiLSTM+CRF模型好。通過分析比較,DCNN模型在F1值和速度上都取得更好的效果。
3.3.3 與其他模型對(duì)比分析
表4列出與其他模型的對(duì)比。比較對(duì)象為Chen擴(kuò)展的LSTM模型,Xu的GRNN改進(jìn)模型,Zhang的基于詞的轉(zhuǎn)移模型模型,Chen的對(duì)抗神經(jīng)網(wǎng)絡(luò)模型,Cai的句子切分模型,Yang的Lattice LSTM模型,Gong的LSTM轉(zhuǎn)換模型,Zhang的LSTM聯(lián)合學(xué)習(xí)模型。
由表4可知,DCNN模型與近年來(lái)深度學(xué)習(xí)中文分詞模型相比中取得不錯(cuò)的結(jié)果。PKU數(shù)據(jù)集和CITYU數(shù)據(jù)集略好與其他模型結(jié)果,比Gong提高了0.1%。MSR數(shù)據(jù)集上結(jié)果略差些。AS數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果得到了很好的提高,比Gong提高了2.1%。
本文工作主要有以下幾點(diǎn): (1)針對(duì)自然語(yǔ)言處理中的中文分詞任務(wù),使用膨脹卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行分詞;(2)使用字根特征來(lái)豐富輸入特征,能夠更好地理解文本語(yǔ)義信息;(3)將殘差結(jié)構(gòu)加入神經(jīng)網(wǎng)絡(luò)中,有效緩解了神經(jīng)網(wǎng)絡(luò)中梯度消失的問題;(4)在訓(xùn)練時(shí)使用模塊化方法,并優(yōu)化模塊中平均損失。實(shí)驗(yàn)結(jié)果表明本文使用的DCNN神經(jīng)網(wǎng)絡(luò)的方法相比于傳統(tǒng)的BiLSTM模型能夠提高分詞的結(jié)果,并且能夠大幅度提高分詞的速度。
本文使用的膨脹卷積神經(jīng)網(wǎng)絡(luò)雖然能夠?qū)χ形姆衷~結(jié)果進(jìn)行有效的改善,但還有進(jìn)一步改進(jìn)的空間。在實(shí)驗(yàn)中發(fā)現(xiàn),CRF解碼方式嚴(yán)重影響中文分詞的速度,后續(xù)工作將尋找更高效的解碼方式來(lái)優(yōu)化。