论文笔记——Attention Is All You Need(Transformer)


之前看了Google发表的Transformer的相关论文,虽然距离论文发表已经过去了三年,但是Transformer的效果仍然没有被超越。为了让自己之后能够迅速回忆起Transformer的相关内容,所以记录了这篇论文笔记记录一下自己阅读论文的笔记。

动机

在Transformer提出之前,正常情况下都是使用RNN模型来处理机器翻译任务。使用RNN来做机器翻译任务存在两个缺点:
(1)由于输入的sequence长度很长,所以对于当前词来说对其影响最大的是邻近的词。但是一个句子中对一个单词有影响的单词不一定就在其附近
(2)其次使用RNN模型其计算速度过慢,通常输出一个端到端的句子就需要耗费极大的内存同时难以进行并行化计算
而Google提出的Transformer模型就是为了解决这两个缺点:
1.使用Attention机制代替LSTM的各种控制单元,让模型去学习句子中各个单词的相互影响
2.Transformer由于具有参数共享的相同模型层,所以相较于RNN具有极高的并行化操作

模型

Transformer的总结架构如下
在这里插入图片描述
简单记录一下Transformer的架构(之后进行详细的补充)
总体来看Transformer分为两个部分:Input Module 与 Output Module
本质上Transformer就是个 Encode-Decode 的过程

Encoder

Input Module包括 N=6 个编码器(N=6实验效果最好)
Encode就是一个Attention的过程,三个矩阵 Q K V 就是这个Encoder的核心。

Input的原始输入是经过Embedding层后的词向量矩阵(一个句子)
经过三个权重矩阵得到每个词向量的 q 、k、 v (矩阵就是用来并行化计算的)
然后使用self-attention机制得到每个词向量的表示 z
使用残差网络加上原始向量再进行正则化喂入前向传播网络,就这样经过6层Encoder就得到输入句子的表示

Decoder

这一部分等之后再进行补充

总结

Transformer的一些细节在此就不再赘述,同时PyTorch也对Transformer进行了很好的封装(当然也封装的很死)。总的来说Transformer可以说是在AI相关领域完成任务很好的模型,根据李宏毅老师的说法,在科研界CNN与RNN能做的任务基本被Transformer洗过了一遍,由此可见Transformer的强大,当然Transformer在很多地方还是不能取代之前两个模型的。
附上一篇讲解Transformer非常好的博客Transformer详解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值