NLP:论文学习记录:word2vec

1.word2vec

学习词向量的框架。

适用条件:

              1.有一个很大的语料库

              2.每一个单词被表示成一个向量。

              3.文本中每一个位置t都有一个中心单词c,以及文本单词o(其实就是除中心单词为临近的几个单词)

              4.用c与o之间的相似性计算给定c在o中的出现的可能性(这里适用一个单词在一个特定句子出现的概率来表示单词的含义,也就是我们中文中用句子来解释一个字的意思,而不需要像词典中单独表示)

              5.不断调整词向量,使得所有位置的概率积最大。

图片及部分公式来源:CS224n课程课件

图片来源https://www.bilibili.com/video/BV1mb411e769?p=1icon-default.png?t=L9C2https://www.bilibili.com/video/BV1mb411e769?p=1

比如文本中有n个word,则似然函数为

L\left(\theta \right )=\prod_{t=1}^{T}\prod_{-m \leqslant j\leqslant m,j\neq 0}^{}P(w_{t+j}|w_{t};\theta )求函数的最大值,但是为了方便,可以转换一下函数为

J\left (\theta \right )=-\frac{1}{T}logL\left(\theta \right )==-\frac{1}{T} \sum_{t=1}^{T}\sum_{-m\leqslant j\leqslant m,j\neq 0}logP\left(w_{t+j}|w_{t};\theta \right )引入log主要是可以将连积运算改为连和运算,一个小技巧可以简化运算,加入负号就可以将最大值函数改为最小值函数,除以T主要是减少文本的数量对结果的影响。

 如何运算P

 v_{w}表示单词w是一个中心单词,u_{w}表示单词w为一个文本单词

对每一个中心单词c计算

P(o|c)=\frac{exp(u_{o}^{T}v_{c})}{\sum_{w\epsilon V}exp(u_{w}^{T}v_{c})}

 引入exp运算是保证概率为正,分子是点积,用于计算两个向量之间的相似性,使整个分布概率进行归一化

如何表示\theta

 \theta表示所有的参数集合,d维向量,V个单词,每个单词分别作为中心词o,以及其他文本词c,所以是2dV大小的矩阵。

如何求解目标函数

梯度下降法

参数主要分为两类u_{w},v_{w}两类。

原始目标函数可变为:

J\left (\theta \right )=-\frac{1}{T}logL\left(\theta \right )==-\frac{1}{T} \sum_{t=1}^{T}\sum_{-m\leqslant j\leqslant m,j\neq 0}log\frac{exp(u_{t+j}^{T}v_{t})}{\sum_{w\epsilon V}exp(u_{w}^{T}v_{c})}

\frac{\partial }{\partial v_{c}}log\frac{exp(u_{o}^{T}v_{c})}{\sum_{w\epsilon V}exp(u_{w}^{T}v_{c})}=\frac{\partial }{\partial v_{c}}logexp(u_{o}^{T}v_{c})-\frac{\partial }{\partial v_{c}}log\sum_{w\epsilon V}exp(u_{w}^{T}v_{c}) =u_{o}-\frac{1}{\sum_{w\epsilon V}exp(u_{w}^{T}v_{c})}\frac{\partial }{\partial v_{c}}\sum_{w\epsilon V}exp(u_{w}^{T}v_{c})

=u_{o}-\frac{1}{\sum_{w\epsilon V}exp(u_{w}^{T}v_{c})}\frac{\partial }{\partial v_{c}}\sum_{w\epsilon V}exp(u_{w}^{T}v_{c})=u_{o}-\frac{1}{\sum_{w\epsilon V}exp(u_{w}^{T}v_{c})}\sum_{w\epsilon V}\frac{\partial }{\partial v_{c}}exp(u_{w}^{T}v_{c})=u_{o}-\frac{1}{\sum_{w\epsilon V}exp(u_{w}^{T}v_{c})}\sum_{w\epsilon V}exp(u_{w}^{T}v_{c})*u_{w}

\frac{\partial }{\partial v_{c}}log\frac{exp(u_{o}^{T}v_{c})}{\sum_{w\epsilon V}exp(u_{w}^{T}v_{c})}=u_{o}-\sum_{w\epsilon V}\frac{exp(u_{w}^{T}v_{c})}{\sum_{w\epsilon V}exp(u_{w}^{T}v_{c})}*u_{w}=u_{o}-\sum_{w\epsilon V}P(u_{w}|v_{c})*u_{w}

同理

\frac{\partial }{\partial u_{o}}log\frac{exp(u_{o}^{T}v_{c})}{\sum_{w\epsilon V}exp(u_{w}^{T}v_{c})}=v_{c}-\frac{exp(u_{o}^{T}v_{c})}{\sum_{w\epsilon V}exp(u_{w}^{T}v_{c})}*v_{c}=v_{c}-P(u_{o}|v_{c})*v_{c}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

初,梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值