为什么说BERT是bidirectional

 

BERT是一个deep bidirectional Transformer。

 

Transformer可参考 https://baijiahao.baidu.com/s?id=1622064575970777188&wfr=spider&for=pc 非常详细易懂

Transformer是一个encoder-decoder框架。

 

编码器的结构:

其中,自注意力层在编码某个词的时候就会考虑这个词所在句子的所有词,所以在编码的时候,self-attention是bidirectional的。

 

解码器的结构如下:

在解码器中,self-attention的处理模式和编码器中的self-attention不同。在解码器中,self-attention只允许处理输出序列中更靠前的那些位置,把后面的位置隐去。就是相当于只处理这个词之前的词,所以,在解码器中的self-attention是unidirectional的。

 

 

但是,BERT在解码过程中会使用这个词前后的所有上下文,所以说是bidirectional Transformer.

 

原文中的说明是:

 

另,为什么使用self-attention?(下面是从attention as all you need https://arxiv.org/pdf/1706.03762.pdf里面翻译的)

1.考虑每层的计算复杂度

2.可以并行的计算

 

3.网络中长依赖的路径长度。影响学习这种长依赖的一个主要因素是在网络中向前和向后的信号需要穿过的路径的长度。输入序列和输出序列中的任何的位置组合之间的路径越短,就越容易学习到跨度长的依赖。

 

 

 

<think>嗯,用户想了解BERT的概念和原理。首先我需要回忆一下BERT的基本信息。BERT是谷歌在2018年提出的预训练模型,全称是Bidirectional Encoder Representations from Transformers。它主要用于自然语言处理任务,比如文本分类、问答系统等。 接下来是原理部分。BERT的核心是Transformer的编码器部分,特别是多头注意力机制。传统的语言模型比如GPT是单向的,只能从左到右或者从右到左处理文本,而BERT是双向的,能同时考虑上下文信息。这一点在预训练时的MLM(Masked Language Model)任务中体现出来,模型通过预测被遮蔽的词语来学习上下文关系。 然后,用户可能需要知道BERT的预训练和微调过程。预训练阶段使用大量无标注数据,通过MLM和NSP(Next Sentence Prediction)任务训练模型。微调阶段则用特定任务的标注数据调整参数,适应不同的下游任务。 还要提到BERT的输入表示,包括词嵌入、段嵌入和位置编码的组合。输入序列的开头是[CLS]标记,用于分类任务,句子之间用[SEP]分隔。这些细节对理解BERT如何处理输入很重要。 用户可能对BERT的优势感兴趣,比如双向上下文捕捉能力,以及其在不同NLP任务中的优异表现。不过也要提到缺点,比如计算资源消耗大,模型参数量多,可能不适合资源有限的环境。 需要确保回答符合格式要求,比如数学公式用$...$,独立公式用$$...$$。例如,注意力机制公式可能需要用独立格式。同时,生成相关问题时要围绕BERT展开,比如预训练任务、应用场景、优缺点比较等。 最后检查引用部分,用户提供的示例中没有具体引用来源,但需要按照要求添加引用标识。如果有参考内容,比如论文或书籍,应在相关位置加上[^1]等标识。 现在组织语言,确保结构清晰,分点解释,用中文回答,避免使用复杂术语,必要时举例明。可能还需要对比其他模型如GPT和Transformer,帮助用户更好理解BERT的特点。</think>### BERT介绍及原理 BERTBidirectional Encoder Representations from Transformers)是谷歌于2018年提出的预训练语言模型,通过双向上下文理解显著提升了自然语言处理(NLP)任务的性能[^1]。 #### 核心原理 1. **Transformer架构** BERT基于Transformer的编码器(Encoder)部分,通过多头自注意力机制捕捉长距离依赖关系。其核心公式为: $$ \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V $$ 其中,$Q$(查询)、$K$(键)、$V$(值)是输入矩阵,$d_k$为维度。 2. **双向上下文建模** 与传统单向模型(如GPT)不同,BERT通过遮蔽语言模型(Masked Language Model, MLM)任务预训练,随机遮蔽输入中15%的词汇并预测被遮蔽部分,例如: 输入:`巴黎是法国的[MASK]都` → 预测`[MASK]=首`。 3. **下一句预测(Next Sentence Prediction, NSP)** 模型学习判断两个句子是否连续,例如: - 句子A:`天气晴朗。` - 句子B:`我们去了公园。` 标签:`IsNext`。 #### 输入表示 BERT的输入由三部分组成: 1. **词嵌入**:将词汇转换为向量。 2. **段嵌入**:区分句子A和句子B(如问答任务中的问题和答案)。 3. **位置编码**:标记词汇位置信息。 输入格式示例: `[CLS] 巴黎 是 法国 的 首都 [SEP] 埃菲尔铁塔 在 这里 [SEP]` #### 应用与优化 - **微调(Fine-tuning)**:在预训练模型基础上,通过少量标注数据适配具体任务(如情感分析、命名实体识别)。 - **优势**:在GLUE、SQuAD等基准测试中刷新记录[^1]。 - **缺点**:参数量大(Base版1.1亿,Large版3.4亿),训练资源消耗高。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值