唐國豪
(西北工業大學附屬中學,陜西西安,710000)
詞是自然語言處理的最小單位,計算機中無法對詞進行直接處理,因此需要采用數學的方式去表示詞,通常采用的方式是詞向量。常見的詞向量有兩種,分別是獨熱詞向量和分布式詞向量。分布式詞向量表示相比于獨熱表示,具有向量維度小、具有語義相似性的特點。大規模數據訓練得到的詞向量,在各種下游任務如文本分類、文本聚類中表現超越傳統方式,慢慢成為計算機處理自然語言的范式。
Bengio在2003年提出了神經網絡語言模型(Neural Network Language Model),該模型在學習語言模型的同時,得到了詞向量。在對統計語言模型進行研究的背景下,Google公司在2013年開放了word2vec這一款用于訓練詞向量的軟件工具。Word2vec可以根據給定的語料庫,通過優化后的訓練模型快速有效地將一個詞語表達成向量形式,為自然語言處理領域的應用研究提供了新的工具。Tomas Mikolov在2013年提出的兩種訓練詞向量方式CBOW(Continues Bag-of-Words Model)模型和Skip-Gram(Continuous Skip-gram Model)模型,CBOW的主要思想是用詞的上下文預測當前詞,可看作語言模型的神經網絡表示,而Skip-gram模型與CBOW模型訓練方式剛好相反,是通過當前詞預測其上下文。facebook人工智能研究院(AI Research)在2016年開源了fastText,它是一個詞向量與文本分類工具,用簡單而高效的文本分類和表征學習的方法,解決了帶監督的文本分類問題,FastText結合了自然語言處理和機器學習中最成功的理念。
在自然語言處理中,詞是語義理解的最小語言成分。中文分詞是指用技術手段,將漢語中句子拆分成一連串有意義的詞。常見做中文分詞的方式有基于語義的中文分詞、基于匹配的中文分詞和基于概率統計的中文分詞。本文主要介紹基于概率統計的中文分詞方式。
基于統計的分詞方式的基本原理是計算不同切分下組成句子的概率,組成句子概率最大的切分方式即為句子的分詞。這種分詞方法基于一個非常簡單的思想:越合理的句子在現時生活中出現概率越大。若S表示一個句子,其組成方式為S=w1,w2,…,wn,其中n是句子的長度,句子S出現的概率,可以表示成如下:

根據條件概率公式,可將式2-1展開如下:

式(2)中, P (w1) 為詞w1出現的概率, P (w2|w1) 為詞w1出現的條件下詞w2出現的概率,根據條件概率可知,第i(i= 2,3,4,…,n)個詞是否出現與前面i-1個詞均相關。式(2)我們稱之為統計語言模型。
根據式(2),計算出右邊每一項的值,相乘則得到句子出現的概率 P (S)。大樹定理告訴我們:當統計量足夠時,可以近似用頻率近似代替概率。若用#w1表示w1在語料庫中出現的頻數, # (w1,w2,…,wi) 表示(w1,w2,…,wi)同時在語料庫中出現的頻數,#表示語料庫中詞語總數。根據大樹定理,可以按照如下公式計算式(2)中右邊的每一項:

依據二元模型和大樹定理計算不同切分下句子的概率,如果有:

依照統計語言模型分詞思想,A1,A2,…,Ak是最好分詞方法。
句子S的切分方式隨著句子S長度增加而呈指數型增長,采用窮舉的方式計算每種切分方式下的句子的概率會導致計算復雜度過大,在實際應用中難以忍受,當前一般利用維特比算法解決這個問題。
自然語言中詞不能被深度學習算法直接處理,為了深度學習能夠處理詞,需要用數學方式表示詞,詞向量就是詞的一種數學化表示方式。常見的詞向量有兩種,一種是獨熱表示(One-Hot Representation),另外一種是分布式表示(Distribute Representation)。
獨熱表示的詞向量使用一個長度為詞典大小的向量表示一個詞,向量的分量只有該詞在詞庫中索引位置處為1(詞典索引從0開始)其他位置全為0。這種表示有兩個巨大的缺陷:一個是維度災難,表現為向量維度太大(量級大概在百萬左右),占用的時間和空間巨大,特別是應用于深度學習中;另一個是詞匯鴻溝,獨熱表示下任意兩個向量內積為0,空間中表示為兩個向量獨立,語義上表示為兩個詞語義不相關,丟失了詞語之間的相似性。
分布式表示最早由Hinton于1986年提出,是一種低維、稠密和包含語義相似性的詞向量。分布式詞向量語義相似性可由向量距離體現,計算詞向量在語義空間距離可以得到詞向量表示詞之間的語義相似性,表示為空間距離越近則詞語語義越相似。
word2vec中主要用到的是CBOW(Continues Bag-of-Words Model)模型和Skip-Gram(Continuous Skip-gram Model)模型,這兩個模型是是Tomas Mikolov在2013年提出的兩種訓練詞向量方式[3,4]。CBOW的主要思想是用詞的上下文預測當前詞,可看作語言模型的神經網絡表示,而Skip-Gram模型與CBOW模型訓練方式剛好相反,是通過當前詞預測其上下文。 以CBOW模型為例,介紹word2vec訓練的原理,CBOW模型結構如圖1所示。

圖1 CBOW模型結構
CBOW模型是一個三層的神經網絡結構,模型中沒有使用復雜的網絡結構,每層之間均為全連接。輸入層(Input Layer)是之前n-1個詞的獨熱表示向量,每個向量通過矩陣乘法乘以一個維度為的權重矩陣后得到維度為m的向量;映射層(Projection Layer)直接把n個m維向量做平均,得到映射層的輸出;輸出層(Output Layer)包含個神經元,每個神經元對應詞庫中一個詞,通過softmax函數將矩陣乘法結果映射到概率,這個概率表示預測結果為該神經元對應詞的概率。在一個大型的語料庫中,按照上述方式構建網絡的輸入和輸出,通過反向傳播算法,交叉熵損失作為損失函數,以梯度下降方式不斷修正網絡參數。當損失函數收斂時,網絡訓練完成,取出輸入層和映射層之間的權重參數做為預訓練好的詞向量。
fastText是facebook人工智能研究院(AIResearch)在2016年開源的文本表示和文本分類的工具。fastText的主要功能有文本表示、文本分類和模型壓縮,分別在三篇論文中進行了詳細的介紹。總結來說,fastText提供了一套完整的文本分類需要的工具,并且開源了其C++代碼。C++工具包使用非常方便,文檔也非常完善。本文主要使用到的fastText功能是文本表示,相對于Google在2013年提出的word2vec,fastText訓練速度非常快,能夠學習到詞的形狀特征,還能部分解決OOV(Out of Vocablary)問題。
本文實驗使用的操作系統是Ubuntu16.04,中文分詞工具使用的是jieba,詞向量訓練工具是fastText v0.9.1,實驗環境硬件配置如表1所示。

表1 實驗環境配置
本文使用的語料來源于清華大學新聞分類語料庫THUNews,THUNews是根據新浪新聞RSS訂閱頻道2005~2011年間的歷史數據篩選過濾生成,包含83萬篇新聞文檔(3.9 GB),均為UTF-8純文本格式。在原始新浪新聞分類體系的基礎上,重新整合劃分出14個候選分類類別:財經、彩票、房產、股票、家居、教育、科技、社會、時尚、時政、體育、星座、游戲、娛樂。
詞向量表示好壞往往非常難以直接橫向,本文擬采用文本表示下的文本分類效果來衡量系向量好壞。在分類任務中,我們通常用準確率,召回率和F度量值表示文本分類效果。在二分類任務中,準確率(Precision,P)表示在分類器判斷為正樣本的樣本中真實為正樣本的比例,召回率(Recall,R)表示被分類器判斷為正樣本且真實為正樣本的樣本占樣本中所有真實為正樣本的比例。為了更好的描述準確率和召回率,引入混淆矩陣(Confusion Matrix),混淆矩陣定義如表2所示。

表2 混淆矩陣
其中,TP表示將正樣本預測為正樣本的數目,TN表示將負樣本預測為負樣本的數目,FP將負樣本預測成正樣本的數目,FN將正樣本預測為負樣本的數目。根據以上描述,準確率和召回率可以表示為:

詞向量訓練采用的是網上提供的開源工具fastText,fastText是Facebook提供的一個詞向量訓練工具,速度很快,能夠在普通CPU上在幾十分鐘內快速訓練得到詞向量。在(3)中得到的訓練集合中用fastText,采用CBOW模型,訓練詞向量。訓練用時14分鐘,得到一個詞庫大小為277959,向量維度為100維的詞向量,人工檢查發現向量相似性效果較好,如與媽媽最相似的兩個詞分別是“爸爸”和“女兒”;與高興最相似的兩個詞是“更高興”和“開心”。
將數據按照9:1劃分訓練集和測試集,在訓練集合上用構造分類器,用時2分14秒,在測試集合上驗證分類器正確率為94.1%,高于清華大學公開分類器的87%。
本文主要介紹了分布式詞向量。我們首先對基于概率統計的中文分詞進行研究,建立了統計語言模型。然后使用FastText分類工具CBOW模型進行分布式詞向量訓練。確定了實驗環境,使用了清華大學新聞分類語料庫THUNews,明確了評價指標。通過實驗,采用文本表示下的文本分類效果來衡量詞向量表示好壞,實現分布式詞向量的指標評價,并對實驗結果進行分析,人工檢查發現向量相似性效果較好。實驗結果表明,分布式詞向量是一種維度小、含有語義相似性的詞向量。
研究分布式詞向量過程中,我對分布式詞向量的原理和含義有了深入的了解,并且在完成論文中實驗過程中,我掌握了訓練分布式詞向量流程,對其中使用到的數據集和開源工具有了簡單的了解;在科學研究過程方面:我學習到科學研究的一般過程,了解了許多查詢資料的手段。最終,在同學和老師的幫助下,利用開源工具fastText實現了一個版本的詞向量,并且在文本分類任務中檢驗訓練好的詞向量效果,在THUNews數據集上達到94.1%的正確率。