词向量简介
词向量指的是一个词的向量表示。如果你希望计算机能够进行一些复杂点的文本语义学习,你必须得将文本数据编码成计算机能够处理的数值向量吧,所以词向量是一个自然语言处理任务中非常重要的一环。
词向量模型word2vec
那我们如何得到上述具有语义Distributional representations的词向量呢,2013年提出的word2vec的方法就是一种非常方便得到高质量词向量的方式。其主要思想是:一个词的上下文可以很好的表达出词的语义,它是一种通过无监督的学习文本来用产生词向量的方式。word2vec中有两个非常经典的模型:skip-gram和cbow。
模型任务:
skip-gram:已知中心词预测周围词。
cbow:已知周围词预测中心词。
比如 “the quick brown fox jumps over the lazy dog” 如果定义window-size为2的话,就会产生如下图所示的数据集,window-size决定了目标词会与多远距离的上下文产生关系:
Skip-Gram:(the,quick) ,其中the 是模型的输入,quick是模型的输出。
Cbow: ((quick,brown),the) ,其中 (quick,brown)是模型的输入,the是模型的输出。
训练数据生成如下图
skip-gram,cbow的模型架