思想:Representing words by their context
Distributional semantics :⼀个单词的意思是由经常出现在它附近的单词给出的
- “You shall know a word by the company it keeps” (J. R. Firth 1957: 11)
- 现代统计NLP最成功的理念之⼀,有点物以类聚,⼈以群分的感觉
- 当⼀个单词 出现在⽂本中时,它的上下⽂是出现在其附近的⼀组单词(在⼀个固定⼤⼩的窗⼝中)。
Word2vec (Mikolov et al. 2013)是⼀个学习单词向量的框架IDEA:
- 我们有⼤量的⽂本 (corpus means 'body' in Latin. 复数为corpora)
- 固定词汇表中的每个单词都由⼀个向量表示
- ⽂本中的每个位置 ,其中有⼀个中⼼词 和上下⽂(“外部”)单词
- 使⽤ 和 的 词向量的相似性 来计算给定 的 的 概率 (反之亦然)
- 不断调整词向量 来最⼤化这个概率
Word2vec objective function
Word2vec 是⼀个软件包实际上包含:
- 两个算法:continuous bag-of-words(CBOW)和 skip-gram。CBOW 是根据中⼼词周围的上下⽂单词来预测该词的词向量。skip-gram 则相反,是根据中⼼词预测周围上下⽂的词的概率分布。
- 两个训练⽅法:negative sampling 和 hierarchical softmax。Negative sampling 通过抽取负样本来定义⽬标,hierarchical softmax 通过使⽤⼀个有效的树结构来计算所有词的概率来定义⽬标。
参考资料
徐啸:[CS224n笔记] L1 Introduction and Word Vectorszhuanlan.zhihu.com这一篇是CS224n的笔记,损失函数推导很详尽,内容以课件为主。
天雨粟:理解 Word2Vec 之 Skip-Gram 模型zhuanlan.zhihu.com这一篇全是干货
天雨粟:基于TensorFlow实现Skip-Gram模型zhuanlan.zhihu.com上一篇的实战篇,看了代码你啥都知道了
我想我是她的海:一篇浅显易懂的word2vec原理讲解zhuanlan.zhihu.com补充CBOW的知识
张云:关于word2vec,我有话要说zhuanlan.zhihu.com实际训练word2vec过程中会遇到的问题
一文搞懂短小精悍的全能fastTextmp.weixin.qq.comfasttext
TianMin:word2vec中的负采样与分层softmaxzhuanlan.zhihu.com负采样和分层softmaxt