詞嵌入隨記

樣本的構造方式,用一個長度爲n的滑動窗口,在語料當中去滑動,每取出來那個連在一塊兒的詞,用前n-1個詞去預測第n個詞。

在不少個這些樣本上去求交叉熵損失,而後最小化這個交叉熵損失。網絡

4D*1是指將各自輸入計算的結果拼接在一塊。 .net

CBOW是對NNLM作簡化

input的權重矩陣C本質上就是把其中的對應列取出來,既然這樣就直接不要矩陣C,直接先對每個word初始化一個詞向量w3d

projection以前要作一個拼接的操做,這個拼接的操做實在是太麻煩了,這裏就直接採用了簡單的求和。cdn

NNLM是經過前n-1個詞來預測第n個詞,CBOW的作法是經過當前詞的周邊詞來預測當前詞,例如:我 是 中國 男 孩子,經過"中國"這個詞的先後2個詞來預測當前這個"中國"。blog

用求和獲得的300維向量去和8w個詞作一個softmax,可是若是詞量不是8w而是400w,那麼計算量仍是會很大,因此要對這400w作某種壓縮,壓縮的方式有以下2種:get

400w平鋪開來會很大,因此將它層次化。

input是一個2n+1的窗口在滑動,即前面n 中間1 後面n的這麼一個窗口在滑動,和句子的長度沒有關係。input

非葉子節點都會有一個權重θ,即圖中的黃色節點。樹中的每一個節點都是二分類,二分類器的機率相乘,對其相乘取對數變成求和,讓這個求和(機率)越大越好。it

樹的構造大概會根據每一個word出現的頻次會給一個權重,兩個兩個子樹去作拼接,造出來這麼一個Huffman Tree。 io

blog.csdn.net/rxt2012kc/a…

使用霍夫曼樹來代替傳統的神經網絡,能夠提升模型訓練的效率。可是若是咱們的訓練樣本里的中心詞w是一個很生僻的詞,那麼就得在霍夫曼樹中辛苦的向下走好久了。能不能不用搞這麼複雜的一顆霍夫曼樹,將模型變的更加簡單呢?電商

Negative Sampling就是這麼一種求解word2vec模型的方法,它摒棄了霍夫曼樹。

樣本中只有是一個標準答案,400w-1個錯誤答案,如今大部分的計算都耗在這400w-1個錯誤答案上,因此如今對錯誤答案作採樣

如今咱們來看看如何進行負採樣,獲得neg個負例。word2vec採樣的方法並不複雜,若是詞彙表的大小爲V,那麼咱們就將一段長度爲1的線段分紅V份,每份對應詞彙表中的一個詞。固然每一個詞對應的線段長度是不同的,高頻詞對應的線段長,低頻詞對應的線段短。

在採樣前,咱們將這段長度爲1的線段劃分紅M等份,這裏M>>V,這樣能夠保證每一個詞對應的線段都會劃分紅對應的小塊。而M份中的每一份都會落在某一個詞對應的線段上。在採樣的時候,咱們只須要從M個位置中採樣出neg個位置就行,此時採樣到的每個位置對應到的線段所屬的詞就是咱們的負例詞。

這裏若是它恰好拋到標準答案,那就跳過它。我要取V-1個負例出來,我會拋骰子V-1次。

由中間詞去預測中間詞的周邊詞(上下文)

多義詞:在電商裏面,若是用外面的語料和電商語料一塊兒來訓練Word2vec,其實還不如直接用電商的語料訓練效果好。

如何在全局語料裏面短裙和連衣裙它們是相近的,可是在電商裏面咱們要體現出來它們的差異,短裙和連衣裙是有差別的服裝。

相關文章
相關標籤/搜索