王文濤,穆曉峰, 王玲霞
(中南民族大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,武漢 430074)
一種基于特征嵌入神經(jīng)網(wǎng)絡(luò)的中文分詞方法
王文濤,穆曉峰, 王玲霞
(中南民族大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,武漢 430074)
針對(duì)傳統(tǒng)基于特征的中文分詞模型中,參數(shù)相對(duì)于訓(xùn)練數(shù)據(jù)過多而難以準(zhǔn)確估計(jì)特征權(quán)值這一問題,提出了一種基于特征嵌入的神經(jīng)網(wǎng)絡(luò)方法.嵌入方法將特征轉(zhuǎn)化為低維實(shí)值向量,能有效降低特征維度.另外,為了增強(qiáng)模型的性能,給出了一種學(xué)習(xí)速率線性衰減方法.研究了正則項(xiàng)的方法來增強(qiáng)模型的泛化能力.實(shí)驗(yàn)表明:文中提出的模型可以提高中文分詞問題的求解效率.
中文分詞;神經(jīng)網(wǎng)絡(luò);特征嵌入
由于詞是最小的能夠獨(dú)立運(yùn)用的語言單位,而中文句子是一串連續(xù)的字符,沒有明顯的分隔符,因此自動(dòng)分詞問題成為了中文自然語言處理的基礎(chǔ)性工作.中文自動(dòng)分詞就是讓計(jì)算機(jī)系統(tǒng)在中文文本中的詞與詞之間自動(dòng)加上分隔符[1].
目前解決中文分詞問題最流行的方法來自文獻(xiàn)[2],其把中文分詞看作序列化標(biāo)注問題.許多前期的工作集中在特征設(shè)計(jì),比如:一元文法特征、二元文法特征等一些其他特征.基于特征的方法是最先進(jìn)的中文分詞系統(tǒng)的支柱.
但是基于特征的方法有兩個(gè)問題:一是需要人工設(shè)置特征,這不僅繁瑣而且準(zhǔn)確度不高;二是由于特征的數(shù)目過大且訓(xùn)練集較小,導(dǎo)致特征的權(quán)重預(yù)測(cè)不準(zhǔn).針對(duì)前一問題,研究人員開始探索采用神經(jīng)網(wǎng)絡(luò)的方法自動(dòng)獲取特征來解決中文分詞問題,見文獻(xiàn)[3,4];針對(duì)后一問題,采用嵌入的方法可以把原始的稀疏化輸入轉(zhuǎn)化為低維實(shí)數(shù)向量.這一方法已經(jīng)被多個(gè)NLP任務(wù)采用.文獻(xiàn)[4]適當(dāng)?shù)馗牧宋墨I(xiàn)[5]的模型,把輸入的原始字符轉(zhuǎn)化為字符向量,通過神經(jīng)網(wǎng)絡(luò)的訓(xùn)練可以得到最終的字符向量.文獻(xiàn)[6]采用張量神經(jīng)網(wǎng)絡(luò)進(jìn)行分詞,其在文獻(xiàn)[4]的基礎(chǔ)上加入了當(dāng)前預(yù)測(cè)字符的前一個(gè)字符的狀態(tài)作為特征.
本文不同于文獻(xiàn)[3,4,6]對(duì)字符學(xué)習(xí)字符向量,而立足于特征,對(duì)其進(jìn)行學(xué)習(xí).傳統(tǒng)方法中特征數(shù)目過多而難以學(xué)習(xí),本文開始抽取11個(gè)特征,期望最終學(xué)習(xí)到的特征向量不僅包含了這11個(gè)特征,同時(shí)也包含了這些特征之間的交互作用.
本文提出了一種基于特征嵌入的神經(jīng)網(wǎng)絡(luò)方法解決中文分詞問題,神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示.
1.1 序列標(biāo)注描述
我們采用文獻(xiàn)[7]的方法對(duì)一個(gè)給定序列進(jìn)行標(biāo)注.使用分隔符S和合并符C來表示字符的狀態(tài).其中分隔符代表與前一個(gè)字符是分開的,合并符代表與前一個(gè)字符是鏈接的,舉例如下.
(a) 我愛北京天安門
(b) 我 愛 北京 天安門
(c) SSSCSCC
以上(c)行就代表(a)行原始字符序列的狀態(tài).通過(a)行的字符序列和(c)行的狀態(tài)序列就能得出(b)行的字符分隔序列.
1.2 特征描述
輸入:輸入為一串未分隔的原始字符序列,我們通過下面的特征定義提取其相應(yīng)的特征.
(1) 上下文特征.本文采用窗口數(shù)為5,ci代表第i個(gè)字符為當(dāng)前正在處理的字符,h代表窗口大小,其為當(dāng)前正在處理的字符加入前h/2和后h/2個(gè)字符.例如,“我愛北京天安門”,當(dāng)前正在處理的字符為“北”,則整個(gè)窗口的字符序列為“我愛北京天”,其一元文法為:我,愛,北,京,天,二元文法為:我愛,愛北,北京,京天.
(2) 歷史特征.在本文的模型中,我們采用當(dāng)前字符的前兩個(gè)字符的狀態(tài)作為歷史數(shù)據(jù).例如,當(dāng)前需要處理的字符是“我愛北京天安門”中的天,其前兩個(gè)字符是北京,狀態(tài)為S和C.
1.3 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
1.3.1 查找表
這里采用分布式表示的方法來表示特征,其把單個(gè)的漢字字符轉(zhuǎn)換為低維的實(shí)向量.最先是由文獻(xiàn)[8]提出并隨之成為一研究熱點(diǎn).查找表形式化描述如下:有一中文特征庫D,其大小為|D|,其由訓(xùn)練集所有上文提及的特征構(gòu)成并加入一特殊特征OOV(out of vocabulary),其表示并不出現(xiàn)在D中的字符.
在窗口內(nèi)獲取一元文法和二元文法,并獲取歷史特征,之后經(jīng)過查找表的查找轉(zhuǎn)換為特征向量,Embed(c)∈Rd,Embed代表查表操作符,輸入特征c,c∈D,返回其特征向量,d代表特征向量的維數(shù),特征向量表M∈Rd·|D|.具體流程見圖1特征轉(zhuǎn)換至特征向量層.
1.3.2 神經(jīng)網(wǎng)絡(luò)其他部分
神經(jīng)網(wǎng)絡(luò)第一層如圖1所示,把查找得到的特征連接到一起,作為神經(jīng)網(wǎng)絡(luò)的第一層輸出,a1∈Rd×k,k為特征的個(gè)數(shù).之后,a1作為輸出進(jìn)入神經(jīng)網(wǎng)絡(luò)的第二層,其經(jīng)過激活函數(shù)為sigmoid,如下:
a2=sigmoid(W1a1+b1).
(1)
W1∈Rh2×h1,h2為第二層的單元數(shù),h1為第一層的單元數(shù)即a1的維度.為了得到當(dāng)前字符狀態(tài)是S或C的概率,神經(jīng)網(wǎng)絡(luò)的第三層有兩個(gè)單元,激活函數(shù)采用softmax,如下:
a3=softmax(W2a2).
(2)
W2∈Rh3×h2,h3為第三層的單元數(shù)即為2,h2為第二層的單元數(shù).
1.4 模型的訓(xùn)練與預(yù)測(cè)
1.4.1 句子預(yù)處理
本模型每次處理一個(gè)句子,之后對(duì)每個(gè)句子從頭到尾逐字符進(jìn)行訓(xùn)練與預(yù)測(cè).因句子的第一個(gè)字符前沒有字符,而本模型每次訓(xùn)練和預(yù)測(cè)都需要當(dāng)前待處理字符的前兩個(gè)字符狀態(tài)作為歷史特征,故對(duì)每一個(gè)句子的起始位置前加入兩個(gè)啞字符,其狀態(tài)為S.
1.4.2 預(yù)測(cè)
對(duì)每個(gè)句子,從左至右依次對(duì)每個(gè)字符進(jìn)行預(yù)測(cè).預(yù)測(cè)過程如下:取當(dāng)前預(yù)測(cè)的字符的特征信息,輸入至神經(jīng)網(wǎng)絡(luò)中,如圖1所示,最終由神經(jīng)網(wǎng)絡(luò)的輸出層輸出結(jié)果.
本模型第三層有兩個(gè)神經(jīng)元,分別代表狀態(tài)S和狀態(tài)C,歸一化后概率和為1,那么這兩個(gè)神經(jīng)元若其一大于0.5,即把當(dāng)前字符設(shè)置為該狀態(tài).
1.4.3 訓(xùn)練
訓(xùn)練過程如下:對(duì)某一個(gè)字符進(jìn)行預(yù)測(cè),之后通過預(yù)測(cè)的狀態(tài)與樣本正確的狀態(tài)進(jìn)行對(duì)比,進(jìn)而訓(xùn)練模型.這里我們采用交叉熵?fù)p失函數(shù):
(3)
(4)
(5)
參數(shù)θ={M,W1,W2,b1},注意到我們的模型不僅對(duì)神經(jīng)網(wǎng)絡(luò)的權(quán)值進(jìn)行訓(xùn)練,同時(shí)對(duì)特征向量進(jìn)行訓(xùn)練,這種訓(xùn)練方式類似于文獻(xiàn)[9],α為模型學(xué)習(xí)速率,?J/?θ為損失函數(shù)的梯度見(6)式,?J/?a1見(7)式:
(6)
(7)
其中a1是M中的元素,z1=W1a1+b1,z2=W2a2.訓(xùn)練算法描述如下.
輸入:訓(xùn)練語料庫corpus,已初始化的權(quán)值Θ,學(xué)習(xí)速率α.
輸出:訓(xùn)練后的權(quán)值Θ.
步驟:
Forsentenceincorpus:
Forwordinsentence:
//s′如(4)式所示
s′=predict(word)
Θ=Θ-α·?J/?Θ
End For
End For
2.1 數(shù)據(jù)及評(píng)測(cè)度量
在實(shí)驗(yàn)中,我們采用廣泛使用的分詞語料庫PKU語料庫[10].表1為其詳情,我們使用其官方提供的評(píng)分腳本對(duì)本模型進(jìn)行評(píng)估.
表1 PKU語料庫Tab.1 PKU corpus
參數(shù)設(shè)置如下:通常來說,隱含層的單元數(shù)目對(duì)模型的性能是有影響的,文獻(xiàn)[11]指出,隱含層單元數(shù)目越多越能捕獲數(shù)據(jù)的非線性因素;反之,模型整體會(huì)受影響.值得注意的是,隱含層單元數(shù)目過多有兩點(diǎn)影響:模型訓(xùn)練速度過慢;模型捕獲其他不相關(guān)的特征,導(dǎo)致模型過擬合.綜合考慮,本文設(shè)置隱含層單元數(shù)目為50.另外,通過實(shí)驗(yàn)發(fā)現(xiàn):本模型特征向量的維度取50既能保證模型的性能,同時(shí)訓(xùn)練速度不至于過慢.訓(xùn)練的特征個(gè)數(shù)為11個(gè):一元文法特征5個(gè)、二元文法特征4個(gè)、字符狀態(tài)特征2個(gè).采用兩種方法設(shè)置學(xué)習(xí)速率α:固定學(xué)習(xí)速率和線性衰減學(xué)習(xí)速率.
本文采用P(Precision)、F值、IV召回率(In Vocabulary Recall)和OOV召回率(Out of Vocabulary Recall)這三種度量方法對(duì)本文模型進(jìn)行評(píng)估.準(zhǔn)確率是正確的分詞數(shù)除以分詞結(jié)果中總詞數(shù).召回率是正確的分詞數(shù)目除以標(biāo)準(zhǔn)數(shù)據(jù)集中的總詞數(shù).
(8)
這里的R指的是IV召回率.OOV召回率主要用來評(píng)測(cè)模型的泛化能力.
2.2 固定學(xué)習(xí)速率實(shí)驗(yàn)
在本實(shí)驗(yàn)中,對(duì)不同的學(xué)習(xí)速率α進(jìn)行研究,結(jié)果見表2.
從表2可以看出,在α為0.1和0.2的情況下,本模型的F值和IV召回率較好.而其他情況下,性能較低.我們推測(cè):α值過小,隨機(jī)梯度下降不能很好地達(dá)到局部最優(yōu)值;而α值較大會(huì)越過局部最優(yōu)值.因此采用固定學(xué)習(xí)速率的模型性能得不到保證.
表 2 不同α的性能Tab.2 The performance of different α
2.3 學(xué)習(xí)速率α線性衰減實(shí)驗(yàn)
基于以上推測(cè),進(jìn)而采用學(xué)習(xí)速率α線性衰減的方法學(xué)習(xí)模型,訓(xùn)練起始時(shí)α較大,迅速達(dá)到較優(yōu)值附近,之后α值變小,進(jìn)行更加精細(xì)的搜索.由此,提出學(xué)習(xí)速率α線性衰減方法:
α=α′-(α′-α″)·(Wp/Wtotal),
(9)
式中α代表當(dāng)前值,α′代表α的最大值,本實(shí)驗(yàn)為其初始值,α″代表α的最小值,本實(shí)驗(yàn)設(shè)置其為0.00001,Wp為已經(jīng)處理字符個(gè)數(shù),Wtotal為總字符個(gè)數(shù).
表2中α為0.1和0.2時(shí)模型的性能最好,為了尋找更好的α,本實(shí)驗(yàn)我們?cè)O(shè)置其初始值從0.08增大至0.21,考察其對(duì)模型性能的影響,結(jié)果見表3.
表3 α線性衰減Tab.3 Linear decay of α
在表3中,可以看出,在α為0.08時(shí),F(xiàn)值為0.883而在表2中為0.769,可見性能得到了顯著提升,其他情況類似.以F值為比較因子來看,表3中α值為0.20的情況下,模型的F值和IV召回率分別為0.897和0.935,分別高于表2中α值為0.10情況下的0.880和0.924.綜上,得出結(jié)論,學(xué)習(xí)速率α線性衰減方法確實(shí)可以改善模型的性能.
2.4 其他模型對(duì)比
使用CRF、TNN、CNN模型作對(duì)比實(shí)驗(yàn),結(jié)果如表4.從表4可以看出:NN(Neural Network)模型在精確率、召回率和F值上優(yōu)于CRF,但是在OOV召回率上性能比較差,這說明我們的模型對(duì)不在訓(xùn)練集里的詞的分詞效果不好,本模型的泛化能力有待加強(qiáng).解決的方法有:1)增加訓(xùn)練集,但是這種方法需要更多的人工標(biāo)注訓(xùn)練集;2)增加正則化項(xiàng),改善模型的泛化能力.
表4 性能細(xì)節(jié)Tab.4 Details of performance
為了說明對(duì)特征向量進(jìn)行訓(xùn)練對(duì)性能的影響,比較了TNN模型,其僅對(duì)權(quán)值進(jìn)行訓(xùn)練.實(shí)驗(yàn)中,在相同條件下,TNN模型收斂速度很慢,而采用我們的模型損失會(huì)迅速降低,在第一輪迭代后,測(cè)試集上的實(shí)驗(yàn)結(jié)果就可以達(dá)到很好的性能,第二輪迭代后,性能指標(biāo)基本穩(wěn)定.表4則是10輪迭代后的TNN性能指標(biāo),其明顯說明采用TNN而不對(duì)特征向量進(jìn)行訓(xùn)練,其性能較差.
在分詞任務(wù)中,語序是一種關(guān)鍵信息.為了說明把特征向量直接連接可以隱含地抓住語序的信息,比較了CNN模型,其把多個(gè)特征映射為一個(gè).在文獻(xiàn)[12]中,作者設(shè)計(jì)了一個(gè)CNN模型解決命名實(shí)體識(shí)別和中文分詞問題,其性能如表4所示,這證明了采用連接的操作是有效的.
為了研究本模型的泛化能力,對(duì)分詞結(jié)果作了分析,發(fā)現(xiàn):一旦出現(xiàn)新的人名、地名、時(shí)間等名詞,本模型就不能很好地處理分詞結(jié)果,導(dǎo)致OOV召回率性能較差,對(duì)此問題及解決方法還需要進(jìn)一步研究.
2.5 正則化
為了改善本模型的泛化能力,對(duì)(3)式增加一正則項(xiàng)見(10)式,Jreg為正則項(xiàng)如(11)式所示,其中λ為正則項(xiàng)系數(shù),權(quán)衡其與J的比重.對(duì)新的損失函數(shù)求梯度,見(12)式:
J′=J+Jreg,
(10)
(11)
(12)
當(dāng)λ為0.000001和0.0000001時(shí),其相關(guān)評(píng)測(cè)數(shù)據(jù)見表5,第3行是不使用正則化模型的評(píng)測(cè)數(shù)據(jù).表5的數(shù)據(jù)說明本模型使用正則的方法并沒有使其達(dá)到更好的性能.在文獻(xiàn)[5]中,無論對(duì)詞級(jí)別的訓(xùn)練還是對(duì)句子級(jí)別的訓(xùn)練,都沒有使用正則項(xiàng),且沒有說明原因.
表5 不同λ的性能Tab.5 The performance of different λ
需要指出的是,當(dāng)λ為0.1, 0.01, 0.001, 0.0001, 0.00001時(shí),sigmoid函數(shù)中的exp函數(shù)均會(huì)溢出.我們發(fā)現(xiàn)當(dāng)實(shí)驗(yàn)處理到第31個(gè)句子時(shí),輸入向量其中某一分量值已為1444,調(diào)用exp函數(shù)后會(huì)溢出.原因是:當(dāng)訓(xùn)練過程中模型的梯度已經(jīng)很小,而權(quán)值W乘以一個(gè)λ反而會(huì)使模型中的權(quán)重變大,如上所述,其值達(dá)到了1444,這也是促使選擇更小的λ的原因.
綜上得出結(jié)論:在本模型中,為了達(dá)到更好的泛化性能,簡(jiǎn)單地增加正則項(xiàng)的方法不適用,需要更加精確的控制方法.
本文提出的基于特征嵌入的神經(jīng)網(wǎng)絡(luò)方法可以有效解決中文分詞問題.同時(shí),訓(xùn)練出了針對(duì)中文分詞的特征向量,在目前涌現(xiàn)的眾多深度學(xué)習(xí)方法都需要同類方法生成的向量作為前置輸入,在未來將對(duì)學(xué)習(xí)到的特征向量進(jìn)行研究.另外,本文提出的學(xué)習(xí)速率α線性衰減方法經(jīng)過實(shí)驗(yàn)證明可有效提高本模型的性能.而針對(duì)模型泛化能力的實(shí)驗(yàn)說明:僅僅增加一正則項(xiàng)的方法不能增加模型的泛化能力.最后,本模型的泛化能力不足,這是下一步研究的重點(diǎn).
[1] 宗成慶.統(tǒng)計(jì)自然語言處理[M].北京: 清華大學(xué)出版社, 2008:129-130.
[2] Xue N.Chinese word segmentation as character tagging[J].中文計(jì)算語言學(xué)期刊, 2003, 8(8:1):29-48.
[3] Mansur M, Pei W, Chang B.Feature-based neural language model and Chinese word segmentation[C]//ACL.IJCNLP 2013: The 6th International Joint Conference on Natural Language Processing.Nagoya: ACL Press,2013: 1271-1277.
[4] Zheng X, Chen H, Xu T.Deep learning for Chinese word segmentation and POS tagging[C]//ACL.Proceedings of the 2013 Conference on Empirical Methods in Natural Language Processing (EMNLP02013).Seattle: ACL Press,2013:647-657.
[5] Collobert R, Weston J, Bottou L, et al.Natural language processing (almost) from scratch[J].Journal of Machine Learning Research, 2011, 12(1):2493-2537.
[6] Pei W, Ge T, Chang B.Max-margin tensor neural network for Chinese word segmentation[C]//ACL.The 52nd Annual Meeting of the Association for Computational Linguistics.Baltimore: ACL Press, 2014: 293-303.
[7] Ma J, Hinrichs E.Accurate linear-time Chinese word segmentation via embedding matching[C]//ACL.The 53rd Annual Meeting of the Association for Computational Linguistics.Beijing: ACL Press, 2015:1733-1743.
[8] Hinton G E.Learning distributed representations of concepts[C]//CSS.Proceedings of the Eighth Annual Conference of the Cognitive Science Society.Mahwah: Lawrence Erlbaum Associates, 1986:1-12.
[9] Mikolov T, Chen K, Corrado G, et al.Efficient estimation of word representations in vector space[OL].(2013-09-07)[2016-12-01].https://arxiv.org/abs/1301.3781.
[10] Emerson T.The second international Chinese word segmentation bakeoff[C]//ACL.Proceedings of the 4th SIGHAN Workshop on Chinese Language Processing.Jeju Island: ACL Press, 2005: 123-133.
[11] Hastie T, Tibshirani R, Friedman J.The elements of statistical learning[M].New York: NY Springer, 2001: 400-401.
[12] Liu Y, Che W, Guo J, et al.Exploring segment representations for neural segmentation models[OL].(2016-04-19)[2016-12-01].https://arxiv.org/abs/1604.05499.
An Approach for Chinese Word Segmentation Based on Feature Embedding Neural Network
WangWentao,MuXiaofeng,WangLingxia
(College of Computer Science, South-Central University for Nationalities, Wuhan 430074, China)
The feature weights are poorly estimated, because the number of parameters is much greater than the limited amount of training data under the traditional Chinese word segmentation model based on feature.To address above problem, this paper proposed an approach based on feature embedding neural network for Chinese word segmentation.The embedding method can reduce the dimensional of features because the model transforms features into low-dimensional real-valued vectors.In addition, in order to enhance performance of the model, we proposed a learning rate linear decay method.Finally, we studied the regularization method to enhance the generalization ability of the model.The experiment results showed that the model can improve the solving efficiency of Chinese word segmentation.
Chinese word segmentation;neural network;feature embedding
2016-07-03
王文濤(1967-),男,副教授,博士,研究方向:計(jì)算機(jī)網(wǎng)絡(luò)與控制,E-mail:wangwt@mail.scuec.edu.cn
國家民委教改項(xiàng)目(15013);中南民族大學(xué)研究生創(chuàng)新基金資助項(xiàng)目(2016sycxjj199)
TP183
A
1672-4321(2017)01-0102-05