研究导读语言模型与结构化学习
← 全部导读

概率注意力与隐变量推断

把注意力建模为隐变量:学习注意力的概率分布

Yuntian Deng、Yoon Kim、Justin Chiu、Demi Guo 和 Alexander M. Rush 的 Latent Alignment and Variational Attention(NeurIPS 2018)将注意力建模为显式隐变量,并使用变分推断进行学习。其一般思路是对网络关注的位置建立概率分布,并对这一分布进行推断,而不是把一个确定性的加权平均向量传入预测网络。

原始研究

Latent Alignment and Variational Attention
Yuntian Deng, Yoon Kim, Justin Chiu, Demi Guo, Alexander M. Rush · NeurIPS 2018

动手理解一个例子

先取平均不等于对潜变量边缘化

调整潜变量的概率,比较 sigmoid 预测函数下的 f(E[z]) 与 E[f(z)]。

潜变量有两个可能取值: z = 0 和 z = 4。非线性预测函数为 f(z) = sigmoid(z)。

P(z = 0)50.0%
P(z = 4)50.0%
先取平均,再预测f(E[z]) = 0.881
先预测,再边缘化E[f(z)] = 0.741

差值:0.140

归一化注意力权重与概率模型有什么区别

注意力向量由非负且和为一的权重组成。但这一数值性质并没有规定不确定性如何参与预测。确定性机制用这些权重构造一个上下文向量,然后执行一次下游网络。隐变量机制定义不同的注意力状态,在这些状态下分别预测,再综合它们的贡献。

用 z 表示注意力状态,用 f 表示下游计算。一般情况下,f(E[z]) ≠ E[f(z)]。例如,z 以相同概率取 0 或 2,且 f(z) = z²。先求均值再计算 f,结果为 1;分别计算两个输出再求平均,结果为 2。神经网络的预测包含非线性操作,因此把期望移到网络的另一侧会改变模型。这正是“对表示求平均”和“对预测求平均”的区别。

来源: Latent Alignment and Variational AttentionStructured Attention Networks

隐对齐与变分注意力

2018 年的论文把对齐作为生成模型中的显式变量。论文研究了选取一个源元素的类别对齐,以及把注意力分配到多个元素混合上的狄利克雷(Dirichlet)对齐。摊销变分推断学习以观测输入和输出为条件的后验分布。方差缩减方法使隐变量推断能用于实际训练,实验涵盖机器翻译和视觉问答。

先验注意力回答“在知道答案之前应关注哪里”,后验注意力回答“哪些对齐能够解释已经观测到的答案”。这是两个不同的条件分布。论文的推断网络在训练时使用目标信息;这与生成阶段把未来目标词提供给从左到右的预测器是不同的操作。

来源: Latent Alignment and Variational Attention

注意力后验告诉我们什么

设想一张图片里有两个人,问题是“谁拿着杯子”。在看到答案之前,模型为两个人都分配注意力概率。观测到答案后,后验推断把概率重新分配给能够解释这个答案的对齐。

当注意力与另一个概率模块组合时,这一区别同样重要。显式变量说明了哪些量是条件、哪些备选状态被积分消去,以及近似方法替换了哪一步。采样得到的注意力向量、它的期望和最大概率取值回答不同的问题;明确分布后,这些选择就能被逐项检查。

来源: Latent Alignment and Variational Attention

理解概率注意力模型的四个问题

首先确定随机对象:选中的位置、位置上的概率分布、上下文向量,还是完整的结构化选择。其次规定先验,以及后验能使用哪些信息。然后辨明预测时综合的是中间表示,还是输出似然。最后说明训练与预测是枚举状态、采样、使用期望,还是优化变分近似。

Latent Alignment and Variational Attention 使用类别值或单纯形上的对齐;Variational Attention for Sequence-to-Sequence Models 使用高斯上下文向量。这两种模型的隐变量和推断问题不同。

方法随机对象或结构化对象推断的作用
Latent Alignment and Variational Attention类别或狄利克雷对齐学习对齐后验,近似边缘似然
Structured Attention Networks子序列或树的选择计算期望表示
Variational Attention for Seq2Seq高斯上下文向量保留经过编码器—解码器的随机路径
Bayesian Attention Modules归一化注意力权重的分布重参数化变分训练

来源: Latent Alignment and Variational AttentionStructured Attention NetworksVariational Attention for Sequence-to-Sequence ModelsBayesian Attention Modules

运行精确注意力与变分注意力示例

下载可独立运行的注意力笔记本或 Python 脚本。示例比较两种计算:先对源特征取平均再送入非线性预测器;在不同类别注意力状态下分别预测,再对输出概率取平均。

示例计算一个观测标签对应的后验,并优化类别变分分布。精确对数似然与证据下界(ELBO)之差,等于该变分分布到精确后验的 KL 散度。示例针对一个观测使用固定的生成参数;原论文则跨样本学习摊销推断网络,并研究了狄利克雷注意力。

代码使用 Python 3.9+ 及其标准库运行,无需模型权重、API 密钥或 GPU。下载全部三个示例及数值检查。

来源: Latent Alignment and Variational Attention

论文与实现

ICLR 2017

Structured Attention Networks

Yoon Kim, Carl Denton, Luong Hoang, Alexander M. Rush

使用可微图模型推断,对子序列和句法树进行注意力计算。

建模结构化选择并计算期望表示;对完整预测进行边缘化是不同的操作。

NeurIPS 2020

Bayesian Attention Modules

Xinjie Fan, Shujian Zhang, Bo Chen, Mingyuan Zhou

由归一化的可重参数化随机变量构造注意力权重分布,并使用贝叶斯正则化学习。

把概率注意力发展为带有数据依赖先验的模块化随机权重。