Deep Learning在NLP领域的发展

三个阶段:

  • Word Embedding

    • Word2Vec

    • GloVe

  • RNN改进和扩展

    • LSTM/GRU

    • Seq2Seq

    • Attention/Self-Attention

  • Contextual Word Embedding

    • ELMO

    • OpenAI GPT

    • BERT

第一个阶段主要是Word Embedding包括word2vec和glove,可以通过无监督的预料学习到一个比较好的词向量,可以把一个词向量用于下游的任务从而提高模型的泛化能力。

第二个阶段主要是RNN的改进和扩展,包括LSTM和GRU对原始答案的改进,包括两个RNN组成的Seq2Seq能解决nlp里面的大部分问题,比如机器翻译、问答、摘要。Attention/Self-Attention是对Seq2Seq的进一步改进。

第三个阶段是考虑上下文的word embedding。

语言模型(nlp基本任务)

语言建模是根据给定的前一个单词来预测文本中的下一个单词的任务,预测句子概率。

任务:给定一个句子w,其中包括k个词,w1到wk。需要计算这个句子的概率,此处使用条件概率把他分解成条件概率乘积的形式:比如说先计算w1 的概率,然后在给定w1的情况下计算w2的概率,然后给定w1和w2来计算w3的概率,以及给定w1到wk-1来计算wk 的概率。在深度学习之前主流的语言模型是n-gram模型。但是这种模型缺少泛化能力。

word embedding

它是把词映射到一个稠密的低纬的空间,这样的映射使得语义上比较相似的两个词在语义空间的距离比较近,语义差别大的距离比较远。

word2vec可以学到一些词语间的关系。

word2vec使用的假设是分布式假设,它的意思是说如果两个词的上下文是相似的,那么他们的语义也是相似的。

  • word2vec有两个基本的模型:CBOW和Skip-Gram。CBOW是利用上下文来预测中心词,Skip-Gram是利用中心词来预测上下文

  • 词袋(Bag of Words)模型,最常用的方法是one-hot编码和tf-IDF。

词袋将文本看作一个无序的词汇集合,忽略语法和单词顺序,对每一个单词进行统计,计算词频。 但是问题是BOW的最大缺点是严重缺乏相似词之间的表达。

对于nlp来说,我们输入的是一个一个离散的符号,比如说是一些是字符的序列,或者说是一些单词的序列。对于神经网络来说,他处理的都是向量或者矩阵。所以我们第一步就是需要把一个词编码成一个向量。最简单的编码方式就是One-Hot Encoding。但是这种编码产生的结果是高维的稀疏的,这是缺陷。

词袋模型和word2vec都是将文本向量化的常用方法。

在word embedding编码的时候,一个词经常会有多个语义,如果强行将用一个向量来编码它的语义的时候,我们只能把这几种语义都编码到向量里面,但实际上句子里面的词一般只有一种语义。

像上述的情况可以用RNN、LSTM、GRU来解决。

用两个RNN组成Seq2Seq的模型。

由于词向量是不考虑上下文的,比如在编码bank的时候,只能把“银行”“水边”两个意思编码进去。

RNN可以解决这个问题,因为RNN有记忆能力,比如上图中在计算t时刻的一个隐状态时,除了考虑Xt(输入),同时也会考虑t-1时刻的隐状态,会把这两个组合起来才可以求出St(t时刻的隐状态)。同时在计算t+1时刻时,除了考虑t+1时刻的输入Xt+1,还会考虑t时刻的隐状态。

St是记忆了从开始到t时刻的所有语义,加入最后一刻是Sn,则可以认为是编码了整个句子的语义。所以RNN是具有记忆能力,同时具有上下文表示的能力。

最原始的RNN,神经网络大部分梯度下降或者反向传播来训练参数。我们需要把loss或者error 向前传递。由于梯度消失的问题,普通的RNN很难学到长距离的依赖关系。此时LSTM可以来解决这个问题。

LSTM通过门的机制来避免了梯度消失的问题。

深度学习在NLP领域的发展(一)相关推荐

  1. 微信高级研究员解析深度学习在NLP中的发展和应用 | 公开课笔记

    作者 | 张金超(微信模式识别中心的高级研究员) 整理 | Just 出品 | 人工智能头条(公众号ID:AI_Thinker) 近年来,深度学习方法极大的推动了自然语言处理领域的发展.几乎在所有的 ...

  2. 今晚8点开播 | 微信高级研究员解析深度学习在NLP中的发展和应用

    近年来,深度学习方法极大的推动了自然语言处理领域的发展.几乎在所有的 NLP 任务上我们都能看到深度学习技术的应用,并且在很多的任务上,深度学习方法的表现大大的超过了传统方法.可以说,深度学习方法给 ...

  3. 公开课 | 微信高级研究员解析深度学习在NLP中的发展和应用

    近年来,深度学习方法极大的推动了自然语言处理领域的发展.几乎在所有的 NLP 任务上我们都能看到深度学习技术的应用,并且在很多的任务上,深度学习方法的表现大大的超过了传统方法.可以说,深度学习方法给 ...

  4. 微信研究员解析深度学习在NLP中的发展和应用

    微信研究员解析深度学习在NLP中的发展和应用 深度学习在自然语言(NLP)中的发展和应用视频教程,深度学习方法的表现大大的超过了传统方法.可以说,深度学习方法给NLP带来了一场重要的变革.在本课程中, ...

  5. 微信高级研究员解析深度学习在 NLP 中的发展和应用

    近年来,深度学习方法极大的推动了自然语言处理领域的发展.几乎在所有的 NLP 任务上我们都能看到深度学习技术的应用,并且在很多的任务上,深度学习方法的表现大大的超过了传统方法.可以说,深度学习方法给 ...

  6. 2017年深度学习在NLP领域的进展和趋势

    本文翻译的是这篇文章 在过去的很多年里,深度学习架构和算法在某些领域,比如图像识别和语音处理,取得了令人印象深刻的进展. 最初,深度学习架构和算法在NLP领域并没能取得大的进展,但是最近深度学习在普通 ...

  7. 超全!深度学习在计算机视觉领域的应用一览

    作者 | 黄浴,奇点汽车美研中心首席科学家兼总裁 转载自知乎 简单回顾的话,2006年Geoffrey Hinton的论文点燃了"这把火",现在已经有不少人开始泼"冷水& ...

  8. 收藏 | 深度学习在计算机视觉领域的应用总结

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达本文转自|计算机视觉联盟 还是做一些背景介绍.已经是很热的深度学习, ...

  9. 深度学习在计算机视觉领域(包括图像,视频,3-D点云,深度图)的应用一览

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 来源 | 黄浴 原文 |  https://zhuanlan.zhihu.com/p/55747295 ...

  10. 基于深度学习的NLP 32页最新进展综述,190篇参考文献

    来源:专知 摘要:深度学习使用多层学习层次的数据表示,并在许多领域得到了最优的结果.最近,各种各样的模型设计和方法在自然语言处理(NLP)蓬勃发展.在本文中,我们回顾了被广泛应用于各种NLP任务的深度 ...

最新文章

  1. 扬州市大学计算机专业录取分数线,“计算机网络技术”专业录取分数线
  2. Map存值问题的研究
  3. 为什么铝基板无线接受电路板将信号源烧了?
  4. JAVA实现从上往下打印二叉树(《剑指offer》)
  5. LC_ALL=C表示什么?
  6. JavaScript 使用[]读取对象属性
  7. php使用openssl进行Rsa长数据加密,解密保存问题
  8. [react] 和Component两者的区别是什么
  9. 生成n个从1到M(n = M)之间的不重复的随机数问题(洗扑克牌算法)
  10. matlab二维谐振子,基于有限差分法求解的二维谐振子的MATLAB程序如下。哪位大神能帮我做个注明啊,完全看不懂啊,,急...
  11. MotifStack:多motif序列比较和可视化
  12. 【Python】mayavi小结
  13. oracle的学生,Oracle做学生信息系统的脚本
  14. 20190905 Lombok常用注解
  15. 安装360后无法远程sqlserver error:64
  16. localtime选择00:00值不回显_配置OSPF的DR选择示例
  17. Panel面板和三种布局管理器
  18. PHP 格式化字节大小
  19. 答:本科生写论文对考研有用吗?
  20. 【主动投资组合管理】第1章 绪论

热门文章

  1. oracle中between and闭合性
  2. android 抽屉式滑动demo
  3. android - startActivity浅谈
  4. 收集一些关于视频文件格式以及编码计算的一些知识
  5. C#创建自定义配置节点
  6. javascript特效:会随着鼠标而动的眼睛
  7. NeHe OpenGL教程(中文版附源代码)
  8. Whl自助搜索下载器
  9. 没有工厂模式(工厂模式2)
  10. 关于虚函数重载遇到的怪问题 -- 为什么经常调用了基类的函数