注意力机制的起源:并非始于Transformer,Karpathy揭秘背后的故事

注意力机制并非Transformer首创,Karpathy揭示其源于2014年Bahdanau等人的论文,早于Transformer三年。

原文标题:被忽略的起点?Karpathy揭秘最初的注意力论文被Transformer光芒掩盖的故事

原文作者:机器之心

冷月清谈:

Andrej Karpathy 近期分享了注意力机制的起源故事,指出该机制并非Transformer的独创,而是源于 Dzmitry Bahdanau、Kyunghyun Cho 和 Yoshua Bengio 2014 年发表的论文《Neural Machine Translation by Jointly Learning to Align and Translate》。这篇论文早于 Transformer 论文三年提出,却未获得同等关注。

Bahdanau 在邮件中向 Karpathy 讲述了注意力机制的诞生历程,最初的灵感来自人类翻译时目光在原文和译文间来回移动的过程。他最初的模型包含两个“光标”,分别在源序列和目标序列中移动,并通过动态规划进行轨迹边缘化。后受 Alex Graves RNN Transducer 模型的启发,简化了模型,让两个光标同步移动。最终,他设计了一种让解码器 RNN 学习在源序列中搜索光标位置的方法,并使用 softmax 对 BiRNN 状态进行加权平均,这就是注意力机制的雏形。

值得一提的是,“Attention”一词由 Yoshua Bengio 提出。此外,Alex Graves 的 NMT 论文和 Jason Weston 的记忆网络论文也独立地提出了类似机制。Bahdanau 认为,即使没有他们,注意力机制最终也会被发现,因为它是一种深度学习中实现灵活空间连接的自然方式。Karpathy 补充道,ChatGPT 等现代 AI 模型的核心机制正是反复应用注意力机制。

怜星夜思:

1、Bahdanau 提到的 "两个光标" 的概念,在实际的注意力机制实现中是如何体现的?
2、除了机器翻译,注意力机制还在哪些领域取得了显著成果?
3、Bahdanau 认为注意力机制是 "深度学习中实现灵活空间连接的自然方式",怎么理解这句话?

原文内容

机器之心报道

编辑:Panda


几个小时前,著名 AI 研究者、OpenAI 创始成员之一 Andrej Karpathy 发布了一篇备受关注的长推文,其中分享了注意力机制背后一些或许少有人知的故事。


其中最值得注意的一个故事是真正首次提出注意力机制的论文其实是 Dzmitry Bahdanau、Kyunghyun Cho 和 Yoshua Bengio 的《Neural Machine Translation by Jointly Learning to Align and Translate》,这比《Attention is All you Need》还早 3 年,但很显然,这篇论文并没有收获后者那般的关注。 


Karpathy 长推文的不完整截图

实际上,这个故事来自 Dzmitry Bahdanau 发给 Karpathy 的一封邮件。Bahdanau 是 ServiceNow Research 的研究科学家和研究负责人以及麦吉尔大学兼职教授。

他在发给 Karpathy 的这封邮件中分享了自己发现注意力机制的旅程以及 Attention 这个术语的由来——其实来自 Yoshua Bengio。此外,他也提到了 Alex Graves 的 NMT 论文和 Jason Weston 的记忆网络(Memory Networks)论文各自独立发现类似机制的故事。

Karpathy 推文发布后反响热烈,短时间内就已有超过 20 万阅读量,很多读者都被这个注意力背后的故事吸引。


有读者在看过这个故事后发出感叹:2013-2017 年间的深度学习宇宙中有很多隐藏的英雄。


也有人分享自己对注意力机制的看法。


Hyperbolic Labs 创始人和 CTO Yuchen Jin 更是打趣说《Attention Is All You Need》的另一项重要贡献是将后面的 AI 论文标题带歪了:「吸引注意力的标题才是 All You Need」。


注意力机制的背后故事

下面我们就来看看 Karpathy 的推文究竟说了什么:

「attention」算子——也就是提出了 Transformer 的《Attention is All you Need》中的那个注意力,背后的(真实)开发和灵感故事。来自大约 2 年前与作者 @DBahdanau 的个人电子邮件通信,在此发布(经许可)。此前几天,网上流传着一些关于其开发过程的假新闻。

Attention 是一种出色的(数据依赖型)加权平均运算。它是一种形式的全局池化、归约、通信。它是一种从多个节点(token、图块等)聚合相关信息的方法。它富有表现力、功能强大、具有足够的并行性,并且可以高效优化。甚至多层感知器(MLP)实际上也可以大致重写为数据独立型权重上的 Attention(第一层权重是查询,第二层权重是值,键就是输入,softmax 变为元素级,删除了规范化)。简单来说,注意力非常棒,是神经网络架构设计中的重大突破。

《Attention is All You Need》获得的…… 呃…… 注意力差不多是 3 年前真正提出 Attention 的论文的 100 倍,即 Dzmitry Bahdanau、Kyunghyun Cho 和 Yoshua Bengio 的论文《Neural Machine Translation by Jointly Learning to Align and Translate》。在我看来,这一直有点出人意料。顾名思义,《Attention is All You Need》的核心贡献是提出:Transformer 神经网络就是删除注意力之外的一切,然后基本上就是将其堆叠在带有 MLP(根据上述内容,这也可以大致被视为注意力)的 ResNet 中但我确实认为这篇 Transformer 论文有自己独特的价值,因为它一次性添加了其它许多令人惊叹的想法,包括位置编码、缩放式注意力、多头注意力、各向同性的简单设计等。在我看来,直到今天(大约 7 年过去了),Transformer 基本上还保持着 2017 年的形式,只有相对较少的微小修改,也许除了使用更好的位置编码方案(RoPE 等)。

总之,我先把完整邮件贴在下面,其中也暗示了这个运算一开始被称为 Attention 的原因 —— 它源自对源句子中词的关注(attending)并同时以顺序方式输出翻译结果的词,并且之后 Yoshua Bengio 在 RNNSearch 中将其引入成了一个术语(感谢上帝?:D)。同样有趣的是,该设计的灵感来自人类的认知过程/策略,即按顺序来回关注一些数据。最后,从发展进步的本质来看,这个故事相当有趣——类似的想法和表述「早就已经在空气中回荡」,特别要提到当时 Alex Graves(NMT)和 Jason Weston(记忆网络)的工作。

谢谢你的故事 @DBahdanau !

之后,Karpathy 还做了一些补充:ChatGPT 以及绝大多数现代 AI 模型都是巨型 Transformer。「所以 LLM 的核心神奇之处来自于反复应用注意力,一遍又一遍地关注输入的 token,以预测下一个 token 是什么。」


Dzmitry Bahdanau 的原始邮件内容

Karpathy 也一并分享了 Dzmitry Bahdanau 的原始邮件内容:


嗨,Andrej,

很高兴告诉你 8 年前发生的故事!

我在雅各布大学 Herbert Jaeger 的指导下完成硕士课程的第一年后,作为实习生来到了 Yoshua 的实验室。

我告诉 Yoshua 我很乐意做任何事情。Yoshua 让我参与机器翻译项目,与 Kyunghyun Cho 和团队一起工作。我当时非常怀疑将词序列塞入向量的想法。但我也非常想获得博士学位。所以我撸起袖子,开始做我擅长的事情——编写代码、修复错误等等。在某个时候,我表现得很了解我做的东西了,Yoshua 邀请我攻读博士学位(2014 年是一个很好的时机,表现得很了解就已经足够了——美好的旧时光!)。我非常高兴,我认为可以开始享受乐趣并发挥创造力了。

所以我开始思考如何避免编码器和解码器 RNN 之间的瓶颈。我的第一个想法是构建一个带有两个「光标」的模型,一个在源序列中移动(由一个 BiRNN 编码),另一个在目标序列中移动。使用动态规划(dynamic programming)可以将光标轨迹边缘化。KyungHyun Cho 认为这相当于 Alex Graves 的 RNN Transducer 模型。之后,我可能还读了 Graves 的手写识别论文。不过,这种方法看起来不适合机器翻译。

在我实习的剩余 5 周内,上述使用光标的方法很难实现。所以我尝试了一种更简单的方法——两个光标同时同步移动(实际上是硬编码的对角注意力)。这种方法有点效果,但方法不够优雅。

所以有一天,我想到如果能让解码器 RNN 学会在源序列中搜索放置光标的位置就好了。这多少受到我中学时学习英语时的翻译练习的启发。翻译时,你的目光会在源序列和目标序列之间来回移动。我将这种软性搜索表示为 softmax,然后对 BiRNN 状态进行加权平均。它的效果很好,从第一次尝试,到后来振奋人心。我将这个架构称为 RNNSearch,我们急于发表一篇 arXiv 论文,因为我们知道谷歌的 Ilya 和同事领先于我们,他们有巨大的 8 GPU LSTM 模型(而 RNN Search 仍在 1 GPU 上运行)。

后来发现,这个名字并不好。直到最后几次过论文时,Yoshua 才将更好的名字(attention)添加到论文结论中。 

一个半月后,我们看到了 Alex Graves 的 NMT 论文。这确实是完全相同的想法,尽管他提出它的动机完全不同。在我们的情况下,是因为需要而产生了这个发明。在他的情况下,我想应该是将神经和符号 AI 连接起来的雄心吧?Jason Weston 及其同事的记忆网络论文也采用了类似的机制。

我没有远见地想到注意力可以在较低的层级使用,以作为表征学习的核心运算。但是当我看到 Transformer 论文时,我立即向实验室同事断言 RNN 已死。

回到你最初的问题:在蒙特利尔 Yoshua 的实验室发明的「可微分和数据依赖加权平均」独立于神经图灵机、记忆网络以及 90 年代(甚至 70 年代)的一些相关认知科学论文。这是 Yoshua 领导推动实验室进行雄心勃勃的研究的结果,KyungHyun Cho 在运行一个大型机器翻译项目方面拥有高超的技能,该项目由初级博士生和实习生组成;最后,我自己的创造力和编码技能在多年的竞争性编程中得到了磨练。但我认为这个想法很快就会被发现。就算我、Alex Graves 和这个故事中的其他角色当时没有研究深度学习也是如此,注意力就是深度学习中实现灵活空间连接的自然方式。等待 GPU 足够快,让人们有动力认真对待深度学习研究,这是一个显而易见的想法。自从我意识到这一点以来,我在 AI 领域的抱负就是启动像机器翻译项目这样的出色的应用项目。相比于那些研究所谓的「真正」AI 的花哨理论,良好的研发工作可以为基础技术的进步做出更大贡献。

就这些!我非常想更多了解关于您的教育 AI 项目的信息(我从 Harm de Vries 那里听到了一些传言;))。

祝好,
Dima

相关论文

最后,下面梳理了前面提及的相关论文,以帮助感兴趣的读者做进一步的技术探索。

Neural Machine Translation by Jointly Learning to Align and Translate,未得到应有关注的注意力论文
作者:Dzmitry Bahdanau, Kyunghyun Cho, Yoshua Bengio
链接:https://arxiv.org/abs/1409.0473

Attention is All You Need,著名的 Transformer 论文
作者:Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, Illia Polosukhin
链接:https://arxiv.org/abs/1706.03762

Neural Turing Machines,其中几乎同时提出了类似的 soft pooling 运算
作者:Alex Graves, Greg Wayne, Ivo Danihelka
链接:https://arxiv.org/abs/1410.5401

Generating Sequences With Recurrent Neural Networks,研究了使用 LTSM 循环神经网络生成具有长程结构的复杂序列,很有开创性
作者:Alex Graves
链接:https://arxiv.org/abs/1308.0850

Memory Networks,记忆网络
作者:Jason Weston, Sumit Chopra, Antoine Bordes
链接:https://arxiv.org/abs/1410.3916

Sequence to Sequence Learning with Neural Networks,文中提到的当时在谷歌的 Ilya 等人的论文
作者:Ilya Sutskever, Oriol Vinyals, Quoc V. Le
链接:https://arxiv.org/abs/1409.3215

参考链接
https://x.com/karpathy/status/1864023344435380613
https://x.com/karpathy/status/1864030016457375916

2024亚马逊云科技 re:lnvent 《拉斯维加斯有约》直击现场——Swami Sivasubramanian 博士主题演讲中文解读

第一时间深度解读亚马逊云科技2024年re:Invent 年度盛会!

了解亚马逊云科技独树一帜的创新实践与文化和全系列前沿解决方案、如何开拓创新并引领全球云计算的全方位发展、如何重构基础架构并打造全新体验,探索如何依托强大的数据基础为客户打造创新的、差异化的解决方案。

聆听客户发言人分享真实案例,了解如何利用数据支持包括生成式 AI 在内的各种应用场景,进而打造独一无二的客户体验。

分享亚马逊云科技及其合作伙伴为客户带来的积极变革,赋能其重塑商业模式、取得非凡成就。

这不仅是一场深入了解前沿技术、数据应用和创新实践的盛会,更是一个不容错过的交流平台。期待您的加入!

© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:[email protected]



"自然方式"指的是注意力机制的计算方式与人类认知过程的相似性。就像我们在阅读时,会对不同的部分赋予不同的注意力,注意力机制也是如此,它通过计算query和key的相似度来分配权重,这与人类的认知过程非常相似,因此说它是“自然”的。

关于Bahdanau提到的“两个光标”,我认为可以理解为注意力机制中的query和key。query就像解码器端的“光标”,key就像编码器端的“光标”。注意力机制计算query和key的相似度,并以此为权重对value进行加权平均,最终得到上下文向量。所以,虽然注意力机制中没有显式的“光标”,但query和key的交互实现了类似的功能。

“两个光标”的概念更像是Bahdanau对注意力机制最初的直观理解,而不是最终的实现方式。在最终的注意力机制中,并没有像“光标”那样明确的指针结构,而是通过计算query和key的相似度来实现对输入信息的加权聚合。可以理解为,query和key的相似度决定了“光标”应该放在哪个位置,以及在该位置的权重。

我觉得“两个光标”的比喻很形象!最初的设想中,“光标”在源序列和目标序列中移动,就像我们翻译时目光的移动。而最终的注意力机制中,query和key的相似度计算,就相当于一种“软性”的光标定位,不再是硬性地指向某个位置,而是对所有位置的信息进行加权平均,权重的大小就代表了“光标”在该位置的关注程度。

注意力机制在自然语言处理领域应用广泛,例如文本分类、情感分析、问答系统等。在计算机视觉领域,注意力机制也用于图像识别、目标检测等任务。此外,在推荐系统、语音识别等领域也有应用。

在图像字幕生成任务中,注意力机制可以帮助模型关注图像中与描述相关的区域,从而生成更准确的描述。在语音识别中,注意力机制可以帮助模型关注语音信号中重要的片段,提高识别准确率。我觉得注意力机制真是个万金油!

说个冷门的,注意力机制还可以用于时间序列分析,例如预测股票价格、天气预报等。它可以帮助模型关注时间序列中重要的时刻或特征,从而提高预测精度。

我认为Bahdanau这句话的核心是“灵活空间连接”。传统的深度学习模型,比如CNN,连接是固定的,卷积核的大小和步长决定了连接的范围。而注意力机制可以根据输入数据的不同,动态地调整连接的权重,实现更灵活的空间连接。这就像我们理解一句话时,会根据上下文语境,重点关注不同的词语。

我理解的“灵活空间连接”是指,注意力机制可以连接任意两个位置的输入信息,而不受距离的限制。传统的CNN只能连接局部的信息,而RNN的连接也受到序列长度的限制。注意力机制打破了这些限制,可以根据输入数据的实际情况,动态地建立连接,这使得模型能够更好地捕捉全局信息。