1、首先,word2vec可以在百万数量级的词典和上亿的数据集上进行高效地训练;
其次,该工具得到的训练结果——词向量(word embedding),可以很好地度量词与词之间的相似性。
其实word2vec算法的背后是一个浅层神经网络。
另外需要强调的一点是,word2vec是一个计算word vector的开源工具。当我们在说word2vec算法或模型的时候,其实指的是其背后用于计算word vector的CBoW模型和Skip-gram模型。
问题来了:连续的稠密向量去刻画一个word的特征?
基于假设:Distributional Hypothesis,是说上下文环境相似的两个词有着相近的语义。
解决方案:
在03年的论文里,Bengio等人采用了一个简单的前向反馈神经网络𝑓(𝑤𝑡−𝑛+1,...,𝑤𝑡)来拟合一个词序列的条件概率𝑝(𝑤𝑡|𝑤1,𝑤2,...,𝑤𝑡−1)。整个模型的网络结构见下图:
Neural Network Language Model首先,我们对原始的NNLM模型做如下改造:
移除前向反馈神经网络中非线性的hidden layer,直接将中间层的Embedding layer与输出层的softmax layer连接;
忽略上下文环境的序列信息:输入的所有词向量均汇总到同一个Embedding layer;
将Future words纳入上下文环境
CBoW模型CBoW模型依然是从context对target word的预测中学习到词向量的表达。反过来,我们能否从target word对context的预测中学习到word vector呢?答案显然是可以的:
Skip-gram模型 层次softmax参考资料:
1、[NLP] 秒懂词向量Word2vec的本质 https://zhuanlan.zhihu.com/p/26306795
2、NLP之——Word2Vec详解 https://www.cnblogs.com/guoyaohua/p/9240336.html
3、使用笔记 https://www.jianshu.com/writer#/notebooks/27148139/notes/35256142
网友评论