推薦仔細閱讀斯坦福大學的 cs224n 課程,尤其是 lecture 部分有很好的講述,本回答僅僅做了簡要的複述。詞向量有兩種形式,CBOW 和 Skip-Gram,簡而言之,一個是給定上下文預測中心詞,一個是給定中心詞預測上下文。第一個公式:一進門就看到了詞向量。無論哪一種,都會訓練出兩個詞向量,我們要的是用於表示中心詞的那一個,對應在 Skip-Gram 中即:其中 V 是所有詞對應的詞向量,x 是 one-hot 向量,vc 就是 x 對應的詞向量。這個公式可以理解為:one-hot 向量 x 選擇了詞向量矩陣 V 中的一個詞。還可以理解為:one-hot 向量 x 透過詞向量矩陣 V 對映到了一個 N 維向量(N 是詞向量的大小,通常為 200,|V| 的大小可以很大)實際程式設計中就是一個 lookup table。第二個公式:透過詞向量預測了上下文。理解了上面的公式,就可以理解接下來的操作,即透過 vc 詞向量乘以一個矩陣,還原為一個新的 |V| 維的向量,這個向量我們叫它 z,表示為:這個 z 向量與 x 維度相同,是為了與大詞表做一一對映,唯一不同的就是 z 不是 one-hot,而是 multi-hot,即在多個位置有預測,那麼針對這些個預測位置就能反向傳播結果。這幾個預測位置如果預測得很準,就會在包含上下文的幾個詞上有能啟用的值,不在上下文當中的詞就沒有能啟用的值。第三個公式:得到上下文詞的機率。上面一個公式最後所說,透過 softmax 操作,在輸出層能得到一個由 0-1 以內的機率組成的 |V| 大小的向量,一一對應了詞表中的詞。最後,直覺上的理解,如果兩個詞能預測出同樣的機率向量,即 “上下文一致”,那麼這兩個詞 “很有緣分”,語義上非常相關,希望對你理解詞向量有幫助。
推薦仔細閱讀斯坦福大學的 cs224n 課程,尤其是 lecture 部分有很好的講述,本回答僅僅做了簡要的複述。詞向量有兩種形式,CBOW 和 Skip-Gram,簡而言之,一個是給定上下文預測中心詞,一個是給定中心詞預測上下文。第一個公式:一進門就看到了詞向量。無論哪一種,都會訓練出兩個詞向量,我們要的是用於表示中心詞的那一個,對應在 Skip-Gram 中即:其中 V 是所有詞對應的詞向量,x 是 one-hot 向量,vc 就是 x 對應的詞向量。這個公式可以理解為:one-hot 向量 x 選擇了詞向量矩陣 V 中的一個詞。還可以理解為:one-hot 向量 x 透過詞向量矩陣 V 對映到了一個 N 維向量(N 是詞向量的大小,通常為 200,|V| 的大小可以很大)實際程式設計中就是一個 lookup table。第二個公式:透過詞向量預測了上下文。理解了上面的公式,就可以理解接下來的操作,即透過 vc 詞向量乘以一個矩陣,還原為一個新的 |V| 維的向量,這個向量我們叫它 z,表示為:這個 z 向量與 x 維度相同,是為了與大詞表做一一對映,唯一不同的就是 z 不是 one-hot,而是 multi-hot,即在多個位置有預測,那麼針對這些個預測位置就能反向傳播結果。這幾個預測位置如果預測得很準,就會在包含上下文的幾個詞上有能啟用的值,不在上下文當中的詞就沒有能啟用的值。第三個公式:得到上下文詞的機率。上面一個公式最後所說,透過 softmax 操作,在輸出層能得到一個由 0-1 以內的機率組成的 |V| 大小的向量,一一對應了詞表中的詞。最後,直覺上的理解,如果兩個詞能預測出同樣的機率向量,即 “上下文一致”,那麼這兩個詞 “很有緣分”,語義上非常相關,希望對你理解詞向量有幫助。