与word2vec_Word2vec算法图解(一)
今天的主題是:Word2vec算法圖解(一)
一、word2vec算法簡介
Sikp-grams(SG) 給定中心詞去預測上下文單詞。
Continuous Bag of Words(CBOW) 給定上下文單詞去預測中心詞。
二、Word2vec——CBOW
2.1 目標函數
假設window size = 2:
在每個position t = 1,……,T,window size = m, 求已知上下文的單詞,預測中心詞出現的概率的似然函數:
其中,代表中心詞;代表上下文單詞 ;為似然估計中需要優化(估計)的所有參數,就是兩個分別代表中心詞嵌入和上下文詞嵌入的兩個矩陣。
將似然函數轉化為目標函數(negative log likelihood):
目標就是:
這里的目標函數其實就是交叉熵損失,我們的任務也就是變成了如何表示這個概率:
2.2 CBOW前向傳播計算損失
為了簡化計算,我們假設每個詞代表的向量一共有兩個,一個是作為中心詞的詞向量,一個是作為上下文單詞時的詞向量。將單詞表里的詞對應的詞向量組合成矩陣:
由于一般用隨機梯度下降訓練數據,本文展示單個樣本的前向傳播:1、取窗口大小為m的上下文單詞的one-hot向量:
2、在上下文詞嵌入矩陣中得到他們的embedding vector:
數學上采用one-hot矩陣內積的形式得到對應的embedding vector;程序上一版采用lookup table的方式去索引,速度更快;
3、將第二步得到的上下文單詞的embedding vector進行平均池化:
4、將3得到的embedding vector與中心詞embedding矩陣做點積得到未歸一化的分數:
內積越大說明向量間越相似
5、將4得到的分數進行softmax歸一化得到概率:
6、求交叉熵(由于中心詞是確定的,只在確定中心詞t位置那個維度上產生交叉熵):
其中:
- 是在位置t的中心詞在“中心詞embedding矩陣V”里面代表的向量;
- 是遍歷詞表中每一個詞在embedding矩陣V里面代表的向量;
因此,印證了上文說的,negative log likelihood作為目標函數,其實就是交叉熵損失!
由于一般用隨機梯度下降訓練數據,就沒有上式中的對位置T加和平均的項:for every single step position t:
7、梯度反向傳播更新矩陣中的參數
三、Word2vec——Skip-gram
2.1 目標函數
用中心詞預測上下文的單詞,假設window size = 2:
在每個position t = 1,……,T,window size = m, 求已知上下文的單詞,預測中心詞出現的概率的似然:
其中:
- 表示在位置t的中心詞
- 表示位置t中心詞的上下文單詞
- 上式的條件是滿足條件獨立假設,和CBOW的一點區別!
將似然函數轉化為目標函數(negative log likelihood):
由于一般用隨機梯度下降訓練數據,就沒有上式中的對位置T加和平均的項:
目標就是:
這里的目標函數其實就是交叉熵損失,我們的任務也就是變成了如何表示這個概率:
2.2 SG前向傳播計算損失
為了簡化計算,我們假設每個詞代表的向量一共有兩個,一個是作為中心詞的詞向量,一個是作為上下文單詞時的詞向量。將單詞表里的詞對應的詞向量組合成矩陣:
由于一般用隨機梯度下降訓練數據,本文展示單個樣本的前向傳播:
1、取位置t中心詞的one-hot向量:
2、在中心詞嵌入矩陣V中得到他的embedding vector:
數學上采用one-hot矩陣內積的形式得到對應的embedding vector;程序上一版采用lookup table的方式去索引,速度更快;
3、將2得到的embedding vector與中心詞embedding矩陣做點積得到未歸一化的分數:
內積越大說明向量間越相似
4、將3得到的分數進行softmax歸一化得到概率:
是預測正確上下文詞的概率5、求交叉熵損失:這里相當于有2m個樣本:
() ... () () ... ()
- 是在位置t的中心詞在“中心詞embedding矩陣V”里面代表的向量;
- 是遍歷詞表中每一個詞在“上下文詞embedding矩陣U”里面代表的向量;
6、梯度反向傳播更新矩陣中的參數
四、skip-gram與CBOW有什么不同之處?
總結
以上是生活随笔為你收集整理的与word2vec_Word2vec算法图解(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 每股净资产高于股价说明什么
- 下一篇: 从56元跌到3元的氢能源股票,是科融环境