Word2vec tutorial

说明

来自2014年 word2vec explained: deriving Mikolov et al.’s negative-sampling wordembedding method, 纯属翻译。另外为了方便表示概率时候都用/代替\。

Skip-gram 模型

1954年,Harris的the distributional hypothesis,文章名:Distributional structure,通俗的讲就是说对于一个词来讲,如果相同的context就应该有相近的意思。更加浅显的个人理解就是,如果对一个词库进行统计,两个词语 w1,w2 w 1 , w 2 ,同时出现频率最高的词都是 w3,w4,w5 w 3 , w 4 , w 5 ,那他们意义就应该是相近的。

我们假设在已知 w w 的情况下,出现c的概率是p(c/w),假定此时的参数集合是 θ θ ,因此我们有:

arg maxθ wTextcC(w)p(c/w;θ) a r g   m a x θ ⁡   ∏ w ∈ T e x t [ ∏ c ∈ C ( w ) p ( c / w ; θ ) ]

C(w) C ( w ) 是词 w w 的context,即周边的词语,至于周边词语的多少,是由选定的窗口大小决定的,窗口大周边词语多。更加紧致的写法:
arg maxθ (w,c)Dp(c/w;θ)

D D 是词典中所有的词,环境词也是从中根据窗口选取出来的。

参数

根据神经网络语言模型,最后一层采用soft-max,其表示为:

p(c/w;θ)=evcvwcCevcvw

最大化每个 w,c w , c 出现的概率,再取一个log,即可得到:
arg maxθ (w,c)Dlogp(c/w)=(w,c)D(log evcvwlog cevcvw) a r g   m a x θ ⁡   ∑ ( w , c ) ∈ D l o g p ( c / w ) = ∑ ( w , c ) ∈ D ( l o g   e v c ⋅ v w − l o g   ∑ c ′ e v c ′ ⋅ v w )

此时我们的参数包括 vc,vw v c , v w ,参数大小为 cwd c ∗ w ∗ d ,我们可以从上面一个式子第二项可以看到,要计算soft-max就要计算出现一个词 w w 后出现可能c的概率,计算量是不容小觑的,特别是它的contexts非常大的时候。因此衍生出了负采样及基于分阶的softmax。

负采样

设定 p(D=1/w,c) p ( D = 1 / w , c ) 表示词对 (w,c) ( w , c ) 在corpus中出现,而 p(D=0/w,c)=1p(D=1/w,c) p ( D = 0 / w , c ) = 1 − p ( D = 1 / w , c ) (w,c) ( w , c ) 未在corpus中出现。其实思想就是,最大化出现过的词对概率,最小化未出现的词对概率。个人理解为,最大化词对出现过的概率以后,其解空间还是特别大,加一个约束即最小化未出现词对概率有缩小解空间的作用。当然在这篇文章中,作者从另外一个角度解释说是为了防止得到一个错误解,即:

arg maxθ (w,c)Dlog11+evcvw a r g   m a x θ ⁡   ∑ ( w , c ) ∈ D l o g 1 1 + e − v c ⋅ v w

即取 vc=vw v c = v w 以及 vcvw=K v c ⋅ v w = K ,而K取比较大的时候,此时这个式子即可取得最大,不能求得解了。因此我们最大化出现的词对的同时也最小化未出现的词对概率,此时有:
arg maxθ (w,c)Dp(D=1/c,w;θ)(w,c)Dp(D=0/c,w;θ) a r g   m a x θ ⁡   ∏ ( w , c ) ∈ D p ( D = 1 / c , w ; θ ) ∏ ( w , c ) ∈ D ′ p ( D = 0 / c , w ; θ )

取log后化简成求和,中间注意第二项 111+evcvw 1 − 1 1 + e − v c ⋅ v w ,需要把1分子分母展开,然后上下乘以一个同样的分子,最后可得到:
arg maxθ (w,c)Dlog11+evcvw+(w,c)Dlog11+evcvw a r g   m a x θ ⁡   ∑ ( w , c ) ∈ D l o g 1 1 + e − v c ⋅ v w + ∑ ( w , c ) ∈ D ′ l o g 1 1 + e v c ⋅ v w

化简成sigmoid形式:
arg maxθ (w,c)Dlogσ(vcvw)+(w,c)Dlogσ(vcvw) a r g   m a x θ ⁡   ∑ ( w , c ) ∈ D l o g σ ( v c ⋅ v w ) + ∑ ( w , c ) ∈ D ′ l o g σ ( − v c ⋅ v w )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值