(一)、NLP四大类任务:

1.序列标注:这是最典型的 NLP 任务,比如中文分词,词性标注,命名实体识别,语义角色标注等都可以归入这一类问题,它的特点是句子中每个单词要求模型根据上下文都要给出一个分类类别。
2.分类任务:比如我们常见的文本分类,情感计算等都可以归入这一类。它的特点是不管文章有多长,总体给出一个分类类别即可。
3.句子关系判断:比如 QA,语义改写,自然语言推理等任务都是这个模式,它的特点是给定两个句子,模型判断出两个句子是否具备某种语义关系。
4.生成式任务:比如机器翻译,文本摘要,写诗造句,对对联,看图说话等都属于这一类。它的特点是输入文本内容后,需要自主生成另外一段文字。

(二)、NLP算法发展史

1. NNLM(Neural Network language model):

简述:通过多个上文输入,预测输出,应用了word Embedding方法,但是此word Embedding是没有上下文的word Embedding,也就是word直接用one-hot表示,然后乘以一个向量权重矩阵(这个向量矩阵其实就是word Embedding向量矩阵,是我们训练得到的)得到该word的word Embedding向量。
实现功能:将上文的t-1个词输入,预测第t个词
网络结构:将前t-1个词的one-hot编码向量输入网络,分别乘以一个共享的word Embedding向量矩阵C,得到t-1个word Embedding向量,然后将t-1个向量进行concat,然后经过激活函数tanh激活后,输入到softmax层进行概率预测。
NNLM模型图如下:

缺点:NNLM所求解的word Embedding矩阵C没有包含上下文的信息,只是一个独立的个体。

2. word2vec:

简述:引入了基于上下文的word Embedding,即用上文的单词和下文的单词共同预测文中单词(cbow),或者是用文中单词来预测上文以及下文的单词(Skip-gram),从而训练出一个包含所有词的word Embedding向量矩阵(如:在下图中,cbow中的以及Skip-gram中的w(t)就是我们训练出的word Embdding向量)
CBOW模型(Continuous Bag of Words)和Skip-gram模型如下图:

实现功能:训练一个word Embedding权重向量矩阵
网络结构:上图中将x(t)的上文单词x(1)、x(2)…x(t-1)以及下文单词x(t+1)、x(t+2)…输入到网络中训练隐藏层(hidden layer)的x(t)的word Embdding向量,最终我们所需要的权重矩阵是网络中输入层到隐藏层的权重矩阵,隐藏层到输出层的权重矩阵只是我们用来训练前面的权重矩阵的,在大样本,海量数据文本训练的过程中,就能训练出每个word的Embedding向量(也就是hidded layer的向量),将所有的word Embedding向量组合就是一个word Embedding向量矩阵,也就是我们常用的word Embedding表
CBOW模型具体结构:

缺点: word2vec计算的word Embedding向量,无法区分多义词的不同语义,在什么语义下的word Embedding向量都表示相同。

3. Seq2Seq:

简述:Seq2Seq模型的核心思想,通过深度神经网络将一个定长(零填充机制实现定长)的输入序列信号转换为输出的序列信号,这一过程由编码和解码两个过程构成。在经典的实现中,编码器和解码器各由一个循环神经网络(RNN,LSTM,GRU均可)构成,在Seq2Seq中,两个循环神经网络是共同训练的(具体见:Seq2Seq模型)
实现功能:实现了将一个序列信号转化成一个不定长的序列输出
网络结构:由编码器(Encoder)和解码器(Decoder)组成,Encoder是个GRU(或者是RNN和LSTM),它会遍历输入的每一个word(词),每个时刻的输入是上一个时刻的隐状态和输入,然后会有一个输出和新的隐状态。这个新的隐状态会作为下一个时刻的输入隐状态。每个时刻都有一个隐状态输出,对于Seq2Seq模型来说,我们通常只保留最后一个时刻的隐状态,认为它编码了整个句子的语义,但是后面我们会用到Attention机制,它还会用到Encoder每个时刻隐状态的输出。Encoder处理结束后会把最后一个时刻的隐状态作为Decoder的初始隐状态。
Seq2Seq模型如下:

注意力机制的提出:解决了Seq2Seq的两个缺陷,即难以记忆长句子,压缩损失信息.
添加注意力机制的Seq2Seq:

计算过程:Decoder层输出的隐藏层状态与Encoder所有隐藏层状态作点积得到的结果,进行softmax,然后将softmax的结果与Encoder所有隐藏层状态做乘法,并将结果相加,所得到的注意力权重再与原隐藏状态concat,再将所得到的注意力状态与输入一起预测(训练)输出。

4. ELMO(Embedding from language model)
简述:使用了双向LSTM(RNN或者GRU)进行训练,ELMO 的预训练过程不仅仅学会单词的 Word Embedding,还学会了一个双层双向的 LSTM 网络结构。
改进:解决了多义词问题
缺点:LSTM抽取特征能力不够强

5. openAI GPT(Generative Pre-Training)
简述:第一个阶段是利用语言模型进行预训练,第二阶段通过 Fine-tuning 的模式解决下游任务,使用了单向Transformer来进行训练,即只采用 上文来进行预测,而抛开了下文。

优点:使用Transformer作为特征抽取器,Transformer特征抽取能力明显强于LSTM。
缺点:使用了单向的语言模型,即只考虑了上文,没有考虑下文。

6. BERT(Bidirectional Encoder Representations from Transformers)
简述:Bert 采用和 GPT 完全相同的两阶段模型,首先是语言模型预训练;其次是使Fine-Tuning 模式解决下游任务。和 GPT 的最主要不同在于在预训练阶段采用Transformer的双向语言模型。

BERT的输入表示如下图

BERT在不同任务上的Fine-tuning

如上述a,b,c,d四图所示,通过Fine-tuning,bert可实现以下不同的四类任务
a.句子关系分类:是否连续,二分类问题,需加上一个起始和终结符号,句子之间加个分隔符即可
b.单句分类:可以看成是文本分类任务,多分类问题,需增加起始和终结符号,输出部分和句子关系判断任务类似改造
c.问答系统:可以附着在 Seq2Seq 结构上,Encoder 部分是个深度 Transformer 结构,Decoder 部分也是个深度 Transformer 结构。根据任务选择不同的预训练数据初始化 Encoder 和 Decoder 即可
d.序列标注:输入部分和单句分类是一样的,只需要输出部分 Transformer 最后一层每个单词对应位置都进行分类即可

改进:使用双向的Transformer、Masked LM以及句子级预测(Next Sentence Prediction)
优点:几乎可以做任何 NLP 的下游任务,具备普适性

自然语言理解发展历程相关推荐

  1. 自然语言处理发展历程

    自然语言处理发展历程(算法进阶+历史重要阶段) 作者:张qianer~ 本文适合有一定NLP基础,想对NLP的知识有系统梳理的小伙伴~ 文章目录 自然语言处理发展历程(算法进阶+历史重要阶段) 什么是 ...

  2. 【技术白皮书】第二章:OCR智能文字识别回顾——自然语言文本发展历程

    2.发展历程与现状 2.1信息抽取技术发展历程 从自然语言文本中获取结构化信息的研究最早开始于20世纪60年代中期,这被看作是信息抽取技术的初始研究,它以两个长期的.研究性的自然语言处理项目为代表. ...

  3. 自然语言处理发展历程自我总结

    自然语言处理(NLP)历史悠久,从上个世纪初,便有人开始提出自然语言相关的规律和假设,但本人阅读了若干自然语言相关的书籍后,发现自然语言处理的方法论在长达近1个世纪的时间内并无半点实质上的进展. 自然 ...

  4. 自然语言处理(NLP)的发展历程,神经语言模型多任务学习介绍, ECM模型介绍等

    1读前准备 读本篇论文之前我先调研了并理解了什么是自然语言处理(自然语言是人类交流信息的工具.很多自然语言处理问题都可以等同于通信系统中的解码问题–一个人根据接收到的信息,去猜测发话人要表达的意思)以 ...

  5. 自然语言理解的概念与发展历史

    如果计算机能够理解.处理自然语言,这将是计算机技术的一项重大突破.自然语言理解的研究在应用和理论两个方面都具有重大的意义. 首先自然语言理解的概念以及发展历史,然后从应用角度介绍机器翻译和语音识别技术 ...

  6. 自然语言一般使用计算机,自然语言理解

    自然语言处理(N LP , Natural Language Processing)是使用自然语言同计算机进行通讯的技术, 因为处理自然语言的关键是要让计算机"理解"自然语言,所以 ...

  7. 关于5G的理解:5G的发展历程、5G原理

    写在前面:本篇文章通过浅显易懂的方式来介绍5G的技术与原理,主要包括5G的发展历程.5G原理等内容,希望能够对你了解5G有所帮助! 移动通信(1G-5G)的原理与发展历程 首先我们讲一下什么是&quo ...

  8. 自然语言处理(NLP)发展历程(2),什么是词嵌入(word embedding) ?

    四.如何表示一个词语的意思 4.1.NLP概念术语   这里我将引入几个概念术语,便于大家理解及阅读NLP相关文章. 语言模型(language model,LM),简单地说,语言模型就是用来计算一个 ...

  9. 张志华:机器学习的发展历程及启示

    近年来,人工智能的强势崛起,特别是刚刚过去的AlphaGo和韩国九段棋手李世石的人机大战,让我们领略到了人工智能技术的巨大潜力.数据是载体,智能是目标,而机器学习是从数据通往智能的技术途径.因此,机器 ...

  10. 通用计算机的发展历程是巨型机大型机小型机,计组1——计算机系统概述

    本篇总结了<计算机组成原理>第一章--计算机系统概述,主要内容如下 计算机系统简介 计算机的发展历程 计算机系统的分类与发展方向 计算机的硬件组成 计算机的层次结构 计算机的性能指标 计算 ...

最新文章

  1. ACE_Task::putq(转)
  2. AIR 配置文件(*-app.xml)说明(转)
  3. linux 防火墙iptables简明教程
  4. 支持向量机—核函数源码分析(2)
  5. ubuntu无线网络开关
  6. Spring AbstractAutowireCapableBeanFactory
  7. 看的一个pdf说的。。大型网站架构演变
  8. selenium autoit java_selenium借助AutoIt识别上传文件Java篇
  9. java实现.net中的枚举
  10. DPDK之KNI原理
  11. mac使用之必备神器
  12. 自然语言处理领域重要论文资源全索引
  13. 梨花众创 - 微信支付宝收款二维码合并器
  14. Vue和Springboot实现SM4加密和解密(前端可加密,后端可加解密,MD5同理)
  15. 计算机重启文件丢失在哪找回,未保存的word文档如何恢复?找回电脑异常关机未保存的word文档的方法...
  16. Intent中putExtra()方法用法
  17. property中ref、value、name的区别
  18. 厦大计算机考研学硕,2021厦大计算机考研招生、复试、书目专业大解析!
  19. 怎么理解面向对象编程【java基础第一讲】
  20. Hive操作——删除表(drop、truncate)

热门文章

  1. php音乐地址外链,音乐外链地址的获取
  2. 无损音乐ape格式怎么转为ogg格式
  3. 【LeetCode - 248】中心对称数 III
  4. COJ 0359 xjr考考你数据结构(根号2)线段树区间增加
  5. 记录struts2 和struts1的页面验证码生成
  6. 制作网页所需的一些简单ps技巧
  7. unicode编码表,转载自:近來情轉深的博客
  8. 【数据结构】【王道】【线性表】单链表的实现及基本操作(带头结点)(可直接运行)
  9. PS笔记:调色之通道混合器
  10. admi后台 vue_vue-ele-admin后台管理系统框架__布局