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

news2024/11/26 14:24:11

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

前言

在这里插入图片描述

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

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

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

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

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

课程目录

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

NLP发展史
Attention
Transformer
BERT
ERINE

NLP发展史

请添加图片描述
2013年Mikolov提出了word2vec语言模型,解决了训练词向量的方法。

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

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

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

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

Attention

请添加图片描述
如图,是大脑中的注意力变化图。

举个例子,假如大家正在教室里认真的听老师讲课,那么此时,大家的注意力肯定是放在了耳朵和眼睛上,但是如果现在问大家一个问题,你能感受到你现在穿鞋了吗?其实大家肯定是穿了,但是问完这个问题以后,大家的注意力肯定会立马转移到脚上。那么左图就是t时刻,我们大家大脑的注意力分布图,右侧就是t+1时刻,注意力转移之后的分布图。
在这里插入图片描述

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

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

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

其中i表示某一时刻,yi表示该时刻的输出,xj表示每一个词向量,wij表示i时刻不同单词的权重。通过以上方式,我们其实就是在一句话中,重新表示了一个单词的向量。这也就是动态词向量的核心内容。在这里插入图片描述

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

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

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

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

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

在这里插入图片描述

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

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

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

在这里插入图片描述

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

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

Transformer

在这里插入图片描述

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1563190.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

10kV配电室在线监控改造技术方案

摘要:目前,我国经济高速发展,社会在不断进步,国家加大了农村低压配电网络改造升级投入,低压配电网供电可靠性及供电质量得到明显提升,但低压配电网络自动化运维水平及农村电网用电安全尚处于较低水平。低压…

opejdk11 java 启动流程 java main方法怎么被jvm执行

java启动过程 java main方法怎么被jvm执行 java main方法是怎么被jvm调用的 1、jvm main入口 2、执行JLI_Launch方法 3、执行JVMInit方法 4、执行ContinueInNewThread方法 5、执行CallJavaMainInNewThread方法 6、创建线程执行ThreadJavaMain方法 7、执行ThreadJavaMain方法…

【算法刷题day14】二叉树理论基础、递归遍历、迭代遍历、统一迭代

二叉树理论基础 题目分类 二叉树的种类 无数值两种:满二叉树 和 完全二叉树 有数值:二叉搜索树 1.若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 2.若它的右子树不空,则右子树上所有结点的值均大于它的根结点…

14.Python网络通信

本章讲解如何通过Python访问互联网上的资源,这也是网络爬虫技 术的基础。 1 基本的网络知识 程序员在进行网络编程前,需要掌握基本的网络知识,本节会介绍 这些内容。 1.1 TCP/IP 在网络通信中会用到一些相关协议,其中&#xf…

备考ICA----Istio实验16---HTTP流量授权

备考ICA----Istio实验16—HTTP流量授权 1. 环境准备 kubectl apply -f istio/samples/bookinfo/platform/kube/bookinfo.yaml kubectl apply -f istio/samples/bookinfo/networking/bookinfo-gateway.yaml访问测试 curl -I http://192.168.126.220/productpage2. 开启mtls …

python对接百度云车牌识别

注册百度智能云,选择产品服务。 https://console.bce.baidu.com/ 每天赠送200次,做开发测试足够了。 在应用列表复制 AppID , API Key ,Secret Key 备用。 SDK下载地址 https://ai.baidu.com/sdk#ocr 下载SDK文件,解压,…

面试 五

一、设计模式 1、工厂模式 工程模式:在javascript中,工程模式的表现形式就是 一调用即可返回新对象的函数。 // 工厂模式 function person (name, age) {return { name, age} } const person1 person("tom", 18) const person2 person(&q…

Google DeepMind 大语言模型中的长形态事实性

🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 论文标题:Long-form factuality in large language models 论文链接:https://arxiv.org/abs/2403.18802 论文的关键信息总结如下: 研究问题是什么?论文…

9proxy—数据采集工具全面测评

9Proxy数据采集工具Unlock the web with 9Proxy, the top residential proxy provider. Get unlimited bandwidth, affordable prices, and secure HTTPS and Socks5 configurations.https://9proxy.com/?utm_sourceblog&utm_mediumcsdn&utm_campaignyan 前言 在当今数…

【智能算法】蜣螂优化算法(DBO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2022年,Xue等人受到自然界中蜣螂生存行为启发,提出了蜣螂优化算法(Dung beetle optimizer, DBO)。 2.算法原理 2.1算法思想 DBO模拟了自然界蜣螂种…

泛域名站群,泛域名程序

泛域名站群是一种利用大量类似的泛域名来建立多个网站,并通过这些网站链接到主网站,以提升主网站的排名和流量的策略。泛域名站群通常包含大量的子域名,这些子域名指向不同的页面,但它们的内容大部分是重复或相似的,目…

机器学习KNN最邻近分类算法

文章目录 1、KNN算法简介2、KNN算法实现3、调用scikit-learn库中KNN算法4、使用scikit-learn库生成数据集5、自定义函数划分数据集6、使用scikit-learn库划分数据集7、使用scikit-learn库对鸢尾花数据集进行分类 1、KNN算法简介 KNN (K-Nearest Neighbor) 最邻近分类算法&#…

4款在线网页原型图设计软件推荐

与桌面端相比,在线网页原型设计软件的使用具有优势,因为在线网页原型设计软件在整个使用过程中不需要安装,在线网页原型设计软件在任何地方都没有限制。更重要的是,无论是现在使用的 Linux,在线网页原型设计软件在操作…

【THM】Burp Suite:Other Modules(其他模块)-初级渗透测试

介绍 除了广泛认可的Repeater和Intruder房间之外,Burp Suite 还包含几个鲜为人知的模块。这些将成为这个房间探索的重点。 重点将放在解码器、比较器、排序器和组织器工具上。它们促进了编码文本的操作,支持数据集的比较,允许分析捕获的令牌内的随机性,并帮助您存储和注释…

北京WordPress建站公司

北京wordpress建站,就找北京wordpress建站公司 http://wordpress.zhanyes.com/beijing

深入解析大数据体系中的ETL工作原理及常见组件

** 引言 关联阅读博客文章:探讨在大数据体系中API的通信机制与工作原理 关联阅读博客文章:深入理解HDFS工作原理:大数据存储和容错性机制解析 ** 在当今数字化时代,大数据处理已经成为了企业成功的重要组成部分。而在大数据处…

C#学习笔记 面试提要

冒泡 for (int m 0; m < arr.Length; m) { for (int n 0; n < arr.Length - 1 - m; n) { if (arr[n] > arr[n1]) { int temp arr[n]; arr[n] arr[n 1]; arr[n1] temp; } } } 选择 for (int m 0; m < arr.Length; m) { int index 0; for (int n 1; n < …

每日面经分享(pytest测试案例,接口断言,多并发断言)

pytest对用户登录接口进行自动化脚本设计 a. 创建一个名为"test_login.py"的测试文件&#xff0c;编写以下测试脚本 import pytest import requests# 测试用例1&#xff1a;验证登录成功的情况 # 第一个测试用例验证登录成功的情况&#xff0c;发送有效的用户名和密…

【实例分割】用自己的数据复现yolact网络-含python源码

yolact不算是很新的实例分割方法&#xff0c;但好在易上手&#xff0c;且像YOLO系列一样&#xff0c;在持续更新中&#xff0c; 所以作为示例分割的开篇&#xff0c;就以yolact作为第一篇开始学习吧! 目录 &#x1f438;&#x1f438;1.YOLACT是什么&#xff1f; &#x1f64…

MegaSeg Pro for Mac v6.3.1 注册激活版 音视频DJ混音工具

MegaSeg Pro for Mac是一款专业的DJ和广播自动化软件&#xff0c;旨在为音乐专业人士提供强大的音乐播放和演播功能。这款软件具有多种功能&#xff0c;包括强大的音乐库管理&#xff0c;支持导入和组织大量音乐文件&#xff0c;可以轻松管理你的音乐收藏。它支持广泛的音频格式…