word2vec學習筆記
詞向量作為自然語言處理中最基本同樣也是很重要的部分,熟悉並掌握詞向量的實現原理是學習NLP必不可少的過程,以下主要通過XiRong的《word2vec Parameter Learning Explained》論文來介紹詞向量的具體計算過程。
首先介紹兩類詞向量模型,第一個是Skip-Gram模型,其目的是通過給定中心詞來預測中心詞上下文詞彙;而另外一類是CBOW模型,通過上下文詞彙來預測中心詞彙。
1、Skip-Gram模型
設定每一個輸入向量的大小為v*1,其中輸入向量是以one-hot進行編碼(稱之為獨熱編碼,也就是該向量中只有一位數字為1,其他為都是0,目的是體現不同輸入向量的特徵),輸入向量到隱層的權重矩陣為
計算隱層的輸出為:, 輸出層的結果為:
接下來就是在中心詞確定的情況下,取概率最大的上下文單詞,也就是計算輸出上下文詞彙是Wc,j的條件概率:
隨後設定損失函式為:
對損失函式求導並利用隨機梯度下降方法,不斷更新梯度以達到損失最小的條件,最終獲得詞向量。
2、CBOW模型
CBOW模型與Skip-Gram模型類似,只需要把輸入輸出調換一下即可。需要注意的地方是在隱層的處理上, 的值是各個輸入的值與不同權重矩陣相乘後相加再求平均,後面的處理過程與Skip-Gram模型相同。