记录篇:【百面机器学习】第一章.特征工程---Word2Vec

场景描述

谷歌2013年提出的Word2Vec是目前最常用的词嵌入模型之一。Word2Vec实际上是一种浅层的神经网络模型,它有两种结构,分别是CBOW和Skip-gram。

Word2Vec是如何工作的?它和LDA有什么区别和联系?

CBOW的目标是根据上下文出现的词语来预测当前词的生成概率(也就是两边预测中间),而Skip-gram是根据当前词来预测上下文中各词的生成概率(也就是中间预测两边)。

CBOW和Skip-gram都可以表示成由输入层、映射层和输出层组成的神经网络。

输入层中的每个词由独热编码方式表示,即所有词组成一个N维向量,其中N为词汇表中单词的总数,在向量中,每个词都将与之对应的维度置为1,其余维度的值均设为0。

映射层(又称隐含层)中,K个隐含单元的取值可以由N维输入向量以及连接输入和隐含单元之间的N*K维的权重矩阵计算得到,在CBOW中,还需要将各个输入词所计算出的隐含单元求和。

输出层向量的值可以通过隐含层向量(K维),以及连接隐含层和输出层之间的K*N维的权重矩阵计算得到,输出层向量应用Softmax激活函数,可以计算出每个单词的生成概率。

接下来的任务就是计算神经网络的权重,使得语料库中的所有单词的整体生成概率最大化。

从输入层到隐含层需要一个维度N*K的权重矩阵,学习权重可以通过反向传播算法来实现,每次迭代时将权重沿着梯度更优的方向进行一小步更新 。但是由于Softmax激活函数中存在归一化项的缘故,推到出来的迭代公式需要对词汇表中的单词进行遍历,使得每次迭代过程非常缓慢,由此产生了两种改进方法,有兴趣可以参看Word2Vec的原论文。

谈到Word2Vec与LDA的区别与联系,首先LDA是利用文档间的共现关系来对单词按照主题聚类,也可以理解为“文档-单词”矩阵进行分解,得到“文档-主题”和“主题-单词”两个概率分布。而Wold2Vec其实是对“上下文-单词”矩阵进行学习,其中上下文由周围的几个单词组成,由此得到的词向量更加融入了上下文的特征。也就是说,如果两个单词所对应的Word2Vec向量相似度较高,那么 他们很可能经常在同样的上下文中出现。

需要说明的是,上述分析是LDA和Word2Vec之间的不同,不应该作为主题模型和词嵌入两类方法的主要差异。主题模型和词嵌入两类方法最大的不同其实在于模型本身,主题模型是一种基于概率图模型的生成式模型,其似然函数可以写成若干条件概率连乘的形式,其中包括需要推测的隐变量(即主题);而词嵌入模型一般表达为神经网络的形式,似然函数定义在网络的输出之上,需要通过学习网络的权重以得到单词的稠密向量表示。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值