当前位置:   article > 正文

基于Negative Sampling的模型_skip-gram noise contrastive estimation

skip-gram noise contrastive estimation

本篇介绍基于 Negative Sampling 的 CBOW和 Skip-gram模型。Negative Sampling(简称为 NEG)是 NCE(Noise Contrastive Estimation)的一个简化版本,目的是用来提高训练速度并改善所得词向量的质量。与 Hierarchical Softmax 相比,NEG 不再使用(复杂的)Huffman树,而是利用(相对简单的)随机负采样,能大幅度提高性能,因而可作为 Hierarchical Softmax 的一种替代。

1. CBOW模型

在 CBOW 模型中,已知词w的上下文context(x),需要预测w,因此,对于给定的context(x),词w就是一个正样本,其它词就是负样本。负样本那么多,该如何选取呢? 

假定现在已经选好了一个关于context(x)的负样本子集NEG(w)\neq 0。且对\forall \widetilde{w}\in D,定义

此公式定义了词w的标签,即正样本的标签为 1,负样本的标签为 0。

对于一个给定的正样本(context(x),x),我们希望最大化。

 其中

 或者写作整体表达式

这里x_{w}仍任然表示中context(x)各词的词向量之和,而\theta ^{u}表示词u对应的一个辅助向量,为待训练参数。

为什么要最大化g(w),让我们先来看看g(w)的表达式,将公式(5.2)代入(5.1)可得:

 

给定一个词w,怎样生成NEG(w) 呢?

词典D中的词在语料C中出现的次数有高有低,对于那些高频词,被选为负样本的概率就应该比较大,反之,对于那些低频词,其被选中的概率就应该比较小。这就是我们对采样过程的一个大致要求,本质上就是一个带权采样的问题。

下面先用一段通俗的描述来帮助读者理解带权采样的机理:

设词典D中的每一个词w对应一个线段l(w),长度为

len(w)=\frac{counter(w)}{\sum_{u\in D}counter(u)}

这里的counter(w)表示一个词在语料C中出现的次数(分母中的求和项用来做归一化)。现在将这些线段首尾相连拼接在一起,形成一个长度为1的单位线段.如果随机地往这个单位线段上打点,则其中长度越长的线段(对应高频词)被打中的概率就越大。(例如有4个词,出现的次数是 1 2 2 5,每个词出现归一化次数是0.1 0.2 0.2 0.5)

接下来谈谈 word2vec 中的具体做法:记l_{0}=0l_{k}=\sum_{j=1}^{k}len(w_{j}),k=1,2,...,N,这里w_{j}表示词典中的第j个词,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/755635
推荐阅读
相关标签
  

闽ICP备14008679号