BERT模型入门(2)BERT的工作原理

文章目录


如名称所示,BERT(来自Transformer的双向编码器表示)是基于Transformer模型。我们可以将BERT视为只有编码器部分的Transformer。

在上一个主题《Transformer入门》中,我们了解到将句子作为输入喂给Transformer的编码器,它会返回句子中每个单词的表示作为输出。这正是BERT的本质------来自Transformer的编码器表示(Encoder

Representation from Transformer)。那么,"双向"这个词又是什么意思呢?

在 "Bidirectional Encoder Representation from Transformers" (BERT) 中的 "Bidirectional" 这个词,指的是模型在处理文本数据时能够同时考虑文本中的前后上下文信息。

以下是对 "Bidirectional" 的具体解释:

(1)传统单向语言模型:在 BERT 之前,常见的语言模型如 LSTM 或 GRU,通常是单向的。这意味着它们要么从左到右(正向)读取文本信息,要么从右到左(反向)读取。这样,每个词的表示只包含了它在一个方向上的上下文信息。

(2)双向性:而 "Bidirectional" 意味着模型在处理一个词时,能够同时考虑这个词左边和右边的上下文。这样,每个词的表示都能融合来自两个方向的信息,从而更加全面地理解词义和上下文。

在 BERT 模型中,"Bidirectional" 的实现方式如下:

(1)**Masked Language Model (MLM) **:在训练过程中,随机地遮盖(mask)输入序列中的一些词,然后要求模型预测这些被遮盖的词。由于模型不知道哪些词会被遮盖,因此它必须考虑所有词在两个方向上的上下文。

(2)**Next Sentence Prediction (NSP) **:在训练时,模型还会接收成对的句子作为输入,并学习预测第二个句子是否是第一个句子的后续。这进一步增强了模型对上下文的理解。

通过这种方式,BERT 成为了一个真正意义上的双向模型,它能够捕获文本中的复杂依赖关系,并在各种自然语言处理任务中取得了显著的性能提升。

Transformer的编码器本质上是双向的,因为它可以双向读取句子。因此,BERT基本上是从Transformer获得的双向编码器表示(the Bidirectional Encoder Representation obtained from the Transformer)。

让我们通过一个例子来理解BERT是如何作为Transformer的双向编码器表示的。让我们使用上一节中看到的同一个句子。

假设我们有句子A:He got bit by Python。现在,我们将这个句子作为输入喂给Transformer的编码器,并得到句子中每个单词的上下文表示(embedding,嵌入)作为输出。一旦我们将句子作为输入喂给编码器,编码器就会使用多头注意力机制(将句子中的每个单词与句子中的所有单词关联起来,以学习单词之间的关系和上下文意义)理解句子中每个单词的上下文,并返回句子中每个单词的上下文表示作为输出。

如下图所示,我们将句子作为输入喂给Transformer的编码器,并得到句子中每个单词的表示(representation)作为输出。我们可以堆叠N个编码器,如下图所示。我们只展开了编码器1,以减少混乱。在下面的图中,R_He是单词"He"的表示,R_got是单词"got"的表示,以此类推。每个标记的表示大小将是编码器层的大小。假设编码器层的大小是768,那么每个标记的表示大小将是768:

图2.3 -- BERT生成句子中每个单词的表示

同样,如果我们把句子B,"Python is a popular programming language.",喂给Transformer的编码器,我们得到句子中每个单词的上下文表示作为输出,如下图所示:

图2.4 -- BERT生成句子中每个单词的表示

因此,使用BERT模型,对于给定的句子,我们得到句子中每个单词的上下文表示(embedding,嵌入)作为输出。

现在我们了解了BERT是如何生成上下文表示的,接下来我们将查看BERT的不同配置。


感谢您的阅读,欢迎关注!


相关推荐
狂师1 分钟前
用AI做自动化测试,哪些是真不行,哪些是你不会用?
人工智能·面试·测试
小鹿软件办公10 分钟前
微软 MAI-Image-2.6 正式发布,文字渲染与 3D 能力显著增强
人工智能·microsoft
是上好佳佳佳呀11 分钟前
【深度学习|DAY03】神经网络深度学习笔记(上):框架总览、参数初始化与激活函数
笔记·深度学习·神经网络
zhangfeng113315 分钟前
Windows AMD显卡跑PyTorch
人工智能·pytorch·windows
小弥儿18 分钟前
Firecrawl:把整个网页变成 AI 可查询的数据库
数据库·人工智能·学习
探物 AI20 分钟前
yolo检测中的激活函数19:ReLU激活函数 (Rectified Linear Unit)
网络·人工智能·深度学习·yolo
晓天衡宇•评测社区20 分钟前
大语言模型 8 月榜单更新:Claude Opus 5 登顶,Gemini 3.6-Flash 与 DeepSeek-V4 Flash 展现差异化优势
大数据·人工智能
AI人工智能+23 分钟前
智能文档抽取系统通过“视觉感知+大模型认知“双引擎架构,实现非结构化文档的自动化处理
深度学习·计算机视觉·语言模型·自然语言处理·ocr·文档抽取
dunge202624 分钟前
2026 ChatGPT Plus / Pro + Codex 实战:从 0 搭一套 AI 编程项目模板,AGENTS.md + Git + 测试一次配好
人工智能·git·chatgpt
不爱土豆唯爱马铃薯24 分钟前
有些创意,差一个声音才完整
人工智能