BERT学习笔记(4)——小白版ELMo and BERT

19 篇文章 10 订阅
订阅专栏
16 篇文章 3 订阅
订阅专栏

由于我没有读过原论文,该博客写的内容几乎来自于李宏毅老师的BERT课程,链接放在的最后。该博客用于梳理笔记,以便后面复习的时候使用。如果后面读了相关论文或者有了新的理解会进行更改补充。
由于是小白版本的内容,所以不会涉及到任何公式,仅用于理解该模型的作用。

1 ELMo

上文中介绍了contextualized word embedding,简单来说就是同样的词在不同的语境中可能会有不同的含义。之前的pre-train model并没有考虑这种情况,而是一个词一个embedding,就导致了在不同的语境环境中表现能力有所欠缺。而contextualized word embedding就可以很好地避免这个问题,给每个token在不同语境中一个embedding,从而使得表达相同意思的时候有相近的embedding。链接如下: BERT学习笔记(3)——self-supervised learning and pre-train model。

ELMo(Embeddings from Language Model)就是contextualized word embedding的pre-train model。ELMo是一个RNN based model(实际上是使用的LSTM,但是LSTM是RNN的变体嘛),其思想就是将一个词语前后的上下文信息编码到该词语的词向量中。其编码的方式就是使用上下文预测下一个出现的词语。由于单个LSTM只能读取目标词语前面或者后面的信息,所以需要双向的LSTM才能够实现读取到目标词语前后的信息:
ELMo_1

对于我们需要预测的 退了 而言,正向的RNN读取到 退了,这时需要预测 退了 通过RNN后会吐出一个向量,这个向量就是正向的LSTM输出的 退了 的向量。反向的LSTM读取到 退了,这时需要预测 潮水退了 通过RNN后会吐出一个向量,这个向量就是反向的LSTM输出的 退了 的向量。接着将正向与反向的 退了 的向量拼接在一起,就得到了 退了 的embedding。

但是由于ELMo有很多层双向LSTM,每一层都会输出一个拼接的 退了 的向量,所以需要考虑如何取舍这些向量。
ELMo_2
在ELMo中,对这群向量的做法是,将每一层输出的向量乘上不同的权重后再加起来作为这个词的embedding。
ELMo_3
这个权重是与下游任务放到一起训练的。右图是论文中在不同下游任务上对这个权重的大小的一个可视化。也就体现了在不同的下游任务中,不同层输出的权重是不同的。

但是ELMo有个很大的问题,就是尽管使用了双向LSTM,能够读到目标词语的上文与下文,但是针对单向LSTM是无法读取到下一部分的信息的(就是正向LSTM在预测目标词语时无法读取到后文,反向LSTM在预测目标词语时读取不到上文)。而这个问题BERT就解决了。

2 BERT

BERT (Bidirectional Encoder Representations from Transformers)就解决了ELMo中单个模块无法通读全文的问题。

BERT是一个自监督的模型,无需任何标注数据就可以自己学习。其实质就是一个Transformer的Encoder,输入一个sequence,输出一堆embeddings。
BERT_1
在处理中文的时候,大家习惯性的操作可能是jieba分词等工具先将一句话给分词后再输入到model中,但是这样做有个问题就是中文中词语的数量是很多的,就会导致向量空间很大。所以输入的话可以有效缓解这个问题。

2.1 Why Encoder?

那么再说到为何要使用Encoder,由于刚刚也提到说ELMo的单个模块无法通读全文,但是self-attention却可以。在self-attention中,token与token之间的位置差异就被抹除了(在不考虑positional encoding的情况下),而且对于模型而言,可以一次性的读取到一个sequence的内容。而Encoder中正好就用的是Multi-Head attention,就解决了这个问题。

2.2 BERT如何做pre-train

接着就是BERT是如何做预训练。由于BERT是个自监督模型,那么肯定需要针对输入的数据生成训练数据与标签。其任务与ELMo差不多,只不过ELMo是通过上文预测下一个文本,而BERT则有两种任务。

2.2.1 Masked LM

BERT预训练的第一个任务叫Masked LM,就是输入一堆文本,将其中部分词汇给抠掉(文章中是15%),根据上下文来预测这个抠掉的词是啥。这个抠的方式有很多,比如直接替换为一个[MASK]标签,或者换成另外一个错误的字,再或者不做任何操作。

Google并没有在每次都mask掉这些单词,而是在确定要Mask掉的单词之后,80%的时候会直接替换为[Mask],10%的时候将其替换为其它任意单词,10%的时候会保留原始Token[1]。

  • 80%:my dog is hairy -> my dog is [mask]
  • 10%:my dog is hairy -> my dog is apple
  • 10%:my dog is hairy -> my dog is hairy

Masked LM
经过BERT后,需要预测的token会吐出一个vector,将其输入到一个线性分类器里面,预测这个位置出现的token的概率。再将这个概率与之前掩盖的时候的ground truth作交叉熵得出损失。这里需要注意两个点:

  1. 由于分类器是线性的,所以需要BERT吐出很好的representation;
  2. 为何是个多分类器?这是因为输出的结果是整个词表中出现的词的概率,经过softmax后提取出其中概率值最大的那个数,所以是个多分类任务。

其实在这方面,BERT和CBOW挺像的,只不过一个用的是self-attention看的整句话,而CBOW只有一个滑动窗口。这毕竟也受限于当年的计算力不够。

2.2.2 Next Sentence Prediction

BERT除了Masked LM以外,还在预训练的时候有另外一个操作:Next Sentence Prediction(两者是同步进行的,虽然后面论文证明了Next Sentence Prediction是没啥效果的)。其核心就是将两句话拼接在一起,中间用一个[SEP]标签分隔,句首再用一个[CLS]标签做分类。由于训练语料中可以明确知道两句话是不是上下句,所以可以很容易得出Ground Truth。而BERT训练的就是判断两句话是否是连贯的,如果连贯,那么[CLS]在经过一个线性二分类器后,输出YES,否则输出NO
Next Sentence Prediction

2.3 BERT的下游任务

2.3.1 文本分类任务

这类任务主要就是给输入的文本一整个标签,比如情感分析是给整个输入一个积极、消极、中性等标签。

其使用方式就是在文本前加入一个[CLS]标签,这个标签经过BERT后的输出放入到一个线性的分类器中,输出类别。这个线性分类器是随机初始化的,需要进行训练,而训练过程中可以对BERT的参数进行微调。
How to use BERT_1

2.3.2 token分类任务

token分类任务和之前的任务类似,只是说之前的文档分类只需要对[CLS]标签做分类,而token分类是需要对每一个token做分类。
How to use BERT_2

2.3.3 两句话分类任务

这个任务主要就是将两句话放在一起,对两句话做一个分类任务。就比如NLI任务,给定前提,给定假设,判断假设是否正确。其和第一个任务类似,只不过是两句话而已。
How to use BERT_3

2.3.4 其他任务

由于其他任务不是我的研究方向,所以这里不多赘述,如果有兴趣可以看下面的链接。

3 GPT

GPT (Generative Pre-Training)这里顺带提一句,为什么说顺带,主要是因为这东西毕竟太庞大了,也不是我们这种穷人用得起的,大概了解下就好了……

BERT是Encoder,而GPT则是Decoder,其任务就是输入上文,预测下文。其Decoder就是采用的Masked Multi-Head Self-attention,输入的时候是看不到后文的。
GPT

4 参考

[1] 大师兄. 词向量之BERT[EB/OL]. (2021-04-09)[2021-09-01]. https://zhuanlan.zhihu.com/p/48612853
[2] 越前小龙马. 李宏毅-BERT and its family - ELMo, BERT, GPT, XLNet, MASS, BART, UniLM, and more[EB/OL]. (2020-05-07)[2021-09-01]. https://www.bilibili.com/video/BV1eV411d7Kp?p=1
[3] zxx88880. 台大教授 李宏毅 bert[EB/OL]. (2019-07-05)[2021-09-01]. https://www.bilibili.com/video/BV1C4411A78Z?from=search&seid=12011319225852042827
[4] 爱学习的凉饭爷. 李宏毅机器学习2021课程 《自监督学习》合集 从芝麻街开始的故事[EB/OL]. (2021-04-17)[2021-09-01]. https://www.bilibili.com/video/BV1Gf4y1p7Yo?p=1

print ("BERT 论文笔记")
01-18
### BERT论文笔记 #### 前言 BERT(Bidirectional Encoder Representations from Transformers)是一项开创性的自然语言处理(NLP)技术,它基于Transformer架构实现了深度双向表征的预训练,极大地推动了NLP领域...
小白创作的第一个bert模型的微调过程
小姑仔的博客
04-24 741
作为一个nlp小白,我在入门的过程之中,遇到了很多的困难和障碍,比如刚开始不知道在哪下载预训练模型文件,不知道到哪去阅读bert模型的源代码,经历了学习之后,如今我已经算是简单的入门了。为了帮助新手更好地入门bert模型,我自己写了一个bert模型的简洁的源代码,方便新手学习 bert分为预训练和微调过程,这里我们只学习微调过程 为了简化操作,只需要进行如下的过程 安装tensorflow==2.x本之后 安装库的指令 pip install bertforyou==1.1.9 接下来运行下面的对应代码
史上最小白Bert详解
热门推荐
Tink1995的博客
04-06 1万+
1.前言
【研一小白的白话理解】BERT
weixin_46235765的博客
10-04 1484
BERT 上一篇博客通过一篇论文已经介绍了迁移学习和计算机视觉,然而迁移学习自然语言处理(NLP)同样很强。通过迁移学习训练出来的模型叫做预训练模型,预训练模型首先要针对数据丰富的任务进行预训练,然后再针对下游任务进行微调,以达到下游任务的最佳效果。 1.预备知识 1.1 word2vec(词向量模型) word2vec可以分为两部分:模型与通过模型获得的词向量。 在Word2vec出现之前,文本表示一般只用one-hot独热编码或者直接用整数编码,这种做法太拉跨了。word2vec是用一个一层的神经网络
小白 使用Bert步骤记录
yiyao996的博客
11-03 1098
Google开源了多个本的BERT预训练模型。针对语言主要分为中文、英文和多语言,针对非中文区分大小写的Cased本,其中Base本网络规模比Large小。选择中文训练模型并下载。BERT-Base, Chinese 语言种类:中文 网络结构:12-layer, 768-hidden, 12-heads 参数规模:110M ...
小白实现Bert(原理+代码详解)【挖一个坑】
后羿的和平鸽
10-24 2475
小白实现Bert(原理+代码详解) 一、什么是Bert Bert是一种非常出名的预训练模型,在很少数据的情况下也有很好的表现。 参考链接:Bert(一)介绍和使用 1、Bert模型结构 bert训练的两个主要任务是 预测被 [mask] 的单词, 相当于完形填空 预测输入的两个句子是否相邻 这两个任务就对应了两个损失,因此 bert 是最小化这两个损失函数的和来训练模型的。 2、bert的输入 ...
Transformer,BERT,and GPT
最新发布
05-02
书籍
bert4keras.zip
06-21
7. **优化和扩展**:`bert4keras`可能还支持模型的优化,如使用GPU加速、动态调整batch size、设置学习率策略等。此外,用户可能还可以根据需求添加自定义的预训练模型或扩展功能。 8. **社区支持**:这样的库通常...
NER笔记摘抄(包括Transfromer、BERT、NER)
05-11
随着深度学习的发展,尤其是Transformer和BERT等模型的出现,NER技术取得了显著的进步。 Transformer模型由Vaswani等人在2017年提出,彻底改变了序列建模的方式。传统的RNN(循环神经网络)和LSTM(长短时记忆网络...
BERT中文翻译PDF1
08-03
与以往的预训练模型如ELMo和OpenAI GPT相比,BERT的创新之处在于克服了传统单向语言模型的局限性,允许模型在预训练阶段同时考虑上下文的前后信息。 在传统的预训练语言模型中,如OpenAI GPT,由于模型结构的限制...
[新手小白 Transformer + BERT 最细致详解]
weixin_43639369的博客
06-17 648
[新手小白 Transformer + BERT 最细致详解]1.动机2.资料3.笔记 1.动机 这两天参加了某线上教程的Transformer + Bert的专题,对Transformer的具体结构、训练方式有了更加细致深入的理解,以前看代码都看不懂。 感觉自己还是很适合去听大佬的讲解,靠自己钻效率有点低 2.资料 包含讲解视频(讲的还可以的)以及配套资料,还有自己的笔记PDF(字丑) 3.笔记 ...
小白对于BERT细节的一点理解
BMSW的博客
11-10 3853
小白对于BERT细节的一点理解 工作以后跟着同事学习NLP相关内容,之前的一些层归一化、归一化等相关知识还不牢固,希望在周末闲暇时间多多弥补,最近看了BERT的相关内容,在此对其进行记录整理,以便于日后复习回顾,记录有不正确的地方,还请指出。 初相识 最初在博客看过对于BERT的讲解,阅读原始论文,发现BERT主要包括以下三点内容: 1、使用Transformer的进行双向训练。 2、输入向量包括...
完全小白如何运行人生中的第一个Bert文本分类代码
诸神缄默不语的博客
03-20 1537
本文介绍Bert文本分类入门
Bert系列之——原理介绍
艰难困苦,玉汝于成。
11-17 1759
目录前言总结 前言 在开始Bert学习之前,首先应该具备Transformer的基础,因为Bert就是基于Transformer的模型,如果还没没有了解Transformer模型,可以查看我的上一篇文章链接: Transformer笔记. # 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 总结 提示:这里对文章进行总结: 例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷.
李宏毅自然语言处理——ELMO/BERT/GPT简介
日积月累,天道酬勤
08-14 2709
本文介绍如何让机器理解人类语言,主要是介绍了ELMO、BERT和GPT。
12层的bert参数量_小白Bert系列-albert
weixin_39723248的博客
11-21 1505
albert https://arxiv.org/pdf/1909.11942.pdf主要几点:1.词嵌入部分进行矩阵分解减少参数量2.block参数共享较少参数,更好鲁棒性3.改用sop学习句子顺序关系4.去掉dropout,增加数据源还有一点 ngram masking 意思就是之前任务中都是masking单个字,ngram相当于是短语,任务更难了。1.矩阵分解在bert模型中,词嵌入向量部分...
人工智能 自然语言处理 BERT、GPT、ELMO对比学习简记
Blog of pengxiaoxing
03-27 1184
ELMo根据上下文动态调整word embedding, 可以解决多义词的问题.GPT使用了Transformer提取特征, 使得模型能力大幅提升.第三种方式就是前后分别保留一部分token, 总数是510.BERT预训练模型所接收的最大sequence长度是512。GPT只使用了单向Decoder, 无法融合未来的信息.第一种方式就是只保留前面510个token.第二种方式就是只保留后面510个token.bert + 迁移学习 简单练习代码。
手把手教你用ELMo模型提取文本特征(附代码实现细节)
longmaohu的博客
12-08 3208
说明:本文是A Step-by-Step NLP Guide to Learn ELMo for Extracting Features from Text的译文以及代码实现细节说明。文中宋体为译文,楷体为代码实现说明。
图解BERTELMo
Rock_y的博客
09-05 399
原文链接:The Illustrated BERT, ELMo, and co. (How NLP Cracked Transfer Learning) 作者:Jay Alammar BERT论文地址:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 前言          2018年可谓是自然语言处理(NLP)的元年,在我们如何以最能捕捉潜在语
写文章

热门文章

  • 高等数学学习笔记(1)——微分方程解法公式 124171
  • 强大且超实用的论文阅读工具——ReadPaper 41685
  • Word如何交叉引用以及交叉引用参考文献后使用逗号分隔 35190
  • CMT 注册——Google Scholar Id,Semantic Scholar Id,和 DBLP Id 29813
  • 初学卷积——卷积的计算过程及应用场景 24127

分类专栏

  • 大语言模型 1篇
  • PyTorch 15篇
  • 数学 26篇
  • Latex 5篇
  • 预训练语言模型 2篇
  • Django 4篇
  • TensorFlow 4篇
  • 数据集 1篇
  • 社会网络 3篇
  • 信息传播 2篇
  • 舆情引导 1篇
  • 学习经验 18篇
  • 深度学习 16篇
  • 神经网络 11篇
  • 情感分析 12篇
  • 机器学习 6篇
  • nlp 19篇
  • python 22篇
  • 爬虫 1篇
  • 数据挖掘 1篇
  • 数据结构与算法 5篇

最新评论

  • 机器学习学习笔记(1)——错误率、精度、准确率、召回率、F1度量

    是小白_鸭: 准确率和精度的概念搞反了

  • GloVe原理与公式讲解

    立青-Lam: typo: 应该是 (i-window, i, i+ window)

  • GloVe原理与公式讲解

    立青-Lam: 5. 推导中的‘对称’是指这里的表吗?https://zhuanlan.zhihu.com/p/79573970 , 感觉按其代码实现来看明显是不对称的。一种较为近似对称的实现是 (-window,i,window), 而不是目前的(i, i+window)

  • GloVe原理与公式讲解

    立青-Lam: 4. 同态性说明了什么?原文打不开了

  • GloVe原理与公式讲解

    立青-Lam: some questions: 1. 为什么点积可以度量向量相似度,不是类似cosine吗 2. 对于Xij 应该就是全局语料中统计共现次数吧,意味着是不同window中合并而来的。那么 距离参数 ‘d’如何得到了,不同window必然不同 3. “。。。我们优化的目标是希望最小化语料库中每一对词的内积距离和两个词计数的对数。。。” 这里应该是要补上“之差“ 吧,换言之 习得word vectors实际上是学习 Xij共现数 期望回复,感谢~

大家在看

  • C++——继承 1895
  • 许少辉语言午读《乡村振兴战略下传统村落文化旅游设计》正式动作辉少许 1029
  • 【读懂Linux】基础IO 1731
  • 基于ssm+vue画作展示系统(开题报告+源码+论文)
  • Java--File类与IO流操作

最新文章

  • Qwen2报错——RuntimeError: “triu_tril_cuda_template“ not implemented for ‘BFloat16‘
  • 论文中的小细节——为什么论文中总是写WX而不是XW?
  • 概率论与数理统计学习笔记(7)——全概率公式与贝叶斯公式
2024年1篇
2023年5篇
2022年17篇
2021年27篇
2020年37篇
2019年2篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家松原玻璃钢雕塑工程电话抚州玻璃钢雕塑销售电话庆阳玻璃钢景观雕塑报价玻璃钢动漫雕塑订做西安商场广场美陈上饶玻璃钢雕塑价位上海室内商场美陈哪里有浦口主题商场美陈遂宁玻璃钢花盆牡丹江玻璃钢雕塑造型泰州玻璃钢雕塑厂家供应银川汇甲玻璃钢雕塑厂招聘扬州玻璃钢仿铜雕塑厂家山西玻璃钢雕塑生产商玻璃钢广场雕塑设计哪里有四川周边商场美陈沂源玻璃钢花盆花器果园玻璃钢雕塑江苏大型主题商场美陈售价深圳室内商场美陈厂家供应广东省玻璃钢雕塑张掖户外玻璃钢雕塑安装菏泽玻璃钢雕塑制作厂家安新玻璃钢雕塑公司烟台人物玻璃钢雕塑制作东莞景观玻璃钢人物雕塑佛像玻璃钢彩绘雕塑制造济源玻璃钢人物不锈钢城市雕塑江陵玻璃钢花盆花器免开模玻璃钢雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化