【NLP】|01 NLP常見模型(一)Word2Vec
一、Word2Vec:
1.需要具備的基礎知識:
- 哈夫曼樹、哈夫曼編碼(變長編碼,高頻距離root近)
- 【統計語言模型】N-gram模型(這里模型表示的下標和上標表示起始和終止,表示第k個單詞被假設只和其前n-1個單詞相關,也就是【k-(n-1)一直到k-1】)
傳統的方法需要存儲N+N^2+...+N^n的參數(N代表詞典,n代表n-gram),
- 所以放到神經網絡優化,也就設想出了【神經語言模型】:

具體點:

神經語言模型存在的缺點就是,計算量過于龐大。
2.word2vec:
上面的神經網絡模型對詞向量的關注很少,而word2vec主要的任務是去生成向量(對語言模型的概率求最大似然得到)
將輸入層到投影層的運算從『拼接』變成『疊加』
針對『隱層和輸出層之間的矩陣運算』,word2vec選擇刪去隱藏層。如下,wi網絡參數就是yi訓練出來的詞向量。

因為沒辦法對字典級別的yi進行softmax訓練,所以提出了兩種方法:Hieraichical Softmax和Negative Sampling。
(1)Hierarchical Softmax優化:
利用了樹實現了分層的Softmax,即用樹形結構替代了輸出層的結構。Hierarchical softmax采用的樹是二叉樹。它將樹上的葉子節點分配給詞典里的詞,而將從樹根到葉子節點的路徑上的每個非葉子結點都看作是二分類,路徑上的二分類概率連乘的結果就是該葉子節點對應的詞的概率。一個full softmax需要一次計算所有的W個詞,而hierarchical softmax卻只需要計算大約logW(即樹根到該葉子節點的路徑長度)個詞,大大減少了計算的復雜度。高頻詞短編碼速度更快。
CBOW:

Skip-gram:當前一個詞--->huffman樹
(2)Negative Sampling優化:隨機負采樣
采樣概率:f(wi?) 是數據集中詞wi?的個數與總詞數之比,按照[f(wi?) ^0.75]/[Σf(wi?) ^0.75]的概率采樣,采5-20個左右停止(自己定)
3.word2vec并行:
將訓練的語料分成若干份,依次交給并行的線程、進程或分布式機器等并行運行載體進行Skip-Gram或CBow-Gram模型訓練,在各個獨立的并行空間中,語料是不相同的,但訓練的神經網絡、詞向量和哈夫曼是共享的,訓練中使用的學習率等參數需要更新,在結束訓練后需要計算。
偶然看到的代碼資源:尚未實現
浙公網安備 33010602011771號