赞
踩
本节将按照思维导图逐步了解BERT模型。
2018年谷歌在Github上开源了Bert模型之后,后续人们开发Bert模型变体以及对Bert模型进行优化,各种NLP比赛榜单都是Bert及其变体占据,开启了NLP的新时代!这个时代有两个特性:
BERT网络结构是多层transformer Encoder叠加。
Transformer block的具体架构为:
Transformer层的网络核心要素如下:
人类在接收到所有信号时,并不会将注意力平分到每一个信号中,而是会重点观察某些部分,战略性忽略某些部分。
NLP中核心的注意力机制与人类的注意力机制在直观上是一致的。
我们现在从attention的起源来了解attention的功能。在没有attention机制以前,机器翻译模型通常是使用序列到序列的架构(Seq2seq)。
左边的编码器(Encoder)将原文直接表示成向量,这个向量用于目标语言句子的预测中,在解码器(Decoder)生成目标语言句子。这个模型架构逻辑上是非常合理的,但是会涉及到信息瓶颈的问题—即输入的句子不管有多丰富,但是面对解码器,最终只会生成一个向量。在预测目标语言句子的不同字时,所拥有的输入信息(原句输入信息)是相同的(输入句子全部局限于向量表示中)。不过,我们在预测目标语言句子的不同字时,需要关注输入的不同部分。
例如:翻译句子的前面几个字,大概率是基于句子靠前部分来翻译;翻译句子的后面几个字,大概率是基于句子靠后部分来翻译的。
为了解决“信息瓶颈”的问题,引入了attention机制,打开了NLP架构的新格局。
在预测目标语言句子的下一个词时,利用attention接受到更多的信息。
softmax
形成一个分布。经过变换后,这些打分总和为1,而且,其全部非负,可以看成概率分布。 注意力的一般定义:给定一组向量(key, value)键值对,以及一个向量query,注意力机制就是一种根据query与keys来计算values的加权平均的模块。
上面介绍的机器翻译模型中的attention机制打分是基于点积的。下面介绍attention机制的其他写法。常用的注意力打分方法有3种:
下面我们考虑一个问题:注意力机制是否可以得到一个句子的向量表征?这里就引出自注意力机制,通过自己注意自己,来更新句子每个词的向量表征。
自注意力机制建模句子表征的过程为:从单个字角度:e.g:it_
的向量表征与句子中的所有词之间计算注意力,由此更新其向量表征。过程如下:
it_
在句子的第 i i i个位置,那么它在第 j j j个位置的注意力打分为:Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。