NLP重要知识点:预训练模型【核心且详细】

这篇具有很好参考价值的文章主要介绍了NLP重要知识点:预训练模型【核心且详细】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本资料是NLP核心知识点的ppt!!!【文章较长,建议收藏】
本节课我们学习预训练模型。

前言

NLP重要知识点:预训练模型【核心且详细】,自然语言处理,预训练模型,bert,transformer

我们在学习词向量的时候,应该知道了多个产生词向量的方法,包括基于矩阵(词-词共现矩阵)分解的方法、基于语言模型(word2vec)的方法、以及结合二者优点的Glove模型等其他产生词向量的方法。
然而,他们所产生的的词向量,都属于静态的词向量,这是由于这些方法产生的词向量表示方式,将会拿来直接作为输入层的输入,并且在后面的下游任务模型训练过程中,词向量不会再被调整, 所谓静态是指,一经产生,就不会再改变。

然而,对于一词多义的问题,这种静态的词向量并不能很好的表示一个单词的实际语义。例如,下面的两句话:

苹果好吃吗?
苹果好玩吗?

我们知道,“苹果”这个单词,在第一句话中,表示水果,而在第二句话中,表示手机品牌。然而使用静态词向量却无法很好的将二者语义区分开来,所以我们可以通过引入上下文信息建模更加复杂的神经网络,从而将静态词向量转换为动态词向量。

那么有哪些模型可以实现动态词向量呢?具体是如何得到的呢?

课程目录

我们将从这几个方面进行讲解。

NLP发展史
Attention
Transformer
BERT
ERINE

NLP发展史

NLP重要知识点:预训练模型【核心且详细】,自然语言处理,预训练模型,bert,transformer
2013年Mikolov提出了word2vec语言模型,解决了训练词向量的方法。

2014年,循环神经网络及其变种LSTM/GRU开始被使用,并且Seq2Seq也被提出,
它是一种循环神经网络的变种,包括编码器 (Encoder) 和解码器 (Decoder) 两部分。

2015年,Attention注意力机制被引入到网络中,克服了“当输入序列非常长时,模型难以学到合理的向量表示”这一问题。

后面的发展中,我们发现,Attention注意力机制发挥了重要作用。例如,2017年提出的Transformer中,就强调了Attention的重要性。再往后,著名的语言模型BERT、ERNIE等,Attention都是其中的核心组件。

接下来,我们就依次对Attention、Transformer、BERT、ERNIE进行一个介绍。

Attention

NLP重要知识点:预训练模型【核心且详细】,自然语言处理,预训练模型,bert,transformer
如图,是大脑中的注意力变化图。

举个例子,假如大家正在教室里认真的听老师讲课,那么此时,大家的注意力肯定是放在了耳朵和眼睛上,但是如果现在问大家一个问题,你能感受到你现在穿鞋了吗?其实大家肯定是穿了,但是问完这个问题以后,大家的注意力肯定会立马转移到脚上。那么左图就是t时刻,我们大家大脑的注意力分布图,右侧就是t+1时刻,注意力转移之后的分布图。
NLP重要知识点:预训练模型【核心且详细】,自然语言处理,预训练模型,bert,transformer

我们再以一个序列语句“He is eating an green apple”为例,再来看一下我们的注意力分布变化。

当我们在看第一个词He的时候,其实我们的注意力会更多的去看它后面两个单词是什么,也就是x2(is)和x3(eating)的注意力会高一些,就像图中的实线条所示;但是当我们读到第三个单词“eating”时,我们会更多的将注意力放在x1(He)和x5(apple)上,那么此时的注意力曲线就会变成虚线所示。

如果将每一个时刻的输入x看做是一个词向量,那么注意力大小就可以看做是一个权重。此时,在不同时刻,我们如果用整个句子中的每一个词的向量和权重去表示当前时刻的词向量,那么就可以使用如下 公式表示:

其中i表示某一时刻,yi表示该时刻的输出,xj表示每一个词向量,wij表示i时刻不同单词的权重。通过以上方式,我们其实就是在一句话中,重新表示了一个单词的向量。这也就是动态词向量的核心内容。NLP重要知识点:预训练模型【核心且详细】,自然语言处理,预训练模型,bert,transformer

那刚才我们提到的权重,也就是注意力分布是怎么计算的呢?

在Attention机制中,我们通过相似度来计算权重。

注意力机制可以分为两步:

计算注意力分布
根据 来计算输入信息的加权平均

以文本序列为例,图中,q代表query,即要查询某个单词的词向量,x1,x2…xN,代表了一个序列,其中每一个xi表示不同时刻的输入单词(向量)。我们从下往上看这幅图,就是依次计算了q和x的相似度(通过矩阵相乘的方式),然后再通过softmax的方式进行归一化操作,此时计算的结果就是注意力分布 ,再然后,我们将x分别与之对应的 进行加权组合,得到最终的结果a,就是我们使用序列中所有单词向量动态表示q的结果。

NLP重要知识点:预训练模型【核心且详细】,自然语言处理,预训练模型,bert,transformer

刚才我们一直提到的都是注意力机制,下面我们引入另一个单词,自注意力机制,也就是self-Attention,很明显,自注意力机制就是自己注意自己,也就是我们将前面的q换成序列中的单词,用该句中的所有单词去表示每一个单词。

以“The weather is nice today”这句话为例。

假如我们要使用这句话中所有单词去动态表示单词“The”,根据刚才的步骤,我们依次计算“the”的向量和句子中每个单词的相似度,再经过softmax函数,就得到了权重w1、w2、w3、w4、w5,最后我们用某个单词的权重与该单词的向量进行加权求和,就可以得到单词“The”在该句话中的动态表示。

NLP重要知识点:预训练模型【核心且详细】,自然语言处理,预训练模型,bert,transformer

那刚才我们提到了attention和self-attention,他们两个有什么特点吗?这个表格就给出了一些经验。

Attention:通常被应用在output层或者state层上,用于连接两个不同组件(例如,从Encoder到Decoder的转换),善于寻找两个序列之间的关系;通常而言,一个模型中,只被使用1次;也可以连接两种不同的模态(图片和文字)。
Self-Attention:只关注一个组件,通常是关注input层,例如bert中,用在了Encoder;一个模型中,通常使用多次(Transformer18次,bert12次),善于寻找一个序列中不同部分的关系;更多的用于同一种模态。

Transformer

NLP重要知识点:预训练模型【核心且详细】,自然语言处理,预训练模型,bert,transformer

什么是transformer呢?
在不同的领域我们有不同的翻译,例如,在动漫里,我们将其翻译成“变形金刚”,在电力中,我们将其翻译成“变压器”,而我们所说的transformer,二者都不属于,而是一种神经网络。

曾经一段时间,有人把他翻译成变压器,这是由于该网络的最初应用是在语言翻译中,而语言翻译,就像变压器一样,是将一种语言翻译成另一种语言,所以将其翻译成变压器,也无可厚非,但是,随着transformer的应用越来越广泛,目前为止,已经远远超过“变压器”的含义。文章来源地址https://www.toymoban.com/news/detail-845945.html

到了这里,关于NLP重要知识点:预训练模型【核心且详细】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [知识点整理]中科院/国科大 自然语言处理nlp 期末考试知识点整理

    本文为2022秋网安学院的自然语言处理课程期末复习知识点整理,水平有限,整理的答案可能有错误或遗漏,欢迎大家指正。 文章的第二部分内容参考了学校学姐的文章,文章写的很好,大家可以关注她: (133条消息) 【一起入门NLP】中科院自然语言处理期末考试*总复习*:考

    2024年02月09日
    浏览(51)
  • QT C++ 中的重要知识点

    以下是一些 QT C++ 中的重要知识点: 1. 信号和槽机制 :QT C++ 中的信号和槽机制是一种事件处理机制,用于在对象之间传递消息。信号是一种特殊的函数,当特定事件发生时,它们被发射。槽是一种普通的函数,用于响应信号。通过连接信号和槽,可以实现对象之间的通信。

    2024年02月05日
    浏览(49)
  • 蓝桥杯重要知识点和赛题直通车

     蓝桥杯软件赛零基础备赛20周 第 1周(2023-10-23): 蓝桥杯软件赛介绍+官方链接+零基础能得奖吗? 第 2周(2023-10-30): 常考知识点+蓝桥杯怎么判题+备赛计划 第 3周(2023-11-06): 填空题(分数少但越来越不好做) 第 4周(2023-11-13): (练习再多也不够的)杂题1 第 5周(2023-11-20): 杂题2 第

    2024年01月24日
    浏览(90)
  • PyFlink核心知识点

    四层 说明 备注 SteamGraph 代码生成的最初的图 表示程序的拓扑结构 JobGraph 将多个符合条件的节点,链接为一个节点 可以减少数据在节点之间流动所需要的序列化/反序列化/传输消耗 ExecutionGraph JobGraph的并行化版本 是调度层最核心的数据结构 PhysicalGraph JobManager根据ExecutionGra

    2024年04月27日
    浏览(54)
  • Vue入门——核心知识点

    Vue是一套用于 构建用户界面 的 渐进式 JS框架。 构建用户界面:就是将后端返回来的数据以不同的形式(例如:列表、按钮等)显示在界面上。 渐进式:就是可以按需加载各种库。简单的应用只需要一个核心库即可,复杂的应用可以按照需求引入各种Vue插件。 采用组件化模式

    2024年02月06日
    浏览(54)
  • 论文笔记--网络重要节点排序方法综述(概念性知识点)

    任晓龙, 吕琳媛 度中心性:节点的直接邻居数目 半局部中心性:节点四层邻居的信息 k-shell分解:度中心性的扩展,根据节点在网络中的位置来定义,越在核心的节点越重要 1.1度中心性(DC) 节点的度分为入度和出度;权重为与节点相连的边的权重之和 优缺点: 优点:简单

    2024年02月05日
    浏览(35)
  • redis核心知识点简略笔记

    value数据类型 string 二进制安全 list 有序、可重复 set 无序、不重复 hash field-value的map sorted set 不重复、通过double类型score分数排序 场景 string 计数器 缓存 分布式锁 访问频率控制 分布式session hash 购物车等对象属性灵活修改 list 定时排行榜 set 收藏 sorted set 实时排行榜 持久化

    2024年02月13日
    浏览(55)
  • JavaSE核心基础-循环-知识点

    1.循环概念 循环是在满足条件的情况下,反复的做同一件事。 Java语言中的循环语句有三种,分别是for语句、while语句和do-while语句。程序中需要循环处理时,程序员要根据实际问题,选择适当的循环语句。解决循环问题时一定要找到循环条件和循环操作。 2.for循环语句格式

    2024年02月22日
    浏览(44)
  • 垃圾回收的核心知识点解析

    Java运行时内存中的程序计数器、虚拟机栈、本地方法栈这三部分区域其生命周期与相关线程有关,随线程而生,随线程而灭。而程序计数器就是一个单纯存地址的整数也不需要关心,因此我们GC(垃圾回收)的主要目标就是堆(堆中存放着几乎所有实例对象)! 一个对象,如

    2024年02月16日
    浏览(43)
  • 一文吃透Tomcat核心知识点

    首先,看一下整个架构图。最全面的Java面试网站 接下来简单解释一下。 Server :服务器。Tomcat 就是一个 Server 服务器。 Service :在服务器中可以有多个 Service,只不过在我们常用的这套 Catalina 容器的Tomcat 中只包含一个 Service,在 Service 中包含连接器和容器。一个完整的 Serv

    2024年02月02日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包