1.概述

1.1 问答系统(Question answering)

基于上下文:输入问题和文本,输出答案;如阅读理解

封闭系统:直接输入问题,输出答案;如聊天机器人

1.2 迁移学习(Transfer learning)

定义:先在有大量训练数据的任务上预训练,再迁移至下游任务上继续训练,此时只需少量数据

1.3 BERT(Bidirectional Encoder Representations from Transformers)

定义:是一种基于transformer encoder的双向语言表示模型,同时考虑了前向依赖与后向依赖

1.4 T5

定义:一种基于transformer的多任务模型


2.迁移学习(Transfer Learning)

2.1 基本概念

 迁移学习优点:

减少训练时间

提升预测准确率

可通过少量数据训练

  迁移学习要素:

(1)迁移器:Transfer

(2)预训练数据:Pre-train data

(3)预训练任务:Pre-training task

迁移学习流程:

            先在原始数据集上进行预训练,再迁移至具体下游任务上继续训练,进行精调

例如:

一个训练好的模型可迁移至不同下游任务中,只需在下游任务上使用少量数据继续训练

2.2 迁移器(Transfer)

  分类:

基于特征:Feature-based

基于精调:Fine-Tuning

基于特征:

定义:将预训练模型的隐藏层参数提取出来,用在新模型中

例:

如词嵌入的训练就是一种迁移学习,先通过中心词预测得到词嵌入矩阵,再将其迁移到其他NLP任务中加以使用

    基于精调:

定义:直接用预训练模型,或为预训练模型新增一个输出层,使其适应当前任务

例:

通过电影评论训练一个三分类情感分类模型,现在要通过课程评论训练五分类模型

可通过直接使用之前的模型在新数据集上继续训练,并增加新输出层,以实现五分类的要求,

2.3 预训练数据(Pre-train data)

   数据与表现:

关系:通常训练数据量越大,模型效果越好

    标注数据与未标注数据:

关系:通常标注数据数量较少,未标注数据数量很多

    通过无标注数据迁移学习:

方法:先通过无标注数据预训练模型,再迁移至标注数据上继续训练

2.4 预训练任务(Pre-train task)

自监督学习(Self-supervised task):

方法:构建一种模型结构,使其能自行构建训练集与标签进行训练,无需人工标注数据

例如:预测下一个词


3.常见NLP模型及发展

3.1 CBOW

概述:使用固定大小的窗口选择上下文,来预测中心词

缺点:因窗口大小固定,当窗口过小时可能丢失关键信息,且无法处理长距离依赖关系

3.2 ELMo

概述:引入RNN结构,使用了双向LSTM,能通过全部上下文信息来预测中心词

优点:解决了固定窗口带来的问题,能够处理长距离依赖

缺点:没有注意力机制,存在信息丢失与梯度消失问题,无法并行处理数据

3.3 GPT

概述:GPT基于Transformer的Decoder结构,使用了注意力机制,利用前文信息来预测中心词

优点:使用了注意力机制,能够并行处理输出数据提高效率,解决了信息丢失与梯度消失问题

缺点:只使用前向注意力,只考虑前向依赖而没考虑后向依赖关系

3.4 BERT

概述:BERT基于Transformer的Encoder结构,且使用双向注意力,能同时考虑上下文信息

优点:

使用双向注意力,能同时考虑上下文关系

Words to sentences:不仅能预测下一个单词,还能预测下一个句子

预训练:支持自监督训练,可以使用MLM和NSP两种方法进行预训练

Multi-Mask:随机从句子中选择单词作为中心词让模型预测

Next Setence Prediction:输入一个句子,让模型预测下一个句子

3.5 T5

概述:T5使用了Transformer的Encoder和Decoder结构,是一种多任务模型

优点:

Text-to-Text:文本到文本,通过在输入文本中指定任务类型,即可通过一个模型实现不同任务功能

3.6 总结


4.BERT

4.1 基本概念

定义/概述:

全称Bidirectional Encoder Representations from Transformer ,即双向Transformer编码表示模型;

是一个多任务语言表示模型(language representation model);

主要模型结构是由trasnformer的encoder堆叠而成,主要流程是预训练(pre-training)与精调(fine-tuning)

结构:

        由输入层、中间层、输出层构成;中间层与输出层同transformer encoder基本一致

输入层为适应多任务训练而进行了一定改造

  特点:

多层双向transformer

位置编码

深度网络结构/大量参数

4.2 输入层与输出层

输入层:

输入格式:为使BERT支持多任务,因此输入格式为 [标识符]+句子 的结构

标识符:

[CLS]:起始符,表示句子的开始

[SEP]:分隔符,分隔两段文本

输入层格式:

词嵌入(Token Embneddings):将各单词转换为对应词向量

段嵌入(Segment Embeddings):表明这个词属于哪个句子;在有多文本输入时用于区分

位置嵌入(Position Embeddings):维护各单词间位置关系,由模型训练出;(与Transformer不同,Transformer中是预先设定好的值)

输出层:

输出格式:对应输入层,会输出 对应任务的结果+句子

4.3 BERT流程

4.3.1 预训练(Pre-Training)

        定义:可先通过大量语料数据进行无监督的预训练

方法:

掩码语言模型(MLM):随机选择单词遮掩作为中心词预测,无需人工标注数据;提升模型理解能力

下一句子预测(NLP):给出上一句,预测下一句,无需人工标注数据;提升模型预测能力

4.3.2 精调(Fine-Tuning)

定义:使用预训练好的BERT模型迁移至不同下游任务继续训练,以进行精调

方法:通过改变输入结构,来实现对不同任务的目标


5.T5(Text-To-Text Transfer Transformer)

5.1 基本概念

定义:一种文本到文本模型,将常见的NLP任务全部整合进一个模型中

常见预训练模型结构比较:

(1)Encoder-Decoder:即 Seq2Seq 常用模型,分成 Encoder 和 Decoder 两部分,Encoder可用全部信息,Decoder只能用之前的信息;如Transformer

(2)Language model:只使用Encoder,当前时间步只能看到之前时间步信息;如GPT

(3)Prefix LM:Encoder 和 Decoder 的融合体,部分Encoder只能能看到之前的信息,而部分Decoder能看到全部信息;如UniLM

T5模型结构:

基于Encoder-Decoder结构的深层网络模型,网络规模大,参数量极大

5.2 训练方法

5.2.1 多任务训练策略(Multi-Task Training Strategy)

定义:通过使用不同任务的数据集来训练模型

输入输出格式: 任务指令+输入文本

数据选择策略(Data Training Strategies):

因为T5是多任务模型,所以需要使用不同数据集进行训练,可以通过以下策略决定各类数据比例:

(1)等量混合(Equal mixing):即从不同任务数据集中取等量数据用于训练

(2)等比混合(Examples-proportional mixing):根据不同任务数据集大小,等比例取数据用于训练,即数据集越大取的训练数据越多

(3)混合系数混合(Temperature scaled mixing):设定一个混合系数T,根据其从不同数据集中选择训练数据

5.2.2 预训练+精调

定义:通过先预训练再精调的方式训练模型

精调方法:

逐步解冻法(Gradual Unfreezing):先将所有隐藏层设为不可训练,再从深至浅依次解冻,使其可以训练

调整层法(Adapter layers):增加新的输出层,并进行训练

结论:

使用预训练+精调的训练方法效果比使用多任务训练要好

更大的模型、更多的训练数据、更长的训练时间,都对最终效果起正面影响

5.3 GLUE Benchmark(通用语言理解评估基准)

定义:国际权威数据集,包含了各类NLP问题的数据集,可用来训练和评价模型效果

包含领域:

5.4 使用T5实现问答系统

Transformer encoder:

数据示例:

使用T5实现:

(1)加载预训练模型

(2)调整数据格式,使其符合T5的输入格式

(3)在目标任务上精调模型

(4)使用最终模型预测结果


作业代码:https://github.com/Ogmx/Natural-Language-Processing-Specialization

可将代码与数据下载至本地,使用jupyter notebook打开

自然语言处理(NLP)-4.3 BERT、T5与问答系统(BERTT5Question Answering)相关推荐

  1. 自然语言处理NLP之BERT、BERT是什么、智能问答、阅读理解、分词、词性标注、数据增强、文本分类、BERT的知识表示本质

    自然语言处理NLP之BERT.BERT是什么.智能问答.阅读理解.分词.词性标注.数据增强.文本分类.BERT的知识表示本质 目录

  2. 自然语言处理NLP星空智能对话机器人系列:NLP on Transformers 101 第16章:Kaggle BERT比赛CommonLit Readability Prize赛题解析

    自然语言处理NLP星空智能对话机器人系列:NLP on Transformers 101 第16章:Kaggle BERT比赛CommonLit Readability Prize赛题解析 第16章: ...

  3. NLP | 自然语言处理经典seq2seq网络BERT详解及代码

    2019论文:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding BERT:用于语言理解的 ...

  4. 自然语言处理NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 基于BERT模型微调实现句子分类

    自然语言处理NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 基于BERT模型微调实现句子分类 目录 基于BERT模型微调实现句子分类案例实战 Installing the H ...

  5. 【莫烦Python】机器要说话 NLP 自然语言处理教程 W2V Transformer BERT Seq2Seq GPT 笔记

    [莫烦Python]机器要说话 NLP 自然语言处理教程 W2V Transformer BERT Seq2Seq GPT 笔记 教程与代码地址 P1 NLP行业大佬采访 P2 NLP简介 P3 1. ...

  6. 深度学习机器学习面试题——自然语言处理NLP,transformer,BERT,RNN,LSTM

    深度学习机器学习面试题--自然语言处理NLP,transformer,BERT,RNN,LSTM 提示:互联网大厂常考的深度学习基础知识 LSTM与Transformer的区别 讲一下Bert原理,B ...

  7. (含源码)「自然语言处理(NLP)」社区问答评估Bert模型优化

    来源: AINLPer 微信公众号(每日更新-) 编辑: ShuYini 校稿: ShuYini 时间: 2020-03-21 引言: 本文分享的内容主要包括社区问答质量评估(基于Bert模型微调). ...

  8. Coursera-吴恩达-自然语言处理(NLP)专项课-课程笔记与编程实战-汇总

    1.介绍: 本文主要基于Coursera上deeplearning.ai的课程 自然语言处理 专项课程(Natural Language Processing Specialization),将全部课 ...

  9. 医学自然语言处理(NLP)相关论文汇总之 EMNLP 2021

    医学自然语言处理(NLP)相关论文汇总之 EMNLP 2021 [写在前面]EMNLP2021前段时间已经放榜,一直没时间整理,最近抽时间整理了一下该会议在医疗自然语言处理方向上的相关论文,放在这里, ...

最新文章

  1. 信息安全意识电子期刊第八期
  2. 比利牛斯獒犬 flask web
  3. 【运筹学】线性规划数学模型 ( 单纯形法 | 最优解判定原则 | 单纯形表 | 系数计算方法 | 根据系数是否小于等于 0 判定最优解 )
  4. python百鸡百钱递归_百钱百鸡,一百块钱买一百只鸡的递归算法 javascript实现
  5. Rxjava、Retrofit返回json数据解析异常处理
  6. 台式计算机的配置清单(硬件和软件),台式电脑的配置清单和产品推荐
  7. [USACO12FEB]牛的IDCow IDs
  8. 基于 CODING 的 Spring Boot 持续集成项目
  9. linux离线安装virtualen,在Virtualbox中安装PuppyLinux实录三
  10. 60. Event onfocus 事件
  11. openvswitch安装、基本操作
  12. Python手动安装 package
  13. rsync增量同步标志位详细解释
  14. Android文件资源(raw/data/asset)的存取
  15. 商鼎云|亚马逊云盘关停了?你需要了解分布式存储云盘
  16. 服务器修改传奇道士神兽升级,1.76复古传奇道士玩家快速升级神兽的技巧
  17. Linux IPTABLES 防火墙专题讲座 - 上篇-龙小威-专题视频课程
  18. 2023二建建筑施工备考第二天Day06水泥
  19. mipi屏参参数配置
  20. PDP-11 计算机

热门文章

  1. TortoiseGit小乌龟安装配置及使用
  2. 第三方支付接口之微信扫码支付
  3. Excel中数字、数值和文本的区别
  4. “万丈高楼平地起,编程学习要趁早”
  5. “快用助手”动起苹果商店奶酪
  6. word柱状图垂直轴数值设定_Excel图表中设置坐标轴的字体、图案格式、刻度格式和数字格式的方法...
  7. 安装和配置zabbix-5.0.20
  8. 如何一步步设计前端架构?
  9. 解决Google浏览器首页被2345网站劫持
  10. Flask入门教程—超详细