了解word2vec

image

一、什么是word2vec

word2vec是Google在2013年中开元的一款将词表征为实数值向量的高效工具,采用的模型有CBOW(Continuous Bag-Of-Words,即连续的词袋模型)和Skip-Gram两种。word2vec项目主页地址点击,它遵循Apache License 2.0 开源协议,是一种对商业友好的许可,需要充分尊重原作者的著作权。
word2vec一般被外界认为是一个Deep Learning(深度学习)的模型,究其原因,可能和作者Tomas Mikolov的Deep Learning背景以及word2vec是一种神经网络模型相关,但我们认为该模型层次较浅,严格来讲还不能算是深层模型。当然如果word2vec上层再套一层与具体应用相关的输出层,比如Softmax,此时更像是一个深层模型。
word2vec通过训练,可以把对文本内容处理简化为K维向量空间中的向量运算,而向量空间上的相似度可以用来表示文本语义上的相似度。因此,word2vec输出的词向量可以被用来做很多NLP相关的工作,比如聚类、找同义词、词性分析等。而word2vec被人广为传颂的地方是其他向量的假发组合运算(Additive Compositionality),官网上的例子是:vector(‘Paris’) - vector(‘France’) + vector(‘Italy’) ≈ vector(‘Rome’)。但我们认为这个多少有点被过度炒作了,很多其他降维或主题模型在一定程度也能达到类似效果,而word2vec也只是少量的例子完美符合这种加减法操作,并不是所有的case都满足。
word2vec大受欢迎的另一个原因是其高效性,Mikolov在论文中支出优化的单机版本一天可训练上千亿词。

二、快速入门

  1. 代码下载
  2. 针对个人需求修改makefile文件,也可以不做修改
  3. 运行“make”编译word2vec工具
  4. 运行demo脚本,查看效果

三、背景知识

1.One-hot Representation
NLP相关任务中最常见的第一步是创建一个词表库并把每个词顺序编号。