word2vec思想概述
今天了解了一下word2vec这个工具,之前用过但是没怎么细究,今天回顾整理一下。
关于word2vec的介绍,我觉得这篇文章《理解Word2Vec之Skip-Gram模型》讲的不错,主要介绍了word2vec的大概思想,以及实现的tricks。这篇文章后面附有代码,本人是先看代码,没看懂的才看文章,感觉豁然开朗。
此外,网上还有一篇《word2vec中的数学》,从理论角度阐述了word2vec背后的数学原理。这篇文章的作者的博客在这里。
简单地说,word2vec就是给定一个语料库,通过特定的神经网络模型+滑动窗口的思想去学习得到代表每个单词的向量。
word2vec是Tomáš Mikolov和其同事一起做的工作,涉及两篇论文。
Efficient Estimation of Word Representations in Vector Space.pdf,这篇论文提出了word2vec模型
Distributed Representations of Words and Phrases and their Compositionality.pdf,这篇论文提出了针对word2vec的两种优化方式,层次softmax和负采样(nce loss的简化版)。需要注意的是负采样和nce是不同的,负采样是nce的简化版,参见《(35 封私信 / 70 条消息) nce loss 与 sampled softmax loss 到底有什么区别?怎么选择? - 知乎》。
参考
- Noise Contrastive Estimation 前世今生——从 NCE 到 InfoNCE - 知乎
- 理解 Word2Vec 之 Skip-Gram 模型 - 知乎
- nlp/word2vec_中的数学原理详解.pdf at master · renpengcheng-github/nlp
- https://github.com/NELSONZHAO/zhihu/blob/master/skip_gram/Skip-Gram-English-Corpus.ipynb
- word2vec 中的数学原理详解 - peghoty - 博客园
- (35 封私信 / 67 条消息) 求通俗易懂解释下nce loss? - 知乎
- https://www.tensorflow.org/api_docs/python/tf/nn/nce_loss
- python - Understanding
tf.nn.nce_loss()
in tensorflow - Stack Overflow - 论文|万物皆可Vector之Word2vec:2个模型、2个优化及实战使用 - 知乎
- (35 封私信 / 70 条消息) nce loss 与 sampled softmax loss 到底有什么区别?怎么选择? - 知乎