word2vec 不是模型而是工具根盒,包含兩個模型一個跳字模型(skip-gram)和連續(xù)詞袋模型(CBow),word2vec 詞向量可以比較好表達不同詞之間的相似度和類比關系箕母。
在開始介紹模型前我們先了解一些概念
- 中心詞
- 背景詞
- 窗口
- m 表示窗口的大小
- T 表示文本中詞的數量
- t 表示第幾個詞
我們這里用了一個樸素假設医寿,就是這里用中心詞生成背景詞概率是相互獨立访敌,所以這里用了連乘牡属。那么上面公式就是表示文本中每一個詞作為中心詞生成背景詞的聯(lián)合概率。我們目標就是最大化這個聯(lián)合概率,最大化這個聯(lián)合概率就等于最小化這個聯(lián)合函數
前面加了負號就表示最大化上面公式就等于最小化這個公式。下面問題是如何最小化這個損失函數。希望通過找到中心詞和背景詞的向量表達來最小化這個損失函數收奔。
我們如何設計向量表達式來表示在給定中心詞出現(xiàn)背景詞的概率呢掌呜。假設我們有個詞典 V ,在詞典中每一個詞都有對應的索引。
- 表示背景詞的向量
- 表示中心詞的向量
- 我們通過計算他們點積取 softmax 來表示概率
- 在模型中每一個詞都有兩個向量分別表示作為背景詞和中心詞的向量,根據在模型中其作用不同使用他的不同向量
隨機梯度下降坪哄,計算模型參數梯度
我們可以通過計算梯度下降质蕉,不斷迭代來的得到,同理可以計算出最終對于索引為 i 的詞,我們可以得到這個詞作為背景詞和中心詞向量和
計算開銷
模型參數
在連續(xù)詞袋模型中我們是用背景詞來生成中心詞翩肌,而在跳字模型中我們使用中心詞生成背景詞模暗。
損失函數
我們用背景詞向量求一個平均,
無論是連續(xù)詞袋模型還是跳字模型他們算法還是比較直觀念祭,但是都是因為使用到了 softmax 所以計算量開銷都比較大兑宇。
在是在詞向量中使用到了兩個算法來解決問題,一個是負采樣和一個是層次 softmax 法粱坤。近似訓練法隶糕。怎么通過近似訓練解決問題,softmax 問題站玄,在分母引入了字典中所有的詞枚驻。softmax 考慮我們背景詞可能是詞典中任意一個詞,這樣才能得到合理概率株旷,也就是歸一化的作用再登,這是就是上面帶來大量運算開銷的根源。
我們看