从 Seq2Seq 到 Attention:彻底改变序列建模
探究Attention机制和意力的起源。
简介
在这篇博文[1]中,将讨论注意力机制的起源,然后介绍第一篇将注意力用于神经机器翻译的论文。由于上下文压缩、短期记忆限制和偏差,具有 2 个 RNN 的 Seq2Seq 模型失败了。该模型的 BLEU 分数随着序列长度的增加而不断降低。

上图显示,随着句子长度的增加,具有 2 个 RNN 的 Seq2Seq 模型会急剧失败。它无法捕获大序列中的所有相关信息。这个问题催生了Attention机制。事实上,注意力的起源可以追溯到很久以前,这次我们学习了如何用数学方式表达它并将其用于机器翻译。
注意力机制的起源
如果我们能抛开一切,专注于我们的眼睛是如何工作的,我们就很容易找到注意力机制的起源。我们可以看到面前的多个物体,但我们会同时关注一个物体。这是我们的注意力提示。我们更重视一些感官输入,而不太重视某些感觉输入。我们可以使用非意志和意志提示来选择注意力的焦点。非意志线索基于环境中物体的显着性和显着性。使用基于变量选择标准的意志提示,这种形式的注意力更加刻意。随着受试者的自愿努力,它也会变得更加强大。

查询、键和值
让我介绍一下查询、键和值的概念。在注意力机制的背景下,我们将意志线索称为查询。给定任何查询,注意力机制会通过注意力池对感觉输入进行偏向选择。这些感官输入在注意力机制的背景下称为值。更一般地说,每个值都与一个键配对,可以将其视为该感官输入的非意志提示。

注意力集中
注意力池是指对注意力机制产生的注意力权重中包含的信息进行聚合或总结的过程。注意力评分函数用于根据输入序列的不同部分与当前解码步骤的相关性为其分配权重或分数。

上图所示的机制是,对于特定查询,我们通过使用注意力评分函数来计算其与所有键的相关性。然后我们应用 softmax 运算来获得概率分布(注意力权重)。稍后我们根据这些注意力权重计算这些值的加权和。
注意力评分函数
有不同类型的注意力评分函数。有加性注意力、乘性注意力和缩放点积注意力。 Bahdanau 使用附加注意力作为评分函数。所以,我将在这里讨论它。缩放点积将在下一篇基于“Attention is all you need”论文的博客文章中进行解释。当查询和键是不同长度的向量时,我们使用附加注意力作为评分函数。

给定一个查询 (q) 和一个键 (k),加性注意力评分函数首先连接 Wq 和 Wk。然后将其输入具有单个隐藏层的 MLP,其隐藏单元的数量为 h(一个超参数)。 Tanh 用作激活函数,偏置项被禁用。
Bahdanau Attention
Bahdanau 注意力及其附加注意力公式成为一种强大且广泛采用的注意力机制。它提供了捕获解码器和编码器状态之间复杂对齐的灵活性,使模型能够生成更准确和上下文感知的序列。这种架构允许模型自动(软)搜索源句子中与预测目标单词相关的部分。为每个单词分配注意力权重,以了解模型应该对每个单词给予多少“注意力”(即,对于每个单词,网络学习一个“上下文”)

Bahdanau 注意力机制由三个主要组件组成:编码器、解码器和注意力评分函数。编码器由双向 RNN 组成,解码器由单向 RNN 组成。双向循环神经网络 (BRNN) 是一种 RNN 架构,可以向前和向后处理输入序列。它结合来自过去和未来上下文的信息,在每个时间步骤进行预测或生成输出,使模型能够捕获两个方向的依赖关系。上图中,BRNN 的隐藏状态用 h(t) 表示,单向 RNN 的隐藏状态用 s(t) 表示。

注意力权重 a(t,T) 表示每个编码器隐藏状态与当前解码步骤的相关性。这些注意力分数量化了应该对输入序列的每个部分给予多少注意力。这是由另一个前馈网络计算的。该网络接受编码器和解码器的隐藏状态的输入并输出值 e。然后使用 softmax 函数对注意力分数进行归一化,将其转换为概率分布。 softmax 函数确保注意力分数总和为 1,从而可以将它们解释为权重或概率。

在上图中,上下文向量被计算为编码器隐藏状态的加权和,以注意力分数作为权重。然后这个上下文向量被输入到解码器中。上下文向量与解码器先前的隐藏状态连接,并且该组合表示用作生成下一个输出标记的输入。

总结
总之,注意力机制的起源和 Bahdanau 注意力的引入彻底改变了序列建模和自然语言处理领域。受人类认知过程启发的注意力概念使神经网络能够专注于输入序列的相关部分,并在序列生成任务期间做出明智的决策。从注意力机制的早期到 Bahdanau 注意力所带来的突破,这一历程为机器翻译、文本摘要、语音识别和其他基于序列的任务的进步铺平了道路。
Reference
Source: https://medium.com/@zaiinn440/from-seq2seq-to-attention-revolutionizing-sequence-modeling-67282ba82e83
本文由 mdnice 多平台发布
相关文章:

从 Seq2Seq 到 Attention:彻底改变序列建模
探究Attention机制和意力的起源。 简介 在这篇博文[1]中,将讨论注意力机制的起源,然后介绍第一篇将注意力用于神经机器翻译的论文。由于上下文压缩、短期记忆限制和偏差,具有 2 个 RNN 的 Seq2Seq 模型失败了。该模型的 BLEU 分数随着序列长度…...
手机通讯类、ip查询、智能核验、生活常用API接口推荐
手机通讯类 手机号码归属地:提供三大运营商的手机号码归属地查询。 空号检测:通过手机号码查询其在网活跃度,返回包括空号、停机等状态。 手机在网状态:支持传入三大运营商的号码,查询手机号在网状态,返…...

1.6 基本安全设计准则
思维导图: 1.6 基本安全设计准则笔记 目标:理解和遵循一套广泛认可的安全设计准则,以指导保护机制的开发。 主要准则: 机制的经济性:安全机制应设计得简单、短小,便于测试和验证,减少漏洞和降…...

图扑 HT for Web 手机端运维管理系统
随着信息技术的快速发展,网络技术的应用涉及到人们生活的方方面面。其中,手机运维管理系统可提供数字化、智能化的方式,帮助企业和组织管理监控企业的 IT 环境,提高运维效率、降低维护成本、增强安全性、提升服务质量,…...

LiveGBS流媒体平台GB/T28181常见问题-国标级联海康国标级联大华国标级联华为等,配置了国标级联, 上级看不到通道该怎么办?
LiveGBS常见问题-国标级联海康国标级联大华国标级联华为等,配置了国标级联, 上级看不到通道该怎么办? 1、如何配置国标级联2、上级看不到通道排查2.1、是否共享通道2.3、通道编号是否满足上级要求 3、如何抓包分析4、搭建GB28181视频直播平台 1、如何配置国标级联 …...

数字频带传输——二进制数字调制及MATLAB仿真
文章目录 前言一、OOK1、表达式2、功率谱密度3、调制框图 二、2PSK1、表达式2、功率谱密度 三、2FSK1、表达式 四、MATLAB 仿真1、MATLAB 源码2、仿真及结果①、输入信号及频谱图②、2ASK 调制③、2PSK 调制④、2FSK 调制⑤、随机相位 2FSK 调制 五、资源自取 前言 数字频带信…...
Bitdu 150万美元投资MSG:Web3合作典范催动极致交易体验
在Web3时代,如何一键把握DEX领域的机遇,是摆在一众中心化交易所面前的难题。 近期,新锐加密资产交易所Bitdu向MsgSender(MSG)投资150万美元,引起了专业的交易者们的关注。大家普遍认为,这一事件…...
CentOS一键部署Docker
Docker官网:https://www.docker.com/ CentOS(7.6) Docker(18.06.1)一键安装脚本 #!/bin/bash echo "1、安装依赖..." yum -y install gcc yum -y install gcc-c##验证gcc版本 gcc -vecho "2、卸载老…...

Centos虚拟机安装配置与MobaXterm工具及Linux常用命令
目录 一、Centos操作系统 1.1 Centos介绍 1.2 Centos虚拟机安装 1.3 配置centos的镜像 1.4 虚拟机开机初始设置 1.4.1 查看网络配置 1.4.2 编辑网络配置 二、MobaXterm工具 2.1 MobaXterm介绍 2.2 MobaXterm安装 2.3 切换国内源 三、Linux常用命令和模式 3.1 查看网络配置 …...

springboot医院绩效考核系统源码
医院绩效考核系统是一种以人力资源管理为基础,选用适合医院组织机构属性的绩效理论和方法,基于医院战略目标,构建全方位的绩效考评体系,在科学、合理的绩效管理体系基础上,采用科学管理的方法,如平衡计分卡…...
Java--枚举类型
Java中枚举类型可以取代一般的常量定义方式,可以将常量封装在类或接口中;枚举类型本质上还是以类的形式存在的,枚举类型继承于java.lang.Enum类,定义一个枚举类型时,每一个枚举类型成员都可以看做是枚举类型的一个实例…...

有没有好用的配音工具?推荐这5款
为什么越来越多的短视频创作者愿意使用配音工具。 除了这些配音工具可以进行批量处理,实现大规模的音频制作,从而提高生产效率。还可以帮助其节约大量的人力,想一下,以前配音,不同的音色、角色需要不同的人来完成&…...
tomcat安装及配置教程
以下是 Tomcat 安装及配置的基本步骤: 下载 Tomcat 并解压缩:在 Apache Tomcat 的官网上下载最新版本的 Tomcat,然后解压缩到你想要安装的目录下(比如 /usr/local/tomcat)。 配置 PATH 环境变量:在终端中打…...

UNIPOSE: DETECTING ANY KEYPOINTS(2023.10.12)
文章目录 AbstractIntroduction现有的方法存在哪些不足基于此,我们提出了哒哒哒取得惊人的成绩Related Work MethodMULTI -MODALITY PROMPTS ENCODING(多模态提示编码)Textual Prompt Encoder(文本提示编码器)Visual P…...

如何用ChatGPT快速写出一份合格的PPT报告
我们【AI写稿专家】的小伙伴中有很多企业高管和公务员,大家经常有写报告写ppt的需求,下面小编给大家介绍一下我们新发布生成PPT的功能,很简单很方便,看完大家不到1分钟就能生成一份拿得出手的PPT报告,再也不用费尽心思…...

Linux内存管理的分页机制
分段机制的原理如下: 分段机制下的虚拟地址由两部分组成,段选择子和段内偏移量。段选择子就保存在段寄存器里面。段选择子里面最重要的是段号,用作段表的索引。段表里面保存的是这个段的基地址、段的界限和特权等级等。虚拟地址中的段内偏移量…...
Unity DOTS系列之托管/非托管Component的区别与性能分析
最近DOTS发布了正式的版本, 我们来分享一下DOTS里面托管与非托管Component的区别与性能分析,方便大家上手学习掌握Unity DOTS开发。托管与非托管的区别在于是不是基于自动垃圾回收的。托管是由垃圾回收器来负责自动回收,非托管需要我们手动来做相关内存管…...
elementui el-upload 上传文件
文章目录 前言一、Html2.上传 总结 前言 在使用element中的el-upload上传文件或者图片时,需要先把el-upload的自动上传改为手动上传:auto-upload“false”然后el-upload内部会调用this.$refs.upload.submit();方法,从而实现多个文件上传。 提示…...

Python图像处理【15】基于非锐化掩码锐化图像
基于非锐化掩码锐化图像 0. 前言1. 使用 scikit-image filters 模块执行非锐化掩码2. 使用 PIL ImageFilter 模块执行非锐化掩码3. 使用 SimpleITK 执行拉普拉斯锐化4. 使用 OpenCV 实现非锐化掩码小结系列链接 0. 前言 非锐化滤波器是一个简单的锐化算子,通过从原…...

介绍几款Linux 下终极SSH客户端
安全外壳协议(Secure Shell,简称 SSH)是一种网络连接协议,允许您通过网络远程控制计算机。特别是在Linux命令行模式下,使用SSH,可以很方便管理linux上的运维工作。以下是一些最受欢迎的Linux SSH客户端&…...

Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
Java求职者面试指南:计算机基础与源码原理深度解析
Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践
作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...

【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制
目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...

如何在Windows本机安装Python并确保与Python.NET兼容
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
2025年低延迟业务DDoS防护全攻略:高可用架构与实战方案
一、延迟敏感行业面临的DDoS攻击新挑战 2025年,金融交易、实时竞技游戏、工业物联网等低延迟业务成为DDoS攻击的首要目标。攻击呈现三大特征: AI驱动的自适应攻击:攻击流量模拟真实用户行为,差异率低至0.5%,传统规则引…...

运行vue项目报错 errors and 0 warnings potentially fixable with the `--fix` option.
报错 找到package.json文件 找到这个修改成 "lint": "eslint --fix --ext .js,.vue src" 为elsint有配置结尾换行符,最后运行:npm run lint --fix...
uniapp获取当前位置和经纬度信息
1.1. 获取当前位置和经纬度信息(需要配置高的SDK) 调用uni-app官方API中的uni.chooseLocation(),即打开地图选择位置。 <button click"getAddress">获取定位</button> const getAddress () > {uni.chooseLocatio…...