什么是语言理解?

关于疫情的一段对话:

  • 中国:我们这边快完了

  • 欧洲:我们这边快完了

  • 中国:我们好多了

  • 欧洲:我们好多了

挑战:

  • 语言的复杂性和多样性
  1. 多义/同义/歧义现象
  2. 灵活多变的表达形式
  • 语言背后的环境知识
  1. 以前没钱买华为,现在没钱买华为

语言理解的四个粒度:

  • 字的理解 例如:藏
  • 词的理解 例如:苹果
  • 句子的理解 例如:我们这边快完了
  • 篇章的理解 例如:贸易制裁似乎成了美国政府在对华关系中惯用的大棒。然而,这大棒果真如美国政府所希望的那样灵验吗?

好的表示是实现语言理解的基础:一个好的表示,是要具备通用涵义,并且与具体任务无关,是时又能根据具体任务,提供有用信息

理解是针对任务的理解:字词,关注局部信息;句子篇章,关注文本的全局信息

CBOW:基于临近词(上下文)预测词

Skip-Ngram:基于词预测临近词(上下文)















基于预训练的语义理解技术

ELMo:第一个现代的语义理解模型

利用两个LSTM,分别从左到右,从右到左的语言模型建模,实现建模上下文信息的目的。

两层LSTM:从低层到高层,逐个获取不同层次的语言信息,从最低层单词特征,到最高层语文特征

在获取了预训练模型特征以后,如何应用到具体的任务中。

ELMo:采用了 Feature-Based 方式进行应用

加权相加参数 \(a_1、a_2、a_3\) 是可学习的。这是实现动态 Word Embedding 关键所在

ELMo 不仅解决了多义词的问题,而且可以将词性对应起来

ELMo:有什么缺点?

  • 问题1:不完全双向预训练

    模型的前向和后向LSTM两个模型是分别训练的,仅在Loss Function阶段进行了结合。

  • 问题2:需进行任务相关网络结构设计(GPT可解决网格设计问题)

    每种类型的下游任务都需要进行特定的网络结构设计和搭建

  • 问题3:仅有词向量,无句向量

    ELMo在预训练阶段仅学习了语言模型,无句向量学习任务

GPT:被BERT光芒掩盖的工作

对BERT的诞生,起到了非常明显的推动作用



Pre-training 作为 下游任务的一部分参与任务学习,大量减少下游任务网络中新增参数的数量。同时,下游任务的网络,相比较预训练网络,也只有少量结构上的变动,这样会节省大量时间

对于分类任务:模型只需要在输入文本上加上起始(Start)和终结(Extract)的符号,并在网络后端新增一个分类器(FC)。

对于句子判断:如语言识别,两个句子中增加分隔符就可以了。

对于文本相似度判断、多项选择:只需要少量改动,就能实现 Fine-Tuning 过程

GPT

优点:带来了明显的效果提升,也极大的简化了任务网络相关的结构

缺点:

  • 单向预训练

    预训练阶段仅采用传统单向语言模型作为训练目标
  • 仅有词向量,无句向量

    GPT在预训练阶段仅学习了语言模型,无句向量学习任务

BERT:预训练领域的里程碑式突破

Pre-training阶段

  • 延用了GPT 网络结构,使用了12层 Transformer Encoder
  • 交互式式双向语言模型建模(LM -> Auto-Encoder)
  • 引入sentence-level预训练任务
  • 更大规模预训练数据:BooksCorpus + Wikipedia(+2.5billion)

Pre-training 目标:

同时训练token-level & sentence-leveltask

  • Mask-LM task(Mask token)

    15% mask概率,在pre-training阶段实现交互式双向
  • Next-sentence句对预测任务

    预测当前句的下一句话

BERT:Pre-training 策略分析

BERT Mast-LM ,Mask 力度是 Token(单个字)

BERT 如何将自己的预训练模型,应用到下游任务?使用了简单粗暴的方式:伪结果论

BERT缺点

BERTmask(sub-word)lm任务存在的问题:

  • Word哈尔滨;sub-word哈##尔##滨
  • Sub-word预测可以通过word的局部信息完成
  • 模型缺乏全局建模信息的“动力”

    难以学到词、短语、实体的完整语义

ERNIE:基于知识增强的语义理解模型(百度)

将token 力度扩展到了 word 或 entity,使用了百度自建的语义库



ERNIE 在 Fine-tuning 使用了和 BERT 完全一致的方式





2.0 在预训练阶段,引入了更多的预训练任务

如何在学习新知识的同时,不忘旧知识

在预训练阶段,不断进行任务的叠加训练









预训练模型在NLP经典任务的应用

NLP部分经典任务总览

预训练语言模型在下游任务的优势

  • 更少的标注数据
  • 更高的任务效果
  • 更简单的网络结构适配











预训练模型,不是越大越好

预训练模型,如何达到收敛的状态?一直是一个难以界定的范围,越训越大,很难做到预训练充分的结果。目前常规采取的方式是,让它一直训着,抽取实时对预训练模型中产生的中间模型,进行一个具体任务验证,随时采取一个文本匹配任务进行 Fine-Tuning 验证,如果预训练后期,发现了在很长一段时间内,在这样一个验证的下游任务上,得到的 Fine-Tuning 结果,基本持平,我们就认为这个模型达到了一个收敛的状态,或者说局部收敛的状态,这时候就可以给它停下来了。没有一个特别规范的指标

原文:https://aistudio.baidu.com/aistudio/course/introduce/24177?sharedLesson=1455657&sharedType=2&sharedUserId=2631487&ts=1685934903156

自然语言处理 Paddle NLP - 预训练语言模型及应用的更多相关文章

  1. 学习AI之NLP后对预训练语言模型——心得体会总结

    一.学习NLP背景介绍:      从2019年4月份开始跟着华为云ModelArts实战营同学们一起进行了6期关于图像深度学习的学习,初步了解了关于图像标注.图像分类.物体检测,图像都目标物体检测等 ...

  2. NLP中的预训练语言模型(五)—— ELECTRA

    这是一篇还在双盲审的论文,不过看了之后感觉作者真的是很有创新能力,ELECTRA可以看作是开辟了一条新的预训练的道路,模型不但提高了计算效率,加快模型的收敛速度,而且在参数很小也表现的非常好. 论文: ...

  3. 预训练语言模型的前世今生 - 从Word Embedding到BERT

    预训练语言模型的前世今生 - 从Word Embedding到BERT 本篇文章共 24619 个词,一个字一个字手码的不容易,转载请标明出处:预训练语言模型的前世今生 - 从Word Embeddi ...

  4. 预训练语言模型整理(ELMo/GPT/BERT...)

    目录 简介 预训练任务简介 自回归语言模型 自编码语言模型 预训练模型的简介与对比 ELMo 细节 ELMo的下游使用 GPT/GPT2 GPT 细节 微调 GPT2 优缺点 BERT BERT的预训 ...

  5. 知识增强的预训练语言模型系列之ERNIE:如何为预训练语言模型注入知识

    NLP论文解读 |杨健 论文标题: ERNIE:Enhanced Language Representation with Informative Entities 收录会议:ACL 论文链接: ht ...

  6. 知识增广的预训练语言模型K-BERT:将知识图谱作为训练语料

    原创作者 | 杨健 论文标题: K-BERT: Enabling Language Representation with Knowledge Graph 收录会议: AAAI 论文链接: https ...

  7. 知识增强的预训练语言模型系列之KEPLER:如何针对上下文和知识图谱联合训练

    原创作者 | 杨健 论文标题: KEPLER: A unified model for knowledge embedding and pre-trained language representat ...

  8. NLP中的预训练语言模型(三)—— XL-Net和Transformer-XL

    本篇带来XL-Net和它的基础结构Transformer-XL.在讲解XL-Net之前需要先了解Transformer-XL,Transformer-XL不属于预训练模型范畴,而是Transforme ...

  9. NLP中的预训练语言模型(一)—— ERNIE们和BERT-wwm

    随着bert在NLP各种任务上取得骄人的战绩,预训练模型在这不到一年的时间内得到了很大的发展,本系列的文章主要是简单回顾下在bert之后有哪些比较有名的预训练模型,这一期先介绍几个国内开源的预训练模型 ...

  10. NLP中的预训练语言模型(二)—— Facebook的SpanBERT和RoBERTa

    本篇带来Facebook的提出的两个预训练模型——SpanBERT和RoBERTa. 一,SpanBERT 论文:SpanBERT: Improving Pre-training by Represe ...

随机推荐

  1. ES6中的解构赋值(数组,对象,嵌套,默认值)

    解构赋值 通过解构赋值,可以快速从对象或者数组中取出属性或者数值. 解构赋值 可以通过定位到数组或者对象的某一个位置,将值直接赋给一个或多个变量. const arr = ['dasha', 'ers ...

  2. 全网最佳IoT命令行超级工具箱|帮你轻松解决百万物联网设备测试和联调

    程序员离不开命令行,许多经典命令是每天必用的,比如ls 和 cd. 作为一个物联网开发和学习人员,IoT设备协议的测试联调是工作中很重要的一环!我有很多时刻都想拥有一个能集成常见物联网协议的客户端工具 ...

  3. Python最详细的Excel操作方式,

    为 什么要学会使用Excel在机器学习模型的建立中,不得不借助于Excel强大的统计分析能力,这个时候就牵涉到了如何将python直接处理得到的数据存入excel表格当中以及获取表格的数据进行分析,简 ...

  4. 四月八号java基础

    1.复合语句:JAVA语言不允许在两个嵌套的复合语句内声明同样的变量 2.注释:1)单行注释// 2)多行注释/*......*/3)/**......*/文件注释 3.else总是与之最近的if结构 ...

  5. CSS样式中颜色与颜色值的应用

    使用CSS描绘页面样式时,颜色是其中不可或缺的,无论是对文本.背景还是边框.阴影,我们都写过无数代码用来增添颜色.而为了让网页的色彩表现更出色,我们很有必要完整梳理下CSS中的色彩. 要讲清楚CSS中 ...

  6. 服务器数据监控监控-Zabbix

    Zabbix下载 Zabbix Sources https://www.zabbix.com/download Zabbix安装介绍 Server端 1.安装开发软件包 yum -y groupins ...

  7. 万字长文,带你彻底搞懂 HTTPS(文末附实战)

    大家好,我是满天星,欢迎来到我的技术角落,本期我将带你一起来了解 HTTPS. 前言 其实网上写 HTTPS 的文章也不少了,但是不少文章都是从原理上泛泛而谈,只讲概念,没有讲原因,作为小白,看完还是 ...

  8. HashMap实现原理和自动扩容

    HashMap实现原理: JDK1.7:数组+单向链表(头插) 在并发情况下头插可能出现循环链表(死循环)问题.原因:因为头插,在新数组中链表的元素顺序发生了变化, 如上图,假设线程1在扩容,刚刚调整 ...

  9. WPF 引用字体文件资源

    外部字体文件 1.后台代码引用字体 将一个名为"ChineseCharacterSpecialFont.ttf"的ttf文件,放在桌面路径,后台引用方式如下: 1 var ttfF ...

  10. [C++项目] 通讯录管理系统

    文章目录 通讯录管理系统 1.系统需求 2.创建项目 2.1 创建项目 2.2添加文件 3.菜单功能 4.退出功能 5.添加联系人 5.1 设计联系人结构体 5.2 设计通讯录结构体 5.3 main ...