翻译:Attention Is All You Need

2023-11-12

摘要:主要序列转导模型基于包括编码器(encoder)和解码器(decoder)的复杂递归或卷积神经网络。 性能最佳的模型还通过注意机制连接编码器和解码器。 我们提出了一种新的简单网络架构,Transformer,完全基于注意机制(based solely on attention mechanisms),完全免除(dispensing)递归(recurrence)和卷积。 两个机器翻译任务的实验表明,这些模型质量优越,同时可以更加并行化(parallelizable),并且需要(significantly)更少的时间进行训练。我们的模型在WMT 2014英语 - 德语翻译任务中达到28.4 BLEU,超过现有的最佳成绩,包括集成(ensembles),超过2 BLEU。 在WMT 2014英语到法语翻译任务中,我们的模型在8个GPU上训练3.5天后,建立了一个新的单模型最新BLEU分数41.8,这是最好的训练成本的一小部分文献中的模型(a small fraction of the training costs of the best models from the literature)。 我们通过将其成功应用于英语选区解析大型和有限的训练数据,表明Transformer可以很好地概括其他任务(generalizes well to other tasks)。

1 Introduction(简介)

循环神经网络(Recurrent neural networks),长期短期记忆(long short-term memory)[13]和特别是gated recurrent[7]神经网络已经成为最先进的方法,用于序列建模和transduction问题,如语言建模和机器翻译[35,2] ,5]。 自那以后,许多努力继续推动循环语言模型和编码器 - 解码器架构的界限[38,24,15]。

递归模型(Recurrent models)通常考虑(typically factor)沿输入和输出序列的符号位置的计算。 将位置与计算时间(computation time)中的步骤对齐,它们产生一系列隐藏状态 h t h_t ht,作为先前隐藏状态 h t − 1 h_{t-1} ht1和位置t的输入的函数。 这种固有的顺序性质(inherently sequential nature)排除了(precludes)训练样本中的并行化(parallelization),这在较长的序列长度中变得至关重要,因为内存约束限制了跨越示例的批处理(as memory constraints limit batching across examples)。 最近的工作通过分解技巧(factorization tricks)[21]和条件计算(conditional computation)[32]实现了计算效率的显着提高,同时在后者的情况下(in case of the latter)也提高了模型性能。 然而,顺序计算的基本约束仍然存在(The fundamental constraint of sequential computation)。

注意机制(Attention mechanisms)已成为各种任务中引人注目的序列建模(compelling sequence modeling)和转换模型(transduction models)的组成部分(an integral part),允许对依赖关系进行建模,而不考虑它们在输入或输出序列中的距离[2,19]。 然而,在少数情况下[27],这种注意机制与复发网络(recurrent network)一起使用(are used in conjunction with)。

在这项工作中,我们提出了Transformer,一种避免重现(eschewing recurrence)的模型架构,而是完全依赖于注意机制来绘制输入和输出之间的全局依赖关系。 Transformer允许显着更多的parallelization,并且在8个P100 GPU上经过长达12小时的训练后,可以达到翻译质量的最新技术水平(state of the art)。

2 Background(背景)

减少顺序计算(reducing sequential computation)的目标也构成了扩展神经GPU [16],ByteNet [18]和ConvS2S [9]的基础,所有这些都使用卷积神经网络作为基本构建块(basic building block),并行计算所有输入的隐藏表示和输出位置(computing hidden representations in parallel for all input and output positions)。 在这些模型中,关联来自两个任意输入或输出位置的信号所需的操作数量在位置之间的距离上增长,对于ConvS2S呈线性(linearly)增长,对于ByteNet呈线对数(logarithmically)。 这使得学习远程位置之间的依赖性变得更加困难[12]。 在Transformer中,这被减少到恒定的操作次数,尽管(albeit)由于平均注意力加权位置而导致有效分辨率降低,这是我们在3.2节中描述的多头注意力的影响。

自我关注(Self-attention),有时称为内部关注是关联机制(intra-attention),其关联单个序列的不同位置以计算序列的表示(an attention mechanism relating different positions of a single sequence in order to compute a representation of the sequence)。 自我关注(Self-attention)已经成功地用于各种任务,包括阅读理解(reading comprehension),抽象概括(abstractive summarization),文本蕴涵(textual entailment)和学习任务独立的句子表示[4,27,28,22]。

端到端内存网络基于循环注意机制(recurrent attention mechanism)而不是序列对齐重复(sequence aligned
recurrence),并且已被证明在简单语言问答和语言建模任务中表现良好[34]。

然而,据我们所知(To the best of our knowledge),Transformer是第一个完全依靠自我关注(motivate self-attention)的转换模型来计算其输入和输出的表示,而不使用序列对齐的RNN或卷积。 在接下来的部分中,我们将描述Transformer,激发自我关注并讨论其优于[17,18]和[9]等模型的优势。

3 Model Architecture(模型结构)

大多数竞争性神经序列转换模型(Most competitive neural sequence transduction models)具有编码器 - 解码器结构[5,2,35]。 这里,编码器将符号表示的输入序列 ( x 1 , . . . . , x n ) (x_1,....,x_n) (x1,....,xn)映射到连续表示序列 z = ( z 1 , . . . . , z n ) z=(z_1,...., z_n) z=(z1,....,zn)。 给定z,解码器然后一次一个元素地生成符号的输出序列 ( y 1 , . . . . , y m ) (y_1,....,y_m) (y1,....,ym)。 在每个步骤中,模型都是自回归的(auto-regressive)[10],在生成下一个时消耗先前生成的符号作为附加输入(consuming the previously generated symbols as additional input when generating the next)。

Transformer循这种整体架构(overall architecture),使用堆叠的自注意(stacked self-attention)和逐点(point-wise),完全连接的层用于编码器和解码器(fully connected layers for both the encoder and decoder),分别如图1的左半部分和右半部分所示。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

翻译:Attention Is All You Need 的相关文章

  • browserify :- 未捕获类型错误:fs.readFileSync 不是函数

    我试图在我的代码中使用natural js 在客户端使用它 我使用browserify 但它给出了一个错误 Uncaught TypeError fs readFileSync is not a function at loadDictio
  • 使用 nltk 中的meteor_score模块评估模型时如何实现meteor分数?

    我目前有 2 个文件 reference txt 和 model txt 这两个文本文件包含原始字幕和训练后生成的字幕 我可以简单地执行以下操作来获取流星分数 score nltk translate meteor score meteor
  • 日语/字符的编程技巧[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个想法 可以编写一些网络应用程序来帮助我 也许还有其他人 更好地学习日语 因为我正在学习日语 我的问题是该网站主要是英文的 所以
  • 如何在 python-gensim 中使用潜在狄利克雷分配(LDA)来抽象二元组主题而不是一元组?

    LDA 原始输出 一元语法 主题1 水肺 水 蒸汽 潜水 主题2 二氧化物 植物 绿色 碳 所需输出 二元组主题 主题1 水肺潜水 水蒸气 主题2 绿色植物 二氧化碳 任何想法 鉴于我有一个名为docs 包含文档中的单词列表 我可以使用 n
  • 使用 Hadoop MapReduce 的计算语言学项目构想

    我需要做一个关于计算语言学课程的项目 是否有任何有趣的 语言 问题 其数据密集程度足以使用 Hadoop MapReduce 来解决 解决方案或算法应尝试分析并提供 语言 领域的一些见解 但是它应该适用于大型数据集 以便我可以使用 hado
  • 下载变压器模型以供离线使用

    我有一个训练有素的 Transformer NER 模型 我想在未连接到互联网的机器上使用它 加载此类模型时 当前会将缓存文件下载到 cache 文件夹 要离线加载并运行模型 需要将 cache 文件夹中的文件复制到离线机器上 然而 这些文
  • BERT - 池化输出与序列输出的第一个向量不同

    我在 Tensorflow 中使用 BERT 有一个细节我不太明白 根据文档 https tfhub dev google bert uncased L 12 H 768 A 12 1 https tfhub dev google bert
  • 语音识别中如何处理同音词?

    对于那些不熟悉什么是同音字 https en wikipedia org wiki Homophone是的 我提供以下示例 我们的 是 嗨和高 到 太 二 在使用时语音API https developer apple com docume
  • Node2vec 的工作原理

    我一直在读关于node2vec https cs stanford edu jure pubs node2vec kdd16 pdf嵌入算法 我有点困惑它是如何工作的 作为参考 node2vec 由 p 和 q 参数化 并通过模拟来自节点的
  • NLTK 中的无监督 HMM 训练

    我只是想进行非常简单的无监督 HMM 训练nltk http www nltk org 考虑 import nltk trainer nltk tag hmm HiddenMarkovModelTrainer from nltk corpu
  • openNLP 与 Solr 集成时出现异常

    我正在尝试将 openNLP 与 Solr 6 1 0 集成 我配置了架构和 solrconfig 文件 详细信息请参见 wiki 链接 https wiki apache org solr OpenNLP https wiki apach
  • 如何检测文本是否可读?

    我想知道是否有一种方法可以告诉给定的文本是人类可读的 我所说的人类可读的意思是 它有一些含义 格式就像某人写的文章 或者至少是由软件翻译器生成的供人类阅读的文章 这是背景故事 最近我正在制作一个应用程序 允许用户将短文本上传到数据库 在部署
  • 如何在Python中使用多处理来加速循环执行

    我有两个清单 列表 A 包含 500 个单词 列表 B 包含 10000 个单词 我正在尝试为列表 A 找到与 B 相关的相似单词 我正在使用 Spacy 的相似函数 我面临的问题是计算需要很长时间 我是多处理使用的新手 因此请求帮助 如何
  • NLTK:包错误?朋克和泡菜?

    基本上 我不知道为什么会收到此错误 只是为了获得更多图像 这里有一个代码格式的类似消息 由于是最新的 该帖子的答案已经在消息中提到 Preprocessing raw texts LookupError Traceback most rec
  • 如何提取句子中的主语及其各自的从属短语?

    我正在尝试在句子中进行主题提取 以便我能够根据主题获得情感 我在用nltk在 python2 7 中用于此目的 以下面的句子为例 Donald Trump is the worst president of USA but Hillary
  • 如何在R中使用OpenNLP获取POS标签?

    这是 R 代码 library NLP library openNLP tagPOS lt function x s lt as String x word token annotator lt Maxent Word Token Anno
  • 旧版本的 spaCy 在尝试安装模型时抛出“KeyError: 'package'”错误

    我在 Ubuntu 14 04 4 LTS x64 上使用 spaCy 1 6 0 和 python3 5 为了安装 spaCy 的英文版本 我尝试运行 这给了我错误消息 ubun ner 3 NeuroNER master src pyt
  • 斯坦福 CoreNLP:使用部分现有注释

    我们正在尝试利用现有的 代币化 句子分割 和命名实体标记 同时我们希望使用斯坦福 CoreNlp 额外为我们提供 词性标注 词形还原 和解析 目前 我们正在尝试以下方式 1 为 pos lemma parse 创建一个注释器 Propert
  • 验证 Transformer 中多头注意力的实现

    我已经实施了MultiAttention head in Transformers 周围有太多的实现 所以很混乱 有人可以验证我的实施是否正确 DotProductAttention 引用自 https www tensorflow org
  • 如何使用FeatureUnion转换PipeLine中的多个特征?

    我有一个 pandas 数据框 其中包含有关用户发送的消息的信息 对于我的模型 我感兴趣的是预测消息的缺失收件人 即给定消息的收件人 A B C 我想预测还有谁应该成为收件人的一部分 我正在使用 OneVsRestClassifier 和

随机推荐

  • 局域网 git服务器 虚拟机,GitLab服务器傻瓜式搭建教程

    开始前的准备 需要有一台Linux系统的服务器或虚拟机 QAQ 安装包下载地址 https mirrors tuna tsinghua edu cn gitlab ce 注 本教程无需下载安装包 以下教程为CentOS8环境所搭建 第一步
  • 华为eNSP实现外网访问内网,DHCP,easyIP配置案例

    一 需求分析 1 五个部门独立的网络管理 分别不同的VLAN 2 VLAN网关在SW1上 3 边界路由器R1与SW1通过三层互联 4 R1上配置转换技术实现VLAN10 20 40 50上网 财务部不许上网 5 R1上通过最节省IP地址方式
  • UE客户端开发需要哪些知识

    进行UE客户端开发需要以下知识 C 编程语言 UE客户端使用C 作为主要编程语言 因此需要对C 的语法 STL容器 面向对象编程等有深入的理解 Unreal Engine框架 了解UE框架的各个模块 例如Gameplay Framework
  • 单链表的基本操作-单链表的创建、插入、删除结点等

    序言 本文主要包括 1 单链表的创建 2 创建结点 3 打印结点 4 链表的插入 头插法 5 链表的删除 指定位置删除 适合新手初步认识学习单链表的基本操作 各个操作都在一起 也有注释 欢迎大家留言讨论 一 代码 include
  • 动态网站开发02:Java web

    动态网站开发02 一 前言 二 笔记 一 XML基础 1 XML概述 2 XML与HTML的比较 二 XML语法 1 XML文档的声明 2 XML元素的定义 3 XML属性的定义 4 XML注释的定义 5 XML文件示例 三 DTD约束 1
  • 爆肝近3万字解读:程序员必须掌握哪些算法?(含算法的代码实现)

    一个程序员一生中可能会邂逅各种各样的算法 但总有那么几种 是作为一个程序员一定会遇见且大概率需要掌握的算法 今天就来聊聊这些十分重要的 必抓 算法吧 一 引言 1 1 算法的重要性 算法的重要性体现在以下几个方面 解决问题 算法是解决问题的
  • 渗透测试工具备忘单

    https highon coffee blog penetration testing tools cheat sheet
  • @FeignClient使用详细教程(图解)

    FeignClient使用详细教程图解 作用 FeignClient标签的常用属性 使用流程 通俗解释可以把它当成一个spring Bean 可以直接当成一个Service 给 FeignClient 添加Header信息 作用 Feign
  • O2O B2B B2C C2C P2P 名词解释

    O2O O2O 是Online To Offline的缩写即在线离线 线上到线下 是指将线下的商务机会与互联网结合 让互联网成为线下交易的平台 这个概念最早来源于美国 O2O的概念非常广泛 既可涉及到线上 又可涉及到线下 可以通称为O2O
  • go time包

    定时器 在time包中有两个函数可以帮助我们初始化time Timer time Newtimer函数 初始化一个到期时间据此时的间隔为3小时30分的定时器 t time Newtimer 3 time Hour 30 time Minut
  • python使用matplotlib的pyplot库进行绘制堆叠直方图

    先上代码 2020 3 27 中国 CN 82213 184 75122 3301 3790 2020 3 27 英国 GB 14579 0 150 759 13670 2020 3 27 日本 JP 1507 0 359 51 1097
  • 我的python3.6、opencv安装环境搭建

    我需要使用tesseract OCR的模块 vs的配置有点麻烦 所以采用py的环境 搭建 1 在python org网站下载python3 6版本 我下载的3 6 8的python的安装 选存放的路径和把配置环境变量选项勾上否则需要自己配置
  • python爬虫经典案例,看完这一篇就够了

    urllib2 urllib2是Python中用来抓取网页的库 urllib2 是 Python2 7 自带的模块 不需要下载 导入即可使用 在python2 x里面有urllib和urllib2 在python3 x里面就把urllib和
  • 美云MES成长史:生于美的 长在美云智数

    每一种新技术的迭代 就犹如一次生命的洗礼 美云MES的成长 也经历过这种洗礼 2016年11月份 美云智数带着美的基因走上了创业之路 其5大产品体系16个Saas产品 不仅融合了深厚的技术底蕴 还继承了世界500强宝贵的实践经验 以跨界融合
  • 案例一:将 1-100 之间的所有正整数存放在一个 List 集合中,并将集合中索引位置是 10 的对象从集合中移除。

    package Homework 01 import java util ArrayList import java util List 将 1 100 之间的所有正整数存放在一个 List 集合中 并将集合中索引位置是 10 的对象从集合
  • CMakeLists编译静态库与动态库

    一 编写一个库 编写一个计算整数和浮点数之和的库函数mymath 文件目录 mymath h ifndef MYMATH H define MYMATH H int add int int double add double double
  • 关于idea 右键找不到Diagrams 按钮(类的继承关系图)

    在idea的setting的plugin里面已下载的找到JBoss 查看是否开启 如果没有开启 点击enable 后重启idea 即可
  • 用Python做兼职是如何挣钱的?

    我当时学习python大概有半年的时间 学的还可以 后面一个认识的朋友给我介绍了一点私活 当时接单赚了2K左右 后又自己接过开发网站后台接口 做数据处理等事情 七七八八的加起来也有一些收入 其实我学python也是凑巧 我本身是学电商的 后
  • 用例模型与概念模型的区别和联系

    1 首先研究它究竟是什么 what 三者的定义 用例 即use case 一种描述系统需求的方法 用例建模 使用用例的方法来描述系统需求的过程 概念模型 是现实世界到机器世界的一个中间层次 2 怎样关联的 how 分析业务过程 建立用例模型
  • 翻译:Attention Is All You Need

    摘要 主要序列转导模型基于包括编码器 encoder 和解码器 decoder 的复杂递归或卷积神经网络 性能最佳的模型还通过注意机制连接编码器和解码器 我们提出了一种新的简单网络架构 Transformer 完全基于注意机制 based