当前位置: 首页 > 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.dtcms.com/a/302767.html

相关文章:

  • vue2 基础学习 day02 (案例、watch侦听器(监视器))
  • API产品升级丨全知科技发布「知影-API风险监测平台」:以AI重构企业数据接口安全治理新范式
  • 深入探索Linux:忙碌的车间“进程”间通信
  • Datawhale AI夏令营--Task2:理解项目目标、从业务理解到技术实现!
  • Linux知识回顾总结----基础IO
  • Muduo库
  • Effective Modern C++条款18:为什么在独占资源管理中使用`std::unique_ptr`?
  • getdents64系统调用及示例
  • 搭建HAProxy高可用负载均衡系统
  • 四、计算机组成原理——第2章:数据的表示和运算
  • OpenLayers 综合案例-动态闪烁
  • YOLO11 改进、魔改|低分辨率自注意力机制LRSA ,提取全局上下文建模与局部细节,提升小目标、密集小目标的检测能力
  • Python将Word转换为Excel
  • eclipse更改jdk环境和生成webservice客户端代码
  • Linux应用管理与YUM/DNF指南
  • 迅为RK3568开发板OpeHarmony学习开发手册-配置电源管理芯片和点亮HDMI屏幕-配置电源管理芯片
  • ARM share memory
  • 智慧工地系统:科技赋能建筑新未来
  • 电子签章(PDF)
  • 阿里云可观测 2025 年 6 月产品动态
  • 【机器学习-4】 | 集成学习 / 随机森林篇
  • 以科力锐为例介绍常见的数据中心4种灾备方式
  • HDFS Block与Spark的partition对比
  • MCU+RTOS调试
  • unisS5800XP-G交换机配置命令之端口篇
  • 经典算法题解析:从思路到实现,掌握核心编程思维
  • 分布式数据库中的“分布式连接”(Distributed Joins)
  • YOLOv8 基于RTSP流目标检测
  • 【C++详解】深入解析继承 类模板继承、赋值兼容转换、派生类默认成员函数、多继承与菱形继承
  • 把振动数据转成音频并播放