首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
布朗尼尼尼
门头沟学院 深度学习
关注
已关注
取消关注
🐴
@Les1ie:
Attention:面试必备的 Attention 机制总结
Attention 知识点总结 本文从 Attention 机制的角度,主要对 Attention Is All You Need 中提出的 Transformer 和 Multi Head Attention 模型、其他相关 Attention 机制进行知识点总结。 BERT、GPT、GAT 等相关的上层模型将另行总结。 Additive Attention 基于加权求和实现的注意力机制。 对于所有的候选元素集合 ,计算所有 对目标 的 Attention 分数的主要过程如下: 其中 为 的特征; 为基于 和 计算的分数,用于计算归一化后的 Attention 权重。 注意:这里主要介绍 Additive Attention 这一思想,所以不对涉及其特定任务与模型的细节做过多介绍。 在 [1] 中做的是翻译任务:输入一中语言的词汇序列,输出另一种语言的词汇序列。 在 [1] 中, ,为原语言(词汇序列 ) 与翻译后的目标语言用于对齐(已翻译出 个词汇后,并不是所有原语言中的词汇都和待翻译第 个目标语言词汇相关,在 中挑选一部分出用于翻译第 个目标语言词汇的操作就是对齐)后的关联性分数,而 为 (第 个元素 Attention 后的结果)通过 RNN 输出得到,[1] 中计算 的目的便是将其用于计算 。 也就是说, 的这种计算方式是特定于 [1] 所研究的任务和所提出的模型的,其作用本身就是在 Additive Attention 这一思想中“用于计算归一化后的 Attention 权重”。 References Neural machine translation by jointly learning to align and translate Scaled Dot-Product Attention 目前最为常用的基础 Attention 模块。 通过给定的 Query、Key、Value,计算 Query 对每一个 Key 的注意力分数,并将其与 Key 对应的 Value 相乘(Key 和 Value 一一对应)。 模型结构为: 输入输出分别为: 3 个输入: 2 个输出:attention weights ( Softmax 的输出,在Pytorch中为可选输出)、attented value 计算过程 先使用 和 点乘,并除以 进行缩放(Scale); 再使用 Softmax 进行归一化,得到 Attention 权重; 可选:Softmax 之前可以传入一个 Mask 矩阵用于遮住不希望和当前元素计算 Attention 的元素。 最后将其与 点乘,得到 Attention 后的输出。 细节 Scale 的作用:矩阵点乘可能会导致数值指数级增加,从而使得 softmax 的梯度非常小,所以使用 进行缩放来避免这个问题 [1][2]。 原论文相关描述[1] We suspect that for large values of , the dot products grow large in magnitude, pushing the softmax function into regions where it has extremely small gradients. To counteract this effect, we scale the dot products by . To illustrate why the dot products get large, assume that the components of and are independent random variables with mean and variance . Then their dot product, , has mean and variance . Softmax 的作用: 点积的值域是 直接与 相乘后的值域也是 ,Softmax 将其归一化至 区间便于后续与 相乘; 同时也起到以对梯度进行缩放的作用(防负数以及过大的结果导致梯度度问题)。 References Attention Is All You Need - arXiv Transformer Networks: A mathematical explanation why scaling the dot products leads to more stable gradients Illustrated Guide to Transformers- Step by Step Explanation Multi-Head Attention 基于 Scaled Dot-Product Attention 进一步堆叠,结构如下: 通过并行地执行多个 Scaled Dot-Product Attention 模块,并连接其所得结果作为输出。 模型的向量输入输出与 Scaled Dot-Product Attention 相同,但是多一个模型结构参数 表示其内部 head 的数量。 计算 在每一个 内,先分别使用 对 进行线性变换, 再使用 Scaled Dot-Product Attention 进行计算; 再连接所有 head 的输出结果,并使用 进行线性变换得到最终输出。 细节 多个 head 的计算互相独立,可以通过并行计算完成; Multi Head 的意义是:让模型“注意”到更为丰富的特征(从不同角度去学习特征之间的关联, 如 [2] 中的 CaseStudy 所示); 原论文相关描述^[1]^ Multi-head attention allows the model to jointly attend to information from different representation subspaces at different positions. 在原文以及一般的实现中(如Pytorch),不会对每一个 head 都使用 维的向量,而是将每一个 head 的维度设置为 以优化计算开销(如此,则计算的总维度是 ,而非 ,是接近 single-head attention 的),因此也限制了 必须为 的整数倍; 原论文相关描述[1] In this work we employ parallel attention layers, or heads. For each of these we use . Due to the reduced dimension of each head, the total computational cost is similar to that of single-head attention with full dimensionality. References Attention Is All You Need - arXiv Deepinf: Social influence prediction with deep learning Transformer Transformer 可以被认为是Multi-Head Attention、MLP、残差连接、Positionnal Encoding、Encoder-Decoder结构的组合应用。其结构如下: 计算 Positional Encoding 位置编码 主要通过三角函数对位置进行编码: 其特点是: 是非参数的,不可学习; 任意两个位置的编码间具有可转换性,使得编码可表示其位置上的相对关系; 原论文相关描述 [1] We chose this function because we hypothesized it would allow the model to easily learn to attend by relative positions, since for any fixed offset , can be represented as a linear function of . 奇、偶维度使用的是不用的三角函数,且每一个维度的三角函数的频率和周期都是不同的(与位置、当前维度、总维度相关),确保了每一个位置都能有一个完全独特的编码。 Encoder 编码器 & Decoder 解码器 如其结构示意图所示,Encoder 和 Decoder 中负责主要计算的骨架网络(Backbone)都是多层 Attention、MLP、Normalization 的残差叠加。 Encoder 中,每一个位置的元素能对所有位置的元素进行 Attention; Decoder 中,则对数据进行了 Mask,每一个位置的元素只对在其左边的元素进行 Attention,目的是防止向左的信息流以保证自回归性。 原论文相关描述 [1] We need to prevent leftward information flow in the decoder to preserve the auto-regressive property. We implement this inside of scaled dot-product attention by masking out (setting to ) all values in the input of the softmax which correspond to illegal connections. 自回归性 指在时间序列中,第 个元素值只和第 至 个元素相关,可通过前 各元素的回归计算得到,数学表示为 。 为一个回归函数,如加权求和等。 细节 Multi-Head Attention 是顺序/位置不敏感的。 中的每一个元素会和 中所有个元素相乘并计算 Attention Score,这个的计算结果和 中元素的顺序/位置是没有关系的,只和元素值的大小有关,因此 Multi-Head Attention 是对顺序/位置不敏感的——无论 和 中元素的排列顺序如何其对应元素计算的结构都是恒定的、其计算的结果也无法反映其顺序/位置关系。 Positional Encoding 的作用是解决 Multi-Head Attention 的顺序/位置不敏感性。 通过给不同位置的元素加上一个能表示其顺序/位置值,将位置特征反应到了元素的特征值中,使得最终的计算结果是和元素的顺序/位置相关的——让模型利用到数据顺序/位置上的特征。 原论文相关描述 [1] Since our model contains no recurrence and no convolution, in order for the model to make use of the order of the sequence, we must inject some information about the relative or absolute position of the tokens in the sequence. 其他优化细节: Label Smoothing:基本原理是提高了模型学习的不确定性,让模型在每次输出时即使单个词的概率分数再高也能“考虑”输出其他词,最终起到了提高模型学习能力的效果。这也是分类问题中常用的优化技巧。 原论文相关描述 [1] This hurts perplexity, as the model learns to be more unsure, but improves accuracy and BLEU score. Residual Dropout:对于残差连接的当前层输出和上一层输出相加后再正则化这一组操作,对其来自上一层的输出(不包括当前层的输出)和残差连接后的结果均进行 Dropout。 References Attention Is All You Need - arXiv Transformer Architecture: The Positional Encoding BERT BERT 是基于 Transformer 设计一个模型,内部本身并没有针对 Transformer 模型或 Attention 机制进行创新,而是将其作为基本模块进行了进一步的模型构建。 细节 使用了预训练+微调的训练方案; 模型内使用了无监督的优化方案。 References BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding - arXiv 总结 广义上的 Attention Mechanism 指的是学习数据在特定上下文的不同重要性分布的机制,而 Multi-Head 广义上也可以指代使用多组参数去 Attention 分数的优化技巧。 但更多情况下,Multi-Head Attention 指代的是 Attenion Is All You Need 中使用的这一 Attention 模型 (其在PyTorch中有也相关实现torch.nn.MultiHeadAttention)。 Attenion Is All You Need 中使用的 Multi-Head Attention 具有如下性质: 要求规则的输入(Batch 中所有元素的 Size 是统一的才能对 进行矩阵操作,如通道和大小一直的多张图片、长度对齐的多段文字等),无法被直接应用到图数据这一不规则拓扑结构中。 因此,在 GNN 领域中有代表性的 Attention 模型有 GAT、HAN 等,它们基于图结构设计了专门的 Attention 计算机制,同时也均使用了 Multi-Head 进行优化。 位置/顺序不敏感,需要额外使用位置编码等手段来利用数据位置/顺序上的特征。
点赞 7
评论 3
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
04-30 22:09
The University of Sheffield 运营
大家好,我是一名跨境电商运营,有将近一年全链路实战经验,在牛客潜水很久了,鼓起勇气发一帖求内推,希望
求内推】上财+谢菲尔德硕士|跨境电商运营1年|求供应链/运营/BD大厂外企大家好,我是一名跨境电商运营,有将近一年全链路实战经验,在牛客潜水很久了,鼓起勇气发一帖求内推,希望有缘人看到!📌 基本情况本科:上海财经大学 · 国际理财硕士:英国谢菲尔德大学(Russell Group)· 应用经济学英语:雅思7.5 / PTE 77,日常工作沟通无压力求职地:深圳📌 实战经历独立负责OZON、Wildberries、Mercado Libre三个平台从0到1搭建,覆盖工业品、电动工具、手机配件、汽车导航等多品类。管过200+供应商渠道,对接过俄罗斯、巴西、墨西哥本土物流,单店月GMV做到7万美...
我是XXX,请攻击我最薄...
点赞
评论
收藏
分享
昨天 21:21
贵州医科大学 前端工程师
26应届生找工作实录,迷茫,绝望与错位
摘要:一名26届双非本科生就业真实困境,迷茫,绝望与错位点亮和提升自己的意识高度临近大四毕业,又是一个春天,在宿舍写下这篇文章,我没有明确要写什么,删删减减,大脑的敏捷性不似从前,语言表达能力也在退化,已经很久没有写代码了,起初还会刷一点算法题让自己保持思考,但人的天性还是懒惰的,这些为后面的一些事埋下了伏笔。大一过的浑浑噩噩,对所有的课程提不起兴趣,有时候逃掉一下午的课,来到图书馆,静静坐到日落黄昏,等到校园广播响起,路上的学生逐渐多了起来,看着他们有说有笑,心里涌起一丝悲凉,那段时间总爱胡思乱想,但又不知道该如何改变,找不到学习的动力。我很迷茫后面加入了字节跳动青训营,选择了前端开发,不知...
点赞
评论
收藏
分享
04-27 20:50
已编辑
门头沟学院 Python
暑期总算结束了
27届,bg双非本211硕,0实习找暑期,简直是地狱难度,要么简历挂,要么笔试挂,总算有约面的最多到二面也杳无音迅,某天晚上一时冲动投了字节(因为传说中的面评机制导致我一直没敢投,本来是打算先找个中小厂填简历,等秋招再面字节)没想到顺的不可思议,第二天hr就打电话约面了tl:3.30一面,第二天约二面4.3二面,隔一天约三面4.9三面,结束后10min约hr面,hr闲聊确认到岗时间,当场口头oc回想起那段日子,真是相当煎熬的一段时光,基本每个小时都忍不住检查邮箱,效率也是真的高,我都没想到简历能被捞这么快(点名某鹅某为,到现在都还在泡池子气笑了)最大的感受就是,实习这事是真的玄学,一个月前还在为实习天天愁的睡不着,做梦也想不到一个月后能坐在宇宙厂工位上。有时候被拒绝也不一定是你能力的问题,横向竞争太激烈了。千万不要灰心,保不准哪天就柳暗花明了
我的求职进度条
点赞
评论
收藏
分享
不愿透露姓名的神秘牛友
03-20 22:18
28届211Java后端
boss上投了200份了,还是没有约到面试,甚至没有回复,好焦虑😖
FightingNa...:
小厂不喜欢离毕业还远的。培养你三个月小半年,你又回去上学,你丰富简历爽歪歪,小厂啥也得不到。大厂兴许愿意培养你,可以试试大厂,准备下不黑了就行。
点赞
评论
收藏
分享
不愿透露姓名的神秘牛友
04-30 16:00
某小说公司面试感受
既然已经出结果了,也锐评一下这家公司的面试流程(nbcs)。个位数的岗位,简历也不知道是不是真的认真筛过,貌似不相关经历的也邀请来面试,候选人池子之深可想而知。于是乎面试一个岗位分了上午,中午,下午各个场次,还不止一天,给主包安排在早上8点多,前滩这个地方附近也没有实惠的酒店,于是得从酒店很早起床来参加线下面试。到了地方还得先听一边HR介绍公司,介绍完又领到一个地方等。面试遇到三个面试官+HR,一个面试官全程不说话,从不正眼看人,甚至一脸戏谑,不知道在打量什么;一个全程戴口罩,是感冒了还是咋的了也不知道。提的问题和简历的经历项目毫无关联,面试者回答完没有任何反应,毫无交流,反而像走流程一样,奇...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
阿里实习三天跑路
0
2
...
有人知道,招银网络后端春招还有第二批吗?大概什么时候
0
3
...
历时2个月暑期终于结束了
0
4
...
选offer求助及未来发展建议
0
5
...
双非鼠鼠大结局-三方已签
0
6
...
互联网只适合竭泽而渔
0
7
...
bg四非大学本暑期情况
0
8
...
暑期实习
0
9
...
offer 帮选
0
10
...
211本嵌软真没人要...
0
创作者周榜
更多
正在热议
更多
#
这个offer值得去吗?
#
13353次浏览
151人参与
#
金三银四,你的春招进行到哪个阶段了?
#
35441次浏览
332人参与
#
联宝杯大学生创新大赛,你的技术值得产业级答案
#
46027次浏览
509人参与
#
如果春招能重来,我会___
#
15011次浏览
181人参与
#
Prompt分享
#
77240次浏览
1274人参与
#
除了线上,还能去哪些地方投简历
#
8547次浏览
101人参与
#
校招第一份工作你干了多久?
#
152852次浏览
640人参与
#
硬件人秋招进展
#
292058次浏览
4042人参与
#
你觉得实习能学到东西吗
#
153206次浏览
1480人参与
#
搜狐工作体验
#
6793次浏览
54人参与
#
反问环节如何提问
#
141362次浏览
2740人参与
#
想做Agent可以做哪些岗位?
#
12765次浏览
416人参与
#
面试官拷打AI项目都会问什么?
#
11930次浏览
420人参与
#
招银网络科技(深圳)有限公司成都分公司笔试
#
6043次浏览
25人参与
#
你觉得最好用的AI编程工具是_
#
4638次浏览
97人参与
#
哔哩哔哩笔试
#
42310次浏览
166人参与
#
军工所铁饭碗 vs 互联网高薪资,你会选谁
#
14023次浏览
80人参与
#
你实习是赚钱了还是亏钱了?
#
127392次浏览
715人参与
#
大厂还是考编
#
134546次浏览
1399人参与
#
非技术岗简历怎么写
#
338677次浏览
3301人参与
#
实习第一天,你在干什么
#
8963次浏览
110人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务