每天五分钟自然言语处理NLP:一文了解深度学习中主流的词编码方式
作者头像
  • 中国科技
  • 2020-07-06 18:29:37 4

本文重点

自然语言处理(NLP)的基本单元从最细粒度的词语开始,逐步构成句子、段落、篇章和文档。因此,处理NLP问题的第一步就是从词语入手。为什么需要词向量呢?

在计算机视觉领域,图像本身是以数字形式存储在计算机中的,并且这些数字已经包含了某种信息。此外,不同组的数字之间也包含了一些关系。因此,我们不需要对图像数据进行向量化处理。然而,文本数据则需要转换成计算机可以理解的数字形式。这一过程被称为词向量(word embedding)。因为每个词都需要通过词向量来参与NLP任务,词向量的质量将直接影响模型的表现。本文将系统地介绍词向量的发展历程及其优缺点。

词向量的发展

第一个时代:词嵌入(Word Embedding)时代

  • 代表:Word2Vec和Glove

第二个时代:上下文嵌入(Context Word Embedding)时代

  • 代表:Glove和ELMO

第三个时代:预训练模型(Pretraining)时代

  • 代表:GPT和BERT

第四个时代:改进与定制化时代

  • 改进型代表:ALBERT和XLNet
  • 定制化代表:SciBert 和BioBert

词向量的分类

团圆式

  • one-hot、tf-idf、textrank

分布式

  • 基于矩阵的方法、基于聚类的方法、基于神经网络的方法

主题模型

  • LSA(SVD)、pLSA、LDA

静态编码

  • word2vec、Glove、fastText

动态编码

  • ELMO、GPT、BERT、XLNet

从one-hot到BERT

1. One-Hot

  • 优点
    • 在一定程度上解决了分类器难以处理稀疏数据的问题
    • 能够起到扩展特征的作用
  • 缺点
    • 无法处理一词多义的情况
    • 编码表示非常稀疏
    • 是词袋模型,不考虑词的顺序
    • 字典越大,词向量的特征空间越大
    • 无法计算不同词之间的相似度
    • 特征维度随字典数量变化

2. TF-IDF

  • 优点
    • 强调稀有词,忽略常用词
  • 缺点
    • 由于是词袋模型,不考虑词的位置信息
    • 不能反映单词的重要程度和特征词的分布状况

3. N-Gram表示

  • 优点
    • 考虑了词与词的顺序
  • 缺点
    • 词表收缩

4. 共现矩阵

  • 缺点
    • 无法处理一词多义
    • 大部分词不同时共现,导致向量稀疏
    • 特征维度随字典数量变化
    • 存储整个字典的空间消耗大
    • 模型稳定性差(新数据可能使模型失效)
  • 优点
    • 有限地考虑词与词的位置关系
    • 分布式表示

5. 矩阵分解(LSA)

  • 缺点
    • 无法处理一词多义
    • 计算复杂度高,对m*n矩阵降维需要O(mn²)
    • 新文档或新词出现时需要重新训练
  • 优点
    • 构建矩阵时利用了全局信息
    • 模型向量不再稀疏

6. NNLM

  • 优点
    • 模型简单,标准的语言模型
    • 可以得到词向量
    • 考虑了语言的顺序信息
  • 缺点
    • 效率不高
    • 词向量无法处理一词多义
    • 只利用左边的n-1个词,没有利用更多上下文信息(窗口大小决定了n-1个词),因此只考虑部分信息

7. Word2Vec

  • 缺点
    • 词和向量一对一关系,无法处理一词多义
    • 是静态方式,通用性强但无法针对特定任务进行动态优化
    • 只考虑上下文,不考虑上下文顺序
    • 仅考虑词的部分信息(特征提取基于滑窗)
    • 受限于窗口大小,无法摆脱长距离依赖
    • 可解释性差
    • 低频词和未登录词(OOV)效果不佳
    • 运用了浅层网络,难以捕捉深层次含义
    • 无法反映指代关系,如“it”究竟表示什么
  • 优点
    • 利用了部分上下文特征
    • 模型向量不再稀疏
    • 可以计算词与词之间的相似性,如男人和女人、国王和女王,但无法解释层次关系

8. Glove

  • 缺点
    • 无法处理一词多义
    • 不考虑词序
  • 优点
    • 利用了语料库的全局统计特征
    • 运用了部分上下文特征(类似于word2vec+LSA)
    • 模型向量不再稀疏
    • 可以计算词与词之间的相似性
    • 使用了共现矩阵,但未进行矩阵分解,而是将词向量和比率联系起来

9. ELMO

  • 优点
    • 解决了一词多义的问题
    • 开创了基于特征融合的预训练方法(预训练+特征融合)
    • 双向语言模型(尽管不是真正的双向)
    • 可以学习到单词用法的复杂特性(语法信息和语义信息)
    • 运用了全局信息
  • 缺点
    • 不是真正的双向模型(两个RNN模型参数不共享)
    • 无法克服RNN模型的局限性(梯度消失、无法并行计算)
    • 应用于新任务的特征是通过多个维度拼接学习得来的,不是Bert一体化的方式
    • ELMO使用的1B Word Benchmark数据集,词数为10亿,但句子间的顺序是随机打乱的,无法建模句子级别的依赖关系

10. GPT

  • 优点
    • 基于Fine-tuning的形式(预训练+微调)
    • 运用了强大的transformer特征提取器
    • 解决了一词多义的问题
    • 通用任务框架
  • 缺点
    • 使用的是单向的transformer(单向语言模型)
    • 对于某些类型的任务需要对输入数据的结构进行调整

11. BERT

  • 优点
    • 解决了一词多义的问题
    • 使用了双向的transformer结构+掩码语言模型(解决信息泄露的问题)
    • 预训练的多任务设计(掩码语言模型+下一句预测)
    • 通用任务框架
    • 真正意义上的语言模型
    • 获取比词更高层级的句子级别的语义表征(下一句预测)
    • 可以反映指代关系
  • 缺点
    • 生成任务不是很友好
    • 训练和测试不一致(masked的原因)
    • 每个批次只有15%的token被预测,所以收敛较慢
    • 模型过大,成本较高

它们之间的关系

  • 如果ELMO使用transformer,就会更接近BERT
  • 如果GPT将transformer改为双向,也会更接近BERT
    本文来源:图灵汇
责任编辑: : 中国科技
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
一文深度言语编码主流分钟了解每天自然方式
    下一篇