写点什么

NLP 中的 attention 机制

  • 2019-09-26
  • 本文字数:2155 字

    阅读完需:约 7 分钟

NLP中的attention机制


本篇介绍在 NLP 中各项任务及模型中引入相当广泛的 Attention 机制。在 Transformer 中,最重要的特点也是 Attention。首先详细介绍其由来,然后具体介绍了其编解码结构的引入和原理,最后总结了 Attention 机制的本质。

1 注意力机制的由来

在深度学习领域,注意力机制模仿的是人类认知的过程。当人看到如下“美女伤心流泪”图时,细细想一下,人在做出图片中美女是在伤心流泪的过程,应该是先整体扫描该图片;然后将视觉注意力集中到美女的脸部;集中到脸部之后,再进一步将视觉注意力集中到眼睛部位。最后发现了眼泪,得出美女是在伤心流泪的结论。



人类在对信息进行处理的过程中,注意力不是平均分散的,而是有重点的分布。受此启发,做计算机视觉的朋友,开始在视觉处理过程中加入注意力机制(Attention)。随后,做自然语言处理的朋友们,也开始引入这个机制。在 NLP 的很多任务中,加入注意力机制后,都取得了非常好的效果。


那么,在 NLP 中,Attention 机制是什么呢?从直觉上来说,与人类的注意力分配过程类似,就是在信息处理过程中,对不同的内容分配不同的注意力权重。下面我们详细看看,在自然语言处理中,注意力机制是怎么实现的。

2 seq2seq 结构及其中的 Attention


如上图所示,是标准的编解码(seq2seq)机制的结构图,在机器翻译、生成式聊天机器人、文本摘要等任务中均有应用。其处理流程是通过编码器对输入序列进行编码,生成一个中间的语义编码向量 C,然后在解码器中,对语义编码向量 C 进行解码,得到想要的输出。例如,在中英文翻译的任务中,编码器的输入是中文序列,解码器的输出就是翻译出来的英文序列。


可以看出,这个结构很"干净",对于解码器来说,在解码出 y1,y2,y3 时,语义编码向量均是固定的。我们来分析下这样是否合理。


假设输入的是"小明/喜欢/小红",则翻译结果应该是"XiaoMing likes XiaoHong"。根据上述架构,在解码得到"XiaoMing",“likes”," XiaoHong"时,引入的语义编码向量是相同的,也就是"小明",“喜欢”,“小红"在翻译时对得到"XiaoMing”,“likes”," XiaoHong"的作用是相同的。这显然不合理,在解码得到"XiaoMing"时,"小明"的作用应该最大才对。


鉴于此,机智的 NLP 研究者们,认为应该在编解码器之间加入一种对齐机制,也就是在解码"XiaoMing"时应该对齐到"小明"。在《Neural Machine Translation By Jointly Learning To Align And Translate》中首次将这种对齐机制引入到机器翻译中。我们来看看,这是怎样的一种对齐机制。


我们先回顾一下刚才的编解码结构,其语义编码向量和解码器状态,通过如下的公式得到:



通常在解码时语义编码向量是固定的。若要实现对齐机制,在解码时语义编码向量应该随着输入动态的变化。鉴于此,《Neural Machine Translation By Jointly Learning To Align And Translate》提出来一种对齐机制,也就是 Attention 机制。



如上图示,论文中采用双向 RNN 来进行语义的编码,这不是重点,我们先不关注。其对齐机制整体思想是:编码时,记下来每一个时刻的 RNN 编码输出(h1,h2,h3,…hn);解码时,根据前一时刻的解码状态,即 yi-1,计算出来一组权重(a1,a2,…an),这组权重决定了在当前的解码时刻,(h1,h2,h3,…hn)分别对解码的贡献。这样就实现了,编解码的对齐。


下面我们用数学语言描述一下上面的过程。


首先,进行编码计算(h1,h2,…hn),i 时刻的编码状态计算公式如下:



然后,开始解码,加入此时在解码的 i 时刻,则需要计算 i 时刻的编码向量 Ci,通过如下的公式计算:



aij 是对不同时刻的编码状态取的权重值。由此可见,i 时刻的语义编码向量由不同时刻的编码状态加权求和得到。


下面看看,如何取得权重向量 a:



权重向量 ai 通过加入解码器前一个时刻的状态进行计算得到。eij 表示,在计算 Ci 时,hj 的绝对权重。通过对其使用 softmax 函数,得到 aij。aij 就是在计算 Ci 时,hj 编码状态的权重值。


得到权重向量 ai 及语义编码向量 Ci 后,就可以计算当前时刻的解码状态了:



这就是编解码机制中注意力机制的基本内容了,本质上就是为了实现编解码之间的对齐,在解码时根据前一时刻的解码状态,获取不同时刻编码状态的权重值并加权求和,进而获得该时刻语义编码向量。


那么,抽离编解码机制,Attention 机制的本质是什么呢?我们下面来看看。

3 Attention 机制的本质

我们回想一下,引入 Attention 机制的本意,是为了在信息处理的时候,恰当的分配好”注意力“资源。那么,要分配好注意力资源,就需要给每个资源以不同的权重,Attention 机制就是计算权重的过程。


如下图所示,



如上图所示,我们由资源 Value,需要根据当前系统的其他状态 Key 和 Querry 来计算权重用以分配资源 Value。


也就是,可以用如下的数学公式来描述 Attention 机制:



F 函数可以有很多,在 transformer 中用的是点积。

总结

Transformer 中最重要的特点就是引入了 Attention,其对于 Transformer 性能的重要性我们下一篇介绍。总的来说,Adttention 机制是一种对齐机制,它通过对系统当前的某些状态进行评估,来对系统资源进行权重分配,实现对齐,具体可以看机器翻译的例子。


作者介绍


小 Dream 哥,公众号“有三 AI”作者。该公号聚焦于让大家能够系统性地完成 AI 各个领域所需的专业知识的学习。


原文链接


https://mp.weixin.qq.com/s/kn4zYDCCkzBfnL1AP6g8RA


2019-09-26 18:502259

评论 1 条评论

发布
用户头像
Attention应该全文统译为注意力,第一次出现的地方用括号标注attention就好了,多处不统一,不好哦。
2019-09-28 02:46
回复
没有更多了
发现更多内容

深度解析观测云智能监控的核心设计原理

观测云

智能监控

Navicat Data Modeler Ess for Mac(数据库建模与设计工具)

Mac相关知识分享

数据库建模

大数据平台也“云化”?这份改造指南收藏了!

天翼云开发者社区

云计算 大数据 云平台

云行| 天翼云中国行走进甘肃,智绘数字陇原新图景!

天翼云开发者社区

人工智能 云计算

科改考核最高评级,拿下!

天翼云开发者社区

云计算 云服务 云平台

克服指标管理痛点,实现数据价值最大化

袋鼠云数栈

指标体系 指标监控 指标 指标平台 指标建设

怎样解决TikTok直播网络问题、顺利直播带货?

Ogcloud

TikTok tiktok运营 tiktok直播 tiktok直播网络 tiktok直播带货

【HDC.2024】“零代码”智能组装,华为云新一代iPaaS超联接能力让集成更智能

华为云PaaS服务小智

云计算 软件开发 零代码 华为云 大模型

浅谈Java Profiling

乘云数字DataBuff

Java Profiling 实时监控

Xcode 15 for Mac(开发工具)

Mac相关知识分享

xcode

公平发售平台开发:重塑代币发行的未来

开发丨飞机丨 @aivenli

低代码开发平台推动生产性服务业与制造业融合

EquatorCoco

低代码 生产 制造业

Word文档内容自动生成PPT!这5款堪称办公神器的AI工具不要错过!

彭宏豪95

markdown PPT 在线白板 办公软件 AI生成PPT

Moment of Inspiration for Mac(MoI 3D建模工具)

Mac相关知识分享

3d建模

首次引入GPT-4o!图像自动评估新基准来啦

Openlab_cosmoplat

图像 #人工智能 ChatGPT

华为的成功,你也可以复制

IPD产品研发管理

华为 产品 产品设计 项目 项目经理

KubeCon 香港:移动云与云猿生联合议题《在没有专用 Operator 的情况下管理数据库集群》

小猿姐

数据库 Kubernetes operator

TikTok直播专线实现流畅海外直播体验

Ogcloud

TikTok Tik Tok tiktok直播 tiktok直播带货

2024年,C++正在失去人气吗?

伤感汤姆布利柏

低代码开发平台助力企业数据分析走向高阶段

不在线第一只蜗牛

数据挖掘 数据分析 低代码

国科云浅谈IPv6改造的技术挑战与解决方案

国科云

SourceTree for Mac(Git客户端工具)

Mac相关知识分享

Git管理神器

python提取特定格式的数据

快乐非自愿限量之名

Python

京东商品详情数据接口(JD.item_get)丨京东API接口指南

tbapi

京东 京东商品详情数据接口 京东API接口

NLP中的attention机制_AI&大模型_小Dream哥_InfoQ精选文章