Bert详解

Bert框架

  • 基本架构
    • Embedding
    • pre-training
      • MLM(Mask Language Model)
      • NSP(Next Sentence Prediction)
    • fine-tuning
    • 优缺点

基本架构

由Transformer的Encoder层堆叠而来
Bert
每个部分组成如下:
Bert组成

Embedding

Embedding由三种Embedding求和而成
Embedding

  • Token Embeddings:词向量,第一个单词是CLS标志,可以用于之后的分类任务

(通过建立词向量表)将每个词转化成一个一维向量,作为模型的输入。首先对文本进行tokenization处理,且在文本开头([CLS])和结尾([SEP])分别插入两个特殊的Token,[CLS]表示该特征用于分类模型,对非分类模型,该符号可以省去。[SEP]表示分句符号,用于断开输入语料中的两个句子。

Bert处理英文文本需要含有30522个词,Token Embeddings将每个词转化成768维向量
在这里插入图片描述

  • Segment Embeddings:区别两种句子,因为预训练不光做LM(语言模型,从左往右生成),还要做以两个句子为输入的分类任务。

Segment Embeddings有两种向量表示(0,1),用于表示两个句子,前一个句子全部赋值为0,后一个句子全部赋值为1,然后拼接起来。
如问答系统任务要预测下一句,输入是有关联的句子;文本分类只有一个句子,则全部为0
在这里插入图片描述

  • Position Embeddings:与Transformer中不一样,不是三角函数的固定位置编码而是学习出来的

由于出现在文本不同位置的字/词所携带的语义信息存在差异(如 ”你爱我“ 和 ”我爱你“),你和我虽然都和爱字很接近,但是位置不同,表示的含义不同。

在 RNN 中,第二个 ”I“ 和 第一个 ”I“ 表达的意义不一样,因为它们的隐状态不一样。对第二个 ”I“ 来说,隐状态经过 ”I think therefore“ 三个词,包含了前面三个词的信息,而第一个 ”I“ 只是一个初始值。因此,RNN 的隐状态保证在不同位置上相同的词有不同的输出向量表示。
在这里插入图片描述
BERT 中处理的最长序列是 512 个 Token,长度超过 512 会被截取,BERT 在各个位置上学习一个向量来表示序列顺序的信息编码进来,意味着 Position Embeddings 实际上是一个 (512, 768) 的 lookup 表,表第一行是代表第一个序列的每个位置,第二行代表序列第二个位置。

最后,BERT 模型将 Token Embeddings (1, n, 768) + Segment Embeddings(1, n, 768) + Position Embeddings(1, n, 768) 求和的方式得到一个 Embedding(1, n, 768) 作为模型的输入

[CLS]的作用:
Bert在第一句前会加一个[CLS]标志,最后一层该位对应向量可以作为整句话的语义表示,从而用于下游的分类任务等。
在这里插入图片描述
原因:self-attention是用文本中的其它词来增强目标词的语义表示,但是目标词本身的语义还是会占主要部分的与文本中已有的其它字/词相比,这个无明显语义信息的符号会更“公平”地融合文本中各个字/词的语义信息。

pre-training

bert是一个多任务模型,由两个自监督任务组成,即MLM和NSP

MLM(Mask Language Model)

在训练的时候随机从输入语料上mask掉一些单词,然后通过的上下文预测该单词,该任务非常像我们在中学时期经常做的完形填空

在BERT的实验中,15%的WordPiece Token会被随机Mask掉。在训练模型时,一个句子会被多次喂到模型中用于参数学习,但是Google并没有在每次都mask掉这些单词,而是在确定要Mask掉的单词之后,做以下处理。

  1. 80%的时候会直接替换为[Mask],将句子 “my dog is cute” 转换为句子 “my dog is [Mask]”。
  2. 10%的时候将其替换其它任意单词,将单词 “cute” 替换成另一个随机词,例如 “apple”。将句子 “my dog is cute” 转换为句子 “my dog is apple”。
  3. 10%的时候会保留原始Token,例如保持句子为 “my dog is cute” 不变。

优点
1)被随机选择15%的词当中以10%的概率用任意词替换去预测正确的词,相当于文本纠错任务,为BERT模型赋予了一定的文本纠错能力;
2)被随机选择15%的词当中以10%的概率保持不变,缓解了finetune时候与预训练时候输入不匹配的问题(预训练时候输入句子当中有mask,而finetune时候输入是完整无缺的句子,即为输入不匹配问题)。
缺点:针对有两个及两个以上连续字组成的词,随机mask字割裂了连续字之间的相关性,使模型不太容易学习到词的语义信息

NSP(Next Sentence Prediction)

判断句子B是否是句子A的下文。如果是的话输出’IsNext‘,否则输出’NotNext‘

训练数据的生成方式是从平行语料中随机抽取的连续两句话,其中50%保留抽取的两句话,它们符合IsNext关系,另外50%的第二句话是随机从预料中提取的,它们的关系是NotNext的

fine-tuning

微调(Fine-Tuning)的任务包括:

  • 基于句子对的分类任务
  • 基于单个句子的分类任务
  • 问答任务
  • 命名实体识别
    在这里插入图片描述

优缺点

  • 优点:
    • BERT 相较于原来的 RNN、LSTM 可以做到并发执行,同时提取词在句子中的关系特征,并且能在多个不同层次提取关系特征,进而更全面反映句子语义。
    • 相较于 word2vec,其又能根据句子上下文获取词义,从而避免歧义出现
  • 缺点:
    • 模型参数太多,而且模型太大,少量数据训练时,容易过拟合。
    • BERT的NSP任务效果不明显MLM存在和下游任务mismathch的情况。
    • BERT对生成式任务和长序列建模支持不好。

内容参考:读懂BERT,看这一篇就够了

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

最小生成树(Java实现)

一、Prim算法 Prim算法基本思想为:从联通网络 N{V,E}中某一顶点 v0 出发,此后就从一个顶点在 S 集中, 另一个顶点不在 S 集中的所有顶点中选择出权值最小的边,把对应顶点加入到 S 集 中, 直到所有的顶点都加入到 S 集中…

D-Tale SSRF漏洞复现(CVE-2024-21642)

0x01 产品简介 D-tale 是一个在 2020 年 2 月推出的库, 是 Pandas 数据结构的可视化工具。它具有许多功能,对于探索性数据分析非常方便、支持交互式绘图、3d 绘图、热图、特征之间的相关性、构建自定义列等等。 0x02 漏洞概述 D-Tale 是 Pandas 数据结构的可视化工具。3.9…

swift基础语法

swift学习笔记 参考教程 https://www.runoob.com/swift/swift-data-types.html swift代码规范 https://juejin.cn/post/7129465308376465422 1 环境搭建 必须要有苹果电脑且安装Xcode 2 基本语法 Swift是类型安全的语言,编译时会进行类型检查 import Cocoa var m…

Git学习笔记(第7章):IDEA实现Git操作(VSCode)

目录 7.1 配置忽略文件 7.2 初始化本地库 7.3 添加暂存区、提交本地库 7.4 修改文件 补充:工具栏简介 7.1 配置忽略文件 问题引入 在版本控制系统中,有些文件或目录是不需要纳入版本管理的,比如编译产生的临时文件、日志文件、缓存文件等…

基于springboot+vue的网上购物商城(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…

hugo的常规使用操作

hugo的常规使用操作(不断完善中) 找到theme主题中config.toml 一般都会通过theme中复制到自己项目的config.toml中做修改和补充,来完善不同的业务需求 Hugo静态资源载入逻辑 原理 将图片信息放到static中,但是在文章中写的时…

电脑存储位置不够怎么办

电脑内存不够怎么办!!! 我前段时间经常因为电脑D盘内存不够而苦恼(毕竟电脑内存就那么丁点,C盘作为系统盘不能随便下东西的情况下,就只能选择其他盘进 方法一:检查电脑硬盘的分区情况&#xf…

Unity下实现跨平台的RTMP推流|轻量级RTSP服务|RTMP播放|RTSP播放低延迟解决方案

2018年,我们开始在原生RTSP|RTMP直播播放器的基础上,对接了Unity环境下的低延迟播放,毫秒级延迟,发布后,就得到了业内一致的认可。然后我们覆盖了Windows、Android、iOS、Linux的RTMP推送、轻量级RTSP服务和RTSP|RTMP播…

《WebKit 技术内幕》学习之五(3): HTML解释器和DOM 模型

3 DOM的事件机制 基于 WebKit 的浏览器事件处理过程:首先检测事件发生处的元素有无监听者,如果网页的相关节点注册了事件的监听者则浏览器会将事件派发给 WebKit 内核来处理。另外浏览器可能也需要处理这样的事件(浏览器对于有些事件必须响应…

BGP Local-preferenct 、AS-Path、 Origin 综合选路实验

Local-preference: 本地优先级,公认任意,仅能在 AS 内使用(IBGP内传递),不能在EBGP传递,默认值 100,越大越优。用于离开本 AS ,在 IBGP 的入、出方向都可使用&#xff0c…

双端Diff算法

双端Diff算法 双端Diff算法指的是,在新旧两组子节点的四个端点之间分别进行比较,并试图找到可复用的节点。相比简单Diff算法,双端Diff算法的优势在于,对于同样的更新场景,执行的DOM移动操作次数更少。 简单 Diff 算法…

光学期刊1

光学领域的你,如何评价最近发布的光学期刊分区? 如题,附分区表 20240122 知乎 同样先写结论:时代变了,发国产没错的。参考light当年开局多艰难,被各种diss口碑差,很多投一区守门员不中的也…

二进制部署高可用k8s集群V1.20.11版本

文章目录 一、操作系统初始化配置(所有节点均执行)1、关闭防火墙2、关闭selinux3、关闭swap4、根据规划修改主机名5、在master节点上添加host6、将桥接的IPv4流量传递到iptables的链7、时间同步 二、部署Etcd集群1、准备cfssl证书生成工具2、生成Etcd证书…

2024年软件测试面试题大全【含答案】

Part1 1、你的测试职业发展是什么?【文末有面试文档免费领取】 测试经验越多,测试能力越高。所以我的职业发展是需要时间积累的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年积累测试经验,按如何做…

tableau mysql 驱动安装

最便捷,最快速的方式。 整体流程:首先得知道你电脑mysql的版本,然后去官网下载ODBC驱动。 mysql版本:浏览器搜一些。 高版本驱动应该是兼容低版本的。 ODBC驱动: 选择第一个,下载,直接msi安装…

学习笔记之 机器学习之预测雾霾

文章目录 Encoder-DecoderSeq2Seq (序列到序列) Encoder-Decoder 基础的Encoder-Decoder是存在很多弊端的,最大的问题就是信息丢失。Encoder将输入编码为固定大小的向量的过程实际上是一个“信息有损的压缩过程”,如果信息量越大,…

POKT Network (POKT) :进军百亿美元市场规模的人工智能推理市场

POKT Network(又称 Pocket Network)是一个去中心化的物理基础设施网络(DePIN),它能够协调并激励对任何开放数据源的访问,最初专注于向应用程序和服务提供商提供区块链数据。 自 2020 年主网上线以来&#x…

MSG3D

论文在stgcn与sta-lstm基础上做的。下面讲一下里面的方法: 1.准备工作 符号。这里是对符号进行解释。 一个人体骨骼图被记为G(v,E) 图卷积: 图卷积定义 考虑一种常用于处理图像的标准卷积神经网络 (CNN)。输入是像素网格。每个像素都有一个数据值向…

大数据开发之电商数仓(hadoop、flume、hive、hdfs、zookeeper、kafka)

第 1 章:数据仓库 1.1 数据仓库概述 1.1.1 数据仓库概念 1、数据仓库概念: 为企业制定决策,提供数据支持的集合。通过对数据仓库中数据的分析,可以帮助企业,改进业务流程、控制成本,提高产品质量。 数据…

网络:FTP

1. FTP 文件传输协议,FTP是用来传输文件的协议。使用FTP实现远程文件传输的同时,还可以保证数据传输的可靠性和高效性。 2. 特点 明文传输。 作用:可以从服务器上下载文件,或将本地文件上传到服务器。 3. FTP原理 FTP有控制层面…