視頻課/大神筆記的“學後感”
筆記類
- 線上GPU:https://www.floydhub.com/
- Google's trained Word2Vec model in Python
- tensorflow如何正確加載預訓練詞向量
- 各種預訓練的詞向量(Pretrained Word Embeddings)
- word2vec是如何得到詞向量的(多個有用回答:高贊前兩名 + word2vec是如何得到詞向量的? - 到處挖坑蔣玉成的回答 - 知乎 https://www.zhihu.com/question/44832436/answer/802442061 + word2vec是如何得到詞向量的? - shirley的回答 - 知乎 https://www.zhihu.com/question/44832436/answer/179769034)
代碼類
- 訓練詞向量(個人:可運行)
視頻課:[MXNet/Gluon] 動手學深度學習第十六課:詞向量(word2vec)
- 視頻主要包括以下內容:詞向量和word2vec工具概述、word2vec的兩種模型——跳字模型(skip-gram)、連續詞袋模型(CBOW),以及兩種高效的訓練方法(以減少訓練開銷)——負採樣(negative sampling)、層序softmax(hierarchical softmax)。視頻主要介紹模型原理,基本未涉及模型的實現。對現階段的個人學習用處不大。
- 可以直接使用已經預訓練好的詞模型,以mxnet框架爲例:
#先用pip安裝mxnet框架
from mxnet.contrib import text
視頻課件:NLP到Word2vec實戰
課件鏈接:https://pan.baidu.com/s/1P8Ca2pe47YAnSWHh_SXxHw 密碼:7f3h
課件挺有用的呢,偏基礎,適合菜鳥本菜。
以NLTK爲基礎介紹NLP原理
- 代碼較多,若需使用NLTK處理文本,可以參考本節PPT。
Word2Vec理論基礎
1.文本離散表示之One-hot
2.文本離散表示之Bag of Words
3.文本離散表示之Bi-gram和N-gram
1.分佈表示之基於矩陣(又稱分佈語義模型)
2.分佈表示之基於神經網絡 (詞向量)
神經網絡語言模型(NNLM)
循環神經網絡語言模型(RNNLM)
谷歌Word2Vec工具 之 CBOW模型和Skip-Gram模型
-
分佈表示之Word2Vec
-
分佈表示之Word2Vec改進版(Glove、FastText等)
-
離散表示VS分佈表示
Word2Vec應用案例
有興趣的同學可以試試gensim的doc2vec;同時使用LSTM神經網絡分類效果會比SVM更好。
Word2Vec在深度學習中的應⽤:⽂本⽣成(Word2Vec + RNN/LSTM) 、⽂本分類(Word2Vec + CNN)
處理序列數據——RNN循環神經網絡。LSTM是RNN的一種。(關於LSTM,詳見本部分第四課PPT,風格有趣值得看)
大神筆記
[NLP] 秒懂詞向量Word2vec的本質
Word2vec的最終目的:關心模型訓練完後的副產物——模型參數(這裏特指神經網絡的權重),並將這些參數作爲輸入 x 的某種向量化的表示,這個向量便叫做——詞向量。
投影層(相當於隱層)的激活函數是線性的,相當於沒做任何處理(這也是 Word2vec 簡化之前語言模型的獨到之處),我們要訓練這個神經網絡,用反向傳播算法,本質上是鏈式求導,在此不展開說明了。當模型訓練完後,最後得到的其實是神經網絡的權重。
輸出的詞向量的維度(與隱含層節點數一致)一般情況下要遠遠小於詞語總數 V 的大小,所以 Word2vec 本質上是一種降維操作——把詞語從 one-hot encoder 形式的表示降維到 Word2vec 形式的表示。
訓練技巧(trick):hierarchical softmax 和 negative sampling
大神筆記:理解 Word2Vec 之 Skip-Gram 模型
CBOW模型:由上下文預測詞。輸入是8個詞向量,輸出是所有詞的softmax概率。當我們要求出某8個詞對應的最可能的輸出中心詞時,我們可以通過softmax激活函數找到概率最大的詞對應的神經元即可。如CBOW模型:訓練模型時,詞向量只是個副產品,確切來說,是CBOW模型的一個參數。 訓練開始的時候,詞向量是個隨機值,隨着訓練的進行不 斷被更新。
Skip-Gram模型:和CBOW的思路是反着來的,即輸入是特定的一個詞的詞向量,而輸出是特定詞對應的上下文詞向量。還是上面的例子,我們的上下文大小取值爲4, 特定的這個詞"Learning"是我們的輸入,而這8個上下文詞是我們的輸出。這樣我們這個Skip-Gram的例子裏,我們的輸入是特定詞, 輸出是softmax概率排前8的8個詞。
使用T-SNE,PCA等降維可視化展示
詞的分佈,推薦用google的tensorboard,可以多視角查看,如果不想搭建服務,直接訪問這裏。另外可以用python的matplotlib。http://projector.tensorflow.org/