NLP(4)--BERT

news2025/4/8 16:34:09

目录

一、自监督学习

二、BERT的两个问题

三、GLUE

四、BERT与Transformer的关系

五、BERT的训练方式

六、BERT的四个例子

1、语句分类(情感分析)

2、词性标注

3、立场分析 

4、问答系统 

七、BERT的后续

1、为什么预训练后的微调可以满足多场景

2、BERT在非自然语言领域应用

3、Multi-BERT

4、奇怪的Bias

 八、GPT


一、自监督学习

        为什么讲BERT要先提到自监督学习呢,因为BERT中的Mask language model思想就来自于自监督学习。

        自监督学习:通过使用无标签数据,通过利用自身数据的特征、关系来训练出一个满足数据特征的模型。但其实也并非用不到标签,而是构造辅助的数据集和标签来进行训练。

二、BERT的两个问题

        BERT主要研究两个问题Masking input和Next sentense prediction。        

        在NLP领域,做文字接龙时可以将数据集中一部分文字做随机的Mask,构造辅助的数据集和标签,来训练那些被删除掉的字或词。如下面这张图中,“湾”这个字就是被Mask掉的,可能输入是一个特殊的token,也有可能是一个随机的噪声字,输出时通过归一化后,做了一个分类,分类最高分就是我们要求训练的东西,也就是被删除的字。

        在NLP领域,还有一个句子序列是否相接正确问题。在BERT中,通过[SEP]划分两个句子,将[CLS]丢入BERT模型,再经过Linear后输出句子1和句子2是否连接的真值。但很多文献说这个方法并没有什么用。

        另一个模型ALBERT使用的是SOP而不是传统BERT的NSP方法,能达到更好的预训练效果。

三、GLUE

        在NLP领域分为NLU(自然语言理解)和NLG(自然语言生成)两个部分,为了寻求NLU的评判标准,诞生了GLUE(Gerenal Language Understanding Evaluation)这个涵盖多任务的自然语言理解基准和分析平台,GLUE包含CoLA、SST-2、MRPC、STS-B、QQP、MNLI、QNLI、RTE、WNLI九个任务涵盖自然语言推断、文本蕴含、情感分析等方面。

四、BERT与Transformer的关系

        其实BERT也是基于Transformer的架构的一种“预训练模型”,相比于传统Transformer有几个区别:

1、BERT是双向性的,可以利用context来进行预测每个词,而传统Transformer和GPT都是利用左侧的信息。

2、预训练任务,BERT采用了Masked Language Model任务,也就是随机Mask一些词,来预测被Mask掉的词。

3、NSP,判断两个句子是否相连,理解句子与句子之间的关系。

4、数据量更大,参数更多,层次更多,模型更大,相比于传统Transformer输入一串序列,输出一串序列,BERT可以生成更高质量的文本信息。

五、BERT的训练方式

        BERT训练分为两个阶段,预训练(Pre-training)和微调(Fine-tuning)。

        预训练,使用大量无标签的文本进行训练,并进行MLM和NSP两个部分,来学习到通用的语言表示,包括词的级别和句子级别的信息。

        微调,将带有标签的任务数据对BERT进一步训练,可以针对不同的下游任务,比如问答、情感分类等,将任务特定的输出层添加到BERT模型的顶部,利用标注数据进行监督学习。依靠不同的下游任务学习到更符合不同任务的模型。

六、BERT的四个例子

1、语句分类(情感分析)

        语句分类,也就是对于某一个句子分类他的感情色彩,比如positive和negitive。

        具体做法仍然是将一个句子的CLS扔入BERT中,输出向量做Linear+Softmax的归一化,得到的类别进行二分类问题。

2、词性标注

        对于每一个token的输出向量做Linear+Softmax操作,得到的向量进行多分类问题,来预测各个词的词性。

3、立场分析 

        输入两个句子,前提和假设,让模型去判断假设是与前提立场相同,或是反对,亦或是保持中立。

        在具体操作中,仍然是将CLS作为两个句子之间的立场关系,通过CLS的输出向量进入Linear+Softmax后进行多分类操作,预测立场。 (这一点与NSP类似)

4、问答系统 

        通过学习已知文章库,找出某个问题的答案,答案的内容必须在文章中,也就是说截一个片段,一个词语作为答案。问答系统中,通过输入问题和文章库,输出两个值s和e,则答案就是从第s到第e个词汇的片段。

        具体做法是,随机初始两个向量,为答案的开始和结束,分别在下图为橘色和蓝色框框,这个长度要与输出长度一致,通过分别和输出的向量做内积后判断最大值得到两个最大值的输出索引,分别就是s和e。

七、BERT的后续

1、为什么预训练后的微调可以满足多场景

        其实感觉还是有一定的玄学因素,下图是通过测量不同语境下同一个词的余弦相似度,做了混淆矩阵证明Pre-train确实可以让BERT在无标签文本数据中学会词与词,句子之间的信息关系,这样可以迁移到不同的下游任务中。

2、BERT在非自然语言领域应用

        将BERT应用于蛋白质、DNA、音乐等非自然语言领域的分类,通过每个氨基酸给定一个词汇、每一个音符给定一个词汇,将任何非文字的形式也可以转换成词向量,然后按照最开始语句分类来做。由于BERT模型在Pre-train中学习到了通用的语言表示,有一定的泛化能力,最后发现实验的效果很不错。

3、Multi-BERT

        更玄学的东西。

        使用中文甚至多种语言来进行Pre-train,利用Chinese+English进行微调,但测试Chinese竟然分数比单纯用Chinese的微调,竟然分数高。另外Pre-train中只是进行了完形填空,但微调做了中文的Q&A,也可以做到很好地Test Score。

        这也说明了虽然不同的语言,但在Pre-train Multi-Languages时其实已经学会了其中的语义,而不只是语言,可以理解为BERT一视同仁了。

4、奇怪的Bias

        通过微调学习中文的Q&A,但添加了中文微调Q&A与英文微调Q&A之间的Bias,就可以在不直接微调学习英文Q&A的情况下,得到微调学习英文Q&A的效果,间接学习!

 八、GPT

        GPT模型,仍然是一种无监督的进行预训练,有监督的下游任务微调的结构,是基于Transformer的一种预训练语言模型。

        GPT相较于Transformer来说,使用了多次迭代12次的decoder模块(且删除了中间的Multi-Head Attention模块)

        相比于BERT进行做完形填空,GPT目的是进行生成下一个token。

        另外就是,GPT也是只知道上文不知道下文的注意力机制,要不然就出现了漏题的效果。

参考视频:2021 - 自监督式学习 (三) – BERT的奇闻轶事_哔哩哔哩_bilibili

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

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

相关文章

408-2011

一、选择题&#xff08;2分/题&#xff09; 1.设 n 是描述问题规模的非负整数&#xff0c;下列程序片段的时间复杂度是______。 x2; while(x<n/2){x2*x; } A.O() B.O(n) C.O() D.O(n^2) 解答&#xff1a;A 假设执行 y次&#xff0c;则 (2^y)*xn/2,y&a…

艺术与AI:科技与艺术的完美融合

文章目录 艺术创作的新工具生成艺术艺术与数据 AI与互动艺术虚拟现实&#xff08;VR&#xff09;与增强现实&#xff08;AR&#xff09;机器学习与互动性 艺术与AI的伦理问题结语 &#x1f389;欢迎来到AIGC人工智能专栏~艺术与AI&#xff1a;科技与艺术的完美融合 ☆* o(≧▽≦…

机器学习笔记之最优化理论与方法(十)无约束优化问题——共轭梯度法背景介绍

机器学习笔记之最优化理论与方法——共轭梯度法背景介绍 引言背景&#xff1a;共轭梯度法线性共轭梯度法共轭方向共轭VS正交共轭方向法共轭方向法的几何解释 引言 本节将介绍共轭梯度法&#xff0c;并重点介绍共轭方向法的逻辑与几何意义。 背景&#xff1a;共轭梯度法 关于…

VAN LKA、LSKA

Visual Attention Network 2022 大核注意力机制LKA 在本文中&#xff0c;提出了一种新的大核注意力large kernal attention&#xff08;LKA&#xff09;模型&#xff0c; LKA吸收了卷积和自注意的优点&#xff0c;包括局部结构信息、长程依赖性和适应性。同时&#xff0c;避免…

【结合AOP与ReflectUtil对返回数据进行个性化填充展示】

结合AOP与ReflectUtil对返回数据进行个性化填充展示 背景 对于接口列表返回的数据&#xff0c;我们通常有时候会对某些特殊的字段进行转化&#xff0c;或者根据某逻辑进行重新赋值&#xff0c;举个例子&#xff0c; 比如返回的列表数据中有性别sex&#xff0c;我们通常会同时…

柏林噪声 (PERLIN NOISE)

简介 柏林噪声旨在描述自然中的随机效果&#xff0c;它创建的纹理可以直接运用于顶点着色器&#xff0c;而不是生成一张纹理图&#xff0c;然后用传统的纹理映射技术把贴图附加到一个三维物体上。 这也就相当于&#xff0c;纹理将不需要适应表面&#xff0c;我们只需要提供每个…

【算法训练-链表 七】【排序】:链表排序、链表的奇偶重排、重排链表

废话不多说&#xff0c;喊一句号子鼓励自己&#xff1a;程序员永不失业&#xff0c;程序员走向架构&#xff01;本篇Blog的主题是【链表的排序】&#xff0c;使用【链表】这个基本的数据结构来实现&#xff0c;这个高频题的站点是&#xff1a;CodeTop&#xff0c;筛选条件为&am…

【LeetCode每日一题合集】2023.9.4-2023.9.10(⭐二叉树的重建二分答案拓扑排序)

文章目录 449. 序列化和反序列化二叉搜索树⭐⭐⭐⭐⭐&#xff08;二叉树的重建&#xff09;解法相关题目——297. 二叉树的序列化与反序列化⭐⭐⭐⭐⭐解法——深度优先搜索 2605. 从两个数字数组里生成最小数字哈希表分情况讨论位运算表示集合&#xff0c;分情况讨论&#x1…

Day60|单调栈part03:84.柱状图中最大的矩形

柱状图中最大的矩形 leetcode链接&#xff1a;力扣题目链接 视频链接&#xff1a;单调栈&#xff0c;又一次经典来袭&#xff01; LeetCode&#xff1a;84.柱状图中最大的矩形 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;…

【多线程】线程安全的单例模式

线程安全的单例模式 饿汉模式懒汉模式单线程版多线程版多线程版(改进) 单例模式能保证某个类在程序中只存在 唯一 一份实例, 而不会创建出多个实例&#xff0c;从而节约了资源并实现数据共享。 比如 JDBC 中的 DataSource 实例就只需要一个. 单例模式具体的实现方式, 分成 “饿…

Unity3D URP 仿蜘蛛侠风格化BloomAO

Unity3D URP 仿蜘蛛侠风格化Bloom&AO BloomBloom效果流程&#xff1a;制作控制面板VolumeComponent.CSCustom Renderer FeatherCustom Renderer PassBloom ShaderComposite Shader 完善Custom Feather风格化AO 总结 本篇文章介绍在URP中如何进行风格化后处理&#xff0c;使…

【MATLAB第74期】#源码分享 | 基于MATLAB的ARX-ARMAX线性自回归移动平均外生模型(结合最小二乘思路)

【MATLAB第74期】#源码分享 | 基于MATLAB的ARX-ARMAX线性自回归移动平均外生模型&#xff08;结合最小二乘思路&#xff09; 根据ARX预测输出和实际输出的误差向量&#xff0c;采用ARMAX算法结合ARX误差建模&#xff0c;对预测值进一步细化。通过将误差描述为白噪声的移动平均…

Spring事务管理: 构建稳健的数据库事务处理

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

C++算法 —— 动态规划(4)子数组

文章目录 1、动规思路简介2、最大子数组和3、环形子数组的最大和4、乘积最大子数组5、乘积为正数的最长子数组长度6、等差数列划分7、最长湍流子数组8、单词拆分9、环绕字符串中唯一的子字符串 每一种算法都最好看完第一篇再去找要看的博客&#xff0c;因为这样会帮你梳理好思路…

商城系统优化

1、DB、模板的渲染速度&#xff08;thymeleaf&#xff09;、静态资源、日志、JVM 数据库的优化&#xff08;参照数据库优化课程&#xff09;使用索引&#xff0c;减少数据库的交互次数、缓存 thymeleaf使用缓存 静态资源&#xff1a;放到nginx中&#xff0c;实现动静分离 2、…

【数学】ABC 319 E

E - Bus Stops 题意&#xff1a; 思路&#xff1a; 感觉思路比较简单 首先注意到每个询问的范围是1e9&#xff0c;不难想到答案一定存在某个循环节&#xff0c;最后一定是要 %T的 那么问题就在于找到这个循环节是什么 猜想循环节为lcm(p1, p2, p3, ....) 用小数据验证 n…

一篇博客教会您SpringMVC文件上传、下载,多文件上传及工具jrebel的使用

目录 一.文件上传 二.文件下载 三.多文件上传 四&#xff0c;jrebel的介绍 前言&#xff1a; 我们之前已经实现了SpringMVC的增删改查&#xff0c;今天这一篇博客教会您SpringMVC文件上传、下载&#xff0c;多文件上传及工具jrebel的使用&#xff0c;希望这篇博客能够给正在…

二、Spark 调度系统

目录 Spark 调度系统DAGSchedulerSchedulerBackendTaskSchedulerExecutorBackendSpark 任务调度流程 Spark 调度系统 分布式计算的精髓&#xff0c;在于如何把抽象的计算图&#xff0c;转化为实实在在的分布式计算任务&#xff0c;然后以并行计算的方式交付执行。 Spark调度系…

Mojo安装使用初体验

一个声称比python块68000倍的语言 蹭个热度&#xff0c;安装试试 系统配置要求&#xff1a; 不支持Windows系统 配置要求: 系统&#xff1a;Ubuntu 20.04/22.04 LTSCPU&#xff1a;x86-64 CPU (with SSE4.2 or newer)内存&#xff1a;8 GiB memoryPython 3.8 - 3.10g or cla…

华为云云耀云服务器L实例评测 | 分分钟完成打地鼠小游戏部署

前言 在上篇文章【华为云云耀云服务器L实例评测 | 快速部署MySQL使用指南】中&#xff0c;我们已经用【华为云云耀云服务器L实例】在命令行窗口内完成了MySQL的部署并简单使用。但是后台有小伙伴跟我留言说&#xff0c;能不能用【华为云云耀云服务器L实例】来实现个简单的小游…