林頌凱,毛存禮,余正濤,郭劍毅,王紅斌,張家富
(昆明理工大學 信息工程與自動化學院,云南 昆明 650500)

近年來,深度學習在語音、圖像方面取得顯著的成效[13-14],在自然語言處理任務中也得到了很好的應用[15-23],如Collobert等人[15]提出一種基于神經元語言模型的深度網絡模型,用于詞性標注、語塊分析、實體識別的任務時能取到較好的效果。劉等人[16]使用字、詞級別詞向量作為初始特征,使用卷積神經網絡抽取微博句子特征進行情感分析。吳等人[17]使用深度表示學習和高斯過程知識遷移學習的方法來進行情感分析,克服樣本偏置與領域依賴的問題。來等人[18]使用神經網絡解決在中文分詞時人工構建特征繁瑣,特征還需要長時間驗證的問題。Chen等人[19]提出一種帶有自適應門結構的遞歸神經網絡(gated recursive neural network,GRNN)來抽取n-gram特征。Xu等人[20]將Chen等人提出的GRNN融合到長短期記憶網絡(long short term memory neural networks,LSTM)中,利用LSTM提取上下文信息,將提取到的上下文信息用GRNN網絡融合起來,利用融合后的上下文信息,作為分類依據。Zhang等人[21]提出將傳統提取特征和神經網絡自動提取特征過程結合起來,通過融合兩種特征,分詞效果得到提升。Cai等人[22]提出在分詞過程中,不使用窗口滑動取得上下文信息的方式,而是采用直接對分詞句子建模,消除了滑動窗口帶來的局限性,直接獲得該句子的全部信息。隨后,Cai等人[23]對文獻[22]的模型進行簡化,調整神經網絡中的更新策略,提出了一種基于詞的貪心算法,使中文分詞效果進一步提高。
由于深度學習模型能通過多個層次的逐層訓練將原始特征進行多次非線性變換,自動獲取最穩定的特征用于模型訓練。針對緬甸語構詞特點及音節組合特點,本文提出一種基于卷積神經網絡的緬甸語分詞方法,首先將緬語音節結構特征應用于緬語音節詞向量特征分布式表示,然后基于卷積神經網絡將音節及其上下文的特征進行融合,得到有效的特征表示,并通過深層網絡的逐層特征優化自動學習到緬語分詞的有效特征向量,最后利用softmax分類器來對構成緬語詞匯的音節序列標記進行預測。實驗結果表明,本文方法在訓練樣本稀缺的情況下,效果明顯優于基于規則的緬語分詞方法和基于統計的緬語分詞方法。
在緬語構詞上,音節是緬語詞語的最小單位,音節則由輔音和元音字符構成。緬語有33個輔音字母、8個元音字母(包括獨立元音和依附元音)、2個音調標記、11個中間輔音、1個Asat、10個數字、5個縮寫音節和2個標點符號。緬甸語文本字符分為12類,每一類定義了一個類名,表1給出了類名的解釋和對應的緬語字符集Unicode編碼。


表1 緬語字符分類及編碼
Syllble::=C{M}{V}{F}|C{M}V+A|C{M}{V}CA[F]|E[CA][F]|I|D

表2 緬語音節結構序列

圖1 緬語分詞架構
本文架構模型的基本思路是,首先將緬語音節結構特征應用于緬語音節詞向量特征分布式表示,然后基于卷積神經網絡將音節及其上下文的特征進行融合得到有效的特征表示,并通過深層網絡的逐層特征優化自動學習到緬語分詞的有效特征向量,最后利用softmax分類器來對構成緬語詞匯的音節序列標記進行預測,模型架構如圖1所示。因此,在網絡輸入層要以緬語音節序列作為初始輸入,在音節特征表示層分別將緬語音節序列及音節結構特征對應的巴克斯范式表征為相應的word embedding向量后再進行融合,得到具有語言知識的緬語音節word embedding向量,然后通過卷積層提取輸入序列中音節上下文特征后,通過非線性變換對獲取到的特征向量進行進一步優化,得到更有效的特征向量表示,最后在網絡的輸出層對一個緬語音節出現在緬語詞匯中的位置概率進行預測。
2.2.1音節特征向量
傳統的詞向量表示方法,通常將詞匯表示為one-hot向量形式,該方法是將每個詞表征成長度為N(語料中詞典大小)的向量,其中只有一個維度的值為1,其他維度都為0,這個維度就代表當前的詞。然而,這種詞向量表征方法存在的問題是出現嚴重的數據稀疏,并且丟失了詞語間的語義關系。深度學習在自然語言處理方面的優勢還在于能夠對詞匯進行更深層次抽象,將詞匯表征成一個高密度的低維實數向量,能有效避免傳統的one-hot形式的向量表示方法出現的數據稀疏問題,并且能很好地表征詞語之間的詞法、句法和語義信息。如Collobert等人[15]提出的基于神經元語言模型自動學習詞匯的Word Embedding向量化表示方法,其核心思想是一個詞包含的語義應該由該詞周圍的詞決定。該方法能夠將適合出現在窗口中間位置的詞聚合在一起,而將不適合出現在這個位置的詞分離開來,從而將語法或詞性相似的詞映射到向量空間中相近的位置。Mikolov等人[24]提出了一種使用周圍詞來預測中間詞的連續詞袋模型(CBOW),該模型的核心思想是將輸入層相鄰的詞向量直接相加得到隱層,并用隱層預測中間詞的概率,這種方法的優點是周圍詞的位置不會影響預測的結果。Mikolov等人[24]還提出了一種連續skip-gram模型來表征詞向量,該模型與CBOW的預測方式正好相反,是通過中間詞來預測周圍詞的概率。本文采用Collobert[15]提出的詞向量表示方法將每一個緬甸語音節進行向量化表示作為模型初始化輸入,通過執行矩陣查找操作將文本窗口中輸入的每個緬語音節轉換成對應的音節embedding向量。
2.2.2緬語音節結構特征向量
2.2.3融合音節結構知識的特征向量
由于緬甸語屬于資源稀缺性語言,為了回避緬語音節訓練語料規模小導致影響深層模型訓練效果,我們提出將表征緬語音節結構知識的向量表征與表征緬語音節本身的向量進行融合,以便得到具有語言知識的音節特征分布表示。為此,我們將輸入序列的窗口大小設為5,緬甸語的分詞可以定義為: 在一個句子中挑選一個音節,選取該音節的音節向量s3,該音節的前兩個音節的音節向量s1、s2及該音節的后兩個音節的音節向量s4、s5。將s1、s2、s3、s4、s5首尾連接組成一個長向量S;同時將這五個詞的知識向量收尾相連,組成另一個長向量F;將這兩個向量融合,使具有外部知識的音節向量作為卷積神經網絡的輸入進行學習特征。如果該音節的音節向量s3為句子的第一個音節,則s1、s2需要添加0向量作為補充;如果該音節的音節向量s3為句子的最后一個音節,則s3、s4需要添加1向量作為補充,使輸入向量完整。將訓練好的音節向量和音節結構知識直接融合,記為SF向量,使用音節向量和音節結構知識向量一同表示目標音節,使音節具有音節結構知識,使輸入序列具有更多的緬甸語信息,提高分詞正確率。
由于卷積神經網絡能夠有效地獲取詞匯的上下文特征,進而得到更有效的詞匯特征表示。但對于自然語言處理的任務來說,輸入不是一個圖像的像素,而是用矩陣表示的句子或文檔。對目標矩陣進行卷積操作,可以獲得每個局部的特征向量,再將特征向量進一步組合,可以得到目標矩陣的特征向量。在本文緬語文本分詞任務的網絡中,目標矩陣每一行表示或一個SF向量。向量的表示方法可以通過在一個窗口中的組合來獲得音節的上下文信息,組合成新的X矩陣[SF1?SF2?SF3?SF4?SF5],其中?是級聯運算符,可以獲得音節的前后音節組合信息,還可以獲得音節結構知識的前后組合信息。為了預測目標SF3的分類,在計算機視覺使用卷積網絡時,濾波器每次只對圖像的一小塊區域進行運算,但應用于自然語言處理中濾波器通常覆蓋文本的上下幾行網絡結構,如圖2所示。借鑒Zeng等人[25]的方法,我們的卷積操作包括一個濾波器W,濾波器使n個SF向量產生一個新的特征Z,如式(1)所示。
Z=WjXi
(1)
其中Xi為第i個輸入矩陣,也就是第i個實例。Wj為卷積操作的第j個濾波器,是一個線性變換矩陣,1≤j≤30。我們可以看到,在提取緬語特征的過程中,僅使用一個濾波器Wj提取特征,大大減少了在學習過程中參數過多的問題,這也是用卷積神經網絡作為特征提取的一大優勢。在經過濾波器W之后,就會得到一個相應的特征輸出Z。為了獲取特征向量Z中最有用的信息,我們對Z進行max-pooling操作[25],如式(2)所示。
ms=max(Zs),0≤s≤j
(2)

圖2 卷積層獲取緬語音節上下文特征
上述音節特征向量m自動合成線性向量T={m1,m2,…,mj}。為了學習更復雜的特征,我們設計了一個非線性層并選擇修正線性函數(rectified linear function,ReL)作為激活函數。在緬語音節訓練過程中發現,在隨機初始的網絡權重過大的情況下使用sigmoid函數會導致網絡訓練不穩定,但使用ReL激活函數可以有效避免權值過大或過小對網絡訓練的影響。激活函數可以寫為式(3)。
g=max(0,WyT)
(3)
Wy為線性轉換方程,將向量T映射到隱層layer1上,使用ReL激活函數得到g,這里g表示更高層次的緬語音節特征。
為了推算每個輸入緬語音節向量矩陣X在詞匯中的位置信息,將得到的特征g輸入到softmax中來預測其位置信息[25],softmax的預測輸出,如式(4)所示。
o=Wpg
(4)
Wp為線性轉換方程,將向量g映射到輸出層,每一個輸出o為輸入緬語音節向量矩陣X的位置的“得分”,o的預測種類有四種,分別為: B,該音節位于詞匯的開始位置;M,該音節位于詞匯的中間位置;E,該音節位于詞匯的結尾位置;S,該音節可以單獨形成詞匯。每個得分可以通過softmax操作解釋為該音節屬于某位置的概率。例如,在實驗中,該緬語音節“”,在標記語料中為緬語詞匯開始部分,則對應B的值為1,其他位置為0。在經過神經網絡預測時,該音節屬于標簽B的概率約為83%,屬于標簽M的概率約為9%,屬于標簽E的概率約為5%,屬于標簽S的概率約為3%,所以就可以判斷該音節緬語“”為標簽B,也就是屬于詞匯的開始部分。
緬語音節序列標記識別任務目標是預測輸入向量X在緬語詞匯中的位置,位置信息取決于參數θ=(X,Wj,Wy,Wp)。本文將每個輸入的向量矩陣看作是相互獨立的,對于一個輸入向量x,x通過網絡預測得到輸出向量o,在向量o中,第i個值oi為輸入x在第i個位置的“得分”,這個“得分”可以寫成一個帶標記的條件概率ρ(i|x,θ),通過softmax操作[25]來計算概率如式(5)所示。
(5)
在整個訓練過程中,通過最大化likelyhood[15,25]來訓練本文卷積神經網絡,進而實現預測緬語音節在緬語詞匯中的位置信息,可以將log-likelyhood記為:
(6)
式(6)中,T表示訓練實例,x為輸入向量,y為該輸入向量x的對應標記。使用隨機梯度下降算法來使J(θ)最大化,來估計θ的值,也就是網絡中所有的參數信息。本文中Wj,Wy,Wp為隨機生成,X由具有音節結構知識的音節向量初始化得到。由于這些參數位于網絡的不同層中,因此,我們使用反向傳播算法并通過如下規則來更新所有參數信息θ,如式(7)所示。
(7)
為驗證本文提出的(CNN_ES)緬語分詞方法的效果,分別設置了三個對比實驗。
實驗1對比了本文提出的緬甸語分詞方法與基于音節最大匹配(S_Max)、將字典融入無監督生成模型(I_D_Model)傳統緬語分詞方法。
實驗2本文方法與其他深度神經網絡(BP神經網絡,卷積神經網絡CNN,RNN語言模型)進行對比。
實驗3驗證不同因子對深度神經網絡的影響,用緬甸語字符替換音節向量進行輸入,和本文方法(CNN_ES)進行對比。
實驗4驗證不同窗口大小對實驗結果的影響。
實驗5對比不同規模的訓練語料對實驗結果的影響。
其中,_ES表示以融合音節結構特征的緬語音節Embedding向量作為CNN模型的輸入。
實驗中我們嚴格按照標準評價指標,統計了各種方法的準確率P和召回率R,在這兩個指標的基礎上,把F1值作為衡量所提方法的最終評測指標。準確率、召回率以及F1值的公式如式(8)~(10)所示。
(8)
(9)
(10)
緬甸語屬于稀缺資源,目前還沒有公開的緬甸語分詞語料數據集。為驗證所提方法的有效性,我們從新華社緬文版新聞網站上爬取緬語新聞文本數據,對網頁預處理得到不含網頁標簽和圖片的文本后,利用緬甸陽光計算機學院(UCSY)的在線緬語文本分詞工具*http://www.nlpresearch-ucsy.edu.mm/NLP_UCSY/wsandpos.html對爬取的緬語文本數據進行切分,然后通過人工校對后得到40萬規模的緬語分詞語料數據集,以下實驗都是以此數據集作為訓練語料進行訓練。我們從中隨機挑選39.95萬分詞語料構成分詞訓練集,剩下的500個詞構成測試語料集,如表3所示。在構建的分詞語料庫的基礎上,我們進一步對詞匯進行音節切分。

表3 語料規模
我們的實驗使用開源Python工具Gensim訓練向量,訓練神經網絡的參數如表4所示。
(1) 現有的緬語分詞方法與本文方法實驗結果比較
對比了本文提出的緬甸語分詞方法CNN_ES與緬甸語分詞方法: 基于音節最大匹配(S_Max)[8]、語言生成模型(L_M)[26]、將字典融入無監督生成模型(I_D_Model)[26]、基于字典匹配模型(Dictionary)[27]、SVM[12]和CRF++[12]模型實驗結果如表5所示。

表4 參數設置

表5 不同分詞方法的實驗結果
從表5可以看出,通過查找準備的字典并匹配最長的子字符串來獲得最大匹配的方法(S_Max)正確率較低,主要由于緬甸語訓練語料的稀缺,在訓練過程中無法人工窮盡所有的語言特點,和在與字典匹配過程中出現歧義的問題無法解決。語言生成模型(L_M)分詞質量嚴重依賴于語料的質量,實驗結果說明對于語料中出現次數較低的詞效果不好。將字典融入無監督生成模型(I_D_Model),模型的生成過程與多個字典進行競爭生成,該方法在字典匹配的基礎上,使用無監督的生成數據模型,提高了正確率,但還是無法保證在語料稀缺情況下字典生成的質量,而字典的質量會影響分詞的結果。SVM、CRF++模型分詞效果高于基于字典匹配的方法,SVM模型在訓練過程中并未考慮音節的前后文信息,正確率較CRF++模型低。卷積神經網絡(CNN)由于能夠很好地利用音節的上下文特征,在訓練語料規模不夠大的情況下效果優于其他機器學習的方法。本文方法(CNN_ES)在CNN深層網絡中訓練緬語音節Word Embedding向量融合了緬語音節結構特征,分詞效果明顯提高,可見在深層網絡中有效利用緬語的語言知識及音節的上下文特征能有效提高緬語的分詞效果。對比傳統基于字典匹配的緬甸語分詞方法,本文方法(CNN_ES)刪去人工構造特征字典的這一過程,讓CNN_ES自動提取輸入特征向量的規則不僅可以大大減少工作量,同時也可以避免在語料稀缺情況下總結出的特征字典質量不高而使分詞質量下降的問題。機器學習、深度學習的緬甸語分詞方法都依賴于語料庫的大小,對于未覆蓋的緬語不能很好地處理,本文方法(CNN_ES)將音節結構知識向量融合到音節向量中,當音節向量失效時(見到未覆蓋詞,將音節向量標記為全0向量),本文方法(CNN_ES)還可以通過音節結構知識向量對該音節進行進一步判斷。
(2) 不同神經網絡模型用于緬語分詞的效果比較
從表6可以看出,在相同數據量的情況下BP神經網絡學習速度較慢,主要是由于相鄰層神經元進行兩兩連接,數據傳遞和更新需要大量的時間。BP網絡每層的神經元并沒有直接相連,對于預測音節的前后音節沒有很好的關聯,導致預測的正確率偏低,而且訓練速度也快于其他深度神經網絡。遞歸神經網絡(RNN)語言生成模型,在訓練語料規模不夠大的情況下,可以模擬出緬甸語音節的組合的大部分規則,但對于出現次數不高的音節組合樣本,其規則會被出現頻率高的組合所覆蓋;訓練遞歸神經網絡(RNN)語言時,會隨著訓練樣本的輸入反向傳播出現梯度消失等問題,對于緬語分詞訓練,RNN模型構建相對復雜,訓練時間也相對較長,對于語料資源稀缺的緬甸語,RNN模型并不適用。本文方法(CNN_ES)繼承了CNN網絡訓練參數少、速度快及模型構建簡單的優勢,由于網絡輸入的為音節特征向量和音節結構知識向量的融合向量,豐富了緬語音節的特征,使網絡提取到更多的特征,提高了緬語分詞的正確率。

表6 不同神經網絡類型的實驗結果
(3) CNN網絡中分別以緬語字符和音節作為初始輸入對緬語分詞結果的影響
緬語的最小構詞粒度是音節,不是字符。為驗證緬語不同構詞粒度對分詞結果的影響,我們在CNN網絡的輸入層分別訓練基于緬語字符的Character Embedding向量和基于音節的word embedding向量作為初始輸入,實驗結果如表7所示。從表7可以看出,基于字符的方法效果遠低于基于音節的方法,這主要是由于緬語基本字符只有160個,不能表現出像緬語音節一樣豐富的特征,訓練出的字符向量并不能很好地區分每個字符,并且由于降低了輸入的粒子級別,使低質量的語料劇增,網絡訓練所需時間增加一倍,網絡也不容易收斂。可見,對于緬語這種字符較少的語言,使用其豐富的音節組合信息可以獲得更多的有效特征。

表7 網絡輸入層不同切分粒度對分詞結果的影響
(4) 不同窗口大小對實驗結果的影響
本實驗對比了輸入序列窗口分別為3、5、7、9三種情況下分詞效果,如表8所示。

表8 不同窗口大小對實驗效果的影響
從表8可以看出,窗口大小的選擇也會影響分詞的效果,在緬語常用語中,緬語詞所包含的音節大多為2~5個,當窗口為5時實驗效果最好,不僅可以避免當前音節對上下音節依賴的不足,還可以規避過長的窗口造成音節特征冗余。因此本文實驗中音節窗口設置為5。
(5) 不同規模的訓練語料對實驗結果的影響
為了驗證緬語音節結構知識特征對音節Word Embedding向量表征效果的影響,我們通過不同規模的訓練語料進行了對比試驗,P_CNN表示在不同語料規模下卷積神經網絡CNN分詞的正確率,P_CNN_ES表示在不同語料規模下本文方法(CNN_ES)分詞的正確率,結果如表9所示。

表9 不同規模的訓練語料對實驗結果的影響
從表9可以看出,語料較少時,本文方法(CNN ES)融合了音節結構知識,可以在神經網絡訓練時提供更多的特征。與卷積神經網絡CNN相比,該方法使分詞的正確率有一定提高。當語料從10萬增加到20萬時,緬語分詞的準確率有明顯提高,主要原因是補充了小規模語料情況下特征覆蓋不全的問題,導致深層網絡無法學習到更多特征,同時本文方法在正確率提升速度方面高于CNN網絡,融合了音節結構知識向量的表征方法,在相同語料的情況下,能提供更多的特殊的用于神經網絡的學習。將語料大小從30萬提升到40萬時,CNN_ES分詞準確率僅提升了近1個百分點。可見,在緬語音節詞向量表示中融合語言知識特征,能有效彌補資源稀缺對緬語分詞性能的影響。
針對緬甸語分詞面臨訓練語料資源稀缺的問題,本文提出一種基于卷積神經網絡的緬甸語分詞方法,將緬語音節結構特征融合到緬語音節的深層特征表示中,并利用卷積神經網絡學習到音節的上下文特征,通過深層網絡的逐層特征優化自動學習到緬語分詞的有效特征向量表示。實驗結果表明,該文提出的方法在訓練樣本稀缺的情況下,效果明顯優于基于規則的緬語分詞方法和基于統計的緬語分詞方法。下一步將研究如何在緬語音節的Word Embedding向量預訓練中加入正則項約束,以便得到更有效的特征表示來提高緬語分詞的性能。