第一篇: 词向量之Word2vector原理浅析
第一篇: 詞向量之Word2vector原理淺析
作者 Aroundtheworld 2016.11.05 18:50 字?jǐn)?shù) 1353 閱讀 5361評論 1喜歡 9一、概述
本文主要是從deep learning for nlp課程的講義中學(xué)習(xí)、總結(jié)google word2vector的原理和詞向量的訓(xùn)練方法。文中提到的模型結(jié)構(gòu)和word2vector的代碼實(shí)現(xiàn)并不一致,但是可以非常直觀的理解其原理,對于新手學(xué)習(xí)有一定的幫助。(首次在簡書寫技術(shù)博客,理解錯誤之處,歡迎指正)
二、詞向量及其歷史
1. 詞向量定義
??詞向量顧名思義,就是用一個向量的形式表示一個詞。為什么這么做?機(jī)器學(xué)習(xí)任務(wù)需要把任何輸入量化成數(shù)值表示,然后通過充分利用計算機(jī)的計算能力,計算得出最終想要的結(jié)果。詞向量的一種表示方式是one-hot的表示形式:
??首先,統(tǒng)計出語料中的所有詞匯,然后對每個詞匯編號,針對每個詞建立V維的向量,向量的每個維度表示一個詞,所以,對應(yīng)編號位置上的維度數(shù)值為1,其他維度全為0。這種方式存在問題并且引發(fā)新的質(zhì)疑:
1)無法衡量相關(guān)詞之間的距離
??從語義上講,hotel 和motel 更相關(guān),和cat更不相關(guān),但是無法表示這種差異。
2)V維表示語義空間是否有必要
? ? ? ?one-hot的每一維度表示具體的詞,我們假設(shè)存在更加抽象的維度能夠表示詞和詞之間的相似性和差異性,并且詞向量的維度遠(yuǎn)遠(yuǎn)小于V。例如,這些維度可以是時態(tài),單復(fù)數(shù)等
2.詞向量獲取方法
1)基于奇異值分解的方法(奇異值分解)
a、單詞-文檔矩陣
? ? ? ? 基于的假設(shè):相關(guān)詞往往出現(xiàn)在同一文檔中,例如,banks 和 bonds, stocks,money 更相關(guān)且常出現(xiàn)在一篇文檔中,而 banks 和 octous, banana, hockey 不太可能同時出現(xiàn)在一起。因此,可以建立詞和文檔的矩陣,通過對此矩陣做奇異值分解,可以獲取詞的向量表示。
b、單詞-單詞矩陣
? ? ? ? 基于的假設(shè):一個詞的含義由上下文信息決定,那么兩個詞之間的上下文相似,是否可推測二者非常相似。設(shè)定上下文窗口,統(tǒng)計建立詞和詞之間的共現(xiàn)矩陣,通過對矩陣做奇異值分解獲得詞向量。
2)基于迭代的方法
? ? ? ? 目前基于迭代的方法獲取詞向量大多是基于語言模型的訓(xùn)練得到的,對于一個合理的句子,希望語言模型能夠給予一個較大的概率,同理,對于一個不合理的句子,給予較小的概率評估。具體的形式化表示如下:
? ? ? ? 第一個公式:一元語言模型,假設(shè)當(dāng)前詞的概率只和自己有關(guān);第二個公式:二元語言模型,假設(shè)當(dāng)前詞的概率和前一個詞有關(guān)。那么問題來了,如何從語料庫中學(xué)習(xí)給定上下文預(yù)測當(dāng)前詞的概率值呢?
a、Continuous Bag of Words Model(CBOW)
? ? ? ? 給定上下文預(yù)測目標(biāo)詞的概率分布,例如,給定{The,cat,(),over,the,puddle}預(yù)測中心詞是jumped的概率,模型的結(jié)構(gòu)如下:
? ? ? ? 如何訓(xùn)練該模型呢?首先定義目標(biāo)函數(shù),隨后通過梯度下降法,優(yōu)化此神經(jīng)網(wǎng)絡(luò)。目標(biāo)函數(shù)可以采用交叉熵函數(shù):
由于yj是one-hot的表示方式,只有當(dāng)yj=i 時,目標(biāo)函數(shù)才不為0,因此,目標(biāo)函數(shù)變?yōu)?#xff1a;
代入預(yù)測值的計算公式,目標(biāo)函數(shù)可轉(zhuǎn)化為:
b、Skip-Gram Model
? ? ? skip-gram模型是給定目標(biāo)詞預(yù)測上下文的概率值,模型的結(jié)構(gòu)如下:
? ? 同理,對于skip-ngram模型也需要設(shè)定一個目標(biāo)函數(shù),隨后采用優(yōu)化方法找到該model的最佳參數(shù)解,目標(biāo)函數(shù)如下:
? ? ? 分析上述model發(fā)現(xiàn),預(yù)概率時的softmax操作,需要計算隱藏層和輸出層所有V中單詞之間的概率,這是一個非常耗時的操作,因此,為了優(yōu)化模型的訓(xùn)練,minkov文中提到Hierarchical softmax 和 Negative sampling 兩種方法對上述模型進(jìn)行訓(xùn)練,具體詳細(xì)的推導(dǎo)可以參考文獻(xiàn)1和文獻(xiàn)2。
三、參考文獻(xiàn)
1.word2vec Explained: Deriving Mikolov et al.’s Negative-Sampling Word-Embedding Method
2.word2vec Parameter Learning Explained
3.Deep learning for nlp Lecture Notes 1
4.Neural Word Embedding as Implicit Matrix Factorization(證明上述model本質(zhì)是矩陣分解)
5.Improving Distributional Similarity with Lessons Learned from Word Embeddings(實(shí)際應(yīng)用中如何獲得更好的詞向量)
6.Hierarchical Softmax in neural network language model
7.word2vec 中的數(shù)學(xué)原理詳解(四)基于 Hierarchical Softmax 的模型
8.Softmax回歸
9.霍夫曼編碼
總結(jié)
以上是生活随笔為你收集整理的第一篇: 词向量之Word2vector原理浅析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 秒懂词向量Word2vec的本质
- 下一篇: 理解word2vec的训练过程