天天看點

NLP學習筆記 36-word2vec

一 序

  本篇屬于貪心NLP訓練營學習筆記系列。

二 詞向量

  one-hot encoding

問題:

  • 稀疏sparse representation
  • similarity (無法表達單詞相似度 => 導緻無法表達語義) ,可以表達句子相似性。

word2vec - distributed representation(把詞的資訊分布到各個向量中)

  1. Dense 稠密的(好處是低維的,資料量沒有那麼大)
  2. meaning (semantic space ,我們希望詞關系比較密切的,再空間裡比較近)
  3. capacity 表達能力:(one-hot表示有限,而分布式則大很多或者理論上無限大)
  4.  Global generation(泛化能力,深度學習使用了參數共享(parameter sharing),,one-hot 局部泛化)

Word2Vec的Intuition

離得越近的單詞,相似度越高。(即中心詞與其上下文單詞的語義接近,就是上下文單詞是中心詞前後window size個單詞的集合)

NLP學習筆記 36-word2vec

Skip-Gram Model

CBOW:  根據上下文單詞(左邊兩個單詞和右邊兩個單詞), 去預測中間那個單詞

Skip-Gram:通過中間那個單詞, 去預測上下文單詞(常用)。

NLP學習筆記 36-word2vec

對于Skip-Gram model,通過中間詞去預測上下文單詞,也就是對應的條件機率最大。

NLP學習筆記 36-word2vec

這裡的

NLP學習筆記 36-word2vec

 ,裡面的

NLP學習筆記 36-word2vec

是加入的參數,含義跟

NLP學習筆記 36-word2vec

一樣。

  • 其中w是中心詞, c  context(w)是上下文詞

簡化下,加log:

NLP學習筆記 36-word2vec
NLP學習筆記 36-word2vec

,其中u作為上下文的向量,V作為中心詞的向量。參數次元是一樣的,分開是因為同一個詞在不同的角色(中心詞、上下文詞)的向量是不一樣的。

接下來看機率

NLP學習筆記 36-word2vec

怎麼求。

我們之前的假設是,中心詞與它的上下文單詞語義接近,也就是學得的向量相似度大。我們采用内積的方式表示相似度,我們用

NLP學習筆記 36-word2vec

表示中心詞的詞向量,用

NLP學習筆記 36-word2vec

表示上下文單詞詞向量。

NLP學習筆記 36-word2vec

   其中 

NLP學習筆記 36-word2vec

詞庫

其中分子是 内積(保證越近機率越大),分母是考慮所有詞庫的可能性。能保證機率p之合等于1.  式子就是一個簡單的softmax。

蘇劍林大神說過:

softmax 除了使機率分布合法(0-1),目的還是定義更合理的loss,最終的目的則是定義更合理的梯度;

為什麼常用softmax, 

NLP學習筆記 36-word2vec

是能将任意實數映射到非負實數的最簡單的、單調的、光滑的初等函數.

softmax是sigmoid函數在多分類輸出上的推廣,對于 

NLP學習筆記 36-word2vec
 在二分類情況下與sigmoid函數等價,是以它是sigmoid函數在多分類上的擴充,有良好的實體意義。
NLP學習筆記 36-word2vec

因為要計算機率要周遊整個詞典,見上面截圖,計算複雜度過高。為了降低複雜度,引入了兩個優化方式:層次Softmax(Hierarchical Softmax)和負采樣(Negative Sampling)。

何為負采樣?就是給定任意的兩個

NLP學習筆記 36-word2vec

,當它們出現時,

NLP學習筆記 36-word2vec

 越大越好

當它們不出現時,

NLP學習筆記 36-word2vec

越大越好

這就是類似于二分類的問題。可以套用公式:

NLP學習筆記 36-word2vec

負采樣的目标函數

NLP學習筆記 36-word2vec

 前面是正采樣,後面是負采樣

=

NLP學習筆記 36-word2vec

=

NLP學習筆記 36-word2vec

=

NLP學習筆記 36-word2vec

=

NLP學習筆記 36-word2vec

這裡把

NLP學習筆記 36-word2vec

看做

NLP學習筆記 36-word2vec

,後面怎麼算的沒看懂。

NLP學習筆記 36-word2vec

因為正樣本的數量會遠遠少于負樣本的數量,是以我們引入Nagetive Sampling,從正樣本對應的負樣本中随機采樣來減少負樣本的數量(不是所有的負樣本)

NLP學習筆記 36-word2vec

解釋如下:其中

NLP學習筆記 36-word2vec

是針對中心詞w的負樣本采樣後的集合。

NLP學習筆記 36-word2vec

舉例:

NLP學習筆記 36-word2vec

使用 梯度下降法對參數進行求解

NLP學習筆記 36-word2vec

  這裡用到了對于sigmoid函數

NLP學習筆記 36-word2vec

求導結論,

NLP學習筆記 36-word2vec

同理:

NLP學習筆記 36-word2vec
NLP學習筆記 36-word2vec

上面知道後,求參數

NLP學習筆記 36-word2vec
NLP學習筆記 36-word2vec
NLP學習筆記 36-word2vec

僞代碼如下:推薦去讀源碼,比如使用特定資料結構霍夫曼樹

NLP學習筆記 36-word2vec

評估詞向量:

1 TSNE 可視化詞向量,對訓練得到的詞向量降維到二維空間進行觀察

2 similarity:已有一個訓練好的詞向量和人工标記的單詞相似度表。舉例:football和basketball。

3類比(analogy):woman:man == boy:girl (如已知woman:man的相似性,給定boy來尋找girl)

詞向量在推薦系統的應用

把詞向量的訓練,應用到産品的特性,學習出Embedding。認為使用者浏覽商品之間是連續類似的。

老師以Airbnb的論文為例介紹:

1 傳統的内容推薦,

   需要把房屋的屬性,轉換為向量的形式,也叫特征工程。

2 直接學出Embedding,房屋之間相似度用向量計算(與餘弦相似度)。

接下來就是老師帶領解析論文的改進之處了。我基礎薄弱先跳過。

NLP學習筆記 36-word2vec

skipgram model 缺點

沒有考慮到上下文;--->上下文的問題可以用Elmo和Bert解決;

視窗長度有限,無法考慮全局;--->考慮languagemodel,(RNN、LSTN)

未考慮全局:--》使用全局模型,(MF 矩陣分解)

無法有效學習低頻詞和未登入詞OOV(out of vocabulary) --》subword embedding

其他怎麼解決問題,TODO。再補充吧。

繼續閱讀