学习笔记1—Bert

本文介绍了BERT模型,作为预训练模型在NLP领域的应用。详细阐述了BERT的预训练过程,包括Self-Attention Layer的工作原理,Layer Normalization的作用,以及预训练和微调的策略。此外,还讨论了BERT在解决序列数据并行计算问题上的优势,以及在不同任务中的Fine-tune方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BERT

迁移学习在自然语言处理(NLP)领域同样也是一种强大的技术。由这种技术训练出来的模型,我们称之为预训练模型。
预训练模型首先要针对数据丰富的任务进行预训练,然后再针对下游任务进行微调,以达到下游任务的最佳效果。迁移学习的有效性引起了理论和实践的多样性,
两者相结合,高效地完成了各种NLP的实际任务

1. 预训练模型

BERT的结构是来自Transformers模型的Encoder。
Transformer的内部结构由Self-Attention Layer和Layer Normalization的堆叠而产生。

image:Bert

Bert定义:BERT被设计为通过在所有层的双向上下文上共同进行条件化来预训练未标记文本的深层双向表示

(可以理解为:用未标记的一个文本去训练一个模型,对所有的问题都有很强的泛化性)

我们可以在仅一个附加输出层的情况下对经过预训练的BERT模型进行微调,以创建适用于各种任务( 例如问题解答和语言推断)的最新模型,进而减少了对NLP任务精心设计特定体系结构的需求

通俗易懂来讲就是我们只需要把BERT当成一个深层次的Word2Vec预训练模型,对于一些特定的任务,我们只需要在BERT之后下接一些网络结构就可以出色地完成这些任务。

2. Self-Attention Layer 原理

BERT的结构是来自Transformers模型的Encoder
Transformer的内部结构由Self-Attention Layer和Layer Normalization的堆叠而产生。
Self-Attention Layer的出现原因:为了解决RNN、LSTM等常用于处理序列化数据的网络结构无法在GPU中并行加速计算的问题。

BERT的内部结构: Self Attention Layer的输入

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GUjU70cx-1606121801532)(C:\Users\kkkkkkiven\Desktop\CLS+SEP.png)]

因为有时候训练样本是由两句话组成,因此“[CLS]”是用来分类输入的两句话是否有上下文关系,而“[SEP]"则是用以分开两句话的标志符。

[CLS] 标志放在第一个句子的首位,经过 BERT 得到的的表征向量 C 可以用于后续的分类任务。
[SEP] 标志用于分开两个输入句子,例如输入句子 A 和 B,要在句子 A,B 后面增加 [SEP] 标志。

Input = token embedding + segment embedding + position embedding
因为这里的Input是英文单词,所以在灌入模型之前,需要用BERT源码Tokenization工具对每一个单词进行分词。
分词后的形式:“ Playing”转换成“Play"+“# #ing”,因为英文词汇表是通过词根与词缀的组合来新增单词语义的,所以我们选择用分词方法可以减少整体的词汇表长度。

如果是中文字符的话,输入就不需要分词,整段话的每-一个字用“空格”隔开即可。

注意:模型是无法处理文本字符的,所以不管是英文还是中文,我们都需要通过预训练模型BERT自带的字典vocab.txt将每一一个字
或者单词转换成字典索引(即id) 输入。

segment embedding的目的:有些任务是两句话一起放入输 入x,而segment便是用 来区分这两句话的。在Input那里就是用“[SEP]”作为标志符号。而“[CLS]”用 来分类输入的两句话是否有上下文关系。

position embedding的目的:因为我们的网络结构没有RNN或者LSTM,因此我们无法得到序列的位置信息,所以需要构建一个position embedding。

构建position embedding有两种方法:

  1. BERT是 初始化一个position embedding,然后通过训练将其
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值