Word2vec算法原理

Word2vec算法背景

Word2Vec是一种用于自然语言处理的词嵌入技术,它是由Google的Tomas Mikolov等人在2013年提出的。它的算法思想是基于词的上下文进行学习,使语义相近的词距离更近,使词向量的表达能力更强。同时由于Word2vec模型的设计更简单,训练复杂度会更低。

Word2vec模型结构

Word2vec有俩种结构,分别是 Continuous Bag-of-Words Model(CBOW)和 Continuous Skip-gram Model。它们的思想都是学习词与其上下文之间的关系,使得词向量更具有代表性。

Continuous Bag-of-Words Model

CBOW模型结构图
CBOW是基于中心词的上下文来预测中心词,从而学习词向量的方法。首先选择中心词 w t w_{t} wt,设定上下文窗口为 R R R,表示离中心词的最大距离R,就可以得到中心词的上下文 [ W t − R , W t − R + 1 , ⋯   , W t − 1 , W t + 1 , ⋯   , W t + R ] [W_{t-R},W_{t-R+1},\cdots,W_{t-1},W_{t+1},\cdots,W_{t+R}] [WtR,WtR+1,,Wt1,Wt+1,,Wt+R]。然后对这些上下文的词做one-hot得到每个词的输入向量 W ( 1 × V ) W(1\times V) W(1×V)。我们在对它们做一个映射,即乘一个向量矩阵 E ( V × N ) E(V\times N) E(V×N),每个上下文的词就可以得到对应的词向量。然后将向量相加就可以得到一个上下文的表征向量,在对其做分类预测,这样就完成基于上下文预测中心词的任务。然后我们通过大批量的数据学习,就可以使模型学习到中心词和上下文之间的关系,最终我们得到的向量矩阵 E E E是我们所求的词向量矩阵。

Skip-gram

Skip-gram模型结构
Skip-gram是通过中心词预测上下文。给定一个中心词 W t W_{t} Wt
设定上下文窗口为R,故中心词的上下文为 [ W t − R , ⋯   , W t − 1 , W t + 1 , ⋯   , W t + R ] [W_{t-R},\cdots,W_{t-1},W_{t+1},\cdots,W_{t+R}] [WtR,,Wt1,Wt+1,,Wt+R]。对中心词做one-hot,得到输入向量 W ( 1 × V ) W(1\times V) W(1×V),在做一个映射,乘上矩阵 E ( V × N ) E(V\times N) E(V×N),得到中心词的词向量。这样就可以通过预测上下文的方式不断地训练调优向量矩阵。

同时我们可以发现一个问题,每一次的分类是在长度为 ∣ V ∣ |V| V上做softmax,随着 ∣ V ∣ |V| V的增大,计算也相应增大。这时如果减少 ∣ V ∣ |V| V的长度,那么相应的算法复杂度也将下降。所以这时可以采用Negative-Sampling的方法实现我们的目的。

Negative-Sampling

Negative-Sampling就是负例采样,首先我们在词表中除去中心词和上下文词,然后从剩下的词中随机抽取 k k k个词作为负例,再与上下文词相结合,从而实现长度从 ∣ V ∣ |V| V降至 k + 1 k+1 k+1

举个例子,假如目标句子为“这是自然语言处理中的词向量化算法”,中心词为词,设置上文窗口为,那么上下文为 [ 的 , 向 ] [的,向] [,],那么我们可以随机采样“这”、“法”作为负样本,然后就可以预测在[这,的,法]、[这,向,法]的概率分布。这样可以大大降低我们的计算量。

应用

在实际应用中,我们通常使用Skip-gram算法,一方面是它在原理上更加合理,因为我们是预测与中心词更加可能的搭配。在CBOW中,通过较小的上下文窗口去预测中心词是比较难的,因为上下文窗口无法提供足够丰富的上下文,那么去预测中心词的话效果理所应当比较差。另一方面是在实际使用中,CBOW的效果是不如于Skip-gram。结合Bert算法来看的话,它的模型设计跟CBOW更加相似,但是它考虑的上下文语意是更加丰富的,模型也更加复杂。

  • 36
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值