王聞慧
摘要:句子相似度計算在統(tǒng)計機器翻譯、基于實例的機器翻譯與語料對齊領(lǐng)域有著巨大的研究價值。本文借助于谷歌翻譯作為媒介,針對由Word2vec改進(jìn)而來的表示句子向量的方法——Doc2vec模型,對中英句子相似度計算進(jìn)行了研究。分別利用谷歌翻譯將中文譯文進(jìn)行中文句向量訓(xùn)練及計算與英文譯文的英文句向量訓(xùn)練及計算對比分析。實驗結(jié)果表明,基于Doc2vec的方法在計算句子相似度方面,無論是中文句向量還是英文句向量,其作為句向量表達(dá)句子含義的準(zhǔn)確性都還有待商榷。
關(guān)鍵詞: Doc2vec;谷歌翻譯;句子相似度計算;雙語句對齊
中圖分類號:TP391 ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2019)15-0224-04
Abstract: Sentence similarity calculation has great research value in the fields of statistical machine translation, instance-based machine translation and corpus alignment. This paper uses Google Translate as a favorable medium to study the similarity between Chinese and English sentences based on the Doc2vec model, which is improved by Word2vec, which represents the sentence vector. Using Google Translate to use Chinese translation to carry out Chinese sentence vector training and calculation and English sentence vector training and calculation comparison analysis. The experimental results show that the Doc2vec-based method in terms of calculating sentence similarity, whether it is Chinese sentence vector or English sentence vector, its accuracy as a sentence vector to express sentence meaning is still open to question.
Key words: Doc2vec; Google Translate; sentence similarity calculation; bilingual sentence alignment
1 引言
句子相似度計算在統(tǒng)計機器翻譯、基于實例的機器翻譯與語料對齊領(lǐng)域有著巨大的研究價值。進(jìn)行句子相似度計算的經(jīng)典方法就是IBM的語言模型,但I(xiàn)BM的模型對于句子相似度的計算僅停留在表層,如詞型、語序、句長等,沒有深入到語義層面,也就造成了該模型對兩個在結(jié)構(gòu)和用詞有著巨大差異的同義句無法計算出。為此,我們考慮利用包含了部分語義特征的句向量和詞向量來進(jìn)行句子相似度計算,作為不同于IBM語言模型的一種新的方法探索。
句子相似度的計算與句子表達(dá)有著密切的關(guān)系。最常用的句子特征的表達(dá)有詞袋模型或者是向量空間模型( vector space model,VSM)。在建立向量空間模型的過程中,由于詞頻—逆文檔頻率( term frequency inverse document frequency, TF-IDF) 計算相對簡單,有較高的準(zhǔn)確率和召回率,成為使用最廣泛的權(quán)重計算方法。詞匯的 TF-IDF 值可以衡量其對于文本的重要程度,一個詞在某一篇文本中出現(xiàn)頻率越高,而在語料庫其他文本中出現(xiàn)的頻率越低,則該詞越能反映一篇文章的主題,相應(yīng)的 TF-IDF 值也越大。從以上 TF-IDF 值的物理意義可以看出,這種采用 TF-IDF值作為權(quán)重的向量空間模型只包含統(tǒng)計信息,而無法表達(dá)每個詞匯的語義信息。
在實際應(yīng)用當(dāng)中,只考慮詞匯出現(xiàn)的頻率是遠(yuǎn)遠(yuǎn)不夠的。目前隨著神經(jīng)網(wǎng)絡(luò)的興起,詞匯表達(dá)也不再停留在原始的獨熱表示(one hot),基于神經(jīng)網(wǎng)絡(luò)的詞匯稠密向量化表示方法——Word2vec已經(jīng)在自然語言處理的各種任務(wù)中都有較好的效果。
雖然Word2vec表示的詞性量不僅考慮了詞之間的語義信息,還壓縮了維度。但是,有時候當(dāng)我們需要得到Sentence/Document的向量表示,雖然可以直接將Sentence/Document中所有詞的向量取均值作為Sentence/Document的向量表示,但是這樣會忽略了單詞之間的排列順序?qū)渥踊蛭谋拘畔⒌挠绊憽;诖耍琓omas Mikolov 提出了 Doc2Vec方法。本文旨在通過谷歌翻譯這個媒介將兩種語言提升在同一平面,利用Doc2vec模型進(jìn)行相似度對比。本文首先用谷歌翻譯將平行語料中的中文譯成英文,再得到英文譯句的句向量,通過計算平行語料英文句與中文所對應(yīng)英文譯句的相似度,最終得到雙語句對齊結(jié)果。研究發(fā)現(xiàn)結(jié)果不佳,本文考慮到谷歌翻譯系統(tǒng)對英譯中的效果要好于中譯英,因此針對這個特點再對平行語料的英文進(jìn)行翻譯,得到中文句向量后計算最終的句子相似度。
2 研究綜述
隨著深度學(xué)習(xí)的廣泛應(yīng)用,作為神經(jīng)網(wǎng)絡(luò)訓(xùn)練N-gram語言模型“副產(chǎn)物”的Doc2vec也被應(yīng)用在眾多NLP領(lǐng)域之中。例如,賈曉婷等人通過結(jié)合Doc2vec與改進(jìn)聚類算法實現(xiàn)了中文單文檔自動摘要,主要做法為先利用Doc2vec訓(xùn)練出結(jié)合上下文語境、語義信息的語句向量,再通過經(jīng)過改進(jìn)的K-means算法對語句向量進(jìn)行聚類,計算每個類簇中句子的信息熵,將類中與其他句子語義都相似的句子提取出來作為摘要句。楊宇婷等人采用了一種基于文檔分布式表示的方法對微博文本進(jìn)行文本分類。先是結(jié)合上下文語義、語序和情感等特征生成文本高維空間的特征向量,再利用支持向量機判斷文本的情感極性。潘博等人將doc2vec模型用于薪水的預(yù)測當(dāng)中,以模型能夠深層次表示文本語義特征的優(yōu)勢,結(jié)合隨機森林、 SVM 等機器學(xué)習(xí)算法建立薪水預(yù)測模型,實驗結(jié)果表明使用doc2vec模型預(yù)測薪水能將誤差率降低5%。
另一方面,目前已經(jīng)有很多基于word2vec所做的一些應(yīng)用。唐明等人在word2vec基礎(chǔ)上加入TF-IDF值,改進(jìn)了以往研究中對文檔向量未考慮單個詞產(chǎn)生影響的缺陷,在文檔向量化表示中表現(xiàn)出很好的效果。王明文等在基于word2vec模型的基礎(chǔ)上提出了一個兩階段大中華區(qū)詞對齊模型,通過用 word2vec模型得到大中華區(qū)詞語的向量表示形式,并利用有效的余弦距離計算方法以及后處理技術(shù),實驗表明該模型在維基百科詞對齊上取得了較高的準(zhǔn)確率。唐亮等人利用詞向量來解決越漢跨語言信息檢索中的查詢翻譯問題,首先構(gòu)建漢語、越語事件關(guān)鍵詞特征向量,再通過計算兩者之間語義相似度實現(xiàn)檢索關(guān)鍵詞翻譯上的對齊問題,并在實驗中驗證了方法的有效性。鄭文超等人利用word2vec實現(xiàn)了對中文詞進(jìn)行聚類的研究,在進(jìn)行過中文分詞的基礎(chǔ)上用word2vec對每個詞進(jìn)行向量化表示,再通過計算余弦距離計算相似度,最后使用K-means聚類算法將獲取的詞向量進(jìn)行聚類。馮沖等人提出了一種在詞向量層面的實體鏈接方法,該方法充分利用了指稱以及候選實體的語義信息。首先利用神經(jīng)網(wǎng)絡(luò)對詞向量進(jìn)行訓(xùn)練,然后將實體聚類所獲得的類別標(biāo)簽作為特征,最后用多分類模型預(yù)測目標(biāo)實體的主題類別從而完成實體消歧的任務(wù)。楊陽等人提出了一種用詞向量發(fā)展微博新詞的方法,其主要思想在于用基于詞頻、左鄰接熵、右鄰接熵、互信息這四個統(tǒng)計量的方法識別出新詞,再通過神經(jīng)網(wǎng)絡(luò)訓(xùn)練出詞向量,結(jié)合詞向量中的語義關(guān)系從而挖掘情感新詞。
3 基于Doc2vec的句子相似度計算
本文在平行語料的基礎(chǔ)上進(jìn)行句子相似度的計算,總體思路為:通過谷歌翻譯對中/英文句子進(jìn)行翻譯,再將翻譯好的句子進(jìn)行句向量的相似度計算從而找到原句子所對應(yīng)的中/英文平行語句。實驗分別從中譯英——計算英文句向量和英譯中——計算中文句向量兩方面入手,其次,再通過訓(xùn)練詞向量對句子相似度計算結(jié)果進(jìn)行對比。總體思路如下圖所示:
3.1 獨熱表示
One-hot(獨熱表示)又稱稀疏向量,屬于早期常用的詞向量方法。其主要思想為基于詞典大小N,建立一個N維的詞向量,對于每一個詞只有其中一維是1,其余全為0。例如詞典中包括書包、水杯、牙缸這三個詞,其向量分別是書包(1,0,0),水杯(0,1,0),牙缸(0,0,1)。這種方法能夠根據(jù)詞向量之間夾角余弦值對不同詞之間進(jìn)行有效區(qū)分,然而也正是由于每個向量之間余弦值都為0,詞與詞在語義上的相似性也無法得到表示。其次,one-hot的維度為詞典規(guī)模大小相等,這就直接引起向量長度過長所導(dǎo)致的維度災(zāi)難。
3.2 Word2vec模型介紹
Word2vec模型是在NNLM(Neural Network Language Model)與Log-linear模型的啟發(fā)下由Mikolov等人提出來的。通過訓(xùn)練,word2vec模型可以將對文本內(nèi)容通過神經(jīng)網(wǎng)絡(luò)訓(xùn)練成為N維向量,因此對文本內(nèi)容的處理就可以擴展為在由這些向量組成的向量空間上的向量運算,而這些文本內(nèi)容在向量空間上的相似度可以用來表示其在語義上的相似度。目前,Word2vec所能做的與NLP相關(guān)工作有很多,例如句法分析、情感分類、信息檢索、中文分詞等。
Word2vec模型有兩種方法生成,分別是CBOW(Continuous Bag-Of-Words)詞袋模型和skip-gram模型。其中,CBOW模型的目標(biāo)是根據(jù)上下文預(yù)測當(dāng)前詞,而Skip-gram模型與CBOW模型正好相反,其是通過當(dāng)前詞預(yù)測詞前后的上下文。在CBOW模型中,詞的上下文被“裝”進(jìn)了詞袋中,其中每個詞都被視為是同等重要而忽略了詞的順序關(guān)系。如圖1所示,w(t-2),w(t-1),w(t+1),w(t+2)表示當(dāng)前詞w(t)前后兩個詞,SUM所表示的是這些詞所對應(yīng)向量的累加和。在Skip-gram模型中輸出的則是當(dāng)前詞上下文的向量序列。Skip-gram模型可以克服N-gram語言中窗口大小的局限性,以其“跳躍性”的特點概括超出窗口更完整的語義。例如“這個電影拍的真是太好看了”中有4個3元詞組,分別為“這個電影拍的”,“電影拍的真是”,“拍的真是太好看”,“真是太好看了”。這4個3元詞組都無法表示句子的真正完整的含義,而Skip-gram模型就允許中間某些不那么相關(guān)的詞被跳過,從而使得窗口向后移動以表示更完整的語義。詞在輸入層被表示為向量之后通過向量相加或者連接進(jìn)入到隱藏層,根據(jù)詞在語料中出現(xiàn)的頻數(shù)構(gòu)建Huffman樹,再根據(jù)Huffman樹進(jìn)行l(wèi)ogistic分類從而達(dá)到不斷修正中間向量和最終詞向量的目的。
3.3 Doc2vec模型介紹
文本向量化就是將一個文本表示成一個向量的形式。對文本進(jìn)行向量化處理可以便于計算兩個文本之間的相似度,因此被廣泛地用于信息檢索、機器翻譯、文本聚類等自然語言處理相關(guān)領(lǐng)域之中。文本向量化方法是基于詞向量方法的基礎(chǔ)上的,較早的有BOW(詞袋)模型,與one-hot模型類似,向量的維度等于詞典的大小N,每一維代表一個詞是否在文檔出現(xiàn),出現(xiàn)則為1,不出現(xiàn)則為0。這種詞袋模型同one-hot模型一樣會引起“維度過高”的災(zāi)難,并且對于一篇文本而言,其總詞數(shù)遠(yuǎn)小于詞規(guī)模,這就在一定程度上造成了資源的浪費。在計算文本相似度方面,除了詞袋模型以外,比較常見的用于計算兩個文本相似度的則是計算TF-IDF值,考慮了單詞在文章中的出現(xiàn)次數(shù),并結(jié)合其在整個文本數(shù)據(jù)集中的出現(xiàn)次數(shù)來對詞是否具有區(qū)別性特征進(jìn)行判斷。
作為一個處理可變長度文本的總結(jié)性方法,Mikolov等人在word2vec的基礎(chǔ)上提出了 Doc2vec方法。Doc2Vec是一種無監(jiān)督式學(xué)習(xí)算法,可以獲得句子、段落和文檔的向量化表達(dá),是word2vec的拓展。學(xué)出來的向量可以通過計算距離來判定 sentences、paragraphs、documents之間的相似性,或者進(jìn)一步可以給文檔標(biāo)簽。
與word2vec模型類似,doc2vec模型也分為兩種方法,即Distributed Memory(DM) 和 Distributed Bag of Words(DBOW),與word2vec模型中的CBOW和Skip-gram相對應(yīng)。主要思想為在神經(jīng)網(wǎng)絡(luò)訓(xùn)練詞向量過程中加入文本向量ID,整個過程中文本向量保持不變,文本向量同詞向量進(jìn)行連接或者相加,對于給定的上下文預(yù)測當(dāng)前詞或者根據(jù)當(dāng)前詞預(yù)測上下文,最后通過梯度下降的方式收斂得到最終的詞向量和新文本向量。以圖為例,圖1代表著DM方法的整個過程,輸入的是“the”、“cat”、“sat”三個詞 以及這句話的向量ID,以此來預(yù)測下一個詞為“on”。圖代表DBOW的實現(xiàn)過程,輸入的是整個句子的向量(ID),目的是預(yù)測出整句話的詞語序列。
3.4 實驗語料
實驗中用于Doc2vec句向量的訓(xùn)練語料選自于中英平行句對2萬句,大小約為2MB。
3.5 實驗過程
在上述整體思路的基礎(chǔ)上,本文選取中英平行語料的中文前50句作為測試語料,將谷歌翻譯當(dāng)作中介從而實現(xiàn)中文語料到英文句子的轉(zhuǎn)換,在用維基百科語料訓(xùn)練出來的詞向量作為實驗材料,將中英平行語料的英文前50個例句用Doc2vec句向量表示成句向量。其中,中英平行語料的中文句子記為C1,中英平行語料的英文句子記為E1,通過谷歌翻譯將C1翻譯成的英文句子記為E2。其次,由于在實際中計算相似度的時候,候選句子不可能是語料中所有句子,而在句對齊的時候,候選句子也僅限于該句的上下文一定范圍內(nèi)的句子,因此本組在上述方法的基礎(chǔ)上將E1、E2相似度計算的范圍由原來E2與所有E1的對比縮小為E2與E1上下兩句的對比,并通過設(shè)立一定的閾值來處理多對一的問題。
在實驗過程中,首先將中英對齊語料中的英文語料存成csv格式,再通過提取Discuss項將語料提取出來,用作訓(xùn)練語料。然后再按照分詞結(jié)果將詞存在x_train列表里面,通過訓(xùn)練命令訓(xùn)練出句向量。將待中文語料翻譯好的句子作為輸入存為strl,將其表示為句向量以后計算出與strl最相近的前20位結(jié)果。如輸入句為They lost the land and were captured by the invading army. 而結(jié)果如下圖5。
由結(jié)果可看出在這20句中沒有出現(xiàn)中英文平行語料中所對應(yīng)的那句,實驗總共測試了100句,能在前20句找到對應(yīng)的英文例句有32句,準(zhǔn)確率僅僅達(dá)到了32%。
類似的,考慮到谷歌翻譯在英譯中方面翻譯效果更佳,本文對英譯中的中文句向量進(jìn)行相似度計算,總共測試的100句中能在前20句找到的對應(yīng)中文例句有27句,準(zhǔn)確率僅僅達(dá)到27%。
4 實驗結(jié)果分析
本文采用Doc2vec模型的主要原因在于該模型一定程度上克服了稀疏向量在語義相似度聯(lián)系上的缺陷,利用神經(jīng)網(wǎng)絡(luò)訓(xùn)練融合了上下文語境信息,其次該模型壓縮了數(shù)據(jù)規(guī)模,將詞表示成固定長度的稠密低維實值向量,除此之外生成Doc2vec模型僅僅需要做很少的手工工作,因為是由神經(jīng)網(wǎng)絡(luò)來自動提供特征信息。其次,該模型忽略了單詞之間的排列順序?qū)ψ罱K結(jié)果的影響,即模型只是基于詞的維度進(jìn)行了所謂的“語義分析”,而并非像傳統(tǒng)語言學(xué)那樣依據(jù)上下文進(jìn)行真正意義上語義分析。
從實驗結(jié)果來看,Doc2vec的方法對于中文句向量相似度的準(zhǔn)確率達(dá)到27%,英文句向量相似度的準(zhǔn)確率達(dá)到32%。這說明:
1) 從Doc2vec原理來看,它只是訓(xùn)練詞向量基礎(chǔ)上加進(jìn)去的一個副產(chǎn)物,而其本身訓(xùn)練出來的句向量是否真正能表示文本語義還有待考量。
2) 本文所采用的將機器翻譯作為一種媒介輔助最終的相似度計算是一種創(chuàng)新式的構(gòu)想,有效地實現(xiàn)機器翻譯在其他任務(wù)上的重要作用。
針對本研究方法最終結(jié)果由此分析得到本文所使用的方法有以下不足之處:
1) 在向量維度統(tǒng)一化處理階段,將每句話都補全為所有句子中最長的維度,會造成原本語義相似的句子距離相對擴大。
2) 在計算句子向量時未將停用詞都去除掉,這就導(dǎo)致一些含有is、a、of等非關(guān)鍵詞占有影響最終結(jié)果的比重,如果將停用詞都去除掉實驗的準(zhǔn)確率將會有一定程度的提高。
3) 本組工作下一步能提高改進(jìn)的地方還有很多,例如,可以將Doc2vec訓(xùn)練得到的句向量、句子長度、句法結(jié)構(gòu)等都作為有用信息添加進(jìn)去并將其賦予一定的權(quán)重,有望進(jìn)一步提高最終結(jié)果的準(zhǔn)確率。
4) 實驗的句子數(shù)不夠多,下一步將使用更大規(guī)模的訓(xùn)練語料和測試語料進(jìn)行實驗。
5 結(jié)束語
基于Doc2vec計算句子相似度的方法在短文本的實驗上效果不佳,這不僅僅與實驗語料規(guī)模、句長語序等方面有關(guān),最重要的是其作為被外界稱為是Word2vec的“升級版”這一說法的理論依據(jù)性有待考量,用Doc2vec訓(xùn)練出來的句向量是否有句子語義相關(guān)的意義還有待商榷。另外,本文的方法在一些細(xì)節(jié)處理上還有待優(yōu)化,并可以加入一些規(guī)則的信息,如句法結(jié)構(gòu)等信息來進(jìn)一步提高計算的準(zhǔn)確率。
此外,本研究在句向量上進(jìn)行的句子相似度計算的不理想也說明了句向量在自然語言處理任務(wù)中的作用比較有限,也折射出深層語言學(xué)信息難以直接用數(shù)字來度量以支持神經(jīng)網(wǎng)絡(luò)進(jìn)行語言信息處理的難題,而這也是我們今后努力的方向。
參考文獻(xiàn):
[1] 熊富林,鄧怡豪,唐曉晟.Word2vec的核心架構(gòu)及其應(yīng)用[J].南京師范大學(xué)學(xué)報(工程技術(shù)版),2015,15(1):43-48.
[2] 王明文,徐雄飛,徐凡,等.基于word2vec的大中華區(qū)詞對齊庫的構(gòu)建[J].中文信息學(xué)報,2015,29(5):76-83.
[3] 唐明,朱磊,鄒顯春.基于Word2Vec的一種文檔向量表示[J].計算機科學(xué),2016,43(06):214-217+269.
[4] 唐亮,席耀一,彭波,等.基于詞向量的越漢跨語言事件檢索研究[J].中文信息學(xué)報,2018,32(3):64-70.
[5] 張劍,屈丹,李真.基于詞向量特征的循環(huán)神經(jīng)網(wǎng)絡(luò)語言模型[J].模式識別與人工智能,2015,28(4):299-305.
[6] 楊陽,劉龍飛,魏現(xiàn)輝,等.基于詞向量的情感新詞發(fā)現(xiàn)方法[J].山東大學(xué)學(xué)報(理學(xué)版),2014,49(11):51-58.
[7] 楊宇婷,王名揚,田憲允,等.基于文檔分布式表達(dá)的新浪微博情感分類研究[J].情報雜志,2016,35(2):151-156.
[8] 賈曉婷,王名揚,曹宇.結(jié)合Doc2Vec與改進(jìn)聚類算法的中文單文檔自動摘要方法研究[J].數(shù)據(jù)分析與知識發(fā)現(xiàn),2018,2(2):86-95.
[9] 姜天文,秦兵,劉挺.基于表示學(xué)習(xí)的開放域中文知識推理[J].中文信息學(xué)報,2018,32(3):34-41.
[10] 劉知遠(yuǎn),孫茂松,林衍凱,等.知識表示學(xué)習(xí)研究進(jìn)展[J].計算機研究與發(fā)展,2016,53(2):247-261.
【通聯(lián)編輯:梁書】