在较早的论文“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).
从式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 中的概率:
同样,使用softmax来量化p(D=1| w, c; θ ):
因此,最终的目标函数为:
为了使目标函数最大化,有一个很简单的方法,即使得vc=vw,且vc·vw=K。当K足够大时,可以得到 p(D=1| w, c )=1,从而达到目标函数最大化。因此,为了所有的矢量有相同的值,作者生成了一个数据集D',D'中的所有单词、语境组合都不存在于 T 中,这些样例被称之为反例(negative examples),而获得反例的采样方法被称之为反例采集(negative-sampling)。引进了反例之后的目标函数演变为:
假设σ(x)=1/(1+e-x),则:
和式4进行比较,可以明显的看到累加嵌套的消除。两者最大的区别是式4根据条件概率 p( c | w )进行建模而此处根据联合概率 p(D=1| w, c )进行建模
参考文献
Efficient Estimation of Word Representations in Vector Space
Distributed Representations of Words and Phrases and their Compositionality
word2Vec Explained: Deriving Mikolov et al.'s Negative-Sampling Word-Embedding Method