当前位置: 首页 > news >正文

为什么bert是双向transformer

BERT 是双向 Transformer,这是它的一个核心创新点。下面我从 技术原理、与传统 Transformer 的区别、以及双向性的实际意义 来详细解释为什么 BERT 被称为“双向 Transformer”。


一、什么是 BERT 的“双向”?

在 BERT 的论文中,双向的原文是 "Bidirectional", 更准确地说,BERT 是“深度双向(deeply bidirectional)”的 Transformer 编码器

这个“双向”指的是:

在每一层 Transformer 中,每个词(token)的表示都能同时看到其左边和右边的上下文。

也就是说,BERT 在预训练阶段对句子的处理是 同时从左往右和从右往左都考虑上下文信息的


二、对比:BERT vs GPT

模型基于结构上下文类型是否双向
GPTTransformer Decoder单向(从左到右)
BERTTransformer Encoder双向(同时看左右)

  • GPT 采用左到右的自回归(AutoRegressive)语言建模方式,预测当前词时,只依赖其左边的词。

  • BERT 使用 Masked Language Model(MLM)来随机遮住输入中的一部分词,然后预测被遮住的词,它需要依赖左右两侧的词语来推理出被遮住的词。


三、为什么 BERT 是双向 Transformer?

1. BERT 的预训练任务:Masked Language Modeling(MLM)

BERT 用的是 Masked Language Model,即在输入中随机掩盖一部分 token(如 [MASK]),训练模型去预测这些被遮盖的词:

  • 举例:

    • 输入:The man went to the [MASK]

    • 目标:预测 [MASK]storepark

此时,模型 必须利用 [MASK] 左右两侧的信息 来做预测。因此,它在每一层都需要看到整个句子(不是单向的)。

这一点和 GPT 的左到右建模完全不同。


2. Transformer 本身结构支持双向

Transformer 编码器(Encoder)中使用的是 自注意力机制(Self-Attention),它允许每个 token 与输入序列中的所有 token 建立联系

  • 在 BERT 中,没有添加任何掩码(mask)来阻止右边的信息参与注意力,因此它是自然的双向结构。

  • GPT(Decoder)则添加了下三角 mask,阻止模型看见未来的信息,使得它只能看到左边。


四、BERT 的双向性优势

  1. 上下文更完整

    • 传统语言模型(如 GPT)只能从一个方向理解上下文,而 BERT 可以同时考虑前后信息,对句子理解更深。

    • 这对于命名实体识别、问答、自然语言推理等任务效果更好。

  2. 更强的表示能力

    • 每一个 token 的 embedding 编码,融合了整句话的语义信息,有利于更复杂的语义建模。

  3. 对称建模句子结构

    • 适用于文本蕴含、句子对匹配等需要对称理解的任务。


五、总结

  • BERT 是双向 Transformer,因为它在预训练阶段使用 MLM 任务,在每一层 Transformer 编码器中都能同时访问 token 的左右上下文。

  • 双向性的实现依赖于 Transformer 编码器 的自注意力机制,不加入方向性掩码。

  • 相比传统的单向语言模型(如 GPT),BERT 的双向特性使得它在多种自然语言理解任务中表现更强。

http://www.lryc.cn/news/602702.html

相关文章:

  • 无人机气动设计模块解析
  • html转word下载
  • NVDB-CAVD 杯汽车信息安全系列赛事
  • 基于Java的汽车商城系统设计与实现
  • 汽车膨胀水箱(副水箱)液位传感器的作用
  • 小鹏汽车AI测试
  • stm32开发 -- TFTLCD相关
  • API产品升级丨全知科技发布「知影-API风险监测平台」:以AI重构企业数据接口安全治理新范式
  • JavaWeb 入门:HTML 基础与实战详解(Java 开发者视角)
  • 分数函数的实用性及与数据密度的关系解析
  • ffmpeg-7.1.1 下载安装 windows 版,MP4 转 m3u8 切片,遇到报错 Unrecognized option ‘vbsf‘的解决办法
  • SD卡简介与驱动开发
  • 优测推出HarmonyOS全场景测试服务,解锁分布式场景应用卓越品质!
  • Makefile if语句用法
  • Linux内核驱动开发核心问题全解
  • Python全栈项目--基于深度学习的视频内容分析系统
  • 使用Docker在Rocky Linux 9.5上在线部署LangFlow
  • GoldenDB 分布式数据库详解
  • 在CentOS上以源码编译的方式安装PostgreSQL
  • <七> CentOS 8 安装最新版本Docker
  • 很妙的一道题 Leetcode234. 回文链表
  • 力扣 之 最小覆盖子串(变长滑动窗口,越短越好)
  • 电磁兼容五:仿真技术
  • Mac安装navicat17版本教程mac下载Navicat Premium for Mac v17.1.9【好用】
  • 微算法科技(NASDAQ:MLGO)利用基于区块链的机器学习模型进行交易分类,实现交易数据的匿名化
  • redis数据库的四种取得 shell方法
  • 安宝特案例丨户外通信机房施工革新:AR+作业流技术破解行业难题
  • 免费版酒店收银系统弹窗在押金原路退回流程中的应用价值探究 ——仙盟创梦IDE
  • 设计模式(二十一)行为型:状态模式详解
  • python生成 requirement.txt 文件