Word2Vec详解

自然语言处理问题中,一般以词作为基本单元,例如我们想要分析 “我去过华盛顿州” 这句话的情感,一般的做法是先将这句话进行分词,变成我,去过,华盛顿州,由于神经网络无法处理词,所以我们需要将这些词通过某些办法映射成词向量。词向量是用来表示词的向量,也可被认为是词的特征向量。把词映射为实数域向量的技术也叫词嵌入(word embedding)

为何不采用One-Hot编码

假设词典中不同词的数量为N ,每个词可以和从 0 到 N-1 的连续整数一一对应。假设一个词的相应整数表示为i ,为了得到该词的 one-hot 向量表示,我们创建一个全 0 的长为 i的向量,并将其第 i为设位 1

然而,使用 one-hot 词向量并不是一个好选择。一个主要的原因是,one-hot 词向量无法表达不同词之间的相似度,例如,任何一对词的 one-hot 向量的余弦相似度都为 0
在这里插入图片描述

word2vec

2013 年,Google 团队发表了 word2vec 工具。word2vec 工具主要包含两个模型:跳字模型(skip-gram)和连续词模型(continuous bag of words,简称 CBOW),以及两种高效训练的方法:负采样(negative sampling)和层序 softmax(hierarchical softmax)。值得一提的是,word2vec 词向量可以较好地表达不同词之间的相似度和类比关系

Skip-Gram

在跳字模型中,我们用一个词来预测它在文本序列周围的词。例如,给定文本序列 “the”,“man”,“hit”,“his”,“son”。设背景窗口大小为 2, 跳字模型所关心的是,给定 “hit”,生成它邻近词 “the”,“man”.“his”,“son” 的概率(在这个例子中,“hit” 叫中心词,“the”,“man”,“his”,“son” 叫背景词),即
在这里插入图片描述
假设在给定中心词的情况下,背景词的生成是相互独立的,那么上式可以改写成
在这里插入图片描述
对于skip-gram模型,其公式表达为
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

CBOW模型

连续词袋模型与跳字模型类似。与跳字模型最大的不同是,连续词袋模型是用一个中心词在文本序列周围的词 来预测中心词。简单的说就是,跳字模型用中心词预测周围的词;连续词袋模型用周围的词预测中心词。例如,给定文本 “the”,“man”,“hit”,“his”,“son”,连续词袋模型所关心的是,邻近词 “the”,“man”,“his”,“son” 一起生成中心词 “hit” 的概率

在这里插入图片描述
在这里插入图片描述

近似训练法

可以看到,无论是跳字模型还是连续词袋模型,每一步梯度计算的开销与词典 V 的大小呈正相关。显然,当词典较大时,这种训练方法的计算开销会很大。所以使用上述训练方法在实际中是由难度的。我们可以使用近似的方法来计算这些梯度,从而减小计算开销。常用的近似训练法包括负采样和层序 softmax

负采样

在这里插入图片描述
在这里插入图片描述
假设噪声词wk 在词典中的索引为i k,上式可改写为

因此,有关中心词 w c 生成背景词wo 的损失函数是
在这里插入图片描述
现在,训练中每一步的梯度计算开销不再与词典大小相关,而与K 线性相关。当 K取较小的常数时,负采样的每一步梯度计算开销也较小

在这里插入图片描述
在负采样中可以近似为
在这里插入图片描述

层次softmax

在这里插入图片描述
在这里插入图片描述
这里的二叉树 Huffman 树,权重是语料库中 word 出现的频率

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值