【NLP】 深入浅出解析BERT原理及其表征的内容

多模态融合系列学习【一】:2025年BERT最详细解析 万字长文精读BERT论文,想学BERT看着篇就够了,包懂的 阅读详情

本篇介绍目前NLP领域里影响力最大的预训练模型BERT。首先,大致介绍了BERT里有什么;接着,介绍了BERT的结构和其预训练的方式;最后,再总结BERT的表征的内容和分布。

作者&编辑 | 小Dream哥

1 BERT是什么?

了解自然语言处理的同学,应该没有不知道BERT的;甚至连很多自然语言处理圈外的开发的同学,都知道这个模型的厉害。不得不佩服谷歌的影响力和营销水平,当然,也确实是它的效果有这么棒。

这里就不再说BERT当年是怎么样横扫各大NLP任务榜单的故事了。毕竟现在出了个XLnet,各方面都比他强了一点点;而且,也开始有一些论文开始接BERT的短了。

那我们言归正传,现在来看看BERT究竟是什么,有什么样的结构,如何进行预训练等。

BERT,全称是Pre-training of Deep Bidirectional Transformers for Language Understanding。注意其中的每一个词都说明了BERT的一个特征。

Pre-training说明BERT是一个预训练模型,通过前期的大量语料的无监督训练,为下游任务学习大量的先验的语言、句法、词义等信息。

Bidirectional说明BERT采用的是双向语言模型的方式,能够更好的融合前后文的知识。

Transformers说明BERT采用Transformers作为特征抽取器。

Deep说明模型很深,base版本有12层,large版本有24层。

总的来说,BERT是一个用Transformers作为特征抽取器的深度双向预训练语言理解模型。

2 BERT的结构

640?wx_fmt=jpeg

上图是BERT的模型结构,它由多层的双向Transformer连接而成,有12层和24层两个版本。BERT中Transformer的实现与上一期讲的Transformer实现别无二致。

要理解BERT,最主要在于它预训练时采取的方法,下面我们做一个详细的讲解。

3 BERT预训练模式

(1) Input Representation

640?wx_fmt=png

我们先看看,BERT网络接受的输入是什么,如上图所示,BERT接受的输入包括三个部分:


1) 词嵌入后的Token Embedding,每次输入总以符号[CLS]的embedding开始,如果是两个句子,则句之间用[SEP]隔开。

2) 句子类别的符号

3) Position Embedding,这个与Transformer中的一致。

上述三个向量相加,组成BERT的输入。

(2) Masked Language Model

那么,BERT是通过什么样的任务进行训练呢?其中一个是Masked Language Model。BERT会在训练时遮住训练语料中15%的词(实际的MASK机制还有一些调整),用符号[MASK]代替,通过预测这部分被遮住的内容,来让网络学习通用的词义、句法和语义信息。

那么,该怎么理解Masked Language Model呢?我们不妨回想一下高中阶段都做过的英语完形填空,我们在做完形填空题目的时候,为了填上空格中的词,常常需要不断的看空格词的上下文,甚至要了解整个段落的信息。有时候,有些空甚至要通过一些英语常识才能得到答案。通过做完形填空,我们能够学习到英语中很多的词义、句法和语义信息。BERT的训练过程也类似,Masked Language Model通过预测[MASK]代替的词,不断的“对比”上下文的语义,句法和词义信息,从而学到了大量相关的知识。

哈哈,不知道BERT的提出者们是不是受中国英语试卷里完形填空题目的启发呢?

(3) Next Sentence Prediction


BERT的预训练过程,还有一个预测下一句的任务。就是输入两个句子,判断第二个句子是不是第一个句子的下一句的任务。这个任务是为像QA和NLI这样需要考虑句子间关系的下游任务准备的。


通过这个任务,BERT获得了句子级表征的能力。通常,BERT的第一个输出,即[CLS]对应的输出,就可以用来当作输入句子的句向量来使用。

4 BERT到底学到了什么?

(1) 在BERT在预训练过程中,学习到了丰富的语言学方面的信息。


短语句法的信息在低层网络结构中学习到;BERT的中层网络就学习到了丰富的语言学特征;BERT的高层网络则学习到了丰富的语义信息特征。


上述观点来自如下的论文,该团队用一系列的探针实验,佐证了上述的观点,对我们进一步了解BERT和更有效的使用BERT有一定的指导意义。

Ganesh Jawahar Benoˆıt Sagot Djam´e Seddah (2019). What does BERT learn about the structure of language?.

(2) BERT其实并没有学习到深层的语义信息,只是学习到了一些浅层语义和语言概率的线索?


最近有一篇论文"Probing Neural Network Comprehension of Natural Language Arguments",讨论BERT在Argument Reasoning Comprehension Task(ARCT)任务中是不是其实只是学习到了数据集中一些虚假的统计线索,并没有真正理解语言中的推理和常识。

事情大概是这样子,论文作者为了杀杀BERT的威风,挑了自然语言处理中比较难的任务ARCT,并且在测试数据中做了一些“手脚”,想试一试BERT的身手。所谓的ARCT,是一个推理理解的任务。如下图所示,展示了一个ARCT数据集中的例子。ARCT数据中有一个结论Claim,一个原因Reason,一个论据Warrant,还有一个错误论据Alternative。

640?wx_fmt=png

640?wx_fmt=png

如上图所示,是ARCT任务的通用模型结构,就是同时输入,Claim,Reason和两个Warrant,预测哪个Warrant是正确的。

论文作者首先在ARCT原始数据集上用BERT进行ARCT任务的预测,发现BERT的效果确实很好,达到71.6±0.04,跟没有接受过训练的人员成绩接近。

然后,研究人员研究测试数据集发现数据集里面其实隐藏了一些统计线索。简单的说就是,数据集里正确的Warrant里包含某些词的概率比错误的Warrant要高。例如,只要看到Warrant中包含not就预测其为正确的Warrant就能够达到60的正确率。

同时,研究人员还做了只把warrant和claim、warrant和reason作为输入来训练模型的实验。实验发现,BERT的效果也能达到70+。这就好像老师题目都还没有说完,学生就把答案写出来,这显然不太合理的,要么是学生作弊,要么是学生提前把答案背下来了。

最后,研究人员来了一招狠的,就是将数据集中的数据进行反转和一些词概率上的平均处理,如下所示:

640?wx_fmt=png

实验结果令人惊讶,BERT最好的效果只有53%,只比瞎猜好一点点。

所以,BERT的预训练过程到底学到了什么呢?

要准确回答这个问题并不容易。但通过上述两篇论文在两个维度上对BERT的解析,我们心里应该能够给BERT一个清晰的定位。BERT是一个强大的预训练,因其超大的参数量和较强的特征提取能力,能够从海量的语料中学习到一些语言学和一定程度的语义信息。但是,笔者认为,跟此前的所有NLP模型一样,它还远没有学习到语言中蕴含的大量的常识和推理。例如,利用BERT或许能够从"天下雨了",推断出“要带伞”。但是更深层次的,“要带伞是因为怕淋湿,淋湿了会感冒”这些BERT是很难学到的。

NLP的难处就在于,语言是高度精炼和情境化的。一句简单的话,可能需要丰富的知识才能理解。现在来看,预训练模型是一条有希望但漫长的道路。

总结

BERT是目前最火爆的NLP预训练模型,其基于MLM和双向语言模型和以Transformer作为特征抽取器,是其成功最主要的两个原因。我们先想想,BERT还有哪些地方可以改进的,下周我们介绍XLnet的时候,就可以更好的理解了。

读者们可以留言,或者加入我们的NLP群进行讨论。感兴趣的同学可以微信搜索jen104,备注"加入有三AI NLP群"。

下期预告:XLnet:BERT和GPT的结合

知识星球推荐

640?wx_fmt=png

扫描上面的二维码,就可以加入我们的星球,助你成长为一名合格的自然语言处理算法工程师。

知识星球主要有以下内容:

(1) 聊天机器人。考虑到聊天机器人是一个非常复杂的NLP应用场景,几乎涵盖了所有的NLP任务及应用。所以小Dream哥计划以聊天机器人作为切入点,通过介绍聊天机器人的原理和实践,逐步系统的更新到大部分NLP的知识,会包括语义匹配,文本分类,意图识别,语义匹配命名实体识别、对话管理以及分词等。

(2) 知识图谱。知识图谱对于NLP各项任务效果好坏的重要性,就好比基础知识对于一个学生成绩好坏的重要性。他是NLP最重要的基础设施,目前各大公司都在着力打造知识图谱,作为一个NLP工程师,必须要熟悉和了解他。

(3) NLP预训练模型。基于海量数据,进行超大规模网络的无监督预训练。具体的任务再通过少量的样本进行Fine-Tune。这样模式是目前NLP领域最火热的模式,很有可能引领NLP进入一个全新发展高度。你怎么不深入的了解?


转载文章请后台联系

侵权必究

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

往期精选

【自然语言处理(NLP)】基于Transformer架构的预训练语言模型:BERT 原理及代码实现 模型架构 - **基于Transformer编码器**:BERT仅使用Transformer的编码器部分,其多层双向Transformer编码器允许模型在处理每个单词时,同时考虑该单词的左右上下文信息,从而生成深度的双向语言表征。 - **多层结构**:基础版本的BERT有12层Transformer编码器层,而BERT - Large有24层,层数越多,模型的表达能力越强,但计算量也越大。 阅读详情

相关推荐

Python自然语言处理实战:BERT模型全解析与应用

自然语言处理(NLP)作为人工智能的重要分支,近年来随着深度学习的发展取得了突破性进展。其中,BERT(Bidirectional Encoder Representations from Transformers)模型的提出彻底改变了传统NLP任务的建模范式,成为众多下游任务的基石。BERT通过双向Transformer编码器结构,实现了对上下文语义的深层理解,相较于Word2Vec等静态词向量和RNN/CNN等单向或局部建模方法,具备更强的语义捕捉能力。其核心优势在于:- 利用。

weixin_33193177的博客 1391

BERT.

BERTBERTBERT输入输出表征BERT预训练篇Masked LMNSPBERT损失函数BERT细节BERT输入BERT是怎么用Transformer的BERT问题 BERT BERT是基于transformer的双向编码器,旨在通过在上下文中共有的条件计算预先训练来自无标签文本的深度双向表示。 BERT的三个关键点: 基于transformer结构(encoder端) 大规模语料预训练 深度双向模型,即BERT可以在训练阶段从所选文本的左右上下文中汲取信息。 BERT输入输出表征 BERT输入:

gg13213的博客 905

工业级RFID读写器|识读器CK-LR08-E00通过以太网TCPIP自由协议与汇川PLC控制器联机与通讯实例方案

本文以工业级RFID读写器CK-LR08-E00和汇川PLC控制器H5U是实例介绍工业级RFID读写器CK-LR08-E00通过以太网TCPIP自由协议与汇川PLC控制器联机与通讯方案。

华翔天诚科技 4372

BERT的3个嵌入层的作用以及实现

下面链接会介绍BERT的3个嵌入层的作用以及实现: 链接:https://www.cnblogs.com/d0main/p/10447853.html

weixin_43646592的博客 676

炼丹-Pyecharts: JupyterLab无法render_notebook

炼丹-Pyecharts: JupyterLab无法render_notebook问题描述Jupyter-Lab 环境下render_notebook显示空白 问题描述Jupyter-Lab 环境下render_notebook显示空白 首先需要使用pyecharts自带的config来申明一下使用pyecharts的运行环境 from pyecharts.globals import Curre...

MichaelZzzzz的博客 4689

Windows 10 本地开发环境:用 ShardingSphere-Proxy 5.4.1 快速搭建 MySQL 分库分表测试环境

本文详细介绍了在Windows 10系统中使用ShardingSphere-Proxy 5.4.1快速搭建MySQL分库分表测试环境的完整教程。从环境准备、MySQL配置到ShardingSphere-Proxy的核心设置,逐步指导开发者完成本地开发环境的搭建,并提供了分片策略详解和常见问题排查方法,帮助开发者高效验证分库分表功能。

weixin_28366053的博客 214

从源码层面,深入理解 Bert 框架

看了好多 Bert 的介绍文章,少有从源码层面理解Bert模型的,本文章将根据一行一行源码来深入理解Bert模型 BertBertModel 类的源码如下(删除注释) class BertModel(BertPreTrainedModel): def __init__(self, config): super(BertModel, self).__init__(config) self.embeddings = BertEmbeddings(config)

lch551218的博客 3134

LabVIEW 调用MATLAB 进行图像处理的实现

程机械及设备的变形、振动、冲击、粗糙度、刚度和强度等特性,还可用在土木结构、水利设施的变形测量[4][5]。因此,该技术在机械、土木、水利、电器、航空航天、兵器工业及生物医学等领域的检测中具有非常重要的地位。将物面前方空间的散斑用摄像设备记录下来,当物体运动或由于受力而变形时,这些随机分布的散斑图也随之在空间按一定的规律运动,因此能用记录的散斑图在计算机上分析物体的运动和变形,这就是电子散斑技术。当物体的漫反射表面被激光照射时,漫反射的光波在物体表面的前方相互干涉,由于漫反射光的。

qq_37971227的博客 3874

#深入理解# Bert框架原理

Bert 全称 Bidirectional Encoder Representations from Transformers ,从全称可知,Bert内部使用的是一个双向的transformer的encoder结构。 此前将预训练的语言模型应用到NLP任务主要有两种策略,一种是基于特征的语言模型,如ELMo模型;另一种是基于微调的语言模型,如OpenAI GPT。这两类语言模型各有其优缺点,而BERT的出现,似乎融合了它们所有的优点,因此才可以在诸多后续特定任务上取得最优的效果。 1. Bert 的网络结构

lch551218的博客 1778

量子-经典混合架构与动态QUBO建模

量子-经典混合架构与动态QUBO建模的结合,是当前量子计算与经典计算融合领域的前沿方向。通过将量子计算的并行性与经典计算的灵活性结合,该技术为解决复杂动态优化问题(如实时调度、金融投资组合优化、电力系统控制等)提供了全新的方法论。:将发电机组调度分解为QUBO(启停决策)与非QUBO(功率分配)子问题,通过3块ADMM协调;c_i(t) $随外部环境(如电力需求、市场价格)动态调整。量子-经典混合架构与动态QUBO建模的结合,标志着优化计算从。:每分钟根据市场波动调整QUBO的收益率-风险系数;

百态·数智思维 | 聚焦大数据、量化与未来AI 1334

通用定时器脉冲计数实验(STM32CubeMx配置)

通用定时器脉冲计数实验

a1169511636的博客 5510

带你搞懂什么是BERT模型!就这一篇就够了!

BERT是一个预训练的语言表征模型。它强调了不再像以往一样采用传统的单向语言模型或者把两个单向语言模型进行浅层拼接的方法进行预训练,而是采用新的masked language model(MLM),以致能生成深度的双向语言表征。BERT论文发表时提及在11个NLP(Natural Language Processing,自然语言处理)任务中获得了新的state-of-the-art的结果,令人目瞪口呆。

m0_59235245的博客 984

基于YOLOv8的包装商品智能检测系统完整指南—含论文、代码

《基于YOLOv8的包装商品智能检测系统》摘要: 本文提出了一套完整的零售商品自动检测解决方案,利用YOLOv8深度学习框架实现高精度、高效率的商品识别。系统针对SKU110K大规模商品数据集(含11,762张高密度货架图像)进行优化,包含数据预处理、模型训练、推理检测和可视化界面全流程。详细介绍了从CSV标注到YOLO格式的转换方法、环境配置指南及技术架构设计。该系统可应用于智能零售、物流仓储等多个场景,有效解决人工盘点效率低、误差大的痛点。实验表明,该系统具备毫秒级检测速度和批量处理能力,为商业数字化转

FJN110的博客 209

【NLP】一文汇总自然语言处理主要研究方向

NLP专栏已经发了相当数目的文章,从基础的机器学习到最新的预训练语言模型;从简单的文本分类到复杂的信息抽取、聊天机器人。今天我们做一个回顾和总结,聊聊我们从事的自然语言处理研究或者工作,...

hacker_long的专栏 1万+

39、信号流图:解决线性代数方程组的图论方法

本文介绍了信号流图理论在求解线性代数方程组中的应用,重点阐述了Coates方法和Mason方法的原理、步骤及对比分析。通过图论视角,将矩阵运算转化为对有向图结构的分析,利用1-因子、1-阶连接、前向路径和反馈回路等概念,推导出方程组解的拓扑公式。文章结合具体实例演示两种方法的计算过程,并总结其在电路分析、控制系统和通信系统等领域的拓展应用,展示了信号流图理论的直观性与有效性。

pear55的博客 89

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

BERT模型原理的详细介绍

【NLP】Google BERT模型原理详解 - rumor的文章 - 知乎 1. BERT模型 BERT的全称是Bidirectional Encoder Representation from Transformers,即双向Transformer的Encoder,因为Decoder是不能获要预测的信息的。 BERT = Encoder of Transformer 模型的主要创新点都在pre-train方法上,即用了Masked LM和Next Sentence Prediction两种方法分别捕捉词

weixin_40444270的博客 9170

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【收藏学习】BERT模型全解析:从原理到应用的NLP革命

BERT 是一个开源机器学习框架,用于更好地理解自然语言。BERT 是的缩写,顾名思义,BERT基于 Transformer 架构,在训练阶段使用编码器表示法从标记的左右两侧学习上下文信息。这就是它被称为双向编码表示的原因。我们不妨来看个例子:从上面的例子中我们可以看出,单词bank在两个句子中的含义是不同的。因此,如果模型不考虑双向的语境,那么至少会在其中一个句子中出错。

优快云_224022的博客 1107

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

BERT模型:基本原理及在自然语言处理中的应用

BERT模型是一种基于Transformer结构的预训练语言模型,旨在通过在大规模无标注文本数据上的训练,学习语言的深层双向表征。其全称“Bidirectional Encoder Representations from Transformers”揭示了其关键特性:“Bidirectional”表示其双向性,即模型能够同时考虑文本的前向和后向信息;“Encoder”表示BERT是一个编码器模型;“Representations”指模型生成的词向量表示;“Transformers”则是指模型的核心结构。

Chujun123528的博客 1327

常用自然语言处理NLP模型原理

一、文本处理流程 文本清洗:html标签与转义字符、多余空格、根据需要清除邮箱、账号、网址、手机号、作者信息等信息 预处理:去除停用词、加载自定义词库(实体词库、垂直领域词库)、分词 特征提取:关键词、实体词 建模:文本分类、文本聚类、情感分析、标签提取 优化:停用词库与自定义词库清洗与丰富、文本标签清洗、模型调整 效果评估:满足线上使用要求,准确率、速度,上线部署 二、NLP算法 1、TF-IDF 1)原理:词频-逆文档频率;一种用于信息检索

天真不无邪,hello和world 6416

一文读懂BERT(原理篇)

一文读懂BERT(原理篇) 2018年的10月11日,Google发布的论文《Pre-training of Deep Bidirectional Transformers for Language Understanding》,成功在 11 项 NLP 任务中取得 state of the art 的结果,赢得自然语言处理学界的一片赞誉之声。 本文是对近期关于BERT论文、相关文章、代码进行学习后的知识梳理,仅为自己学习交流之用。因笔者精力有限,如果文中因引用了某些文章观点未标出处还望作者海涵,也希望

周红伟讲AI 4480

NLP大魔王 · BERT 全解读

‍作者|Chilia整理|NewBeeNLP‍首先,请阅读先修知识:深度学习基础 | 从Language Model到RNN深度学习基础 | RNN家族全面解析深度学习基础...

Kaiyuan_sjtu的博客 3010

自然语言处理从零到入门 BERT

BERT的全称是Bidirectional Encoder Representation from Transformers,即双向Transformer的Encoder,因为decoder是不能获要预测的信息的。模型的主要创新点都在pre-train方法上,即用了Masked LM和Next Sentence Prediction两种方法分别捕捉词语和句子级别的representation。从现在的大趋势来看,使用某种模型预训练一个语言模型看起来是一种比较靠谱的方法。

UK - UofL HW - SDE 1388

【大语言模型系列】讲人话,带你看懂BERT核心原理

BERT 作为 NLP 领域的里程碑模型,其 “预训练 + 微调” 模式与动态词向量机制影响深远。此篇文章将详细拆解 BERT 结构和计算过程,清晰覆盖 Embedding 层、自注意力等关键模块。而且比起其他博客,直击技术迭代痛点 —— 对比当前主流的 GPT,明确指出多种BERT用到但目前已淘汰的方法,包括后来BERT模型的自行改进,兼具实用性与时效性,是快速理解 BERT 核心与技术趋势的优质参考。

Olivia_00_的博客 1478
上一篇: 【完结】中国12大AI研究院,高调的低调的你pick谁
下一篇: 【每周NLP论文推荐】 NLP中命名实体识别从机器学习到深度学习的代表性研究
言有三
言有三 领域专家: 人工智能技术领域 领域专家: 人工智能技术领域
博客等级 码龄15年 3635粉丝 976原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

言有三

三人行必有AI

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

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

打赏作者

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

抵扣说明:

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

余额充值