徐鑫鑫,劉彥隆,宋 明
(太原理工大學(xué) 信息與計(jì)算機(jī)學(xué)院,山西 晉中 030600)E-mail:895045514@qq.com
隨著AI技術(shù)的迅速崛起,人工智能和隨之而來的海量文本數(shù)據(jù)對自然語言處理也提出了更高的要求.文本相似度作為自然語言處理領(lǐng)域的一大基礎(chǔ)任務(wù),在搜索引擎、QA系統(tǒng)、機(jī)器翻譯、文本分類、拼寫糾錯等領(lǐng)域有廣泛的應(yīng)用.
文本相似度,顧名思義就是衡量兩篇文本的相似程度.文本作為承載語義信息的一種重要方式,傳統(tǒng)的文本表示采用向量空間模型來表達(dá)語義信息,這種方式未考慮到特征詞的順序以及上下文語義理解,造成高維稀疏以及計(jì)算效率低的問題.韓如冰等人[1]提出了一種基于關(guān)鍵詞的權(quán)重改進(jìn)傳統(tǒng)向量空間模型的權(quán)重算法,基于改進(jìn)索引項(xiàng)權(quán)重的向量空間模型除了考慮原有索引項(xiàng)權(quán)重還考慮了文檔中關(guān)鍵詞的權(quán)重.通過特定領(lǐng)域FAQ的檢索測試結(jié)果表明,改進(jìn)的算法很大程度上提高了檢索的查準(zhǔn)率、查全率.隨著Harris[2]提出分布假說:“上下文相似的詞,詞義也相似”,引出分布式詞向量的術(shù)語.為了解決語義稀疏的問題,Mikolov等人[3]提出了word2vec詞向量工具,使用淺層神經(jīng)網(wǎng)絡(luò)語言模型訓(xùn)練語料庫得到富含詞語關(guān)聯(lián)信息的分布式低維實(shí)數(shù)向量表示.Arora等人[4]使用無標(biāo)注語料庫訓(xùn)練得到的詞向量進(jìn)行加權(quán)平均得到句向量,并使用PCA/SVD進(jìn)行優(yōu)化,進(jìn)一步改善了詞向量的表達(dá)效果.Kusner等人[5]將詞嵌入和EMD(Earth Mover′s Distance)距離用來度量文本距離,提出了WMD(Word Mover′s Distance)算法以及WCD(word centroid distance)、RWMD(relaxed word mover′s distance)兩種犧牲精度降低復(fù)雜度的算法.由于WMD距離算法無法充分提取文本中詞匯的語義信息,因此本文在WMD距離計(jì)算的基礎(chǔ)上,聯(lián)合使用詞向量和句向量,對WMD距離公式進(jìn)行相應(yīng)改進(jìn),提出了一種新的計(jì)算文本的相似度算法.在三大文本相似度對比試驗(yàn)中,本文提出的方法的性能優(yōu)于傳統(tǒng)的同類算法.
word2vec是Google于2013年開源的一款將詞表征為低維實(shí)數(shù)值向量的高效自然語言處理工具,便于度量和挖掘詞與詞之間的關(guān)系.該工具從大量文本語料中以無監(jiān)督的方式學(xué)習(xí)語義知識得到詞向量,意義相近的詞將被映射到向量空間中相近的位置,可采用的模型有兩種,分別為連續(xù)詞袋模型(Continuous Bag-of-Words,CBOW)和跳元模型(Skip-Gram).CBOW模型如圖1所示,其輸入層是目標(biāo)詞的上下文表示,經(jīng)過投影層的求和累加,在輸出層使用層次化Softmax或隨機(jī)負(fù)采樣技術(shù)(Negative Sampling,NEG)降低訓(xùn)練的計(jì)算開銷提升訓(xùn)練速度.Skip-Gram模型如圖2所示,與CBOW模型利用文本序列周圍的詞來預(yù)測中心詞相反,Skip-Gram模型利用目標(biāo)詞語預(yù)測其文本序列周圍的詞,通過把一個(gè)個(gè)的詞語當(dāng)做特征,將特征映射到K維向量空間獲得文本數(shù)據(jù)更精確的特征表示.CBOW模型適用于小型數(shù)據(jù)量,而Skip-Gram模型在大型語料庫中性能更高.由于兩種模型簡單高效,word2vec工具可以達(dá)到每小時(shí)訓(xùn)練千萬級別的詞向量,因此本文使用該工具訓(xùn)練語料庫得到詞向量.
圖1 Skip-Gram模型Fig.1 Model of Skip-Gram
圖2 CBOW模型Fig.2 Model of CBOW
句嵌入將句子編碼為固定長度的密集向量,改善文本數(shù)據(jù)的處理.一大類為通用嵌入,在大型語料庫上預(yù)訓(xùn)練的句嵌入可以插入到下游的任務(wù)模型中.Arora在2017年提出一種構(gòu)建平均句子的詞向量基線的算法,即WR句嵌入,其中W(smooth inverse frequency weighting)代表權(quán)重計(jì)算,R(removing the common components)代表移除句中無關(guān)成分.該方法采用無監(jiān)督建模方式,選擇word2vec詞嵌入技術(shù)在線性加權(quán)組合中對句子編碼,并移除第一主成分上的矢量.首先對語料庫中的每個(gè)詞語w計(jì)算詞語頻率p(w),采用權(quán)重公式賦予每個(gè)詞語相應(yīng)的權(quán)重(smooth inverse frequency,SIF),如公式(1)所示:
(1)
式中a為不斷調(diào)整的參數(shù).對句中的每個(gè)詞向量賦予權(quán)重之后,使用主成分分析方法(Principal Component Analysis,PCA)或者奇異值分解(Singular Value Decomposition,SVD)移除句向量中的無關(guān)部分,從句子的局部共現(xiàn)中提取語義上有意義的詞的表示.對重分配權(quán)重后的詞向量取平均值得到暫時(shí)句向量vs,使用公式(2)移除句中無關(guān)部分.
vs←vs-uuTvs
(2)
其中,u為句向量構(gòu)成的矩陣的第一個(gè)主成分.該句向量的建模方式是基于文本生成隨意游走模型中的路徑向量,雖然構(gòu)建方式簡單并且采用了無監(jiān)督方式,但是在文本相似度上取得了良好的效果.在文本相似度任務(wù)中,SIF重分配權(quán)重方式要比簡單的拼接詞語效果要好,甚至比一些包括RNN和LSTM在內(nèi)的有監(jiān)督復(fù)雜模型的實(shí)驗(yàn)效果更為突出.
由Kusner等人提出了一種新的計(jì)算文檔距離的方法:詞游走距離(Word Mover′s Distance,WMD).WMD距離是陸地移動距離(Earth Mover′s Distance,EMD)的一個(gè)特例,EMD用來測量兩個(gè)分布之間的距離,主要應(yīng)用于圖像處理和語音信號處理領(lǐng)域.Kusner將EMD應(yīng)用于自然語言領(lǐng)域,該算法基于訓(xùn)練好的Word2vec詞向量,使用詞袋模型(Bag of Words,BOW)的歸一化表示文檔D,將詞語之間的歐式距離作為詞語的轉(zhuǎn)移代價(jià)c(i,j),構(gòu)造詞語轉(zhuǎn)移權(quán)重矩陣Tij表示文檔D中詞語i轉(zhuǎn)移到文檔d′中的詞語j的比例.因此文檔之間的距離可以描述為運(yùn)輸成本的最小問題,如公式(3)所示.
滿足:
(3)
WMD距離利用word2vec中的語義信息,實(shí)現(xiàn)高度語義共現(xiàn)精確度,并能挖掘出獨(dú)立詞之間的語義相關(guān)性.由于要計(jì)算兩兩詞語的歐式距離,WMD的算法復(fù)雜度比較高.
針對WMD算法存在權(quán)重機(jī)制相對簡單無法充分表示語義信息以及計(jì)算復(fù)雜度過高的缺陷,本文提出了基于WMD距離的詞句聯(lián)合距離算法(WMD-JCS)度量文本間距離.該算法中詞句的聯(lián)合建模分別使用增強(qiáng)權(quán)重系數(shù)賦予詞句不同的權(quán)重代替原始算法中的詞頻權(quán)重,以充分挖掘單獨(dú)詞句的語義以及上下文語境.最后依據(jù)篩選出的關(guān)鍵詞和句嵌入計(jì)算WMD-JCS距離,以此得到文本的相似度度量.
傳統(tǒng)的WMD距離在計(jì)算時(shí)使用詞語的詞頻作為流量轉(zhuǎn)移總代價(jià),這種權(quán)重度量方式較為單一,未能充分整合詞語的語義信息,不同詞語對整篇文檔的貢獻(xiàn)度也不同.因此,本文對權(quán)重系數(shù)做出了以下改進(jìn):詞語的TF-IDF系數(shù)、詞性系數(shù)、位置系數(shù)以及句子的位置系數(shù).
首先考慮詞語的增強(qiáng)權(quán)重系數(shù).由于字詞的重要性隨著它在文檔中出現(xiàn)的次數(shù)成正比增加,同時(shí)隨著在語料庫中出現(xiàn)的頻率成反比下降.由此引入了TF-IDF系數(shù)度量每個(gè)詞語在文檔中的重要度.某篇文檔中的詞語i的詞頻表示為fi,計(jì)算公式為公式(4)所示:
(4)
詞語i的逆文檔頻率表示為idfi,計(jì)算公式為公式(5)所示:
(5)
詞語i的TF-IDF系數(shù)表示為TF-IDFi,計(jì)算公式為公式(6)所示:
TF-IDFi=fi×idfi
(6)
其中T為語料庫的文檔總數(shù),D為某篇文檔,N(i|D)為詞語i出現(xiàn)在文檔D中的次數(shù),N(i)為詞語i出現(xiàn)在語料庫中的總次數(shù),N(D|i)為包含詞語i的文檔數(shù).
詞性是確定一個(gè)詞屬于名詞、動詞還是其他類詞性,一個(gè)詞的詞性在某種程度上也代表了一個(gè)詞在整篇文本中表達(dá)語義的程度.根據(jù)陳宏[6]對現(xiàn)代漢語同義并列復(fù)合詞的詞性、詞序分析,在中文12種詞性中有名詞、動詞、形容詞、副詞、代詞、介詞、連詞七種詞性具有聯(lián)合結(jié)構(gòu).對此七類詞性進(jìn)行統(tǒng)計(jì),有如下詞性分布表,如表1所示.
表1 復(fù)合詞詞性分布表Table 1 Part of speech distribution on compound word
從表1可知,現(xiàn)代漢語中能標(biāo)識文本特性的往往是文本中的實(shí)詞,如名詞、動詞、形容詞等,在句法關(guān)系中占據(jù)重要地位,而文本中的一些虛詞對于標(biāo)識文本會造成一定的噪音.由此本文根據(jù)漢語詞性在現(xiàn)代漢語中的分布以及語法規(guī)則,設(shè)置了相應(yīng)的等級及詞性權(quán)重,詞性權(quán)重表如表2所示,除一級和二級特征詞外其余詞性的權(quán)重均設(shè)為0,某篇文檔中詞語i的詞性權(quán)重由Ki表示.
表2 詞性權(quán)重表Table 2 Distribution on part-of-speech weight
文章為了揭示主旨通常在首段和尾段提出觀點(diǎn)或進(jìn)行總結(jié),根據(jù)Baxendale[7]的統(tǒng)計(jì)結(jié)果,段落的主題句為段落首句的概率為85%,為段落末句的概率為7%.因此可根據(jù)句子的位置對詞語和句子進(jìn)行加權(quán),對文本中處于首段和尾段的詞語和句子賦予較高的權(quán)重,詞語和句子采用相同的位置權(quán)重公式,詞語i和句子S的位置權(quán)重分別由Pi和Ps表示,加權(quán)公式如公式(7)所示.
(7)
其中,p表示詞語或句子在文檔中所在位置的百分比,a1和a2為可調(diào)整的參數(shù),經(jīng)大量實(shí)驗(yàn)驗(yàn)證,本文中a1和a2取值0.5和0.7時(shí)性能最佳.
由以上對詞語的TF-IDF系數(shù)、詞性權(quán)重、位置權(quán)重以及句子的位置權(quán)重的相關(guān)定義,本文中詞語的增強(qiáng)權(quán)重系數(shù)由TF-IDF系數(shù)、詞性權(quán)重和位置權(quán)重三者相乘得到.詞語i在文檔D中的增強(qiáng)權(quán)重系數(shù)計(jì)算公式如公式(8)所示.
Wi|D=TF-IDFi×ki×Pi
(8)
本文中,對句子的權(quán)重僅考慮位置的影響,因此句子S在文檔D中的特征權(quán)重系數(shù)為位置權(quán)重Ps.
3.2.1 算法描述
文本中的詞語并不是同等重要的,根據(jù)詞語對文本的貢獻(xiàn)度排序,篩選出一定比例的關(guān)鍵詞代表一篇文本.原始的WMD距離計(jì)算兩篇文本中兩兩詞語的轉(zhuǎn)移代價(jià),在本改進(jìn)算法中精簡為只計(jì)算關(guān)鍵詞之間的轉(zhuǎn)移代價(jià).記文檔D和D′的某關(guān)鍵詞為Mi,Mj,文檔D和D′中的關(guān)鍵詞兩兩計(jì)算轉(zhuǎn)移代價(jià),轉(zhuǎn)移代價(jià)使用歐式距離如公式(9)所示:
(9)
構(gòu)造關(guān)鍵詞轉(zhuǎn)移矩陣TMiMj表示文檔D中的關(guān)鍵詞Mi轉(zhuǎn)移到文檔D′的關(guān)鍵詞Mj中的比例.為了將文檔D完全轉(zhuǎn)移到D′中,要確保從關(guān)鍵詞Mi轉(zhuǎn)移出的總和等于其增強(qiáng)權(quán)重系數(shù),轉(zhuǎn)移入關(guān)鍵詞Mj的總和等于Mj的增強(qiáng)權(quán)重系數(shù),如公式(10)和公式(11)所示:
(10)
(11)
最后計(jì)算將文檔D中所有關(guān)鍵詞完全轉(zhuǎn)移到文檔D′的關(guān)鍵詞所需要的詞轉(zhuǎn)移成本Ic,如公式(12)所示:
(12)
以同樣的方式構(gòu)造句嵌入轉(zhuǎn)移矩陣Tsisj表示文檔D中的句子Si轉(zhuǎn)移到文檔D′的句子Sj中的量.D中的句子轉(zhuǎn)移到D′所需的句轉(zhuǎn)移成本Is要滿足以下條件,如公式(13)所示:
(13)
WMD-JCS距離算法的目標(biāo)就是最小化詞和句轉(zhuǎn)移成本Ic和Is,兩篇文檔的距離即采用公式(14)計(jì)算.最終根據(jù)WMD-JCS距離得到文檔間的相似度度量,如公式(15)所示:
(14)
(15)
3.2.2 文本相似度計(jì)算流程
由以上對計(jì)算文本距離的計(jì)算方法得到文本相似度計(jì)算流程如圖3所示.首先對文檔進(jìn)行去停用詞、分詞、詞性標(biāo)注等預(yù)處理操作;其次使用word2vec工具訓(xùn)練語料庫得到每個(gè)詞的詞向量,根據(jù)WR句嵌入由詞向量得到文檔的句向量;對詞向量和句向量進(jìn)行WMD-JCS距離計(jì)算,最后得到文本相似度.
為了驗(yàn)證上述文本相似度算法的有效性,本文選取三個(gè)英文數(shù)據(jù)集和一個(gè)中文數(shù)據(jù)集進(jìn)行實(shí)驗(yàn).英文數(shù)據(jù)集testI選取自20Newsgroups共20個(gè)類別,訓(xùn)練集有11293篇文檔,測試集有7528篇文檔;數(shù)據(jù)集testII選取自Amazon reviews下的藝術(shù)、珠寶、辦公用品以及音樂設(shè)備等四大類共310090條評論,每類抽取1000條評論作為測試集;數(shù)據(jù)集testIII選取自Reuters-21578的R8版本,該版本由Cachopo[8]整理,訓(xùn)練集5485篇文檔,測試集2189篇文檔;中文數(shù)據(jù)集testIV選取自復(fù)旦大學(xué)李榮陸提供的文本分類語料庫,9大類共7196篇文檔,每類抽取200篇文檔作為測試集,剩下的文檔為訓(xùn)練集.實(shí)驗(yàn)中首先對中英文語料庫進(jìn)行一系列預(yù)處理操作,然后使用genism中的word2vec訓(xùn)練詞向量,其中選用Skip-Gram模型和負(fù)采樣技術(shù),上下文窗口和詞向量維數(shù)分別設(shè)置為5和300;得到詞向量文件后,使用訓(xùn)練好的詞向量對文本進(jìn)行句向量訓(xùn)練,WR句嵌入的系數(shù)a設(shè)置為1e-4.對每篇文檔提取每個(gè)詞語以及句子的位置計(jì)算詞語以及句子相應(yīng)的權(quán)重系數(shù),采用WMD-JCS距離算法計(jì)算兩篇文檔之間的距離,基于此計(jì)算兩篇文本的相似度.
圖3 文本相似度計(jì)算流程Fig.3 Process of text similarity calculation
實(shí)驗(yàn)1.首先要確定WMD-JCS算法中選取不同數(shù)量的關(guān)鍵詞對文本相似度計(jì)算的影響.本實(shí)驗(yàn)選取聚類算法中的K-means、DBSCAN、AHC算法進(jìn)行實(shí)驗(yàn)對比.實(shí)驗(yàn)結(jié)果如圖4所示,給出了在使用K-means等三類聚類算法的實(shí)驗(yàn)條件下,觀察選擇不同數(shù)目的關(guān)鍵詞對聚類效果的影響.
圖4 關(guān)鍵詞比例對比圖Fig.4 Keywords ratio
實(shí)驗(yàn)表明,如果選取文本40%的關(guān)鍵詞能夠取得更好的聚類效果,低于這個(gè)比例則由于選取的關(guān)鍵詞數(shù)目較少,使得提取的文本信息無法表征文本,造成聚類效果欠佳;超過這個(gè)比例則會因?yàn)橐脒^多的冗余信息使得文本之間的獨(dú)立性降低,使得聚類效果因?yàn)殛P(guān)鍵詞數(shù)目增加而不理想.
實(shí)驗(yàn)2.為了驗(yàn)證WMD-JCS算法的有效性,該實(shí)驗(yàn)選擇另外兩種具有代表性的文本相似度算法作為對比,分別為Kenter[9]提出的分類器計(jì)算法(實(shí)驗(yàn)中用Classifier表示)和Yuan Sun[10]等提出的WVM模型.實(shí)驗(yàn)結(jié)果如圖5(a)、圖5(b)和圖5(c)所示,分別給出了3種算法在各數(shù)據(jù)集上的準(zhǔn)確率、召回率和F值的分布.
圖5 相似度對比圖Fig.5 Text similarity
從該實(shí)驗(yàn)的三組結(jié)果圖來看,通過與另兩種相似度計(jì)算方法進(jìn)行對比分析,采用不同的文本相似度計(jì)算方法得到的結(jié)果不同.較總體而言,WMD-JCS算法的計(jì)算結(jié)果都要比Classifier分類器和WVM方法好.與Classifier分類器和WVM相比,由于WMD-JCS距離使用語義挖掘度較高的詞向量和句向量來準(zhǔn)確計(jì)算詞語間的游走距離,并考慮了不同詞語的語義貢獻(xiàn)度,以達(dá)到充分利用文本間的語義信息的效果,因此在三大評判標(biāo)準(zhǔn)上的表現(xiàn)效果要優(yōu)于另外兩種文本相似度計(jì)算方法.同時(shí)可以看到在中文數(shù)據(jù)集testIV上的實(shí)驗(yàn)結(jié)果沒有英文數(shù)據(jù)集的效果好,這是因?yàn)橹形牡木渥咏Y(jié)構(gòu)復(fù)雜多變,句法、詞序以及處理語料的過程都會影響最終的相似度計(jì)算結(jié)果,但在3種算法中仍然是最優(yōu)的.
圖6 聚類F值對比圖Fig.6 Cluster F-measure
實(shí)驗(yàn)3.該實(shí)驗(yàn)選取在K-means聚類算法下驗(yàn)證WMD-JCS算法的有效性.實(shí)驗(yàn)結(jié)果如圖6所示.
該實(shí)驗(yàn)與原始的WMD距離算法以及另兩種提升WMD算法效率的方法進(jìn)行對比,WMD-JCS算法的F值較其他三種方法有顯著提高,尤其是在testIII數(shù)據(jù)集下,該算法性能提升最明顯,取得了相對較好的結(jié)果.這是因?yàn)閃MD-JCS算法在WMD算法的基礎(chǔ)上,將權(quán)重因子由單一的詞頻提升為語義信息提取度更高的增強(qiáng)權(quán)重,并充分融合詞語的上下文語義,降低詞語間的冗余度,使得計(jì)算出的轉(zhuǎn)移距離能夠精確代表兩篇文本的關(guān)鍵信息,同時(shí)改進(jìn)后的算法由于降低了語義冗余度,在時(shí)間復(fù)雜度上要比原始算法低.
本文提出了一種基于WMD距離的詞、句聯(lián)合距離算法.與原始WMD算法不同,該算法使用word2vec訓(xùn)練得到的詞向量與WR句嵌入訓(xùn)練得到的句向量聯(lián)合構(gòu)建特征權(quán)重系數(shù),并基于此改進(jìn)WMD距離計(jì)算公式計(jì)算文本間距離.該方法引入了句向量,充分考慮文檔的語義完整性,并賦予詞句不同的權(quán)重表示不同詞句對文本的語義貢獻(xiàn)程度,選取一定比例的關(guān)鍵詞降低語義冗余度,使得結(jié)果更加準(zhǔn)確.實(shí)驗(yàn)結(jié)果表明,本文方法可以提升原始WMD距離計(jì)算結(jié)果的準(zhǔn)確率,同時(shí)優(yōu)于其他文本相似度計(jì)算方法.該方法仍然有不足之處,下一步將考慮詞序以及詞的內(nèi)部結(jié)構(gòu)等特征,以及繼續(xù)優(yōu)化權(quán)重系數(shù)的各項(xiàng)參數(shù)進(jìn)一步提高計(jì)算的準(zhǔn)確性.