Neural Machine Translation by Jointly Learning to Align and Translate:输入输出注意力机制

注意力机制是当下深度学习中的后起之秀,最初的想法源于 Dzmitry Bahdanau 等人的论文 Neural Machine Translation by Jointly Learning to Align and Translate。了解强大的注意力技术的起源有助于我们掌握许多基于其延伸出的发展,本文将介绍这个注意力机制背后的逻辑。

语言到语言的翻译模式

Neural Machine Translation by Jointly Learning to Align and Translate 介绍了一种将原始语言中的语句翻译成目标语言中语句的模型。该模型具有"编码器-解码器"结构,使用递归神经网络(RNN)同时实现编码器和解码器。

翻译模型体系结构模型架构如下:

输入

在上述图片中,编码器的输入是原始语言中的单词序列:X₁, ... , Xᵢ, ... , X_Tₓ

  • Tₓ 是输入句子的长度,例如,在"My name is YBCarry."这句话中,Tₓ 的值是 4。
  • 每个 xᵢ 是原始语言中单词的一个离散表示(one-hot representation),其中包含一个 Kₓ 字典。也就是说,每个 Xᵢ 是一个长度为 Kₓ 的向量,通常在 5 万到 10 万字的范围内。Xᵢ 向量中只有一个条目是1,表示原始语言中的某个特定单词,所有其他条目都是 0。

编码器(Encoder)

在上述图片中,编码器是绿色的连续块。

  • 编码器是一个递归神经网络,编码器块只有一个,所有输入的语句都由这个块处理,一个词接着一个词。
  • 编码器块获取隐藏状态和输入词,并发出下一个隐藏状态,隐状态向量不是模型参数,它们是递归神经网络块的输出。h₀, h₁, ... , h_Tₓ是长度为 n 的隐藏状态向量,h₀ 是一个零向量。
  • 最后一个编码器隐藏状态 h_Tₓ 将是解码器的初始状态,即 s₀ = h_Tₓ。在上述图片中虚线箭头建立了这个连接。

解码器(Decoder)

在上述图片中,解码器是橙色的连续块。

  • 解码器结构和编码器类似,也是只有一个解码器块。
  • 解码器块输出两个信息: 目标语言中的下一个翻译单词、下一个解码器隐藏状态。所以它需要三个输入:前一个解码器的隐藏状态(蓝色箭头表示)、前一个输出的单词(黄色箭头表示)和上下文(紫色箭头表示)。上下文是注意机制作用的结果。
  • 解码器块会持续输出已翻译的单词,一直到一个特殊的句尾单词。
  • 虽然图片中编码器块和解码器块的数量相同,但在实际翻译过程中,输入和输出的句子很可能具有不同的长度。

输出

在上述图片中,解码器的输出是目标语言中的一系列单词概率向量:Y₁, ... , Yᵢ, ... , Y_Tₓ

  • Tᵧ 是目标语句的长度,在模型完成翻译之前是未知的,只有当解码器输出特殊的句尾单词时,目标语句长度才被确定。
  • 每个输出的概率向量 Yᵢ 的长度为 Kᵧ, Kᵧ 是目标语言的字典大小。向量 Y 中的条目 i 是 0 和 1 之间的实数,表示特定单词(即第 i 个单词)在目标语言中的概率,其中 i 是条目索引。Y 中的所有条目 i 总和为 1。一般是使用最高概率的单词作为解码器的第 i 个输出的单词。

相关公式

编码隐藏状态

  • 每个编码器隐藏状态 hᵢ 是一个长度为 n 的向量,其中 n 是编码器隐藏状态的维度。 n 是模型的超参数,通常在数百到几千之间。
  • 编码器的初始隐藏状态为零向量。所有连续的编码器隐藏状态 hᵢ 通过引用前面的编码器隐藏状态 hᵢ-₁ 递归定义,这就是递归神经网络的本质。

注意力机制

  • 注意力机制为每个输出单词计算一个上下文向量。对于第 t-th 个输出单词,上下文 cₜ 是所有编码器隐藏状态 h₁ 至 h_Tₓ 的加权平均值。
  • 在标准"编码器-解码器"架构中,来自输入语句的信息只能通过最终编码器隐藏状态向量 h_Tₓ 或者等效的初始解码器隐藏状态向量 s_₀ 获得。

解码器隐藏状态

  • 第一个解码隐藏状态 s_₀ 被设置为最后一个编码器隐藏状态 h_Tₓ,这就是为什么 s_₀ 具有与h_Tₓ 相同的形状。
  • 所有连续解码器隐藏状态 sₜ 通过引用前面的解码器隐藏状态 sₜ₋₁ 递归定义, 其中包括:前一个输出单词 yₜ₋₁,前一个解码器状态 sₜ₋₁ 和上下文 cₜ 来自注意力机制。

总结

本文介绍了首次引入注意力机制的基于递归神经网络的语言到语言翻译模型,并解释了投入产出机制是如何运作的,以及其背后数学的逻辑。

相关推荐
zhojiew20 分钟前
在RAG系统中对FAISS,HNSW,BM25向量检索引擎选型的问题
人工智能·机器学习·faiss
深藏功yu名23 分钟前
Day24:向量数据库 Chroma_FAISS 入门
数据库·人工智能·python·ai·agent·faiss·chroma
OpenBayes贝式计算29 分钟前
教程上新|低门槛部署英伟达最新 Physical AI 模型,覆盖人形机器人/人体运动生成/扩散模型微调等
人工智能·深度学习·机器学习
3DVisionary42 分钟前
突破3C质检产能瓶颈:XTOM蓝光扫描仪配合自动化转台实现精密件批量检测
运维·人工智能·自动化·xtom扫描仪·自动化检测·消费电子质检·良率控制
子木HAPPY阳VIP1 小时前
Ubuntu 22.04 VMware 设置固定IP配置
人工智能·后端·目标检测·机器学习·目标跟踪
机器之心1 小时前
英伟达革了自己的命:智能体自主进化7天,干掉所有算子工程师、GPU专家
人工智能·openai
Luke Ewin1 小时前
Linux中部署Qwen3.5大模型
linux·运维·服务器·ai·llm·qwen3.5
CoderJia程序员甲1 小时前
GitHub 热榜项目 - 日榜(2026-03-25)
人工智能·ai·大模型·github·ai教程
ZeroSilin1 小时前
Superpowers:为AI编程智能体赋予工程化超能力(安装与配置)
人工智能
云安全助手1 小时前
OpenClaw失控风暴:Meta两小时Sev1级事故,AI智能体集体黑化敲响全球安全警钟
人工智能·安全