cs224n自然语言处理与深度学习笔记 week2

一个简单但难以超越的sentence embedding基线方法

词向量->句向量

从而用于文本分类,情感分析等

词袋模型

v(“natural language processing”) =
1/3 (v(“natural”) + v(“language”) + v(“processing”))

从词袋模型到更复杂的模型

Bag-of-words -> CNN,RNN

本文思想

一种非常简单的无监督算法,加权Bag-of-words并且移除特定方向
在这里插入图片描述
第一步,对句子中的每个词向量,乘以一个独特的权值。这个权值是一个常数αα除以αα与该词语频率的和,也就是说高频词的权值会相对下降。求和后得到暂时的句向量。

然后计算语料库所有句向量构成的矩阵的第一个主成分uu,让每个句向量减去它在uu上的投影(类似PCA)。

概率原理解释

在这里插入图片描述
其原理是,给定上下文向量,一个词的出现概率由两项决定:作为平滑项的词频,以及上下文:
其中第二项的意思是,有一个平滑变动的上下文随机地发射单词。

词向量的深究

word2vec的主要思想

遍历语料中的所有单词
预测中心词的上下文单词
在每个窗口下使用SGD进行更新迭代

梯度下降在词向量中方法中的问题

每个滑动窗口仅有2m+1个单词,所以梯度向量非常稀疏
每次迭代仅需要更新那些出现过的单词

word2vec的练习中的实现

对所有单词进行softmax分类计算量过大
在练习中采用skip-gram模式和负采样的方法进行训练
在文章““Distributed RepresentaRons of Words and Phrases
and their ComposiRonality”中,代价函数为:
在这里插入图片描述
P(W)是一个unigram分布http://www.hankcs.com/nlp/word2vec.html#h3-12,对其取3/4次方,可以使得常见词采样次数变少,稀有词采样次数变多,“劫富济贫”

word2vec小结

遍历语料中的所有单词
预测每个单词的周边单词
在每个时刻对共现单词进行捕获
为什么不在捕获共现单词的同时捕获其次数呢?

其他方法

基于窗口的共现矩阵

例如,
I like deep learning.
I like NLP.
I enjoy flying.
以共现窗口为1,则共现矩阵如下
在这里插入图片描述
共现矩阵的一些问题:

  • 增加了词汇的维度,需要很多的存储空间
  • 出现新词的话,旧向量维度需要改变
  • 高稀疏性

解决方案
采用更低纬度的方法来进行矩阵表示:SVD?
更进一步的改进:
限制高频词,停用词
根据与中央词的距离衰减词频权重
用皮尔逊相关系数代替词频
SVD的一些问题:
计算复杂度高,O(mn)
不方便处理新文档
与其他DL模型的训练套路不一致

Glove方法

综合了划窗方法word2vec和统计信息LSI的特点的方法
Glove的代价函数为
在这里插入图片描述
Pij代表了两个单词出现的频次,F是一个上限函数
该方法的优点是训练快,可以扩展到大规模预料,也适用于小规模的语料
代价函数中存在向量u和v,最后的结果向量是将二者求和得到最终词向量
相对于word2vec关注窗口内的共现,Glove方法关注了全局信息(频数)

评测方法

有两种方法:Intrinsic(内部) vs extrinsic(外部)
Intrinsic:专门设计单独的试验,由人工标注词语或句子相似度,与模型结果对比。好处是是计算速度快,但不知道对实际应用有无帮助。
Extrinsic:通过对外部实际应用的效果提升来体现。耗时较长,不能排除是否是新的词向量与旧系统的某种契合度产生。需要至少两个subsystems同时证明。这类评测中,往往会用pre-train的向量在外部任务的语料上retrain。
各种评测结果详PPT。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值