视频课/大神笔记的“学后感”
笔记类
- 线上GPU:FloydHub Blog
- 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。Embedding projector - visualization of high-dimensional data