BERT模型讲解

BERT的模型架构

BERT: Bidirectional Encoder Representations from Transformers

BERT这个名称直接反映了:它是一个基于Transformer编码器双向表示模型。BERT通过堆叠多层编码器来构建深度模型。举例来说:

  • BERT-Base:堆叠了12层Encoder,12个注意力头,768维隐藏层,参数量约110M
  • BERT-Large:堆叠了24层Encoder,16个注意力头,1024维隐藏层,参数量约340M
    在这里插入图片描述

BERT的输入表示

BERT的输入表示是其独特之处,包含三部分:

  1. Token Embedding:词元嵌入,将输入的单词转换为向量表示
  2. Segment Embedding:段落嵌入,用于区分输入中的不同句子
  3. Position Embedding:位置嵌入,编码词元在序列中的位置信息

与原始Transformer使用三角函数计算的Position Encoding不同,BERT的Position Embedding是需要学习的参数。

BERT预训练方法

同时进行两项无监督任务的训练来学习语言,即:

  1. 掩码语言模型MLM
  2. 下一句预测NSP

接下来我们展开讲解两种任务

掩码语言模型(Masked Language Model, MLM)

即完形填空从而让大模型可以学到上下文。具体做法是(论文中并没讲述为何用这个比例,可能是因为这个比例效果更佳):

  1. 随机选择输入tokens中的15%
  2. 对于被选中的tokens:
    策略1- 80%的情况下,将其替换为特殊标记[MASK]
    策略2- 10%的情况下,将其替换为随机词
    策略3- 10%的情况下,保持不变

举例:我爱大语言模型
在这里插入图片描述

下一句预测(Next Sentence Prediction, NSP)

NSP任务要求模型判断两个给定句子是否为原文中的相邻句子。这可以让模型理解句子间的关系。是与不是,这也就是转为了二分类任务。


举例:我爱大语言模型
在这里插入图片描述

<think>嗯,用户想了解BERT模型背后的数学公式或理论。首先,我需要回顾一下BERT的基本结构和相关的数学原理。BERT是基于Transformer架构的,所以得先讲Transformer的自注意力机制。记得自注意力的公式是$QK^T$缩放后做softmax,再乘以V矩阵。这部分需要详细推导一下,可能还要提到多头注意力的拆分方式。 然后,BERT的预训练任务包括MLM和NSP。MLM涉及到掩码处理,需要解释交叉熵损失函数,可能要用到公式表示。比如,对于被掩码的位置,模型预测正确词的概率,然后计算损失。这部分要确保公式正确,比如交叉熵的表达式是$-\sum y_i \log p_i$。 接下来是位置编码,BERT使用可学习的位置嵌入,而不是Transformer中的正弦余弦函数。这里可能需要对比一下两者的区别,并说明位置编码如何与词向量相加。 还有,层归一化和残差连接的公式也很重要。比如,残差连接是$H_{l+1} = H_l + \text{Attention}(H_l)$,然后是层归一化。这部分需要正确写出公式,避免混淆前馈网络的步骤。 用户可能对矩阵运算的维度有疑问,比如Q、K、V的维度如何计算,多头注意力如何合并。可能需要详细说明每个矩阵的变换,比如输入X乘以不同的权重矩阵得到Q、K、V,然后拆分成多个头,最后拼接起来。 另外,BERT的双向性体现在同时考虑左右上下文,这和之前的单向模型如GPT不同。需要强调自注意力机制如何允许模型同时处理前后文信息,这对理解上下文语义很关键。 预训练阶段的数学目标函数也需要解释,比如MLM和NSP的损失如何组合,总损失可能是两者的加权和。但具体BERT是否加权还是简单相加,需要查证引用资料。根据引用4,可能总损失是两者的直接相加,即$L = L_{MLM} + L_{NSP}$。 还有参数共享的部分,比如不同层的Transformer是否共享参数?根据引用4,参数共享可能是指不同语言版本共享权重,比如多语言BERT中的情况,但标准BERT每一层的参数是独立训练的。这部分需要确认引用内容,避免错误。 最后,应用场景方面,根据引用1和4,问答系统、文本分类等都是BERT的应用,需要结合数学模型说明为什么BERT适合这些任务,比如注意力机制捕捉长距离依赖,提升上下文理解。 生成相关问题时,要考虑用户可能进一步想了解的内容,比如自注意力的计算复杂度、BERT的优化策略、不同预训练任务的比较等。确保问题与数学理论相关,帮助用户深入理解。 需要检查所有公式是否正确使用$$或$包裹,独立公式单独成段,行内公式正确格式。比如自注意力公式应使用$$...$$,而层归一化的行内公式用$...$。确保引用标记正确对应到参考资料,比如引用4提到了自注意力公式,所以在对应位置添加[^4]。 总结一下,回答的结构应该从模型架构开始,分模块讲解数学公式,然后预训练任务和损失函数,最后应用场景。每个部分都要有对应的公式和引用,确保信息准确,并且符合用户要求的格式。</think>### BERT模型数学原理详解 #### 1. 核心组件:Transformer编码器 BERT基于**Transformer编码器**构建,其核心公式为**自注意力机制**: $$ \text{Attention}(Q,K,V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V $$ 其中$Q$(查询)、$K$(键)、$V$(值)均通过输入向量$X$与可训练参数矩阵相乘得到。 **多头注意力**将其扩展为$h$个独立头: $$ \text{MultiHead}(Q,K,V) = \text{Concat}(\text{head}_1,...,\text{head}_h)W^O $$ 每个头的计算为$\text{head}_i = \text{Attention}(QW_i^Q, KW_i^K, VW_i^V)$,最终通过$W^O$矩阵合并结果。 #### 2. 位置编码与残差连接 - **位置编码**:BERT使用可学习的绝对位置嵌入$P \in \mathbb{R}^{n \times d}$,与词向量相加: $$ E = X + P $$ - **残差连接+层归一化**: $$ H_{l+1} = \text{LayerNorm}(H_l + \text{Attention}(H_l)) $$ #### 3. 预训练目标函数 1. **Masked Language Model (MLM)** 随机掩盖15%的输入词,用交叉熵损失重建: $$ L_{MLM} = -\sum_{i \in M} \log P(w_i | w_{\setminus M}) $$ 其中$M$为掩盖位置集合[^3]。 2. **Next Sentence Prediction (NSP)** 判断句子对$A,B$是否连续: $$ L_{NSP} = -\log P(y_{true}|A,B) $$ 总损失函数为两者之和: $$ L = L_{MLM} + L_{NSP} $$ #### 4. 应用场景与数学优势 BERT在以下场景表现优异: - **问答系统**:通过注意力权重定位答案片段[^1] - **文本分类**:利用[CLS]标记的聚合表示 - **机器翻译**:多语言BERT共享参数矩阵$W_q,W_k,W_v$[^4]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

非常大模型

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值