日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

与word2vec_Word2vec算法图解(一)

發布時間:2023/12/19 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 与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有什么不同之處?

  • Sikp-grams(SG)是給定中心詞去預測上下文單詞;CBOW是給定上下文單詞去預測中心詞,某一個上下文詞對中心詞強烈的影響被平均了;
  • Sikp-grams(SG)有一步是要滿足條件獨立假設的,CBOW沒有;
  • skip-gram要比CBOW慢,因為沒有平均,數據量大TODO:更多
  • 總結

    以上是生活随笔為你收集整理的与word2vec_Word2vec算法图解(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。