cs224n 2019 Lecture 2: Word Vectors and Word Senses课程笔记

课程目标

  • 简单回顾词向量和词向量模型word2vec
  • 优化基础
  • 通过计数,我们能更有效的抓住这一本质吗
  • 词向量的glove模型
  • 评估词向量
  • 词的含义

本人也是刚入门,有些地方因为不是很理解翻译的不好,希望大家积极指正!!!

一、word2vec的复习

迭代语料库中的每个单词

使用词向量预测周围的单词

cs224n 2019 Lecture 2: Word Vectors and Word Senses课程笔记_第1张图片

向量是行向量的形式。U*v4是外围词向量和中心词向量的乘积。在计算乘积的softmax。

简单的说word2vec就是把意思相近的单词放在空间中相近的地方。

cs224n 2019 Lecture 2: Word Vectors and Word Senses课程笔记_第2张图片

 

二、优化:梯度下降

J(θ)为希望最小化的代价函数。往负梯度方向更新参数,不断重复。

cs224n 2019 Lecture 2: Word Vectors and Word Senses课程笔记_第3张图片

更新方程:

cs224n 2019 Lecture 2: Word Vectors and Word Senses课程笔记_第4张图片

存在问题:

J(θ)是关于整个语料库所有窗口的函数,求梯度代价很大。

解决方案:SGD随机梯度下降。随机选取窗口进行梯度更新。

但是在每个窗口中,最多有2m+1个单词,所以梯度非常稀疏。

cs224n 2019 Lecture 2: Word Vectors and Word Senses课程笔记_第5张图片

解决方案:

只更新U、V中确定的某几行。

 

skip-gram中的负采样。

cs224n 2019 Lecture 2: Word Vectors and Word Senses课程笔记_第6张图片

分母中对语料库中所有的单词都进行求点乘,代价太大,所以采用负采样的方法。

负采样:

1、为对中心词向量和外围词向量的点乘进行sigmoid计算,把softmax变成sigmoid。

2、选取了K个负样本,负样本为窗口之外的样本。对于窗口中的每个词u,计算uo*vc的sigmoid,计算负样本和中心词的点乘uj*vc,求sigmoid。最大化uo*vc,最小化uj*vc,得出目标函数如下所示。

cs224n 2019 Lecture 2: Word Vectors and Word Senses课程笔记_第7张图片
三、共现矩阵


两个选择:

窗口和全文档

窗口:和word2vec类似

文档:给出普遍的话题,导致潜在语义分析。

共现矩阵的例子如下,其中窗口大小设置为1

cs224n 2019 Lecture 2: Word Vectors and Word Senses课程笔记_第8张图片

共现矩阵存在的问题:

随着语料库的大小的增大,向量的大小会增长。

非常高维,需要许多存储空间。

子序列分类问题模型有非常稀疏的问题。

模型不健壮

解决方案:

使用低维度的向量。如何降维呢?

采用奇异值分解,把所有信息量都浓缩在一个小的维度向量中。

基于计数的模型和直接预测的模型比较:

计数模型:

训练速度快

有效的利用数据

主要用来获取单词的相似度

对于出现次数多的单词基于重视

直接预测:

与语料库大小有关

数据使用不高效

提高其他任务的性能

能捕捉到复杂的语义模式

cs224n 2019 Lecture 2: Word Vectors and Word Senses课程笔记_第9张图片

共现概率的比值可以对意义成分进行编码。

cs224n 2019 Lecture 2: Word Vectors and Word Senses课程笔记_第10张图片

如何获得共现概率的比率呢?

cs224n 2019 Lecture 2: Word Vectors and Word Senses课程笔记_第11张图片

glove模型Combining the best of both worlds GloVe

cs224n 2019 Lecture 2: Word Vectors and Word Senses课程笔记_第12张图片

四、如何评估一个词向量?(不懂啥意思)

就像语义分析中的两个方面:内在和外在

内在:

在一个特殊的子任务上评估结果

更快的训练

帮助理解其他系统

除非与实际任务建立了相关性,否则不清楚是否真的有用

外在:

在一个真正的任务上评估

可能会花很长一段时间计算准确度

不清楚子系统是问题所在,还是它的交互作用,还是其他子系统

如果用另一个子系统替换一个子系统可以提高精确度——>获胜!

 

内在词向量评估

词向量类比:使用余弦cos计算两个词向量的相似度。

问题:相同的单词有不同的含义。

怎么办?

使用加权求不同含义的和。

比如pike这个单词,有多个不同的含义,计算公式如下图所示。f为权重。

cs224n 2019 Lecture 2: Word Vectors and Word Senses课程笔记_第13张图片

外在单词向量评估:

该类中的后续任务。

一个例子:命名体识别:识别出名字,组织和位置等。词向量表示的好效果就好。

 

你可能感兴趣的:(NLP自然语言处理)