冀宇軒
隨著計算機技術(shù)的深入發(fā)展,由于計算能力的大幅提高,機器學(xué)習(xí)和深度學(xué)習(xí)取得了長足的發(fā)展,因此我們在自然語言處理領(lǐng)域的研究越來越多的應(yīng)用了機器學(xué)習(xí)和深度學(xué)習(xí)的工具,在這樣的情況下,文本的向量表示就是一個非常重要的問題,因為良好的文本向量可以更好地在向量空間中給出一個文本空間內(nèi)的映射,從而使得文本可計算。在近些年出現(xiàn)了許多的文本向量生成方法,本文主要介紹了文本向量化的發(fā)展過程,并對常見的文本向量生成方式進行了對比。
正如圖像領(lǐng)域天然有著高維度和局部相關(guān)性的特性,自然語言處理領(lǐng)域也有著其自身的特性,其主要體現(xiàn)在以下幾方面:
(1)由于計算機系統(tǒng)本身的硬件特點,任何計算的前提都是向量化,而自然語言處理領(lǐng)域的空間難以直接向量化,其不像圖像與語音領(lǐng)域,信息可以直接被向量化,在自然語言處理領(lǐng)域的文本難以直接被向量化。
(2)自然語言處理領(lǐng)域中存在著多種高級的語法規(guī)則及其他種類的特性,具體體現(xiàn)為語法上的規(guī)則、近義詞,反義詞等。乃至于自然語言本身就體現(xiàn)了人類社會的一種深層次的關(guān)系(例如諷刺等語義),這種關(guān)系給自然語言處理領(lǐng)域的各種工作帶來了挑戰(zhàn)。
而文本信息的向量表示作為自然語言處理中的基本問題,其應(yīng)當(dāng)盡可能地包含原本空間內(nèi)的信息,因為一旦在空間映射時丟棄了信息,則在后續(xù)的計算中也無法再獲取到這些信息了。
如上所示,在自然語言處理中,文本向量化是一個重要環(huán)節(jié),其產(chǎn)出的向量質(zhì)量直接影響到了后續(xù)模型的表現(xiàn),例如,在一個文本相似度比較的任務(wù)中,我們可以取文本向量的余弦值作為文本相似度,也可以將文本向量再度作為輸入輸入到神經(jīng)網(wǎng)絡(luò)中進行計算得到相似度,但是無論后續(xù)模型是怎樣的,前面的文本向量表示都會影響整個相似度比較的準(zhǔn)確率,因此,對于自然語言處理的各個領(lǐng)域,文本向量化都有著舉足輕重的影響。
2.1.1 One-hot Representation
最早的一種比較直觀的詞向量生成方式稱為One-hot Representation,這種映射方式是通過先將語料庫中的所有詞匯匯總的得到N個詞匯,并將語料庫中的每個文檔個體生成一個N維的向量,在每個維度就體現(xiàn)了該文檔中存在多少個特定詞匯。這種方式是一種較為簡單的映射方式,其產(chǎn)生的向量表示體現(xiàn)了詞頻的信息。
2.1.2 TF-IDF模型
上述方式的模型僅考慮了詞頻,并且會造成長句子和短句子的向量長度不一致的情況,因此又有一種考慮了文檔詞匯中的逆文檔頻率的映射方式:TF-IDF(term frequency-inverse document frequency)模型,在這種方式中,首先對詞頻進行了歸一化,即使用詞出現(xiàn)的頻率而非次數(shù)代表詞頻,表示為公式如下:
另一處改進為統(tǒng)計了每個詞的逆文檔頻率指標(biāo),并使用該指標(biāo)作為詞罕見程度的度量值,以更好地刻畫文檔的生成向量。逆文檔頻率的模型如下:
這兩種模型的共同的缺點在于其二者的向量長度都非常大,對于一個有著30W詞匯量的語料,每個文檔的映射向量長度將都是30W,這意味著產(chǎn)出的矩陣非常稀疏,并且在計算時也會非常復(fù)雜。
2.1.3 潛語義分析模型
因此,我們引入降維的方式來對高維度的文檔向量進行處理,其主要的模型為潛語義分析模型(Latent Semantic Analysis),這種模型通過數(shù)學(xué)方法,將文檔之間的關(guān)系、詞之間的關(guān)系和文檔與詞之間的關(guān)系都納入考慮中(Deerwester,S.,Dumais,S.T.,Furnas,G.W.,Landauer,T.K.,& Harshman,R.(1990).Indexing By Latent Semantic Analysis.Journal of the American Society For Information Science,41,391-407.10)。
具體來講,潛語義分析模型使用了主成分分析的方式來進行降維,即通過抽取向量空間內(nèi)分布方差最大的若干個正交方向來作為最后的表示方向,并對其余的方向的內(nèi)容進行丟棄即得到了每個樣本的低維表示,該表示是有損的,即丟失了在丟失維度上的分布細節(jié)。
圖1 二維向量分布的主成分分析
潛語義分析模型將這種將高維的向量表示轉(zhuǎn)換為低維的向量表示的方法解釋為文檔的詞向量空間轉(zhuǎn)化為語義級別的向量空間,由此實現(xiàn)了一個有意義的文本降維的工作,即在更低維度上,一個維度并不再代表原來的一個詞的信息,而是代表原來的幾個詞的一個混合信息,這被稱為“語義維度”。被丟棄的維度上的分布也被認定為是一種“噪音”,對其丟棄可以更好地使用低維度的信息來表達原文本的語義信息。
值得被關(guān)注的是,上述的模型均為詞袋模型,其基本的特點即為忽略了文本信息中的語序信息,即不考慮段落中的詞匯順序,僅將其反映為若干維度的獨立概念,這種情況有著因為模型本身原因而無法解決的問題,比如主語和賓語的順序問題,詞袋模型天然無法理解諸如“我為你鼓掌”和“你為我鼓掌”兩個語句之間的區(qū)別。因此基于上述模型的文本模型無法獲取到原文本中語序所帶來的信息。
深度學(xué)習(xí)出現(xiàn)以后,逐漸被應(yīng)用于自然語言處理領(lǐng)域,在文本向量化上也有著許多的進展,其中很多的成果已經(jīng)成為了自然語言處理領(lǐng)域的基礎(chǔ)部分。
2.2.1 Nerual Network Language Model
2001年,來自蒙特利爾大學(xué)計算機教授Yoshua Bengio給出了一種生成詞向量的方式,即通過一個三層的神經(jīng)網(wǎng)絡(luò)、softmax分類及反向傳播算法實現(xiàn)了詞向量的映射(Bengio,Yoshua,et al.”A neural probabilistic language model.”Journal of machine learning research 3.Feb(2003):1137-1155),在這種映射中,詞向量本身包含了語義的信息,即通過向量的分布信息可以得知其對應(yīng)詞的相互聯(lián)系,其基本結(jié)構(gòu)如下:
圖2
其輸入層為中心詞附近的多個詞的向量表示,并將這些向量進行拼接得到隱藏層,并通過softmax函數(shù)得到輸出層,即可以通過梯度下降的方式來訓(xùn)練輸入向量與權(quán)重參數(shù),在這里需要注意的是在這個模型中,我們所需要的是模型產(chǎn)出的詞向量而非權(quán)重參數(shù)。
2.2.2 word2vec與doc2vec
2013年,來自Google的Mikolov.Tomas等人發(fā)表了《Efficient Estimation of Word Representations in Vector Space》,提出了兩種詞向量映射模型(Mikolov,Tomas,et al.”Distributed representations of words and phrases and their compositionality.”Advances in neural information processing systems.2013),不僅簡化了NNLM模型,也提升了訓(xùn)練的準(zhǔn)確度,在訓(xùn)練得到的詞向量中。同年,Google公司開源了可以在百萬詞典和千億級別語料數(shù)據(jù)上進行計算的word2vec工具,并分享了基于分布式計算框架在千億級大規(guī)模新聞?wù)Z料中訓(xùn)練得到了詞向量結(jié)果,極大推動了自然語言處理的發(fā)展。
圖3
其使用兩種模型結(jié)構(gòu),分別是CBOW模型和Skip-gram模型,CBOW模型的主要思想是使用中心詞附近的詞去預(yù)測中心詞,而Skipgram模型主要是使用中心詞去預(yù)測中心詞附近的詞。其二者的區(qū)別主要在于CBOW模型某種意義上屬于一種詞袋模型,一定程度上忽略了文本的語序順序,并且由于模型結(jié)構(gòu)的不同,其二者反向傳播進行參數(shù)調(diào)整的方式不同:CBOW模型的中心詞會共享一次反向傳播的梯度下降,而Skip-gram則不存在這種共享關(guān)系。除此之外,word2vec的方法還提出了兩種方法來加速詞向量的訓(xùn)練速度。
在word2vec詞向量方式出現(xiàn)以后,很多學(xué)者開始了基于word-2vec的文檔向量化方法的研究。其中主要有以下兩種主要方法:第一種是簡單的向量加和取平均值,這種方法的特點是速度快,但是由于完全忽略語序信息,因此效果比較差,另一種方式是基于語法規(guī)則樹來建立文本向量,但是其局限性在于其性能較低且僅適用于句向量的生成,效果同樣不是很好。2014年,Mikolov.Tomas提出了一種新的基于神經(jīng)網(wǎng)絡(luò)的段落文本生成方式,是一種良好的端對端的文檔向量化方式(Le,Quoc,and Tomas Mikolov.”Distributed representations of sentences and documents.”International Conference on Machine Learning.2014)。
其中,PV-DM算法主要沿用了word2vec 中cbow的方法,通過一個單層的簡單神經(jīng)網(wǎng)絡(luò)來構(gòu)建模型,在構(gòu)建隱藏層時將段落向量也加入隱藏層,并且與其他的詞向量一起獲得反向傳播的梯度,這樣在多輪迭代后就可以:
Distributed Memory version of Paragraph Vector (PV-DM)
該算法大致上沿用了word2vec CBoW的方法,即通過一個單層的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)來建立模型,在這個模型的訓(xùn)練過程中得到副產(chǎn)物段落向量,其不同點在于在這里另外增加了一個向量作為段落的向量表示,與詞向量共同拼接或加和作為輸入進入網(wǎng)絡(luò),網(wǎng)絡(luò)通過梯度下降的方式進行優(yōu)化,當(dāng)需要給出一個新的段落向量表示時,在預(yù)測階段,模型的參數(shù)(包括詞向量和模型中的softmax參數(shù))都是固定的。
圖4
Distributed Bag of Words version of Paragraph Vector (PV-DBOW)
這種算法大體上也是沿用了Word2vec中的Skip-gram的方法,即以文檔向量作為輸入,以最大化輸出為文檔中的詞作為目標(biāo)進行訓(xùn)練,這種方式也可以獲得文檔的向量表示。
圖5
以上兩種方式均可以通過Hierarchical Softmax或者Negative Sampling簡化模型訓(xùn)練,從而提升訓(xùn)練效率,除此之外另有Glove等方式用于詞向量表示(Pennington,Jeffrey,Richard Socher,and Christopher Manning.”Glove:Global vectors for word representation.”Proceedings of the 2014 conference on empirical methods in natural language processing(EMNLP).2014)。
基于神經(jīng)網(wǎng)絡(luò)的文本向量化方式的特點主要包括以下幾個:
(1)基于神經(jīng)網(wǎng)絡(luò)的文本向量化方式可以更多地利用激活函數(shù)及softmax函數(shù)中的非線性特點,這種特點為模型帶來了更多的擬合能力,使得模型可以學(xué)習(xí)到更多的文本特性,生成的文本向量是更好地文本向量化表示。
(2)基于神經(jīng)網(wǎng)絡(luò)的文本向量化方式很大程度上保留了語序信息,其利用了文本相鄰的特性,這種特點在詞袋模型中往往是直接忽略掉了的。
(3)基于神經(jīng)網(wǎng)絡(luò)的模型在語料規(guī)模和訓(xùn)練復(fù)雜度上也有著更高的要求,這意味著只有在計算能力和文本數(shù)據(jù)量達到一定程度的時候才可以開展,近些年的深度學(xué)習(xí)的發(fā)展也是源于信息爆炸和計算能力的飛速發(fā)展。
在過去的主要文本向量化方法中,早期的模型主要是基于統(tǒng)計的,其計算相對簡單,但是效果也相對較弱,隨著深度學(xué)習(xí)的發(fā)展,基于神經(jīng)網(wǎng)絡(luò)的模型開始出現(xiàn)在自然語言處理領(lǐng)域,也極大地提升了文本向量化的質(zhì)量,由于文本向量化本身的重要性,在未來一定會有更多優(yōu)秀的模型可以用于這個領(lǐng)域,我們應(yīng)該更加努力地學(xué)習(xí)相關(guān)知識,以期有所建樹。