自然语言处理CS224N笔记(一)——什么是词向量

本文介绍了离散语义编码与分布式语义编码的区别,重点讲解了Word2vec模型,包括其通过上下文计算单词概率的目标函数。讲解了skip-gram模型的工作原理,以及如何使用softmax进行概率计算和梯度下降进行参数更新。此外,还讨论了为何需要两组词向量和负采样的作用,以减少计算复杂性和提高效率。最后,给出了代码示例及实验效果,展示词向量的准确性。
摘要由CSDN通过智能技术生成

课程网址:https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1194/

Lecture 1: Introduction and Word Vectors
2021.1.20晚

  1. The course

  2. Human language and word meaning

离散语义编码
• one-hot
• one-hot编码每个向量都是正交的,无法表示两个单词的相似性
• 如果建立单词的关系表,50,000个单词建立的表格太大
分布式语义编码
• “每个单词的意义是由上下文频繁出现的单词决定的”
在这里插入图片描述

  1. Word2vec introduction

Word vectors = word embedding = word representation
• 100维的词向量投影到二维空间的可视化:
在这里插入图片描述

• Word2vec (Mikolov et al. 2013) is a framework for learning word vectors.
• overview:通过窗口中的上下文单词计算 p ( w t + j ∣ w t ) p(w_t+j|w_t) p(wt+jwt)

在这里插入图片描述
在这里插入图片描述

  1. Word2vec objective function gradients

我们以skip-gram为例。
在这里插入图片描述

a. 对于skip-gram模型,给出中心词 w j w_j wj,求相邻单词出现的概率
在这里插入图片描述

b. 对概率做处理,得到目标函数。我们试图最小化目标函数,也就是最大化预测
在这里插入图片描述

c. 那怎么计算公式中的 p ( w t + j ∣ w t ) p(w_t+j|w_t) p(wt+jwt)呢?
首先明白几个符号,下标表示单词:
v c v_c vc :单词v作为中心词的向量
u o u_o uo:单词o作为环境词的向量
u w u_w uw:单词w作为环境词的向量
这里首先进行点积,因为能计算出两个向量的相似性。再回忆softmax的形式,Softmax函数,或称归一化指数函数,是逻辑函数的一种推广。它能将一个含任意实数的K维向量 “压缩”到另一个K维实向量中,使得每一个元素的范围都在之间,并且所有元素的和为1:
在这里插入图片描述

再经过softmax就得到了我们要的概率值:
在这里插入图片描述

d. 对所有向量组成的参数 做梯度下降,注意每个单词都有中心词和环境词两种向量表示
在这里插入图片描述

e. 总体模型如下所示

在这里插入图片描述

  1. Optimization basics

一开始 θ \theta θ是随机的,所以会跟ground truth(真实邻近文本)产生误差,于是我们通过链式求导法则优化目标函数,就能更新参数 θ \theta θ
具体的过程没有手推,后面有兴趣再补上~

  1. Looking at word vectors

为什么要两个向量(U&V)?
答:训练两组词向量是为了计算梯度的时候求导更方便。
• 如果只用一组词向量 ,那么Softmax计算的概率公式里分母会出现一项平方项Vc*Vc ,那么再对Vc 求导就会比较麻烦。相反如果用两套词向量,求导结果就会很干净。
• 如果用两组词向量,就能利用以下公式简化计算
在这里插入图片描述

为什么要进行负采样?
🔗链接
答:如果词汇表有10,000个单词。模型输出层,我们期望一个单词的概率是1,其他9,999个单词的输出是0,那我们需要计算9999次。而通过负采样,对5个负样本(也就是其他9,999单词中的5个)进行权重更新,就能大幅减少计算量。
这种思想有点类似SGD,全部计算开销大,每次只计算一小部分的,重复多次。

  1. Code

代码来自华为云实验平台
🔗链接
实验效果:
在这里插入图片描述
在这里插入图片描述
可以发现总体还是比较准确滴~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值