Word2vec

Word2vec是一个学习单词向量的框架

IDEA:

  • 我们有大量的文本 (corpus means ‘body’ in Latin. 复数为corpora)
    固定词汇表中的每个单词都由一个向量表示
  • 文本中的每个位置 t,其中有一个中心词 c 和上下文(“外部”)单词 o
  • 使用 c和 o的词向量的相似性来计算给定 c的 o的概率
  • 不断调整词向量来最大化这个概率

在这里插入图片描述

目标函数
L ( θ ) = ∏ t = 1 T ∏ − m ≤ j ≤ m j ≠ 0 P ( w t + j ∣ w t ; θ ) L(\theta)=\prod_{t=1}^{T} \prod_{-m \leq j \leq m \atop j \neq 0} P\left(w_{t+j} \mid w_{t} ; \theta\right) L(θ)=t=1Tj=0mjmP(wt+jwt;θ)

损失函数
J ( θ ) = − 1 T log ⁡ L ( θ ) = − 1 T ∑ t = 1 T ∑ m ≤ j ≤ m j ≠ 0 log ⁡ P ( w t + j ∣ w t ; θ ) J ( θ ) = − 1 T log ⁡ L ( θ ) = − 1 T ∑ t = 1 T ∑ m ≤ j ≤ m j ≠ 0 log ⁡ P ( w t + j ∣ w t ; θ ) J(\theta)=-\frac{1}{T} \log L(\theta)=-\frac{1}{T} \sum_{t=1}^{T} \sum_{m \leq j \leq m \atop j \neq 0} \log P\left(w_{t+j} \mid w_{t} ; \theta\right)J(\theta)=-\frac{1}{T} \log L(\theta)=-\frac{1}{T} \sum_{t=1}^{T} \sum_{m \leq j \leq m \atop j \neq 0} \log P\left(w_{t+j} \mid w_{t} ; \theta\right) J(θ)=T1logL(θ)=T1t=1Tj=0mjmlogP(wt+jwt;θ)J(θ)=T1logL(θ)=T1t=1Tj=0mjmlogP(wt+jwt;θ)

  • L为目标函数,具体含义就是,遍历该语句,语句长度为T,意味着中心词的移动;
  • 因为每次中心词时都要求该中心上下m个背景词和中心词的概率,所以背景词是t+j,j在-m到m之间,且不等于0;
  • θ是超参数矩阵;
  • 我们希望目标函数的值最大化,但是往往最大化不容易求解,而最小值更容易求解,所以将上述L转化为J,J为损失函数,也就是L的等价变化的负值。

Predict Function
P ( w t + j ∣ w t ; θ ) P\left(w_{t+j} \mid w_{t} ; \theta\right) P(wt+jwt;θ)如何计算?
每个单词都由两个向量表示:

  • v w v_{w} vw 当 w 是中心词时
  • u w u_{w} uw 当 w 是上下文词时

P ( o ∣ c ) = exp ⁡ ( u o T v c ) ∑ w ∈ V exp ⁡ ( u w T v c ) P(o \mid c)=\frac{\exp \left(u_{o}^{T} v_{c}\right)}{\sum_{w \in V} \exp \left(u_{w}^{T} v_{c}\right)} P(oc)=wVexp(uwTvc)exp(uoTvc)

使用梯度下降来更新参数
∂ ∂ v c log ⁡ P ( o ∣ c ) = ∂ ∂ v c log ⁡ exp ⁡ ( u o T v c ) ∑ w ∈ V exp ⁡ ( u w T v c ) = ∂ ∂ v c ( log ⁡ exp ⁡ ( u o T v c ) − log ⁡ ∑ w ∈ V exp ⁡ ( u w T v c ) ) = ∂ ∂ v c ( u o T v c − log ⁡ ∑ w ∈ V exp ⁡ ( u w T v c ) ) = u o − ∑ w ∈ V exp ⁡ ( u w T v c ) u w ∑ w ∈ V exp ⁡ ( u w T v c ) = u 0 − ∑ x ∈ V p ( x ∣ x ) u x \begin{aligned} \frac{\partial}{\partial v_{c}} \log P(o \mid c) &=\frac{\partial}{\partial v_{c}} \log \frac{\exp \left(u_{o}^{T} v_{c}\right)}{\sum_{w \in V} \exp \left(u_{w}^{T} v_{c}\right)} \\ &=\frac{\partial}{\partial v_{c}}\left(\log \exp \left(u_{o}^{T} v_{c}\right)-\log \sum_{w \in V} \exp \left(u_{w}^{T} v_{c}\right)\right) \\ &=\frac{\partial}{\partial v_{c}}\left(u_{o}^{T} v_{c}-\log \sum_{w \in V} \exp \left(u_{w}^{T} v_{c}\right)\right) \\ &=u_{o}-\frac{\sum_{w \in V} \exp \left(u_{w}^{T} v_{c}\right) u_{w}}{\sum_{w \in V} \exp \left(u_{w}^{T} v_{c}\right)}\\&=u_{0}-{\sum_{x\in V}p(x \mid x)u_{x}} \end{aligned} vclogP(oc)=vclogwVexp(uwTvc)exp(uoTvc)=vc(logexp(uoTvc)logwVexp(uwTvc))=vc(uoTvclogwVexp(uwTvc))=uowVexp(uwTvc)wVexp(uwTvc)uw=u0xVp(xx)ux

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值