Stanford CS224n 第三讲:高级词向量表示

上一节课讲解了word2vec,并且朴素的实现了一个word2vec和tensorflow的basic版。这节课趁热打铁,讲解了以下这些内容:

  1. 回顾word2vec的过程
  2. 优化word2vec的训练过程(负采样)
  3. 另外两种产生词向量的算法:
    - 基于计数统计的共现矩阵分解
    - 基于统计计数类方法 VS 直接预测
    - Count based 结合 direct prediction (GloVe)
  4. 如何评价我们所得到的词向量?
    - Intrinsic(内部评价方法)
    - extrinsic(外部评价方法)

1. 回顾word2vec的过程
在这里插入图片描述
在上节课中我们得到了word2vec的目标函数是:
在这里插入图片描述
其中其中t为中心词,θ是模型参数,m为窗口大小。
我们需要优化的是当中心词c确定的情况下,上下文词o出现的概率。即p(o|c):
在这里插入图片描述
从上节课我们推到的公式可知,对log p(o|c)中v_c和u_o进行求偏导后,公式中都出现了上式中的分母,即
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181109144215505.png
因此,每次梯度的计算,都需要计算一遍中心词向量和其他词向量的内积;但是事实上,中心词与自身周围常常出现的词才会有较大的概率,其他的太小或者为0,都可以忽略不计。so,就出现了负采样来优化词向量的训练过程。那么什么是负采样呢,请看下一部分。

2. 优化word2vec的训练过程(负采样)
由第一部分回顾我们知道,每次梯度更新都需要计算一遍中心词向量和其他词向量的内积,这是一个不小的计算量,但是事实很多词根本就不会出现在中心词附近,因此负采样的策略产生了,他随机抽取一定数目的随机词(尽量在中心词上下文中没出现过的词),然后最小化中心词和他们出现的概率,最大化中心词和上下文词出现的概率。采用负采样策略后的目标函数变为:
在这里插入图片描述
k就是我们采用的负采样的个数;下标t代表的就是某个窗口;σ为sigmod函数,将两个向量的内积映射到0~1之间(概率);Ew_i∼Pn(w)是具体的采样方法。
这个目标函数中心思想就是训练一个逻辑回归模型,要最大化中心词与上下文词的相关概率,最小化与负采样词语的概率。因此,每次的梯度更新只需要更新对应向量即可,不需要对所有向量进行计算,以此大大减少了计算量。

3. 另外两种产生词向量的算法

  • 3.1基于计数统计的共现矩阵分解
    由于word2vec采用的是词袋模型,并且他的模型捕捉的是单词的共现概率。那么如果直接采用单词之间的共现矩阵来刻画词向量会怎样?
    在这里插入图片描述
    如上图,构建出来语料库简单的单词间的共现矩阵。
    那么,以这种方式构造出来的简单向量会面临什么问题呢?
    ~新单词的增加会改变矩阵维度
    ~语料库太大时,共现矩阵内存开销太大
    ~稀疏性使其训练出来的模型不可靠

如何解决以上通过共现矩阵构造词向量的问题呢?
~采用SVD对共现矩阵进行降维
在这里插入图片描述

SVD的一些问题:
~对于一个n x m的矩阵,其复杂度是O(mn^2),处理百万级的文本效果很差
~很难处理新词或新文档

其他的处理X的trick
~限制高频单词的频次,例如共现超过100次,就算100次。或者直接不用这些词
~根据和中心词的距离,对权重进行衰减
~使用皮尔逊系数代替词频

经过以上处理共现矩阵也表现出了不错的效果
An Improved Model of Semantic Similarity Based on Lexical Co-Occurrence
Rohde et al. 2005
语义上效果:
在这里插入图片描述
语法上效果:
在这里插入图片描述

  • 3.2基于统计计数类方法 VS 直接预测
    在这里插入图片描述
    基于计数统计的共现矩阵方式:训练速度快,能够很有效的应用统计信息;但是仅仅能捕捉到词语的相似度,而且不能应用到大型的语料。
    预测模型:能够应用到大型语料库,能够捕捉到各种复杂的模式相似度,而不仅仅是单词相似度,能够提高基于此向量的其他任务效果;但是它是基于窗口进行训练,这样也就无法利用单词的全局统计信息。
  • 3.2 Count based 结合 direct prediction (GloVe)
    结合Count based和direct prediction 产生了Glove模型。它的目标函数是:
    在这里插入图片描述
    上式中u、v分别为最后想要的词向量;P_ij是为词 j 出现在词 i 的context里面的概率;f是一个max函数,使高频出现的词被平滑处理。
    在这里插入图片描述
    GloVe的优点是,训练快,可以应用到大规模的语料,甚至小规模的语料和向量也试用。
    将U和V相加得到最终词向量
    在这里插入图片描述
    更多Glove参数:Global Vectors for Word Representation, Pennington et al. (2014)

GloVe的效果还是不错的:
在这里插入图片描述

4. 如何评价我们所得到的词向量?
经过了前面一系列的训练词向量过程,我们最终得到了每个单词的词向量,那么我们怎么评价得到的词向量好坏?如何验证训练得到的词向量就是我们想要的?接下来就是介绍内部评测法和外部评测法。

  • Intrinsic(内部评价方法)
    必须由实验人员针对特定的任务进行统计标注单词的相似性,来评判训练得到的词向量,好处是计算快,但是不知道对实际任务有没有帮助。
  • extrinsic(外部评价方法)
    通过实际任务效果提升来体现词向量好坏,由于没有标准,所以必须通过两个任务来交叉检验。但是计算准确率的时间会比较长。

个人理解评价词向量的好坏有两方面:语义和语法,还有一些表达式(应该也算语义)。
语义关系: (Woman,Queen)=(Man,King)
语法关系: (short,shorter,shortest)=(slow,slower,slowest)

GloVe词向量的效果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
以上三个图代表了Glove训练过程中,超参数是如何通过实验数据确定的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值