Attention is all you need

Posted petewell

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Attention is all you need相关的知识,希望对你有一定的参考价值。

论文地址:http://papers.nips.cc/paper/7181-attention-is-all-you-need.pdf
只简要翻译一些重点内容。

摘要

很多序列转换模型都具有复杂的循环或卷积结构和编码/解码器。目前最好的模型也是基于编码/解码器和attention机制的。我们提出了一种简单的网络结构:transformer。只与attention有关,完全抛弃的循环和卷积结构。在两个机器翻译数据集上的实验证明了本文提出的模型更好,同时也可以并行计算,降低计算时间。

1 Introduction

在序列建模和机器翻译等自然语言处理问题上,RNN, LSTM, Gated RNN都获得了非常好的效果。但是RNN类模型必须按时序处理数据,所以会大幅提高计算开销。近期的研究成果中,有一些算法使用了一些技巧降低计算复杂度,但是由于序列化问题的天然属性,这种计算性能瓶颈仍然存在。注意力机制已经成为序列建模和转换模型的组成部分,允许在不考虑依赖项在输入或输出序列中的距离的情况下对依赖项进行建模。

在论文中,我们提出了transformer,完全依赖attention来搜索输入和输出之间的全局依赖性。transformer可以高度并行化计算,提高机器翻译质量。

2 Background

ByteNet和ConvS2S等网络都使用卷积结构作为基本计算单元。在这些模型中,将来自两个任意输入或输出位置的信号联系起来所需的操作数和距离有关,对于ConvS2S是线性的,对于ByteNet是对数的。这种距离相关的特性使算法不容易学习到长距离依赖关系。在transformer中,学习长距离依赖关系需要的计算开销是常数的。尽管这种方法影响了识别性能,但是在3.2中介绍的multi attention解决了这一问题。

Self attention(也叫intra-attention)为了计算一个序列的表示,self attention将这个序列不同的部分联系在一起。(就是设置一个权重矩阵,给句子中每个词分配不同的权重然后加一块。)self attention在阅读理解、爱要抽取等任务上取得了非常好的结果。

Model Architecture

很多神经网络都包含encoder和deceder结构。encoder将一系列字符$(x_1, x_2, …, x_n)$映射到向量$(z_1, z_2, …, z_n)$。给定z,解码器可以生成输出序列$(y_1, y_2, …, y_n)$。在每个时间t,算法是自回归的,通过上一步(t-1)生成的symbol和input数据生成t时刻的输出。(这块比较简单)

transformer的主要思想和上一段类似,使用stacked self attention和逐点全连接层,如图1所示。

fig1

在GitHub上获取

您可以在GitHub上找到源代码。随意下载,分叉或关注。如果您有任何反馈或想要为项目做出贡献,可以提交问题或提交拉取请求,我们随时欢迎您!

项目官网:http(s)://github-profile.joytou.net/

原文引用 大专栏  https://www.dazhuanlan.com/2019/08/27/5d64c72b96ed1/


以上是关于Attention is all you need的主要内容,如果未能解决你的问题,请参考以下文章

为何Transformer论文作者声称“Attention is all you need”?

Transformer 论文:Attention Is All You Need

#论文阅读#attention is all you need

Attention Is All You Need----Transformer

论文解读:Attention Is All You Need

《Attention Is All You Need》算法详解