CS224n-03 Advanced Word Vector Representations

03 Advanced Word Vector Representations

更深度的看词向量

1、word2vec
2、word2vec得到了什么?
3、了解word2vec的本质是什么?
4、怎么分析词向量?

回顾:word2vec的主要思想

1、遍历语料库中所有的词
2、预测每一个中心词的上下文词


3、然年后用SGD对每一个窗口计算梯度。

SGD与词向量

每一个窗口相对于整个语料库来说最多只有2m+1个词,所以 损失函数的梯度会是一个非常稀疏的向量。



实际上有正确答案需要去对比的只有窗口中的词语。
解决方法:只需要稀疏矩阵更新完整的嵌入矩阵U和V中的少数列或者你需要为每个词建立到词向量的哈希映射。

如果您有数百万个单词向量并进行分布式计算,那么不需要发送giganRc更新就很重要了!

作业1

正则化因子很难计算(下式分母),作业1要求使用负采样(nega(ve sampling)实现skip-gram算法。


主要思想:对每个正例(中央词语及上下文中的一个词语)采样几个负例(中央词语和其他随机词语),训练binary logistic regression(也就是二分类器)

The skip-gram model and negative sampling

来自论文:“Distributed RepresentaRons of Words and Phrases and their ComposiRonality” (Mikolov et al. 2013)

这里t是某个窗口,k是采样个数,P(w)是一个unigram分布。


连续词袋模型(CBOW)的主要思想是:从周围的词向量总和预测中心词,而不是从中心词预测周围的词,就像skipgram模型一样。

word2vec通过把相似的词语放到同一个地方附近来增大目标函数



word2vec总结

1、遍历语料库中所有的词
2、预测中心词的上下文词
3、一次一次得到共现词

引出:为什么不直接计算共现词?

对于一个共现矩阵X:
1、2个选择:全文档或者窗口
2、早在word2vec之前,就已经出现了很多得到词向量的方法,这些方法是基于统计共现矩阵的方法。如果在窗口级别上统计词性和语义共现,可以得到相似的词。如果在文档级别上统计,则会得到相似的文档(潜在语义分析LSA)
3、相反:与word2vec类似,使用窗口围绕每个单词。捕捉句法(POS)和语义信息。

基于窗口的共现矩阵:

1、窗口长度为1(通常:5-10)
2、对称的(不管左右上下文)
3、例如:
• I like deep learning.
• I like NLP.
• I enjoy flying.

简单共现向量的问题(不够健壮)

1、增加新词需要改变以前向量的维度
2、高纬度(词表量)
3、对于分类模型有高稀疏问题

解决办法:高维到低维向量

1、存储重要的信息到维度小的稠密矩阵中。
2、使用25-1000维,就像word2vec方法
3、怎么降维?

方法1:降维矩阵X

计算共现矩阵X的SVD






改进技巧

1、功能词(the,he,has等)出现的频率很高,语法有很大影响。限制高频词或者直接停用词。
2、根据与中央词的距离衰减词频权重
3、用皮尔逊相关系数代替词频,然后设置复制为0


有趣的语义模式出现在向量中





SVD的问题

1、计算复杂度高:对n×mn×m的矩阵是O(mn2)O(mn2)
2、不方便处理新词或新文档
3、与其他DL模型训练套路不同

Count based vs direct prediction



基于统计的方法训练速度快,有效的利用了统计学。对于相似词的捕获上收到了限制,也无法扩展到大规模语料库。
对于直接预测的方法需要遍历语料库受语料库大小的影响,也无法利用单词的全局统计信息,但是显著地提高了NLP的性能,并且能捕捉复杂的模式不限于相似词。

结合上述两种方法的更好方法:Glove



这里的 Pij 是两个词共现的频次,f是一个max函数:
优点:训练快,可以拓展到大规模语料,也适用于小规模语料和小向量。
发现里面有两个向量u和v,他们都捕获了相同的共现向量信息,最好的解决方案是简单地把他们相加:

论文是:One of many hyperparameters explored in GloVe: Global Vectors for Word Representa:on (Pennington et al. (2014)
相对于word2vec只关注窗口内的共现,GloVe这个命名也说明这是全局的

怎么评价词向量?

NLP中的评价有:内部和外部之分
内部(Intrinsic):
1、对特定/中间子任务的评估。
2、计算速度快
3、有助于对系统的理解
4、不知道对实际应用有无帮助

外部(Extrinsic):
1、实际任务中使用的评价
2、计算时间长
3、不清楚是系统的问题还是交互的问题还是其他子系统的问题。
4、如果准确的替换系统带来了性能提升那就是成功的。

内部词向量评价


词向量类推,或说“A对于B来讲就相当于C对于哪个词?”。这可以通过余弦夹角得到,会发现类推的向量都是近似平行的。






内部词向量评价的细节

Word Vector Analogies: SyntacRc and Semantic examples from:mp://code.google.com/p/word2vec/source/browse/trunk/quesRonswords.
txt





类比评价和超参数


在不同大小的语料上,训练不同维度的词向量,在语义和语法数据集上的结果如下:GloVe的效果显著地更好。另外,高纬度并不一定好。而数据量越多越好。


1、考虑上下文窗口是否对称(非对称效果不好)
2、大约维度为8效果是最好的(开始有轻微的下降)
3、可能对不同的任务会有不同
4、对于Glove词向量来说在中心词对称的大小为8的窗口效果很好




其他内部词向量评价

1、词向量距离和其他人工判断的相关性
2、Example dataset: WordSim353         hmp://www.cs.technion.ac.il/~gabr/resources/data/wordsim353/



一些困惑

1、 你可能希望一个向量能捕获这两种信息(run =动词和名词),但是矢量被拉向不同的方向。
2、其他描述:Improving Word Representa:ons Via Global Context And Multiple Word Prototypes (Huang et al.2012)
3、想法:在窗口内聚类词,从新训练词分配多个不同的聚类标记。



外部词向量评价

很好的应用场景是:命名实体识别(named entity recogniRon): finding a person, organization or location
还有就是单词分类

Glove效果好了一点,但是不是很明显。




参考:
http://web.stanford.edu/class/cs224n/
http://www.hankcs.com/nlp/word-vector-representations-word2vec.html
https://zhuanlan.zhihu.com/p/26530524




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值