【CS224n课程笔记】Lecture 01 Introduction and Word Vectors

word vectors词向量有时被称为词嵌入word embeddings或词表示word representations,Word2vec本质上是一个学习单词向量的框架,为每个单词构建一个密集的向量,使其与出现在相似上下文中的单词向量相似。例如, ...
摘要由CSDN通过智能技术生成

目录

1. word vectors 词向量

2. Representing words by their context

3. objective function 目标函数

4. 梯度下降:链式法则(基础的求导知识)

 


 

Lecture Plan

1. The course (10 mins)
2. Human language and word meaning (15 mins)
3. Word2vec introduction (15 mins)
4. Word2vec objective function gradients (25 mins)
5. Optimization basics (5 mins)
6. Looking at word vectors (10 mins or less)

 

 

1. word vectors 词向量

有时被称为词嵌入 word embeddings 或词表示 word representations,Word2vec 本质上是一个学习单词向量的框架,为每个单词构建一个 密集 的向量,使其与出现在相似上下文中的单词向量相似。例如,

                                                                              banking=\begin{bmatrix} 0.286\\ 0.792\\ -0.177\\ -0.107\\ 0.109\\ -0.542\\ 0.349\\ 0.271 \end{bmatrix}

2. Representing words by their context

一个单词的意思是由经常出现在它附近的单词给出的。当一个单词w出现在文本中,使用w的许多上下文来构建w的表示。

                                 

 

具体到文本中的每个位置 t,其中有一个中心词 c 和上下文(“外部”)单词 o,使用 c 和 o 的 词向量的相似性 来计算给定 c 的 o 的 概率 (反之亦然),不断调整词向量来调整这个概率。如下图,使用固定窗口的大小(这里为2),中心词c分别为into和banking,其中P(w_{t-1}|w_{t})P(w_{t+1}|w_{t})分别表示w_{t}的近邻上下文单词的概率;

                                             

3. objective function 目标函数

对于位置t=1,...,T,使用固定大小为3的窗口内预测上下文单词,中心词为w_{j} ,整体的似然率就可以写成这些条件概率的联乘积形式,其中\theta为所有需要优化的参数。目标函数(代价函数/损失函数)是(平均)负对数似然对数是为了方便将连乘转化为求和,添加负号是将极大化似然函数转化为极小化损失函数。

                                                              

  • 如何最小化目标函数?

对于每个单词w,当w为中心词时,使用v_{w}表示;当w为上下文单词时,使用u_{w}表示表示;条件概率写作上下文单词与中心词的点乘形式再对其做softmax运算(向量之间进行点乘,点乘结果越大,向量之间越相似,归一化之后的概率值也越大;模型训练目的是使具有相似上下文的单词,具有相似的向量)。

                                                                                          

取幂之后为正值;点乘比较向量之间的相似性,点乘越大概率越大;分母是求和形式,对整个词汇表进行标准化,给出概率分布

softmax function:将任意值 xi 映射到概率分布 pi

                                                                                       

  • max :因为放大了最大的概率
  • soft :因为仍然为较小的 xi 赋予了一定概率
  • 深度学习中常用

4. 梯度下降:链式法则(基础的求导知识)

首先随机初始化 u_{w} \in \mathbb{R}^{d}和 v_{w} \in \mathbb{R}^{d} ,而后使用梯度下降法进行更新

\begin{aligned} \frac{\partial}{\partial v_{c}} \log P(o | 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)} \end{aligned}

偏导数可以移进求和中,对应上方公式的最后两行的推导:

\frac{\partial}{\partial x} \sum_{i} y_{i}=\sum_{i} \frac{\partial}{\partial x} y_{i}

可以对上述结果重新排列如下,第一项是真正的上下文单词,第二项是预测的上下文单词。使用梯度下降法,模型的预测上下文将逐步接近真正的上下文。

\begin{aligned} \frac{\partial}{\partial v_{c}} \log P(o | c) &=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_{o}-\sum_{w \in V} \frac{\exp \left(u_{w}^{T} v_{c}\right)}{\sum_{w \in V} \exp \left(u_{w}^{T} v_{c}\right)} u_{w} \\ &=u_{o}-\sum_{w \in V} P(w | c) u_{w} \end{aligned}

再对 Uo进行偏微分计算,注意这里的 Uo 是 Uw=o 的简写,故可知

\frac{\partial}{\partial u_{o}} \sum_{w \in V} u_{w}^{T} v_{c}=\frac{\partial}{\partial u_{o}} u_{o}^{T} v_{c}=\frac{\partial u_{o}}{\partial u_{o}} v_{c}+\frac{\partial v_{c}}{\partial u_{o}} u_{o}=v_{c}

\begin{aligned} \frac{\partial}{\partial u_{o}} \log P(o | c) &=\frac{\partial}{\partial u_{o}} \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 u_{o}}\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 u_{o}}\left(u_{o}^{T} v_{c}-\log \sum_{w \in V} \exp \left(u_{w}^{T} v_{c}\right)\right) \\ &=v_{c}-\frac{\sum \frac{\partial}{\partial u_{o}} \exp \left(u_{w}^{T} v_{c}\right)}{\sum_{w \in V} \exp \left(u_{w}^{T} v_{c}\right)} \\ &=v_{c}-\frac{\exp \left(u_{o}^{T} v_{c}\right) v_{c}}{\sum_{w \in V} \exp \left(u_{w}^{T} v_{c}\right)} \\ &=v_{c}-\frac{\exp \left(u_{o}^{T} v_{c}\right)}{\sum_{w \in V} \exp \left(u_{w}^{T} v_{c}\right)} v_{c} \\ &=v_{c}-P(o | c) v_{c} \\ &=(1-P(o | c)) v_{c} \end{aligned}

可以理解,当 P(o|c)→1 ,即通过中心词 c 我们可以正确预测上下文词 o ,此时我们不需要调整 uo ,反之,则相应调整 uo 。

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值