word2vec原理概述

  • 最近阅读了Mikolov两篇关于word2vec的论文,结合Goldberg对这两篇论文的解读,作如下概述。
  • 概述
在较早的论文“Efficient Estimation of Word Representations in Vector Space”中,Mikolov讨论了Feedforward Neural Net Language Model (NNLM)、Recurrent Neural Net Language Model (RNNLM)以及论文中描述的两个新模型Continuous Bag-of-Words Model (CBOW)和Continuous Skip-gram Model (Skip-gram). 
  NNLM是最早提出的前馈神经网络模型,模型由输入层(input)、映射层(projection)、隐藏层(hidden)和输出层(output)构成,其中主要的计算瓶颈是映射曾到隐藏层的转换;RNNLM克服了NNLM的部分局限性,比如无需指定语境的长度。RNN没有映射层,只有输入、隐藏、输出三层。至此,神经网络语言模型的性能瓶颈集中在了非线性的隐藏层中。
   为了提升计算效率,作者提出了CBOW和Skip-gram。其中CBWM去除了隐藏层,并让输入层的所有单词共享映射层。从图一左可以看到,CBOW使用围绕目标单词的其他单词(语境)作为输入,在映射层做加权处理后输出目标单词。 word2vec原理概述
区别于CBOW根据语境预测目标单词,Skip-gram根据当前单词预测语境,如图一右所示。在“
Distributed Representations of Words and Phrases and their Compositionality ”中,作者对Skip-gram做了进一步的论述和扩展。本文详细描述Skip-gram的原理及扩展。
  • 定义及符号
           文本集合(Text): T
单词(word): w,使用长度为d的列向量表示
语境(context):以单词 w 为中心,向前k个单词,向后k个单词所形成的短语中包含的单词
模型参数: θ
条件概率p( c | w ):当 w 出现时,某一语境 c 出现的概率
C( w ):在文本集合 T 中,单词 w 出现过的语境包含的单词的集合
语境中的单词 c,使用长度为d的列向量表示  c C( w )
cw 均表示单词,但作者认为,即使对于同一个单词,比如apple,它作为普通单词和作为语境中的单词是的向量表示是不同的,因此使用不同的符号来表示语境中的单词和普通单词。
V:文本集合对应的词汇表
D:所有单词 w 和它的语境 C( w ) 构成的组合的集合
  • Skip-gram
Skip-gram的目标是寻找参数集合 θ来最大化如下条件概率的乘积:
word2vec原理概述
等同于下式:
word2vec原理概述
作者使用了逻辑回归的扩展Softmax [4] 对 θ 进行形式化处理,使得条件概率转化为下式:
word2vec原理概述
其中vc和vw分别是 c w 的列向量,维度为d C 是所有语境中的单词构成的集合,等同于词汇表V。参数 θ 就是vc和vw中每一维度的具体取值,参数的总数为|C| ×|V|× d 。将式3代入式2,并于等式两边取对数可得:
word2vec原理概述
作者认为,通过训练得到的单词的向量表示vw能够使得条件概率p(c|w)最大化,则vw是w的好的表示。这里潜在的基本假设是:相似的单词拥有相似的语境。换言之,特定的语境只有确定的语义才能够与之匹配。通过最大化条件概率,使得单词和语境之间的对应关系最大化,进而满足了基本假设:相似的单词拥有相似的语境。而满足条件概率最大化的单词矢量,也就成为了单词语义的合理表示。
从式3可以发现,由于条件概率 p( c | w )的分母计算需要很大代价,作者使用hierarchical softmax来近似softmax,并用霍夫曼树来构建hierachical softmax.
  • Negative Sampling
另一种降低计算代价的方法是改变目标函数。对于一个单词、语境组合( w, c ),使用p(D=1| w, c )来表示这个组合存在于 T 中的概率,对应的 p(D=0| w, c ) = 1- p(D=1| w, c ) ,表示 w, c )不在 T 中的概率。与前文类似,假设集合 θ是控制 p(D=1| w, c )分布的参数,那么此时的目标是寻找参数集合θ来最大化 w, c )存在于 T 中的概率:
word2vec原理概述
同样,使用softmax来量化p(D=1| w, c; θ ):
word2vec原理概述
因此,最终的目标函数为:
word2vec原理概述
为了使目标函数最大化,有一个很简单的方法,即使得vc=vw,且vc·vw=K。当K足够大时,可以得到 p(D=1| w, c )=1,从而达到目标函数最大化。因此,为了所有的矢量有相同的值,作者生成了一个数据集D',D'中的所有单词、语境组合都不存在于 T 中,这些样例被称之为反例(negative examples),而获得反例的采样方法被称之为反例采集(negative-sampling)。引进了反例之后的目标函数演变为:
word2vec原理概述
假设σ(x)=1/(1+e-x),则:
word2vec原理概述
和式4进行比较,可以明显的看到累加嵌套的消除。两者最大的区别是式4根据条件概率 p( c | w )进行建模而此处根据联合概率 p(D=1| w, c )进行建模


  • 参考文献
  1. Efficient Estimation of Word Representations in Vector Space
  2. Distributed Representations of Words and Phrases and their Compositionality
  3. word2Vec Explained: Deriving Mikolov et al.'s Negative-Sampling Word-Embedding Method
  4. Softmax Regression, www.cnblogs.com/tornadomeet/archive/2013/03/22/2975978.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值