2017-02-16 132 views
2

據我所知,Word2Vec基於訓練語料庫建立單詞詞典(或詞彙),併爲詞典中的每個單詞輸出K-dim向量。我的問題是,這些K-Dim矢量的來源究竟是什麼?我假設每個向量是輸入層和隱藏層之間的權重矩陣之一或隱藏層和輸出層中的行或列。然而,我還沒有找到任何資源來支持這一點,而且我在編程語言方面還沒有足夠的知識來檢查源代碼並自己弄清楚。任何關於此主題的澄清評論將不勝感激!Word2Vec輸出矢量

回答

1

究竟是那些K-dim向量的來源是什麼?我假設每個向量是輸入層和隱藏層之間的權重矩陣之一或隱藏層和輸出層中的行或列。

在word2vec模型(CBOW,Skip-gram)中,它輸出一個單詞的特徵矩陣。這個矩陣是輸入層和投影層之間的第一個權重矩陣(在word2vec模型中沒有隱藏層,其中沒有激活函數)。因爲當我們在上下文中訓練單詞(在CBOW模型中)時,我們更新了這個權重矩陣(第二個 - 在投影和輸出層之間 - 矩陣也更新了,但我們沒有使用它)。意思是詞彙的單詞和列的意思是單詞的特徵(K-Dimension)。

,如果你想了解更多信息,探索其

http://mccormickml.com/2016/04/19/word2vec-tutorial-the-skip-gram-model/

0

word2vec使用機器學習來獲得字表示。它使用其上下文(CBOW)預測一個單詞,反之亦然(skip-gram)。

在機器學習中,您有一個損失函數來表示您的模型所產生的錯誤。這個錯誤取決於模型的參數。 訓練模型意味着最小化模型參數的誤差。

在word2vec中,這些嵌入矩陣是在訓練期間正在更新的模型參數。我希望它能幫助你理解它們來自哪裏。事實上,他們是首先隨機初始化的,並在訓練過程中進行更改。

可以看看這個圖象從this papersimple word2vec

W¯¯矩陣映射的輸入一熱字表示,以該K維向量和W」矩陣映射輸出的k維表示既是我們在訓練期間優化的模型參數。