Word2Vec

Word2Vec


前言

  本文是对论文Distributed Representations of Words and Phrases and their Compositionality的介绍,其中涉及到的技巧和方法既适用于skip-gram模型也适用于cbow模型。

Skip-gram模型

模型介绍

  给定词序列 w1,w2,...,wic,...,wi1,wi,wi+1...,wi+c,...,wT :skip-gram模型的目标是得到 wi 的词向量表示 vwi,i=1,2,...,T ,而该词向量 vwi 可以用于对周围的词 wic,...,wi1,wi+1...,wi+c 进行预测。

  skip-gram模型的目标是最大化平均对数似然概率:

1Tt=1Tcjc,j0log p(wt+c|wt)(1)
   c 是用于训练的上下文的大小。
  skip-gram的基本模型使用softmax函数对p(wt+c|wt)定义:
p(wO|wI)=exp(vwOTvwI)Ww=1exp(vwTvwI)(2)
  其中, W 表示词典中词的数量,vw表示词的”输出向量”, vw 表示词的”输入向量”。
  由于 log p(wO|wI) 计算开销与 W 成比例,而W常常很大( 105107 ),所以(2)式不可行。

层级softmax

  对(2)式计算的一个替代方法是使用层级softmax,该方法的优点是我们不需要像(2)式一样对 W 个节点值进行估计来得到概率值,而只需要对logW个节点的值进行估计。
  在层级softmax函数中,我们使用一棵二叉树来对输出层进行表示, W 个词作为叶子节点,而每个内部节点表示从该节点到两个孩子节点的概率。所以,最终通过随机游走来得到每一个词出现的概率
  我们可以从根节点出发,选择一条合适的路径到达每一个叶子节点。假设n(w,j)表示从根节点 root 到达叶子节点 w 的路径上的第j个节点, L(w) 表示该路径的长度,则 n(w,1)=root, n(w,L(w))=w 。对于任意内部节点 n ch(n)表示该节点的任意确定的孩子节点, 1{x} 为1如果 x 为真,否则为-1。
  层级softmax定义p(wO|wI)为:

p(w|wI)=j=1L(w)1σ(1{n(w,j+1)=ch(n(w,j))}vn(w,j)TvwI)(3)
  其中, σ(x)=1/(1+exp(x))
  可以证明 Ww=1p(w|wI)=1 。这表明, log p(wO|wI) 的计算开销与 logL(wO) 成正比,平均不大于 logW 在skip-gram模型中,每一个词有两个向量表示 vw vw ,而在层级softmax中,每个词只有一个表示 vw ,而对树中的每一个内部节点 n 有一个向量表示vn

负采样

  除了层级softmax方法外,还可以使用NCE方法,该方法指出,一个好的模型应该可以区分数据和噪声
  对NCE进行简化,定义负采样:

log p(wO|wI)=logσ(vwOTvwI)+i=1kEwiPn(w)[logσ(vwiTvwI)]
  其中k表示从噪声分布 Pn(w) 中选择k个负样本。注意:我们使用的是 σ 函数(我们不需要知道每个词出现概率的具体数值,只是对表达式最大化)。实验表明,当数据集较小时,k可以取值5-20,当数据集较大时,k可以取值2-5。

subsample

  由于一些常用词提供的信息量很少,比如the,a等,所以训练时,每一个训练集中的词 wi P(wi) 的概率被忽略:

P(wi)=1tf(wi)
  其中, f(wi) 表示词 wi 出现的频率大小, t 为频率的阈值,典型的取值为105 f(wi) 值越大,该词被忽略的概率越大。


参考文献

  1. Distributed Representations of Words and Phrases and their Compositionality
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值