当前位置:首页 > 游戏资讯

attention attention的动词

2023-09-14 15:45:34

attention attention的动词

attention attention的动词

阿里美导读:我已经被论文里的各种关注搞糊涂了。虽然我零碎整理了一些关于注意力的笔记,但是重点和线索还是比较乱。今天,来自阿里巴巴的工程师易南对注意力的知识进行了系统的梳理、回顾和总结,以帮助对注意力有疑问的同学。

前言

自2015年提出关注以来,在NLP领域,图像领域遍地开花。注意力赋予模型辨别和分辨的能力,从纷繁复杂的信息中找到应该关注的重点。2017年自关注的出现,大大提升了NLP领域的表情表征能力,整个NLP领域开启了全面拥抱变形金刚的时代。

本文将主要从两个方面介绍注意事项。

我刚开始认识注意力的时候,主要是把注意力的历史梳理一下,然后给出一个大概的框架来回答一个终极问题:什么是注意力?

仔细数一下关注度,从上面给出的大致框架的角度来看所有的关注度。在这一章中,你会遇见、认识并爱上各种注意力(全局/局部、软/硬、Bagdanau注意力、Luong注意力、自我注意力、多头注意力,以及它们的别名),了解它们的联系和区别。

初识Attention

历史

注意力的发展大致可以分为两个阶段。

从2015年到2017年,自从关注度被提出后,基本上就成了NLP模型的标配,各种花式关注铺天盖地。不仅在机器翻译中,在文本摘要、文本综合(q & amp;a),文本分类也被广泛使用。奠定基础的文章如下:

2015年,ICLR的“联合学习对齐和翻译的神经机器翻译”首次提出关注(基本公认为第一提案)。本文提出了机器翻译最经典的注意力结构(或称bahdanau注意力),直观展示了注意力与源语言的对齐效果,解释了深度模型学到了什么,人类对此深信不疑。

2015年,EMNLP“基于注意的神经机器翻译的有效方法”开始研究一些基于基本注意的变化操作,尝试了不同的得分函数和不同的对齐函数。本文使用的注意(多重注意或Luong注意)结构也被广泛使用。

2015年,ICML的《展示、出席和讲述:视觉注意下的神经图像字幕生成》是注意(提出硬/软注意的概念)在图像字幕中的应用。故事圆满直观,人类再一次表达了自己的确信。

在上述基础工作的基础上,2016年和2017年的注意力已经展开了枝叶,并无劣势。分层注意,注意之上的注意,多级注意………这些不是出名就是不出名。

2017年——至今,属于变形金刚时代。基于transformer强大的表达学习能力,NLP领域爆发了新一轮的活力,伯特和GPT领衔NLP任务效果。基石无疑是:

2017年NIPS《注意力是你所需要的全部》提出了transformer的结构(涉及自我注意,多头注意)。基于transformer的网络可以完全取代顺序排列的循环网络,实现RNN无法实现的并行化。并且使得长距离的语义依赖和表达更加准确(据说2019年的Transformer-XL:attention language模型超越定长上下文,通过片段级循环机制结合相对位置编码策略,可以捕捉更长的依赖)。

什么是注意力?

开门见山地问“什么是注意力?”。本章试图用一个统一的抽象框架来定义注意力。就像先写一个抽象类,后续章节涉及到的所有注意力都是继承自这个抽象类。这里我写了两个抽象类,一个叫做基于对齐,另一个叫做基于记忆。这两个名字是我起的,我保留最终解释权。

★基于对齐

模型设置如下图所示,输入c(上下文,有的论文写S),y(输入,有的地方也写H),输出z,图中英文表述为原创,仔细看看。

图像来源:

https://towardsdatascience . com/memory-attention-sequences-37456d 271992

我们来拆解一意力模型,以经典的巴赫达瑙注意力为例,看看抽象三部曲:

score function :度量环境向量与当前输入向量的相似性;找到当前环境下,应该 focus 哪些输入信息;

alignment function :计算 attention weight,通常都使用 softmax 进行归一化;

generate context vector function :根据 attention weight,得到输出向量;

下图更直观的展示了这三个界面的位置:

从此,要识别一个注意力的细节,我们只需要理解这三个部分,所有的变换都是在三个位置调整,当然得分函数是变化最多的。在后一章中,将详细比较不同种类的注意在这三个维度上的转化。

★基于记忆

另一个视角是QKV模型,假设输入为Q,所需上下文以(k,v)的形式存储在内存中。我觉得在q &;在任务A中,这个设定是合理的,这种建模方式被transformer采用。k是问题,V是答案,Q是新问题。看历史记忆中哪个K和Q更相似,然后根据相似K对应的V合成当前问题的答案。

图像来源:

https://zhuanlan.zhihu.com/p/35571412

在这种建模方法下,也分为三个步骤:

address memory (score function):,在 memory 中找相似;normalize(alignment function) : read content (gen context vector function) :

其实我还是没有从上面三部曲的框架里逃出来。只需将输入拆分成kvpair。

在下文中,所有的注意力将在一个统一的三部曲(得分函数、对齐函数、生成上下文向量函数)中进行分析。

注意细节

以上,我们对注意力三部曲的建模方法有了一个高层次的认识,接下来就要把注意力全部拉出来,坐成一排。

结构

如下图所示,一些常听到的注意之间的差异主要体现在score-function层面,其次是generate context vector function层面。让我们来看看这些注意之间的区别和联系。

★生成上下文向量函数

硬/软注意是《展示、出席和讲述:视觉注意下的神经图像字幕生成》一文中提出的概念。最直观的理解是,硬注意是一种随机抽样。采样集是输入向量的集合,采样的概率分布是对齐函数产生的注意权重。因此,硬注意的输出是一个特定的输入向量。软注意是一个加权求和的过程。求和集是输入向量的集合,对应的权重是对齐函数产生的注意权重。在硬/软注意中,软注意更常用(后面提到的所有注意都属于这一类),因为它是可以衍生的,可以直接嵌入到模型中进行训练。

★对齐功能

在软注意中,全局/局部注意(在本文中:基于注意的神经机器翻译的有效方法)是分开的。

直观的理解就是加权求和的集合不一样。全局注意力是所有输入向量作为一个加权集,softmax作为一个对齐函数,局部是输入向量的一部分进入这个池。为什么使用本地?其背后的逻辑是减少噪音,进一步缩小关注的关键领域。接下来的问题是,如何确定这个局部范围?提出了local-m和local-p两种方案。local-m所依据的假设比较生硬简单,所以直接pass。Local-p有一个预测操作,预测输入序列(总长度为S)在当前时刻的位置(两个参数向量,vp和wp),然后在对齐函数中做一些调整。在softmax计算的关注度的基础上,加入以pt为中心的高斯分布来调整对齐结果。

最后作者阐述了local-p+general(score-function指上图中的通用版)的方式是最好的。但从全局/局部分类的角度来看,还是更常用全局注意,因为复杂的局部注意带来的效果增益并不大。

★分数功能

如何生成输出向量,有上面提到的那些变换。然后是更多样的分数函数。最常用的评分函数就是上图中的那些(基本上看情况)。其实本质就是衡量两个向量的相似度。如果两个向量在同空,可以用点乘法(或者scaled点积,scaled背后的原因是减少数值,softmax的梯度更大,可以学得更快),简单易用。如果不在同空,就需要一些变换(也可以在a 空之间进行变换),加法把输入线性变换然后相加,乘法变换直接用矩阵乘法(你有没有想过注意力为什么叫加法和乘法注意力?)。

稍后,我们将介绍几种有代表性的注意,并通过具体的注意例子来进一步理解它。和一些注意的小技巧,看看每个人如何以不同的方式使用注意。

Bahdanau注意和。梁注意了

相比之下,认知更清晰,一张图表达了一切。这两个注意是整个注意的基础工作。这两种关注的API都在Tensorflow中实现。

自我关注和。多头注意力

★为什么自我关注?

关于自我关注的文章很多,但是关于为什么自我关注的文章不多,所以我打算花更多的笔墨来写为什么。

RNN tricky的长距离依赖比较:RNN非常强大(可以作为编码器从任意长度的序列中提取特征,基于特征提取的能力可以胜任分类任务,另一方面可以作为生成器学习语言模型)。其实核心是长距离依赖(gate architectures——线性运算允许信息保持和流动,选择性地让信息通过),可以表示任意长度的序列,但这种方法还是有猫腻的。而且,这种序列建模方法不能很好地表达具有层次结构的信息。

由于递归性质,RNN不能是并行的。

CNN在NLP中扮演n-gram的检测器的角色,可以在层内并行。CNN运作良好是基于本地信息相互依赖的假设。CNN有一个分等级的感受野,使得任意两个位置之间的长度距离是对数的。

那么有没有两全其美的方法呢?

与CNN相比,恒定路径长度不应是对数路径长度,应使用可变大小的感知场,不应使用固定大小的感知场。

相比RNN,考虑异地依赖,还可以并行!

这是自我关注。从下图可以看出,自我关注和卷积有些类似。它抛弃了CNN的局部假设,想找到远距离的关联和依赖。请看下图,了解自我关注的这些特征:

constant path length & variable-sized perceptive field :任意两个位置(特指远距离)的关联不再需要通过 Hierarchical perceptive field 的方式,它的 perceptive field 是整个句子,所以任意两个位置建立关联是常数时间内的。parallelize : 没有了递归的限制,就像 CNN 一样可以在每一层内实现并行。

图像来源:

https://nlp.stanford.edu/seminar/details/lkaiser.pdf

自我关注借鉴了CNN中多核的思想,进一步演化为多头关注。每个不同的头部使用不同的线性变换,并学习不同的关系。

★什么是自我关注?

关于《变形金刚》和《自我关注》已经有很多好文章了,还有里面的细节。有兴趣的同学可以看看参考文献[11]详细介绍一下。下图是完整版多头关注的例子(引自以上链接)。这是基于前面提到的QKV的基于记忆的建模方法。需要说明的几点:

1.QKV是输入x的线性映射。

2.得分函数使用比例点积。

3.将多个头的输出Z以多头的方式串联,通过线性变换得到最终的输出Z。

《变形金刚》框架下的自我关注本身就是一个很大的创新,还有一个很有意思的就是三种关注方式的设计。在注意力权重一栏的英文翻译中,编码器进入机器学习,解码器进入机器学习。

Encoder self-attention:Encoder 阶段捕获当前 word 和其他输入词的关联;MaskedDecoder self-attention :Decoder 阶段捕获当前 word 与已经看到的解码词之间的关联,从矩阵上直观来看就是一个带有 mask 的三角矩阵;Encoder-Decoder Attention:就是将 Decoder 和 Encoder 输入建立联系,和之前那些普通 Attention 一样;

除了呼吁书中提到的东西,还有像《变形金刚》中的位置编码、残差等小而美的东西。在复杂性方面,它也与原文中的CNN有线电视新闻网进行了比较。

模式注意

下面简单介绍几种注意模式:

RNN对序列进行了建模,但它缺乏层次信息。语言本身是有层次结构的,短语组成句子,句子组成章节。因此,研究者非常希望在模型中反映语言中的这些层次结构,层次化的方式就出现了。“用于文档分类的分层注意网络”,从单词注意到句子注意,如下图1所示。

在匹配或检索任务中(如Q & amp;a,IR),来衡量查询和doc的相似度,此时在关注度的方法中,查询和doc互为上下文,查询为doc计算一个关注度,doc为查询计算一个关注度,“Attention-over-Attention neural networks for reading consideration”,如下图2所示。

RNN和CNN的一些优势和问题在上面的为什么关注自己的介绍中已经提到了。几乎与transformer同时,facebook发表了《卷积序列到序列学习》。同样,它想借用CNN的优势来弥补RNN不并行的弱点,用CNN结合注意力来建模序列,如下图3所示。

随着transformer的流行,围绕transformer的花边,出现了加权Transformer“用于机器翻译的加权Transformer网络”。今年出现了transformer-XL《Transformer-XL:超越定长上下文的注意力语言模型》,如下图4所示,以实现任意长度输入的特征提取,而不是Transformer切割成段的定长输入。

摘要

为什么注意力会起作用?

从上面的建模中,我们可以大致感受到,注意力的思路很简单,四个字“有重量的和”就可以高度概括,道路很简单。打个不太恰当的比方,人类学习一门新语言基本上要经历四个阶段:死记硬背(通过阅读和背诵来学习语法,练习语感)-& gt;提纲(简单对话通过理解句子中的关键词准确理解核心意思)-& gt;精通(复杂对话理解语言背后的语境参照和联系,有举一反三的能力)-& gt;登顶(沉浸式大量练习)。

这也像注意力的发展。RNN时代是一个死记硬背的时代。注意力的模型已经学会了勾勒,进化到了变形金刚,具有优秀的表达学习能力。再到GPT和伯特,通过多任务大规模学习积累实战经验,战斗力爆棚。

来回答为什么注意力这么好?因为它让模型明白,明白轮廓,学会整合。

你是怎么开始明白的?因为它明白“语境决定一切”。

1.在语言模型中:语言模型是整个NLP领域的基础,语言模型的准确性基本上直接控制着所有NLP任务的命脉。上下文掌握着语言模型的命脉,它的语义不是孤立的。它展现了特定语境下的特定一面。如果模型能学习到这些知识,就能达到与人对话,胡说八道的理想状态。

在语义表达上善用上下文是成功的典范(参考:word2vec通过学习单词及其上下文发了财,elmo-deep的上下文化单词表示法,BERT从句子中剪下一个单词并用上下文进行预测,Transformer-xl使用的上下文信息比Transformer更全面,XLNet的一个重要贡献是研究如何利用上下文信息训练语言模型。

2.在其他领域:注意力是利用上下文的最好例子之一。注意力背后的基本思想是在不同的背景下关注不同的信息。这是一个普遍的标准。所以注意力可以用在所有有类似需求的地方,而不仅仅是NLP和图像,这取决于你如何定义上下文。

在许多应用场景中,注意层肩负着特征选择和恐惧呈现的部分责任。比如电子商务中的物品推荐用领域感知注意网络的迁移学习提到,不同场景下的用户有不同的偏好(场景是情境,价格和品牌是不同的信息)。天猫用户看重品牌,亲淘用户的焦点价格。你可以通过注意力层了解用户在不同情境下的注意力在哪里。在ctr估算中,深趣网对于点击率预测的出发点是类似的。在推荐的场景中,文章特征感知多头注意力用于猜测您最喜欢的排序模型。这些都是商业场景中注意土地的参考。

最后,国际搜索推荐算法部正在招聘人才!如果你对信息检索、自然语言处理、图像处理和机器学习感兴趣,并想加入我们,你的简历申请地址是carrie.ywj@alibaba-inc.com。

参考

1.王晓明,王晓明.基于联合学习的神经机器翻译[J].计算机科学,2002(2).arXiv预印本arXiv:1409.0473,2014。

2.徐凯,巴J,Kiros R,等.展示、注意和讲述:视觉注意下的神经图像字幕生成[J].arXiv预印本arXiv:1502.03044,2015。

3.刘明辉,王文辉.基于注意的神经机器翻译方法研究[J].arXiv预印本arXiv:1508.04025,2015。

4.注意是你所需要的全部[C]//神经信息处理系统的进展。2017: 5998-6008.

5.戴,杨,杨,等.转换者-xl:固定长度语境之外的注意语言模型[J].arXiv预印本arXiv:1901.02860,2019。

6.杨Z,杨D,戴尔C,等.面向文档分类的分层注意网络[C]//计算语言学协会北美分会2016年会议论文集:人类语言技术。2016: 1480-1489.

7.崔琰,陈志,魏胜,等.用于阅读理解的注意-过度注意神经网络[J].arXiv预印本arXiv:1607.04423,2016。

8.从卷积序列到序列学习[C]//第34届机器学习国际会议录-第70卷。JMLR。org,2017: 1243-1252。

9 . https://github . com/kimiyoung/transformer-XL

10 . https://lilian Weng . github . io/lil-log/2018/06/24/attention-attention . html

11 . https://jalammar . github . io/illustrated-transformer/

12 . https://www . jinshu . com/p/b 1030350 aadb

13 . https://arxiv . org/ABS/1706.06978

标签 动词   attention
今日推荐
跨界新纪元:Wii U GamePad操控《血源》惊艳亮相
跨界新纪元:Wii U GamePad操控《血源》惊艳亮相

近日,外网知名博主@BrutalSam_发布了一段令人瞩目的视...[详细]

独家专栏
精彩推荐
热门排行
热门标签