【word2vec】篇三:基于Negative Sampling 的 CBOW 模型和 Skip-gram 模型

系列文章:

  1. 【word2vec】篇一:理解词向量、CBOW与Skip-Gram等知识
  2. 【word2vec】篇二:基于Hierarchical Softmax的 CBOW 模型和 Skip-gram 模型
  3. 【word2vec】篇三:基于Negative Sampling 的 CBOW 模型和 Skip-gram 模型

Negative Sampling是这么一种求解word2vec模型的方法,它摒弃了霍夫曼树,采用了Negative Sampling(负采样)的方法来求解。

负采样算法

在CBOW模型中,已知词 w w w的上下文 c o n t e x t ( w ) context(w) context(w)需要预测 w w w。因此,对于给定的 c o n t e x t ( w ) context(w) context(w),词 w w w就是一个正样本,其它词就是负样本了。在Skip-gram中同样也存在正负样本问题。负样本那么多,该如何选取呢?这就是Negative Sampling(负采样)问题。也就是对于给定的词,如何生成其负样本子集 N E G ( w ) NEG(w) NEG(w)

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

word2vec采用的负采样方法如下:

(2)首先将一段长度为1的线段分成长度不相等 V V V份( V V V是词汇表的大小),每份对应词汇表的一个词。高频词对应长线段,低频词对应短线段。每个词的线段长度由下式决定:
l e n ( w ) = c o u n t ( w ) ∑ u ∈ D c o u n t ( u ) len(w) = \frac{count(w)}{\sum\limits_{u \in D} count(u)} len(w)=uDcount(u)count(w)
在word2vec中,分子和分母都取了3/4次幂如下:
l e n ( w ) = c o u n t ( w ) 3 / 4 ∑ u ∈ D c o u n t ( u ) 3 / 4 len(w) = \frac{count(w)^{3/4}}{\sum\limits_{u \in D} count(u)^{3/4}} len(w)=uDcount(u)3/4count(w)3/4
(2)在引入一个长度为1的线段进行等距划分 M M M份,其中 M > > N M>>N M>>N,如下图所示:

在这里插入图片描述

如图所示,M份中的每一份都会落在某一个词对应的线段上。

(3)采样时,先从M个位置中采出neg个位置,再匹配到这neg个位置对应的词就是负词。如假设我们先采出 m 3 m_3 m3,对应 I 2 I_2 I2 I 2 I_2 I2对应的词就是负词。

注:在word2vec中,M取值默认为 1 0 8 10^8 108

CBOW模型

假设已经采样一个关于 w w w的非空负样本子集 N E G ( w ) NEG(w) NEG(w) ,且对于 w ~ ∈ D \tilde w \in D w~D,定义:
L w ( w ~ ) = { 1 , w ~ = w 0 , w ~ ≠ w L^w(\tilde w ) = \begin{cases} 1, \quad \tilde w = w \\ 0, \quad \tilde w \ne w \end{cases} Lw(w~)={ 1,w~=w0,w~=w
表示词 w ~ \tilde w w~的标签。即正样本的标签为1,负样本的标签为0。

对于一个给定的正样本 ( c o n t e x t ( w ) , w ) (context(w),w) (context(w),w),希望最大化:
g ( w ) = ∏ u ∈ w ∪ N E G ( w ) P ( u ∣ c o n t e x t ( w ) ) g(w) = \prod_{u \in {w} \cup NEG(w) }P(u|context(w)) g(w)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CBOW模型Skip-gram模型Word2Vec中的两种训练模型,而DM模型和DBOW模型是在Doc2Vec中对应的两种训练模型。下面对它们的异同进行简述: 1. CBOW模型Skip-gram模型 CBOW模型Skip-gram模型Word2Vec中的两种训练模型,都是基于神经网络的方法用于学习单词的分布式表示。 CBOW模型(Continuous Bag-of-Words Model)是通过上下文单词预测当前单词的模型,即给定上下文单词预测当前单词,因此CBOW模型适用于文本中单词出现的上下文信息相对于单词本身信息更加重要的情况。 Skip-gram模型是通过当前单词预测上下文单词的模型,即给定当前单词预测上下文单词,因此Skip-gram模型适用于文本中单词本身信息相对于出现上下文信息更加重要的情况。 2. DM模型和DBOW模型 DM模型(Distributed Memory Model)和DBOW模型(Distributed Bag of Words Model)是在Doc2Vec中对应的两种训练模型,都是基于神经网络的方法用于学习文档的分布式表示。 DM模型是在CBOW模型的基础上进行改进,通过文档的上下文信息预测当前单词,同时也将文档ID作为输入。 DBOW模型类似于Skip-gram模型,通过文档ID预测文档中的单词。 3. 异同点 CBOW模型Skip-gram模型主要的区别在于预测单词的方式不同,CBOW模型是通过上下文单词预测当前单词,而Skip-gram模型是通过当前单词预测上下文单词。因此,CBOW模型的训练速度通常会比Skip-gram模型快,但Skip-gram模型通常可以得到更好的效果。 DM模型和DBOW模型主要的区别在于是否将文档ID作为输入。DM模型通过文档的上下文信息预测当前单词,同时也将文档ID作为输入,因此可以学习到文档的语义信息。而DBOW模型仅仅通过文档ID预测文档中的单词,因此无法学习到文档的语义信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值