Re63:读论文 BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

BERT预训练模型:深度双向Transformer在语言理解中的应用与实验
本文介绍了BERT模型,一种预训练的深度双向Transformer,用于语言理解和多种任务的微调。文章探讨了BERT的结构、预训练目标(MLM和NSP)、以及在文本分类、抽取式QA和常识推理任务中的性能。

诸神缄默不语-个人优快云博文目录
诸神缄默不语的论文阅读笔记和分类

论文全名:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
ArXiv下载地址:https://arxiv.org/abs/1810.04805

官方GitHub项目:google-research/bert: TensorFlow code and pre-trained models for BERT

本文是2019年NAACL论文。提出了BERT……别的背景懒得介绍了。

Transformer基础可参考我撰写的博文:Transformer原理纯享版

调用BERT的代码我写过好几篇博文了,看目录吧。
原版BERT是英文模型,但是现在有很多语言的BERT模型了。

1. 背景

当时的预训练模型已经取得了显著成效。分为两种:

  1. feature-based
    ELMo
    用预训练表征作为特征,对不同的任务使用不同的模型结构
  2. fine-tuning
    OpenAI GPT(Re45:读论文 GPT-1 Improving Language Understanding by Generative Pre-Training
    模型包含少量task-specific(就是你看图能发现GPT-1的下游任务微调还是有点复杂,不能像BERT、GPT-2这样一个模型干一切,就只换个输出头(T5和GPT-3都不换了))。在下游任务微调所有参数

这两种模型预训练时的损失函数都是单向语言模型,学习生成式语言表征。总之本文写了一些作者觉得这种方法的不好之处,GPT只用到前文表征,ELMo只对2个反向的、分别训练的单向LM的表征结合起来(BERT不采用类似的结构,因为缺点:1. 代价高 2. 对QA不直觉 3. 表现力不够)。

预训练语言模型表示向量:

  1. 无监督基于特征((非)基于神经网络)的词向量→粒度更粗的表征
    ElMo  context2vec  maskgan
  2. 无监督基于微调
    GPT-1
  3. 从有监督数据迁移学习(经典ImageNet)

BERT生成的token表征是动态的。它共享/迁移的是模型的架构和参数/权重。

2. BERT整体结构

在这里插入图片描述

在这里插入图片描述

BERT可以获取双向的上下文信息,只需要在预训练模型的基础上接一个输出头就可以应用于不同的任务。

预训练 + 微调 范式
预训练损失函数是平均MLM似然的总和 + NSP似然的平均值

模型是多层双向Transformer encoder

L:Transformer block数
H:隐藏层维度
A:attention头数
BERT BASE _{\text{BASE}} BASE L=12, H=768, A=12, Total Parameters=110M
BERT LARGE _{\text{LARGE}} LARGE L=24, H=1024, A=16, Total Parameters=340M
当年这个世界多么淳朴,大模型只有340M……

太常识的东西我就不写了。

2.1 输入/输出表征

分词:WordPiece

输入sequence
可以是一个sentence或者一个sentence对

开始:[CLS] 用于序列分类任务

句子对分隔符:[SEP]
并增加可学习的segment embedding:来区分每一个token属于哪个句子(transformers包中的token_type_ids入参)

广义来说所有输入都是句子对,如果输入单一句子(用于做文本分类或序列标注)可以视为degenerate text-∅ pair

输入表征由三部分加总:
在这里插入图片描述

输出中,token表征接输出层解决token-level任务,[CLS]表征接输出层解决序列分类任务(蕴含任务、情感分析等)

在这里插入图片描述

2.2 预训练目标:MLM

masked language model

完形填空 / Cloze task

随机选择15% token,[MASK] 80% 预测原token,10%随机替换成别的token,10%不变

2.3 预训练目标:NSP

next sentence prediction

[CLS]表征做二元分类任务

理解句子对之间的关系

3. 实验

实验在多个任务上进行,整体表现都挺好的,我懒得详写了。

文本分类任务

在这里插入图片描述

抽取式QA

在这里插入图片描述

引入 S S S E E E 选出概率最大的 start / end token 位置:在这里插入图片描述
span得分:在这里插入图片描述
选择所有 j ≥ i j≥i ji的span中得分最高的座位预测结果。
训练目标函数是 start / end token 位置对数似然和。

非抽取式QA也用抽取式方案硬上:
在这里插入图片描述

常识推理 / 多选题

在这里插入图片描述

给出4个由given sentence和possible continuation联接成的sequence,用共同vector与[CLS]表征点积→softmax得到选项得分

消融实验

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

模型尺寸的影响

在这里插入图片描述

Feature-based Approach with BERT

在这里插入图片描述
直接用BERT输出作为表征来训练Bi-LSTM。
直接用BERT时,用第一个sub-token的表征作为整个token的表征。

参考资料

  1. BERT论文翻译_bert 论文中文-优快云博客
### 关于BERT模型论文下载与阅 #### BERT模型的核心概念 BERTBidirectional Encoder Representations from Transformers)是一种基于Transformer架构的预训练语言表示模型[^3]。它通过引入掩码语言模型(Masked Language Model, MLM)和下一句预测任务(Next Sentence Prediction, NSP),实现了深度双向的语言理解能力。 #### 论文获取方式 BERT模型的原始论文由Google Research团队发布,题目为《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》。可以通过以下途径获取该论文: 1. **arXiv**: 原始版本通常可以在arXiv网站上找到,地址为 https://arxiv.org/abs/1810.04805。 2. **学术搜索引擎**: 使用Google Scholar或其他学术资源平台搜索“BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding”,可以找到PDF链接。 3. **官方文档**: Google AI Blog提供了详细的背景介绍和技术细节[^5]。 #### 阅建议 为了更好地理解和掌握BERT模型的内容,可以从以下几个方面入手: - **基础理论**: 学习Transformer架构的工作原理以及其在自然语言处理中的应用[^1]。 - **核心创新点**: - 双向语言建模的重要性及其相对于单向模型的优势[^4]。 - 掩码语言模型的具体实现机制。 - **实验部分**: 查看作者如何验证模型的有效性,并了解其在不同NLP任务上的表现提升情况。 以下是Python代码片段用于加载并测试已有的预训练好的BERT模型: ```python from transformers import BertTokenizer, BertModel tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') model = BertModel.from_pretrained('bert-base-uncased') text = "Replace me by any text you'd like." encoded_input = tokenizer(text, return_tensors='pt') output = model(**encoded_input) print(output.last_hidden_state) ``` 此脚本展示了如何利用Hugging Face库快速导入标准版的小规模BERT模型来进行实际操作演示。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

诸神缄默不语

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

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

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

打赏作者

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

抵扣说明:

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

余额充值