了解transformer

transformer和LSTM最大的区别

transformer和LSTM最大的区别就是LSTM的训练是迭代的,是一个接一下字的来,当前这个字过完LSTM单元,才可以进下一个字,而transformer的训练是并行了,就是所有字是全部同时训练的,这样就大大加快了计算效率,transformer使用了位置嵌入(positional encoding)来理解语言的顺序,使用自注意力机制和全连接层进行计算。
transformer模型主要分为两大部分,分别是编码器和解码器,编码器负责把自然语言序列映射成为隐藏层(就是含有自然语言序列的数学表达,通常把它称为Hidden Layer)。然后解码器把隐藏层再映射为自然语言序列,从而使我们解决各种问题,如情感分类,命题实体识别,语义关系抽取,摘要生成,机器翻译等等。

BERT在前阵子可谓是NLP界无人不知无人不晓,但是用来实现BERT的基础模型Transformer我却知之甚少。

一. 什么是Transformer?

Transformer是谷歌在2017年发布的一个用来替代RNN和CNN的新的网络结构,Transformer本质上就是一个Attention结构,它能够直接获取全局的信息,而不像RNN需要逐步递归才能获得全局信息,也不像CNN只能获取局部信息,并且其能够进行并行运算,要比RNN快上很多倍。

二. Transformer的结构

下面贴出Transformer的模型图。
在这里插入图片描述

可以看出,这个模型非常简单,模型的公式如下:

Attention(Q,K,V)=softmax(\frac{QK^{T}}{\sqrt{d_{k}}})V

但是,表面看起来这么简单,其实并不然,看似好像只需要将Q,K,V进行一些基本数学运算就ok了,但其实,中间省略了两部分结构,一个是传播用的全连接层,一个是用于mask的mask层。

当然,除去没有表现出来的这两部分,模型确实就是这么简单,需要注意的另一点是,Q来自于query,而,K,V是来自与同一个矩阵的。这个Attention层的目的是,先计算Q与K的相关度,然后根据计算Q与K的相关度矩阵后,再使用这个相关度矩阵与V相乘,得出最终结果。而其中,K和V来自于同一个矩阵(但是是通过不同的全连接层计算得来的),那么Q,K计算的目的就是为了计算出Q应该关注V中的哪些值,关注度达到多少。

接下来,我们介绍本篇论文另一个重要的结构:multi-head Attention。
在这里插入图片描述

这里的multi-head的含义是,每个Transformer结构会有多层结构完全一样的,但权重矩阵不同的Attention组成,也就是我们上面提到的Attention结构。这么做的目的是为了防止模型只关注到模型的一部分特征,却忽略了其他特征,所以增加模型的厚度,让模型拥有多层结构相同,但是权重不同的Attention,每一个head都关注到了不同的特征,那么模型整体就会关注到更多的特征。

三. Transformer的特性

Transformer相较于RNN的最大优势在于其速度上的优势,相较于CNN,其能直接获取全局信息。

在论文的介绍中,Transformer在当时的机器翻译WMT2014英德翻译任务中获得了最好的结果,所以其无论是速度,还是性能都是当时最好的。

BERT预训练模型只用到了编码器部分哦!

———专注自己的事

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值