Word2Vec算法简介

一.简介

  word2vec是Google在2003年开源的一款将词表征为实数值向量的高效算法,采用的模型有CBOW【Continuous Bag-Of-Words 连续的词袋模型】和Skip-Gram两种。

  word2vec通过训练,可以把文本内容的处理简化为k维向量空间中的向量运算,二向量空间上的相似度可以用来表示文本语义上的相似度。

二.背景知识

  1.One-hot Representation

    NLP相关的任务中最常见的第一步是创建一个词表库并把每个词顺序编号。这实际就是词表示方法中的One-hot Representation,这种方法把每个词顺序编号,每个词就是一个很长的向量,向量的维度等于词表大小,一般采用稀疏编码存储,只有对应位置上的数字为1其它都为0。

    这种表示方法最大的问题是无法捕捉词与词之间的相似度,而且还容易发生维数灾难,尤其是在Deep Learning相关的一些应用中。

  2.Distributed Representation

    Distributed Representation 通过训练将每个词映射成k维实数向量【k一般为模型的超参数】,通过词之间的距离【比如:cosine相似度、欧式距离等】来判断它们之间的语义相似度。word2vec就是采用这种词向量表示方式。

三.统计语言模型

  传统的统计语言模型是表示语言基本单位【一般为句子】的概率分布函数,这个概率分布也就是该语言的生成模型。一般语言模型可以使用各个词语条件的概率表示。

  1.上下文无关模型

    该模型仅仅考虑当前词本身的概率,不考虑词所对应的上下文环境,仅仅依赖于训练文本中的词频统计。这是一种最简单,易于实现,但没有多大实际应用价值的统计语言模型。它是n-gram模型中n=1时候的特殊情况,所以也称为Unigram Model【一元文法统计模型】。

  2.n-gram模型

    当n=1时,就是上面所说的上下文无关模型,这里n-gram一般认为是n>=2时的上下文相关模型。当n=2时,也称为Bigram语言模型。n指往前看n-1个词而不是一个词。

    一般n-gram模型优化的目标是最大log似然。

未完待续。。。

猜你喜欢

转载自www.cnblogs.com/yszd/p/10872282.html
今日推荐