mf global:NLP学习笔记37:Word Embedding:Skip-gram,Subword\ELMo

一 序

  本文属于贪心NLP训练营学习笔记系列。上一篇介绍了 NLP学习笔记 36-word2vec

其中介绍了遇到的问题。其中OOV(out of vocabulary)、稀疏问题(某些单词出现频率较低)

本节课,老师来讲对应的优化问题。

二 Subword

我们上一节知道,在world2vec里面有嵌入embedding的过程,就是对词表中每个词做向量表,每个词对应不同的向量,对于OOV出现的新词。

  • 一种简单处理方式,是忽略新单词。
  • 还有一个思路是将字符当做基本单元,建立character-level模型。character-level模型试图使用26个字母来表示所有的词汇,相比于word-level模型,这种处理方式的粒度变小,其输入长度变长,使得数据更加稀疏并且难以学习长远程的依赖关系
  • 那么还有种思路就是综合下之前的world-level跟character-level,即subworld将单词划分为更小的单元。(FASTText就是)

老师举的例子:我们词库有reader,没有reading的case。subword将单词划分为更小的单元,分别训练子单元的向量,整体上还是采用skip-gram模型。

未知词汇能以subword组合的形式表示出来,套入一个加法计算。比如reading.注意

1使用场景:

 比如英文这种:有形态的,如:ing,es,ed等。中文就没这么显著(偏旁部首不好区分),待探索。

2. 拆分规则:

 上面的拆分仅做示意,显得很乱。目前拆分跟语言学关系不大,更多是统计学的(高频的保留,低频的可忽略)。这块老师没有展开讲。

网上有一些: Byte Pair Encoding (BPE)、wordpiece 和 Unigram Language Model。

3 窗口大小:

  文章介绍:n取值范围3-6 

三 ELMo

老师这里插入ELMo是为了对比的完整性,很多模型的细节要到后面学习了RNN等再讲,所以理解ELMo大致思路即可,不会展开讲细节。

词向量的训练模式,一种是基于语言模型LM,一种是非语言模型(Skip-gram、Cbow).在学习ELMo之前,我们要了解NNLM(Neural Network Language Model),它是使用了马尔可夫假设后的简化模型,参照上面的截图,

例如一个句子,

理想情况:有个训练的向量

ELMo的特点

1. 基于语言模型

2. 深度模型(deep model)

ELMo是基于Deep BiLSTM实现的,为啥是deep 而不是shallow,(可以先把Deep BiLSTM看作是黑盒子)

为什么使用多层。这里使用多层的原因,我们可以在图像识别中更清楚认识到更多层的意义。

这里的hirachecal representation 就是层次的结构。对比图就是从低维到高纬度,特征越清晰,越具象化。

还有一点:也是之后在transfer learning (迁移学习)时候,举例比如这次是识别车,以后识别人。底层信息是类似的,越到上层,越倾向于本次的任务特征。

参照图像领域的层次特征,文本领域多层结构都表示什么呢?

  • 最底层表示每个单词特征(word features)
  • 上面一层表示句法特征(Syntactic features),比如动词,形容词之类的,
  • 最上面表示语义特征(semantic features),表示单词的含义。

回到句子,假设是:he back car.

第一层 单词特征(word features)为基础的 

下面是RNN的计算过程:

RNN 不考虑窗口的原因,是因为当我们预测这个单词的时候,会把这个单词之前所有单词都考虑进去。

总结

 词向量是NLP的基础,相对比较重要。有了分布式的表示方法之后,后面很多模型才得到发展。

1 独热编码(one-hot):

  • boolean Representation
  • Count Representation
  • Tf-idf

 2 分布式表示方法:(按照空间的方式区分)

(1)欧式euclidean

  • Global Method: SVD(矩阵分解)
  • Local Method:
    • 基于语言模型学习词向量:
      • 不考虑上下文:NNLM
      • 考虑上下文:ELMo, bert
    • 基于非语言模型学习词向量
      • 【skip-gram, CBOW, Glove  不考虑置信度】, gaussian embedding【考虑不确定性】

(2)非euclidean

  • Hyperbolic Embedding

  

这个图里面,除了bert 是要讲的外,其余的大部分之前讲过了。剩下的3个没讲的点(MF、Glove、gaussian embedding),老师简单串讲下:

矩阵分解MF(Matrix Factorization)

在推荐系统有着广泛的应用。以用户-项目评分矩阵为例,传统的推荐方法通过对User-Item评分矩阵采用基于近邻的协同过滤来发现与用户具有相似偏好的其他用户,进而产生推荐。

缺点:矩阵中评分元素稀疏。

为了解决这个问题,矩阵分解就是把原来的大评分矩阵,近似的分解成小矩阵的乘积。在实际推荐计算时不再使用大矩阵,而是使用分解得到的两个小矩阵。

glove

MF是global 方法。

global优点:考虑整体,缺点:计算量大。

local 优点:计算简单,还可以使用随机梯度优化, 缺点:没全局考虑。

glove 就是MF+ skipgram

gaussian embedding :

embedding的学习没有注意到不确定性,对于高频词学习较好,但是低频词学习较差。

Gaussian embedding用协方差来表示不确定度。

需要注意的是。因为单词的表示不再是向量,而是假设的高斯分布。

关系的概率分布为:\large P_r \sim N(\mu _r,\Sigma _r )

计算\large P_e\large P_r之间的相似度.使用了KL散度 \large D_{KL}(P_e,P_r)

Hyperbolic Embedding

这个,老师提了下,双曲空间比欧式空间(平面的),更能体现出树的树的层级关系。

 

相关推荐

相关文章