五 点云深度学习系列博客: 注意力机制原理概述

目录
1. 注意力机制由来
2. -核回归
3. 多头注意力与自注意力
4. 模型
随着模型在NLP , CV甚至CG领域的流行 , 注意力机制( )被越来越多的学者所注意 , 将其引入各种深度学习任务中 , 以提升性能 。清华大学胡世民教授团队近期发表在CVM上的综述 [1] , 详细介绍了该领域相关研究的进展 。对于点云应用 , 引入注意力机制 , 设计新的深度学习模型 , 自然是一个研究热点 。本文以注意力机制为对象 , 概述其发展脉络 , 以及在点云应用领域的成功应用 , 为期望在该研究方向有所突破的同学 , 提供一点参考 。
1. 注意力机制由来
参考李沐老师深度学习教材 [2] 关于注意力机制部分的介绍 , 这里对注意力机制给出一个简单的解释 。注意力机制即模拟人类视觉感知下 , 选择性地筛选信息进行接收和处理的机制 。在信息筛选时 , 如果不提供任何自主性提示 , 即人在不做任何思考的情况下 , 阅读一段文本 , 观察一个场景 , 或听一段音频时 , 注意力机制偏重于异常信息 , 如一个黑白场景下穿红色衣服的女孩 , 或一段文字中的一个感叹号等 。当引入自主性提示时 , 比如希望阅读和某个名词有关的语句 , 或有各对象关联的场景时 , 注意力机制引入这种提示 , 并且在信息筛选时 , 提高对这种信息的敏感度 。为了对上述过程进行数学建模 , 注意力机制引入三个基本元素 , 即查询(Query) , 键(Key)和值(Value) 。这三个元素共同构成了 的基本处理单元 。键(Key)和值(Value)对应信息的输入和输出 , 查询(Query)对应的自主性提示 。基本处理单元如下图所示 。
注意力机制通过注意力汇集 , 将查询和键结合在一起 , 实现对值的选择倾向 。键和值是成对的 , 就像训练任务中的输入输出 , 是已知的数据分布 , 或者类别对应 。注意力机制通过在注意力汇聚中输入查询 , 建立查询到每一个键的权重编码 , 得到查询与键的关系 , 进而指导对应值的输出 。简而言之 , 就是当查询越接近某个键时 , 查询的输出结果就越接近键对应的值 。该过程将注意力引入了更接近查询的键值对应关系 , 以指导符合注意力的输出 。如果将查询与键对应建立一个二维的关系矩阵 , 当值相同时为1 , 不同时为0 , 其可视化结果可表示为:
2. -核回归
这里介绍一个经典的注意力机制模型 , 即-核回归 [3][4] , 用以理解注意力机制的基本运行逻辑 。假设我们我们有一个受函数f控制的键值对应关系数据集{(x1,y1),(x2,y2),...(xi,yi)} , 学习任务是建立f , 并指导对新的x键的求值 。在这个任务中 , (xi,yi)对应的就是键和值 , 输入的x表示查询 , 目标是获得其对应的值 。按照注意力机制 , 需要通过考察x与键值对应关系数据集中每一个键值的相似关系 , 建立对其值的预测 。当输入的x越接近某个xi键时 , 那么输出的值就越接近yi 。这里对键值最简单的估计器是求平均:
显然 , 这不是一个好主意 。因为平均汇聚忽略了样本在键值分布上的偏离差异 。如果将键值的差异引入到求值的过程 , 那么结果自然会变好 。-核回归即使用了这样的思路 , 提出了基于加权的求值方法: