IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> NLP预训练模型系列-BERT -> 正文阅读

[人工智能]NLP预训练模型系列-BERT

NLP预训练模型论文阅读系列文章目录

1. BERT

2. RoBERTa

3. GPT, GPT-2, GPT-3

4. BART

5. XLNet


目录

NLP预训练模型论文阅读系列文章目录

前言

一、从BERT开始

1. Abstract

2. Introduction

3. Related Work

4. BERT

Input/Output Representations:?

4.1 BERT预训练

5 Experiments

GLUE

SQuAD v1.1

SQuAD v2.0?

SWAG

6??Ablation Studies

总结


前言

NLP号称人工智能领域皇冠上的明珠。本系列文章会对NLP经典预训练模型系列论文做一个学习和记录。


一、从BERT开始

首先从具有深远影响意义的BERT开始。由于网上关于BERT的解读的文章和视频很多了,这里只是重新阅读一下BERT的原文然后做一下记录,记录一些之前没关注的细节即可。

1. Abstract

????????从摘要中,我们主要看到的是BERT的创新点是双向语言表示,使用这个预训练的BERT我们可以只添加一个输出层就能创建很多下游任务的sota模型,包括问答,语言推理。??

? ? ? ? BERT的全称是Bidirectional Encoder Representations from Transformers,可以得知BERT是一个Transformer Encoder。

2. Introduction

? ? ? ? 在Introduction中,论文提到,目前有两种在下游任务利用预训练语言表示的方法:feature-based和fine-tuning。

  • feature-based方法:如ELMo,使用任务相关的架构,将预训练的表示作为额外的特征。
  • fine-tuning based方法:如GPT,引入少量任务相关的参数,通过简单微调所有预训练的参数,在下游任务进行训练。

????????这两种方法使用同一个预训练目标函数,都是单向语言模型。这种方法对句子级别(sentence-level)的任务是次优的,并且对词汇级别(token-level)的任务,如问答,使用fine-tuneing based方法是非常有害的,因为两个方向的上下文都很重要。

? ? ? ? 因此,我们提出BERT来提升fine-tuning based方法,减轻了单向的限制。这是通过masked language model(MLM)预训练目标函数实现的(类似于完型填空)。即基于上下文预测随机mask掉的单词的vocab id。

? ? ? ? 除了MLM,我们还使用了next sentence prediction(NSP)任务来联合预训练文本对表示。

? ? ? ? 论文的contribution:

? ? ? ? (1)证明了双向预训练对语言表征的重要性

????????(2)证明了预训练的表示减少了针对特定任务的高度工程化的模型的需要。

? ? ? ? (3)BERT提升了11向NLP任务的sota。

code address:? https://github.com/google-research/bert

3. Related Work

????????相关工作包括:

  • 无监督的feature-based方法,如ELMo:上下文敏感的特征,双向LSTM,提升了问答,情感分析,命名实体识别任务。
  • 无监督的fine-tuning based方法,如OpenAI GPT:Left-to-Right LM, 自编码(auto-encoder)目标函数在GLUE中的很多句子级别的任务取得很好的效果。
  • 从有监督数据进行迁移学习:如自然语言推理,机器翻译任务,以及CV中的预训练模型4。

4. BERT

BERT模型图

?????????贴一下BERT的模型图,模型架构就是一个Transformer Encoder。分为两个步骤:预训练和微调。预训练阶段在无监督数据上训练,微调阶段时,首先用预训练参数初始化,然后所有参数在下游有监督数据上进行微调。注意,每个下游任务都有一个单独微调好的模型,每个任务的模型架构只有很小的区别,即分类头不同。

? ? ? ? BERT报告了两个不同的model size:(L是层数(Transformer blocks, ),H是Hidden Size,A是self-attention的head数)

  • BERT-base: L = 12, H = 768, A = 12, Total Parameters = 110M
  • BERT-large: L = 24, H = 1024, A = 16,?Total Parameters = 340M

BERT-base选择和GPT模型大小相同是为了方便比较。

Input/Output Representations:?

????????使用WordPiece embeddings, vocab size = 30000。每个sequence的开始是一个[CLS] token,这个token的最后一个隐藏状态作为做聚合的序列表示用于分类任务。句子对也被打包为一个sequence。使用[SEP]区分两个sentence。

? ? ? ? 如下图所示,Input Embeddings = Token Embeddings + Segment Embeddings + Posotion Embeddings。

4.1 BERT预训练

两个任务:

  • Masked LM:每个sequence中随机mask15%的 WordPiece tokens,然后预测masked words。这样做导致和下游任务有一个不匹配问题,因为fine-tuning时没有[MASK] token。因此为了缓解这个问题,我们不是总是replace words with [MASK], 而是先随机选择15%的token positions,然后对选中的position进行一下三种操作:(1)80%的时间[MASK] (2) 10%的视觉random token,10%的时间unchanged。然后Ti(即选中位置的最后一层输出的隐藏状态)被用于预测原来的token,使用交叉熵损失。
  • NSP: 许多下游任务是基于理解两个句子间关系的,如问答,自然语言推理,因此我们设置了这样一个next sentence prediction这样的二分类任务。我们选择句子A和句子B,50%的视觉B是真实的下一个句子(IsNext),50%的时间是一个随机的句子(NotNext), [CLS] token的最后一个隐藏状态C用于分类。

预训练数据:

BookCorpus(800M words)和English Wikipedia(2500M words)。Wikipedia只抽取了文本段,忽略了表格和标题。

5 Experiments

GLUE

GLUE是General Language Understanding Evaluation benchmark

batch size = 32, 每个GLUE task fine-tune 3 个epochs。

此外BERT-large在小数据集上有时不稳定。

GLUE测试结果如下表所示:

SQuAD v1.1

Stanford Question Answering Dataset(SQuAD v1.1)包含100k众包问答对,给定问题和来自Wikipedia的包含答案的文章,该任务是预测文章中的answer text span。

结果如下:

SQuAD v2.0?

SWAG

The Situations With Adversarial Generations (SWAG) dataset包含113k句子对对抗样本,用于品谷常识推理,结果如下:

6??Ablation Studies

消融实验主要评估了预训练任务的影响,Model Size的影响,使用BERT做feature-based的方法的实验说明BERT用于feature-based和fine-tuning based方法都很高效。

BERT论文链接


总结

以上对BERT原论文做了较为详细的阅读记录,确实多了解了一些之前没考虑过的细节。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-12-16 17:40:43  更:2021-12-16 17:41:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 0:17:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码