Word2Vec总结

Word2Vec 理解总结

统计语言模型

提到Worde2vec,就不得不从统计语言模型开始讲起。什么是统计语言模型,《数学之美》中给出了很好的答案。看一个句子是否通顺,读者是通过句子语法来了解。而计算机则是通过概率来得到。即本句子各词出现这样排列的可能性的大小决定了词句子是否合理。什么是统计语言模型,《数学之美》中给出了很好的答案。看一个句子是否通顺,读者是通过句子语法来了解。而计算机则是通过概率来得到。即本句子各词出现这样排列的可能性的大小决定了词句子是否合理。
如何计算这个句子出现的概率呢,这个概率的计算需要用到一系列的参数,而计算这些参数的方法主要有n-gram神经网络两种方式。所谓n-gram,是指当前出现词汇只与当前词之前的n个词有关。但此方法存在需要进行平滑化的问题。而神经网络方式却很好的克服了平滑问题。在神经网络的方式中,输入为当前词的前n个词的词向量。假设词向量维度为m,语料中分词为N,则输入为(n-1)*m个神经元。输出为softmax层N个神经元。为了使输出表示概率,还需要对softmax层进行归一化处理。
在神经网络中所需参数,除了网络中的权重偏置就是词向量。下面的Word2Vec将对词向量的建立进行详细阐述。

Word2Vec

Word2Vec,就是指词向量化。即用向量表示语料中的词。最简单的方式当属one-hot的方式。即设词库中有M个词,则每个词的词向量需要有M维,且除了当前词的位置为1以外,其他位置均为0。这样的方式存在矩阵稀疏的问题,且隔断了词与词之间的关联性。因此不建议使用。
另一种方式则是Distributed Representation的方式。这种方式使词向量的不再稀疏,且两个词的意思越相近,词向量之间的距离也就越小。以下针对Word2Vec的两个重要的模型CBOW(Continuous Bag-of-Words Model)和Skip-gram(Continuous Skip-gram Model)为例

基于Hierarchical Softmax的模型

CBOW

此模型总的目的是输入前后文词向量,对当前词进行预测。

模型结构

设每个词向量有m维,取上下文共n个词
输入层:将n个m维的向量输入
映射层:将从输入层得到的n个m维的的向量进行叠加。
输出层:以语料库中词为叶节点,以词出现的次数为权重的huffman树

Created with Raphaël 2.2.0 输入层,n个m维向量 投影层,累加n个m维向量,得到m维向量X 输出层,Huffman树结构输出
更新迭代过程

在这里插入图片描述

其中3.3为计算每个结点对投影层X的更新累加值,3.4为每个结点的参数值更新。注意必须先求得投影层X的更新累加值后再对结点参数值进行更新。最后当更新完所有结点参数值后再将得到的最终累加值加到X向量上,也就是最终的词向量。

Skip-gram

此模型为输入当前词预测前后文

模型结构

设每个词向量有m维,取上下文共n个词
输入层:将当前词m维的向量输入
映射层:恒等映射输入层。
输出层:以语料库中词为叶节点,以词出现的次数为权重的huffman树

Created with Raphaël 2.2.0 Input:当前词向量 映射层:映射当前词向量 输出层:huffman树
更新迭代过程

在这里插入图片描述
每针对输出的一个词做一次调整就要更新一次输入的w值。

基于Negative Sampling 的模型

与基于Hierarchical Softmax的模型相比,该模型具有训练速度快、词向量质量更好的特点。

CBOW

基于Negative Sampling 的模型是将Huffman进行了替换。将从投影层输出的向量认为为一个二分类。认为给上下文向量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 \left \{ w \right \}\cup NEG\left ( w \right )}^{}p\left ( u|Context\left ( w \right ) \right ) g(w)=u{w}NEG(w)p(uContext(w))

迭代过程

与上面只有优化公式g有了一点变化改为
g = η ( L w ( u ) − q ) \mathit{g}=\eta \left ( \mathbf{L}^{w}\left ( u \right )-\mathbf{q} \right ) g=η(Lw(u)q)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值