NLP小白学习路线(2)——Glove模型

上一篇我们讲到了,怎么让计算机理解人类的语言,那就是构建让计算机可以理解的one-hot向量,
但是由于语料库太庞大,one-hot容易导致维度灾难,并且不能计算词之间的相似性,所以我们引入了Word Embedding的概念。

Word Embedding 在one-hot的基础上压缩了描述语料库的维度,从原先的V-dim降低为了自己设定的K值,Word Embedding是Word2Vecmo模型的中间产物,是在不断最小化损失函数时候,不断迭代更新生成的。

PS: word2vec的经典之作 Xin Rong 论文

本篇文章介绍了基于窗口的共现矩阵的方法,引入GloVe。最后介绍了内部和外部词向量评估机制

Window based co-occurrence matrix

什么为共线矩阵(co-occurrence matrix )?
NLP小白学习路线(2)——Glove模型_第1张图片
这种方法存在以下问题:

词汇增加,维度增加
高纬度,需要大量存储空间
后面分类模型存在稀疏性问题,导致模型不健壮
解决办法:降维——如何降?

对共现矩阵进行奇异值分解(SVD)
NLP小白学习路线(2)——Glove模型_第2张图片
但是一些功能词(the, he, has)出现太过频繁,对语法(syntax)影响较大,上图所示的效果并不十分理想,需要对进行改进:

  • 限制高频词的频次,min(X,t),with t~100 ,或者干脆忽略这些高频词
  • 增加的窗口更精确地计算相近的单词(ampedwindows that count closer words more)用皮尔逊相关系数( Pearson correlations)代替词频(counts),然后将负值设置为0。

GloVe模型

  • 模型目标:进行词的向量化表示,使得向量之间尽可能多地蕴含语义和语法的信息
  • 输入:语料库
  • 输出:词向量

GloVe目标是综合基于统计和基于预测的两种方法的优点。

模型目标:词进行向量化表示,使得向量之间尽可能多地蕴含语义和语法的信息

流程:输入语料库–> 统计共现矩阵–> 训练词向量–>输出词向量
目标函数:
在这里插入图片描述

How to evaluate word vectors?

1.Intrinsic:内部词向量评估:词向量类比。
通过对词向量的余弦距离分析可得到直观的语义和语法问题。
通过Glove可视化,会发现这些类推的向量是近乎平行的。
NLP小白学习路线(2)——Glove模型_第3张图片
关于调参:

  • 维度最好为0-300,但对于downstream的任务可能不同。
  • 不对称的上下文(只对左边的单词)结果不太好
  • 窗口大小为8的对称窗口对Glove向量效果好。
  • 更长的训练时间会帮助提升模型的效果
  • 更多的数据
    NLP小白学习路线(2)——Glove模型_第4张图片

2.Extrinsic:实体命名识别会起到很大的帮助

Word senses and word sense ambiguity

关于单词歧义的消除:通过对上下文的聚类分门别类地重新训练
NLP小白学习路线(2)——Glove模型_第5张图片

你可能感兴趣的:(NLP,机器学习,机器学习,深度学习)