【史上最小白】Bert:双向 Transformer 编码器

Bert:双向 Transformer 编码器

    • Bert:论洞察语境,GPT 不如我深刻;论理解含义,ELMo 不如我全面
    • 输入阶段词嵌入:把词语转换为向量
    • 第一个预训练 Masked:学习语言的深层次理解
      • 尝试 1:预测每个单词
      • 尝试 2:Masked 语言模型
      • 尝试 3:用随机单词替换部分遮住的单词
      • 尝试 4:结合遮盖、随机替换和不变的单词
    • 第二个预训练 下一句预测:理解俩个句子之间的关系
    • 微调:特定任务下,提高准确率
    • Bert 优势任务

 


论文地址:https://arxiv.org/pdf/1810.04805.pdf

Bert:论洞察语境,GPT 不如我深刻;论理解含义,ELMo 不如我全面

Bert 采用双向 Transformer 编码器,没有用解码器。

  • 编码器作用:生成下一个词时,它只能依赖于已生成的词(通常是左侧的词)
  • 解码器没有用是因为,在生成任务中,不仅记住前面的人说的,还想提前知道后面的人会说什么,然后再说它的那一句,这是不可能的,故事还在发展,我们不能知道未来的内容。

Bert 主要是 双向,论文中对比了 GPT、ELMo。

GPT 是单向(左至右)的语言模型,主要关注于给定前文下生成下一个单词。

ELMo 也考虑了双向上下文,但其并不是在每个层级同时考虑两个方向的上下文,因此不如 BERT 的上下文表示能力强。

想象你在玩捉迷藏,Bert是一个聪明的孩子,他站在中间,同时向左和向右看,能够很好地观察到左边和右边的一切动静。

而GPT就像只往一个方向看的孩子,比如他只看左边,就可能会错过右边的同学。

ELMo虽然会左右看,但是他每次只能看一个方向,不能像Bert那样同时看两边。

要么只看一个方向,要么不能同时看两个方向,所以它们可能会错过一些重要的线索。

  • 只看一个方向可能会导致对情境的误解和信息的片面解读,进而影响决策和分析的准确性。
  • 专注于单一视角可能忽视关键信息,导致对复杂问题的理解不全面和决策失误。

 


输入阶段词嵌入:把词语转换为向量

把词语转换为向量,通过图中 3 中 Embeddings 方式做的,用于捕捉词语间的语义关系

  • Token Embeddings: 每个词语首先被分割成更细小的单元,然后每个token被转换成基本的词向量。

  • Segment Embeddings: BERT可以接受两个句子作为输入,用来区分两个不同的句子。

    帮助BERT区分哪些词语来自于第一句,哪些来自于第二句。

    就可以更好地理解句子之间的关系,比如哪些词语是回答问题中的答案,哪些是问题本身。

  • Position Embeddings: 由于 Transformer 模型本身不具备顺序感知能力,BERT引入了位置嵌入来给模型提供单词在句子中位置的信息。

第一个预训练 Masked:学习语言的深层次理解

这一步是不断迭代出来的。

尝试 1:预测每个单词

想象一下,我们给电脑出了一个填空题,电脑要猜每个空格里的单词是什么。

但如果我们告诉电脑每个空格里原来的单词是什么,那这个游戏就太简单了,对吧?

电脑会很轻松地每次都猜对,因为它知道所有答案。

该网络事先知道它需要预测什么,因此它可以很容易地学习权值,以达到100%的分类精度。

尝试 2:Masked 语言模型

那我们在句子中随机遮住一些单词,就像玩“填空游戏”时用笔遮住一些单词一样。

电脑的任务是猜出这些遮住的单词。

这样的话,电脑就不能作弊了,因为它不知道被遮住的单词是什么,必须要仔细看周围的单词来猜测答案。

但是,这种方法有一个问题。

电脑只学会了猜测遮住的单词(也就是标记为[MASK]的地方),而在实际使用时,我们不会告诉电脑哪些单词是被遮住的。

尝试 3:用随机单词替换部分遮住的单词

那我们不再总是用[MASK]标记来遮住单词,而是有时候用其他随机的单词来替换。

这样一来,电脑就不能只猜测[MASK]的地方了,它需要对所有的单词都有所判断。

不过,这个方法也有问题。

电脑会学到,如果输入的是一个随机的单词,那么它通常不是答案。

原句:I have a cat.

随机:I have a dog.

其中 “dog” 是一个随机选取的词,替换了 “cat”。

在绝大多数情况下,这些随机生成的词并不是原本句子中应该出现的词。

如果输入中的某个词是随机放置的,那么这个词几乎不可能是正确答案。

因此,模型会形成一个偏见,即倾向于忽略那些随机单词,并认为它们不重要。

尝试 4:结合遮盖、随机替换和不变的单词

从训练数据生成器随机选择句子中大约 15% 的令牌位置。

对于这些被选中的令牌,将会被替换,以帮助模型更好地学习上下文信息:

  • 80% 的概率被替换为 [MASK] 令牌。例如,如果选中的令牌是 “cat”,则在80%的情况下,句子变为 “I have a [MASK]”。
  • 10% 的概率被替换为一个随机的单词。例如,如果选中的令牌是 “cat”,则在10%的情况下,句子可能变为 “I have a dog”。
  • 10% 的概率保持原样不变。例如,如果选中的令牌是 “cat”,则在10%的情况下,句子保持不变为 “I have a cat”。

通过混合这三种方法,模型在训练时无法确定遇到的单词是否是原文中的单词、一个随机单词还是一个遮盖的单词,从而迫使模型必须学习和理解语言的深层规律,这样它在面对新的、未见过的文本时,能够更好地理解和回答问题。

在这种情况下,模型不能只依赖于单词的变化与否来猜测答案。

模型必须更多地依赖于对句子的整体理解和上下文的分析来做出预测。

因此,当模型看到 “I have a dog.” 时,它需要判断 “dog” 是不是原始文本中的单词,还是一个用来混淆其判断的随机单词。

第二个预训练 下一句预测:理解俩个句子之间的关系

输入:俩个A、B句子,有 50% 的 B 是 A 的下一句(他们必须属于同文档)

输出:模型需要预测 B 是不是 A 的下一句

微调:特定任务下,提高准确率

通常只会更新最后一层。

图a:句子对分类。就是在768尺寸的 CLS 输出之上添加一个Linear + Softmax层(图中没显示)。

图b:单独句子分类。就是在768尺寸的 CLS 输出之上添加一个Linear + Softmax层(图中没显示)。

图c:问答任务。只需在BERT模型的输出上添加一个额外的线性层和softmax层来为每个单词预测其对应的词性类别。

图d:单句标注任务

Bert 优势任务

BERT在理解文本中双向上下文和处理细粒度的自然语言处理任务上更强,但在连续文本生成和处理大规模数据集方面不如GPT。

细粒度的自然语言处理任务,主要包括:

  • 命名实体识别:识别文本中的具体实体,如人名、地点、组织等。
  • 词性标注:为文本中的每个单词分配语法类别,如名词、动词、形容词等。
  • 问答系统:根据一个问题从一段文本中提取答案。
  • 意图识别:确定用户语句的目的,常用于对话系统和聊天机器人中。
  • 情感分析:判断文本的情感倾向,例如正面、负面或中性。
  • 文本蕴含:判断一段文本是否能够推断出另一段文本的信息。
  • 关系抽取:识别文本中实体之间的关系。
  • 语义角色标注:分析句子中的谓语动词及其相关的参数和修饰语。

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

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

相关文章

一款CAT1产品天线定制-FPC天线无源数据测试示例

需求情况 根据产品的壳料内部结构,定制一款PFC天线,设备类型是4G-TLE,所以需要支持的频段范围比较宽,谐振要落在800MHz~1GHz与1.6GHz~2.6GHz之内。 天线阻抗、回波损耗、电压驻波情况 天线无源效率及增益情况 小结:整…

【交叉编译环境】安装arm-linux交叉编译环境到虚拟机教程(简洁版本)

就是看到了好些教程有些繁琐,我就写了一个 我这个解压安装的交叉编译环境是Linaro GCC的一个版本,可以用于在x86_64的主机上编译arm-linux-gnueabihf的目标代码 步骤来了 在你的Ubuntu系统中创建一个目录,例如/usr/local/arm,然后…

cesium实现区域贴图及加载多个gif动图

1、cesium加载多个gif动图 Cesium的Billboard支持单帧纹理贴图,如果能够将gif动图进行解析,获得时间序列对应的每帧图片,然后按照时间序列动态更新Billboard的纹理,即可实现动图纹理效果。为此也找到了相对于好一点的第三方库libg…

Wireshark网络工具来了

Wireshark是网络包分析工具。网络包分析工具的主要作用是尝试捕获网络包,并尝试显示包的尽可能详细的情况。 Wireshark是一个免费开源软件,不需要付费,免费使用,可以直接登陆到Wireshark的官网下载安装。 在windows环境中&#x…

【网络安全】一次SRC挖掘经历

本文仅供网络安全学习研究,违F绕路 资产发现 首先是信息收集子域名,谷歌语句直接site:xxx.com -www,一个登录口网站吸引了我的注意力。 我点击电信、网通、自动的时候,发现域名跳转到了真实IP 这样,就可以对真实IP进行端口扫描-&…

医学影像处理与智能医学:数据集资源和云端加速路径

医学影像处理识别是一种利用计算机技术影像进行识别、分析和处理的方法。它主要应用于医学影像学领域,如 X 射线、CT 扫描、MRI 和超声等。通过图像处理技术,可以对这些影像进行数字化处理,提取有用信息,辅助医生进行疾病诊断、治…

音频修复增强软件iZotope RX 10 mac特点介绍

iZotope RX 10 mac是一款音频修复和增强软件。 iZotope RX 10 mac软件特点 声音修复:iZotope RX 10可以去除不良噪音、杂音、吱吱声等,使音频变得更加清晰干净。 音频增强:iZotope RX 10支持对音频进行音量调节、均衡器、压缩器、限制器等处…

使用 OpenTelemetry 和 Loki 实现高效的应用日志采集和分析

在之前的文章陆续介绍了 如何在 Kubernetes 中使用 Otel 的自动插桩 以及 Otel 与 服务网格协同实现分布式跟踪,这两篇的文章都将目标聚焦在分布式跟踪中,而作为可观测性三大支柱之一的日志也是我们经常使用的系统观测手段,今天这篇文章就来体…

springCould中的zookeeper-从小白开始【3】

目录 1.启动zookeeper❤️❤️❤️ 2.创建8004模块 ❤️❤️❤️ 3.临时节点还是永久节点❤️❤️❤️ 4.创建zk80消费模块❤️❤️❤️ 1.启动zookeeper❤️❤️❤️ 进入自己zookeeper的bin目录下 分别使用命令: ./zkServer.sh start 和 ./zkCli.sh -serve…

旅游品牌网站搭建的作用是什么

我国旅游业规模非常高,各地大小旅游景区也是非常多,尤其节假日更是可以达到峰值,无论周边游还是外地游对所要去的景区,消费者总是需要来回了解很多,浏览器查或旅行社咨询等。 对旅游企业而言,传统线下方式…

QT 构建项目报错Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7

问题 Getting NoClassDefFoundError: Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7获取 NoClassDefFoundError:无法初始化类 org.codehaus.groovy.vmplugin.v7.Java7 解决方法一 java版本 过高 将java版本降低,例如从java17降…

虹科方案|车内智慧大脑:基于车载网络捕获的全景数据处理

导读:随着汽车电子技术的不断发展,车载网络已经成为汽车智能化和互联互通的关键组成部分。然而随着汽车系统的复杂性增加,CAN的带宽和数据处理能力已不足以满足快速增长的数据需求。为了应对这一挑战,虹科智能互联提出了基于车载网…

哪个超声波清洗机好?适合洗眼镜超声波清洗机有哪些?

随着科技的进步,超声波清洗机已经成为了家居清洁的必备神器。尤其是对于眼镜、珠宝、饰品等需要深度清洁的小物件,超声波清洗机更是不可或缺。眼镜店最经常看见超声波清洗机的身影,可以很好帮我们清洗眼镜同时有些比较好的超声波清洗机还会带…

Matplotlib ------ 纵坐标科学计数法含义

matplotlib 纵坐标科学计数法含义 引言正文 引言 今天画图时遇到了一个问题,发现纵坐标是科学计数法的表示,但是很难理解它的含义,这里特来记录一下。 正文 我们以下图为例, 由图上我们可以看出,纵坐标显示为 1e-…

高压放大器的考虑因素有哪些

高压放大器是一种重要的电子设备,用于放大高电压信号。其设计和应用需要考虑多种因素,以确保性能稳定、安全可靠。以下是设计高压放大器时需要考虑的主要因素: 电压范围需求:首要考虑是要放大的电压信号范围。高压放大器应能够处理…

SpringBoot的测试

🙈作者简介:练习时长两年半的Java up主 🙉个人主页:程序员老茶 🙊 ps:点赞👍是免费的,却可以让写博客的作者开心好久好久😎 📚系列专栏:Java全栈,…

CentOS7部署bitbucket7.21.20-postgresql版

文章目录 1.资源下载2.上传服务器3.赋予执行权限并执行安装4.执行安装5.访问Bitbucket6.Bitbucket安装页面配置6.1连接Jira应用程序到PostgreSQL6.1.1创建并配置PostgreSQL数据库6.1.2测试数据库连接 6.2授权6.2.1授权包6.2.1.1资源地址6.2.1.2上传到服务器 6.2.2停止bitbucket…

PDF控件Spire.PDF for .NET【安全】演示:在 PDF 中添加或删除数字签名

随着 PDF 文档在商业中越来越流行,确保其真实性已成为一个关键问题。使用基于证书的签名对 PDF 进行签名可以保护内容,还可以让其他人知道谁签署或批准了该文档。在本文中,您将了解如何使用不可见或可见签名对 PDF 进行数字签名,以…

用CSDN训练的InsCode AI创作博文:数据治理体系建设

想不想用AI帮我们写方案? 想尝试用CSDN提供的InsCode AI创作助手协助我们进行技术方案的创作,看看效果如何,能不能辅助我们日常的方案编写与创作?以前用ChatGPT也尝试过,但对于专业性更强的内容,还有表现的…

VMware虚拟机安装Ubuntu系统教程

所使用的文件如下: VMware Workstation 17 Pro ubuntu-22.04.3-desktop-amd64.iso 一、ubuntu 命名规则及各版本一览表 1.ubuntu 命名规则: 例如:ubuntu 16.04 LTS 是长期维护版本;ubuntu 17.04 是新特性版本 前两位数字为发…