彭俊利,谷 雨,張 震,耿小航
(杭州電子科技大學(xué)通信信息傳輸與融合技術(shù)國防重點學(xué)科實驗室,杭州 310000)
隨著深度學(xué)習(xí)技術(shù)的快速發(fā)展,文檔表示方法已由基于詞頻信息的詞袋模型(Bag-of-Word,BOW)[1-2]逐漸轉(zhuǎn)向基于詞嵌入(Word Embedding)的表示法。詞袋模型將文檔視為多個詞的集合,其不考慮詞的順序和語義等信息,使用與詞集合相同維度的向量來表示文檔,向量中每一維所包含的數(shù)值即為該位置所表示詞的權(quán)重[3-4]。雖然詞袋模型在支持向量機(Support Vector Machine,SVM)、貝葉斯分類器和邏輯回歸分類器中可得到較好效果,但仍存在一些問題[5-6]。當(dāng)數(shù)據(jù)集較大時,采用詞袋模型獲得的文檔向量維度會很高,從而導(dǎo)致維度災(zāi)難,而且文檔中出現(xiàn)的詞語數(shù)量較多,但在表示為高維向量時只有極少數(shù)的維度存在有效權(quán)重[7-8]。例如,文檔中出現(xiàn)1 000個詞,詞向量維度為10萬,但其中僅有1 000 個維度存在有效權(quán)重。此外,詞袋模型僅考慮了詞語的頻次信息,沒有在詞語與上下文之間建立聯(lián)系,導(dǎo)致詞語的語義信息不足,從而無法區(qū)分一詞多義或多詞一義的情況。
以詞嵌入為代表的基于深度學(xué)習(xí)的詞向量表示法在詞語與上下文之間建立聯(lián)系,把維數(shù)為所有詞語數(shù)量的高維空間嵌入到一個維數(shù)較低的連續(xù)向量空間中,每個詞語都被映射為實數(shù)域上的向量,彌補了詞頻統(tǒng)計法存在的不足[9-10]。MIKOLOV 等人于2013 年構(gòu)建Word2Vec 詞嵌入模型[11],其利用詞語與上下文的關(guān)系將詞語轉(zhuǎn)化為一個低維實數(shù)向量,從而有效地區(qū)分了一詞多義或多詞一義的情況。此后,EMLO、BERT 等詞嵌入模型相繼出現(xiàn)。雖然這些模型在多項自然語言處理任務(wù)中均獲得了性能提升,但由于Word2Vec 能夠簡單、高效地獲取詞語的語義向量,因此其依然被廣泛應(yīng)用于分類任務(wù)、推薦系統(tǒng)和中文分詞等方面。
文檔由大量詞語構(gòu)成,但其中只有少數(shù)詞語能代表文檔,而大部分為噪聲詞語,如何去除噪聲詞語,充分利用具有表征性詞語的語義信息構(gòu)建文檔向量是一個難題。現(xiàn)有研究多將詞頻-逆文檔頻率(Term Frequency-Inverse Document Frequency,TF-IDF)算法[12]和Word2Vec 相結(jié)合構(gòu)建文檔向量。文獻[3]通過考慮詞語的重要性,提出一種融合Word2Vec詞向量與TF-IDF權(quán)重的文檔表示法,并在搜狗中文文本語料庫上驗證了方法的有效性。文獻[13]采用Word2Vec對微博文本進行擴展后以TF-IDF方法表示句向量,將句子中每個詞的詞向量相加形成句向量。文獻[14]將詞性引入TF-IDF算法,結(jié)合Word2Vec生成文本向量,并在復(fù)旦大學(xué)中文文本分類數(shù)據(jù)集上驗證方法的有效性。文獻[15]通過融合Word2Vec模型與改進TF-IDF算法獲取文本向量,利用卷積神經(jīng)網(wǎng)絡(luò)進行分類,并在THUCNews數(shù)據(jù)集上驗證方法的有效性。
上述方法結(jié)合了詞語的TF-IDF 權(quán)重與Word2Vec詞向量,但均未考慮文檔中只有少數(shù)詞語具有表征性的事實,影響了分類性能。針對該問題,本文提出一種新的文檔表示方法。設(shè)計改進的單詞貢獻度(Term Contribution,TC)算法篩選具有表征性的詞語集合,將其中所有詞語的單詞貢獻度與Word2Vec 詞向量相結(jié)合構(gòu)建文檔向量。為驗證該方法的有效性,在搜狗中文文本語料庫、復(fù)旦大學(xué)中文文本分類語料庫和IMDB英文語料庫上進行實驗,并與相關(guān)方法進行對比。
1.1.1 TF-IDF 算法
TF-IDF 算法以概率統(tǒng)計為基礎(chǔ),計算一個詞語在數(shù)據(jù)集中的重要程度。當(dāng)一個詞語在某篇文檔中出現(xiàn)的頻率越高而在數(shù)據(jù)集其他文檔中出現(xiàn)的頻率越低,則該詞語的表征性越強,其TF-IDF 值越大。在TF-IDF 算法中,TF 指詞頻,即詞語在文檔中出現(xiàn)的頻率,IDF 指逆文檔頻率。TF 和IDF 的計算公式分別如式(1)和式(2)所示:
其中,|wi|表示詞語wi在文檔dj中出現(xiàn)的次數(shù),|dj|表示文檔dj中所有詞語的總數(shù),|D|表示數(shù)據(jù)集中的文檔總數(shù),nw表示包含詞語wi的文檔數(shù)目。由此可以得出詞語wi在文檔dj中歸一化后的TF-IDF 權(quán)重計算公式,如式(3)所示:
然而,TF-IDF 權(quán)重只考慮了詞語在數(shù)據(jù)集中的頻次信息,無法表達(dá)詞語的語義信息。例如,“番茄”和“西紅柿”表示的意義相同,若在數(shù)據(jù)集中出現(xiàn)的頻次不同,則其TF-IDF 權(quán)重可能會相差很大。
1.1.2 Word2Vec 模型
受文獻[16]提出的NNLM 模型啟發(fā),MIKOLOV等人[11]提出了Word2Vec 模型。Word2Vec 與NNLM 的區(qū)別在于:NNLM 是一個語言模型,詞向量只是“副產(chǎn)品”,而Word2Vec是一種用于獲取詞向量的詞嵌入模型。
Word2Vec 主要包括CBOW 和Skip-gram 兩種模型[17]:CBOW 模型利用詞wt的前后各c個詞來預(yù)測當(dāng)前詞,如圖1(a)所示;Skip-gram 模型利用wt預(yù)測其前后各c個詞,如圖1(b)所示。
圖1 Word2Vec 模型示意圖Fig.1 Schematic diagram of Word2Vec model
CBOW模型的輸入層是詞wt的前后2c個one-hot詞向量,投影層將這2c個詞向量累加求和,輸出層是一棵以訓(xùn)練數(shù)據(jù)中所有的詞作為葉子節(jié)點,以各詞在數(shù)據(jù)中出現(xiàn)的次數(shù)作為權(quán)重的Huffman 樹[3],此模型應(yīng)用隨機梯度上升法預(yù)測投影層的結(jié)果作為輸出。Skip-gram模型與之類似。當(dāng)獲得所有詞的詞向量后,可發(fā)現(xiàn)類似如下規(guī)律:“king”?“man”+“woman”=“queen”[18],可見詞向量能夠有效表達(dá)詞語的語義信息。
單詞貢獻度[19]用于計算數(shù)據(jù)集中特征詞t 對于文本相似性的貢獻程度,計算公式如式(4)所示:
其中,f(w,d)表示單詞w 在文檔d 中的TF-IDF 權(quán)重。
詞語的文檔頻數(shù)越高其IDF 值越低,當(dāng)所有文檔都包含該特征詞時,其IDF 值為0。而那些在大部分文本中出現(xiàn)的特征詞因為IDF 值非常小,所以TC值也會較小。當(dāng)特征詞只出現(xiàn)在一個文本或所有文本中,其TC 值為0。在文檔頻數(shù)適中的情況下,TF-IDF 權(quán)重較大的特征詞具有較大的TC 值。
文檔的量化表示就是將非結(jié)構(gòu)化的文本信息轉(zhuǎn)化為計算機可處理的數(shù)字信息[20],本文主要介紹以下兩種表示方法。
1.3.1 基于詞頻信息的表示方法
經(jīng)典的文檔量化方法是BOW 模型,主要原理是詞one-hot 編碼的疊加[3],如數(shù)據(jù)集中共9 個詞語,其中,“番茄”的one-hot 編碼是[0,0,0,1,0,0,0,0,0],“西紅柿”的one-hot 編碼是[0,1,0,0,0,0,0,0,0],若一篇文檔僅包含“番茄”和“西紅柿”,則文檔向量表示為[0,1,0,1,0,0,0,0,0]。BOW 模型中僅體現(xiàn)了詞語是否出現(xiàn)在文檔中,可以看出很難利用該向量計算出與實際相符的文檔相似度。因此,研究者提出了許多改進方法。應(yīng)用詞的TF-IDF 權(quán)重代替BOW 模型中的非“0”值是最常用的一種方法,它能夠有效計算文本間的相似度,但這種基于詞頻統(tǒng)計的方法容易導(dǎo)致向量的高維性和稀疏性。
1.3.2 基于Word2Vec 的表示方法
基于Word2Vec 的文檔表示方法解決了傳統(tǒng)詞向量高維性和稀疏性的問題,并引入了語義信息,因此其被廣泛應(yīng)用。此類方法的基本流程是先獲取文檔中所有詞的詞向量,再通過聚類或取平均值的方法進行文檔向量表示[3]。很多研究者考慮到單詞的重要性,將TF-IDF 權(quán)重與Word2Vec 相結(jié)合,這樣雖然可以使性能得到提升,但很多無區(qū)分度的詞語依然會影響文檔向量的表征性。
考慮到文檔中無區(qū)分度詞語對文檔向量表征性的影響以及詞語在文檔中的重要性,本文對傳統(tǒng)單詞貢獻度算法進行改進,在Word2Vec 詞向量的基礎(chǔ)上,結(jié)合改進算法提出一種新的文檔向量表示方法。
由式(4)可知,傳統(tǒng)的單詞貢獻度算法是將不同文本中相同單詞的TF-IDF 值兩兩相乘再相加,這樣會嚴(yán)重弱化IDF 值所包含的語義信息,即弱化單詞在整個數(shù)據(jù)集中的重要程度。為解決這一問題,本文提出一種新的計算方法:先將每篇文檔中相同單詞的TF 值進行兩兩相乘再相加的操作,得到根據(jù)TF 值計算出的單詞權(quán)值,再將該值與IDF 相乘。這樣得到的單詞貢獻度不僅保留了由TF 值計算得到的權(quán)值,同時也保留了IDF 值包含的完整語義信息,提高了特征詞與噪聲詞的區(qū)分度。單詞貢獻度的計算公式如式(5)所示:
其中,tfii和tfij表示單詞wi在第i篇文檔和第j篇文檔中的文檔頻率TF 值,idfi表示wi的逆文檔頻率IDF 值。
設(shè)數(shù)據(jù)集D中包含M個文檔,首先將M個文檔中的內(nèi)容采用分詞工具進行分詞,利用Word2Vec 模型進行訓(xùn)練,獲取每個詞語對應(yīng)的n維詞向量V=(v1,v2,…,vn),同時應(yīng)用改進的單詞貢獻度算法計算每個單詞的貢獻度。對所有單詞按貢獻度大小進行降序排列,設(shè)置貢獻度閾值x,選出貢獻度大于x的前W個單詞構(gòu)建單詞集合T。
對于文檔dj(j=1,2,…,M),找出集合T中存在的單詞,文檔向量可表示為:
其中,Vwi表示詞語wi的詞向量,TCwi表示詞語wi的單詞貢獻度。通過改進TC 與Word2Vec 的融合,能夠?qū)卧~對文檔的重要性權(quán)值融入包含語義信息的詞向量,使詞向量更具表征性。本文方法流程如圖2 所示。
圖2 本文方法流程Fig.2 Procedure of the proposed method
本文采用的是分類任務(wù)最常用的評價指標(biāo)準(zhǔn)確率、召回率和F1值。
準(zhǔn)確率是指分類結(jié)果中某類被正確分類的文檔數(shù)目與所有被分入該類文檔總數(shù)的比值,計算公式如式(7)所示:
召回率是指某類被正確分類的文檔數(shù)與該類實際文檔數(shù)的比值,計算公式如式(8)所示:
F1值是綜合準(zhǔn)確率與召回率的評價指標(biāo),計算公式如式(9)所示:
在上述評價指標(biāo)中,TP 表示分入A 類實際也為A 類的文檔數(shù),F(xiàn)N 表示未分入A 類而實際為A 類的文檔數(shù),F(xiàn)P 表示分入A 類而實際不為A 類的文檔數(shù)。
選用搜狗實驗室整理的中文文本分類語料庫作為實驗數(shù)據(jù)集,語料庫內(nèi)文本被分為9類,分別為財經(jīng)(C1)、互聯(lián)網(wǎng)(C2)、健康(C3)、教育(C4)、軍事(C5)、旅游(C6)、體育(C7)、文化(C8)和招聘(C9),每類包含1 990 篇文檔。
分別采用TF-IDF、均值Word2Vec、TF-IDF 加權(quán)Word2Vec、TC 加權(quán)Word2Vec 模型構(gòu)建的文檔向量與本文模型構(gòu)建的文檔向量進行分類結(jié)果對比。經(jīng)過多次試驗,在計算單詞貢獻度時將貢獻度閾值設(shè)置為效果最佳的0.009,本文模型提取19 082 個具有表征性的詞語。選用lib-svm 作為分類器,所有實驗采用五折交叉驗證。各模型的分類性能對比如表1~表5 所示。
由表1、表2和表5可以看出,本文模型的分類性能優(yōu)于TF-IDF模型和均值Word2Vec模型,表明TF-IDF與Word2Vec融合后生成的詞向量包含更豐富的語義信息,能夠更準(zhǔn)確地進行分類。由表3、表4和表5可以看出,本文模型在SVM 分類器上平均準(zhǔn)確率、召回率和F1值較TF-IDF 加權(quán)Word2Vec 模型分別提升2.27%、2.24%和2.26%,較TC加權(quán)Word2Vec模型分別提升1.32%、1.29%和1.25%。通過比較5種模型分類性能評價的平均值可以看出,本文模型在準(zhǔn)確率、召回率、F1值指標(biāo)上均獲得了最佳的效果,驗證了本文方法在中文文檔表示方面的有效性。
表1 TF-IDF 模型分類性能Table 1 Classification performance of TF-IDF model %
表2 均值Word2Vec 模型分類性能Table 2 Classification performance of average Word2Vec model %
表3 TF-IDF 加權(quán)Word2Vec 模型分類性能Table 3 Classification performance of TF-IDF weighted Word2Vec model %
表4 TC 加權(quán)Word2Vec 模型分類性能Table 4 Classification performance of TC weighted Word2Vec model %
表5 本文模型分類性能Table 5 Classification performance of the proposed model %
此外,采用復(fù)旦大學(xué)中文文本分類語料庫中文檔數(shù)目較多的Art類、Agriculture類、Economy類和Politics類數(shù)據(jù)集進行實驗,將本文模型與文獻[13]提出的PTF-IDF 加權(quán)Word2Vec 模型進行對比,如圖3 所示??梢钥闯?,本文模型在準(zhǔn)確率、召回率和F1值上均具有優(yōu)勢,進一步驗證了本文方法的有效性
圖3 本文模型與文獻[13]模型的分類性能對比Fig.3 Classification performance comparison of the proposed model and the model in literature[13]
上述實驗均采用了中文語料,僅驗證了本文方法在中文文本表示方面的有效性。為驗證其對英文文本表示的有效性,選取IMDB 文本情感分類語料庫作為英文實驗數(shù)據(jù)集,其中包括積極和消極兩類數(shù)據(jù),從每類中選取2 500 篇英文數(shù)據(jù),采用五折交叉驗證。結(jié)果表明,本文模型的分類準(zhǔn)確率為76.26%,驗證了其在英文文本表示方面的有效性。但由結(jié)果可知,英文文本分類準(zhǔn)確率低于中文文本分類,這可能有兩點原因:1)由于英文數(shù)據(jù)集較少,本文僅用3 萬多篇英文文本訓(xùn)練Word2Vec 模型,訓(xùn)練語料的不足導(dǎo)致模型無法學(xué)習(xí)到單詞較為準(zhǔn)確的語義信息;2)由于英文存在各類語態(tài)的表達(dá)方法,單詞在不同語態(tài)下需要添加不同后綴,使得多詞一義的情況進一步加重,Word2Vec 模型可能會將加了不同后綴的單詞理解為不同的單詞,單詞貢獻度的計算也因此受到影響。
針對當(dāng)前文檔向量表示方法存在的不足,本文綜合考慮單詞的重要程度和語義信息,將計算出的貢獻度權(quán)值與Word2Vec 詞向量進行融合,提出一種新的文檔表示方法。實驗結(jié)果表明,應(yīng)用于中文文本分類任務(wù)時,本文模型較基于TF-IDF 模型、均值Word2Vec 模型、TF-IDF加權(quán)Word2Vec模型和傳統(tǒng)TC加權(quán)Word2Vec模型效果更好,并且其對英文文本也可實現(xiàn)有效分類。后續(xù)將從降低單詞貢獻度算法的時間復(fù)雜度出發(fā),進一步優(yōu)化本文方法。