76

哈佛大学提出变分注意力:用VAE重建注意力机制

 5 years ago
source link: https://www.jiqizhixin.com/articles/2018-07-26-10?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

注意力 (attention) 模型在神经网络中被广泛应用,不过注意力机制一般是决定性的而非随机变量。来自哈佛大学的研究人员提出了将注意力建模成隐变量,应用变分自编码器(Variational Auto-Encoder,VAE)和梯度策略来训练模型,在不使用 kl annealing 等训练技巧的情况下进行训练,目前在 IWSLT German-English 上取得了非常不错的成果。

AV3UFzj.png!web

  • 论文链接:https://arxiv.org/abs/1807.03756v1

  • 相关代码:https://github.com/harvardnlp/var-attn

一、背景

近年来很多论文将 VAE 应用到文本生成上,通过引入隐变量对不确定性进行建模。不过这会导致一个常见的 KL collapsing 问题,导致的现象就是直接训练的 VAE 得到的 KL 接近于 0,也就意味着近似后验和先验一样,隐变量被模型所忽略。

为了解决这个问题,在哈佛研究人员的工作中,注意力被建模成隐变量,由于解码器 (decoder) 和译码器 (encoder) 之间的主要信息传输通道是通过注意力来传输的,如果忽略了这个隐变量,就会因无法得到源文本的信息而得到很大的惩罚 (penalty)(这相比之前的许多工作中直接把隐变量加入到每个解码步骤不同,因为那样即使解码器忽略了隐变量,也可以达到很好的模型表现)。因此通过直接优化目标函数才能使得这个隐变量也不易被忽略,研究人员的实验完全验证了这一点。

值得注意的是,研究人员将注意力建模成隐变量并不是单纯为了应用 VAE 这个工具,而是因为研究人员认为将注意力建模成隐变量可以为解码器提供更干净 (clean) 的特征,从而在不增加模型参数的情况下提高模型的表现能力。

二、实验效果

2UbMva7.png!web

与传统的注意力机制进行对比,传统的注意力机制仅能通过之前生成的单词确定当前即将生成单词的注意力(上图蓝色部分,仅能观测到已经预测的单词,由于存在多种翻译方式,因此会注意到和实际翻译的单词并不对应的位置),研究人员通过全部的源文本和目标文本去得到更准确的后验注意力(上图红色部分,通过全部信息得到后验,因此注意力和实际翻译应该与注意 (attend) 的源单词对应),并把更好的后验注意力提供给解码器,从而使解码器拿到更为干净的特征,藉此希望得到更好的模型。

三、核心思想

方法:假定 x 是源文本,y 是目标文本,z 是注意力,根据标准的 VAE 方法,研究人员引入推理网络 (inference network) q(z | x, y) 去近似后验,那么 ELBO 可以表达为(为了方便,只考虑目标文本只有一个单词的情况):

Nz26vef.png!web

上面不等式的右侧是 ELBO,其中第一项是从 q(z | x, y) 中采样出注意力,使用采样出的注意力作为解码器的输入计算交叉熵损失,第二项是确保后验分布接近于先验分布(注意到此处的先验和一般的 VAE 不同,这里的先验是和模型一起学习的)。此时的 p(z | x) 和 q(z | x, y) 都是分类分布的,因此我们使用梯度策略去优化上面的目标函数。

由于此时的后验 q 能看到全部的 x 和 y,因此后验中采样的注意力可以比先验 p(z | x) 好,比如以下的例子:

U7Bnyi7.png!web

这里需要把德语(纵向)翻译成英语(横向),红色代表先验(即只观测到 x 而不观测到 y 的 p(z | x)),蓝色代表后验(即观测到全部信息的 q(z | x, y))。注意到在第二个单词「actually」处,红色的先验试图注意到「nun」后面的逗号「,」,从而试图生成一个「well,」的翻译结果,然而实际的英语翻译中并没有逗号,而是直接是」well actually」,由于后验 q(z | x, y) 可以看到实际的翻译,因此蓝色的后验正确地注意到了「tatsachlich」上。注意到训练目标 ELBO 中我们从后验 q 中采样注意力给解码器,因此通过使用 VAE 的方法,解码器得到了更准确的注意力信号,从而提高了模型的表达能力。

四、展望

注意力方法是自然语言处理等领域普遍存在的工具,但它们很难用作隐变量模型。这项工作通过具有良好实验结果的变分注意力机制来探索潜在对齐的替代方法。研究人员同时也表示未来的工作将实验规模较大的任务和更复杂的模型,如多跳注意力模型 (multi-hop attention models),变压器模型 (transformer models) 和结构化模型 (structured models),以及利用这些潜在变量的可解释性作为一种方式去将先验知识进行结合。

相关数据

注意力机制 技术

Attention mechanism

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

来源:机器之心

交叉熵 技术

Cross-entropy

交叉熵(Cross Entropy)是Loss函数的一种(也称为损失函数或代价函数),用于描述模型预测值与真实值的差距大小

来源: 维基百科

自然语言处理 技术

Natural language processing

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

来源: 维基百科

先验知识 技术

prior knowledge

先验(apriori ;也译作 先天)在拉丁文中指“来自先前的东西”,或稍稍引申指“在经验之前”。近代西方传统中,认为先验指无需经验或先于经验获得的知识。先验知识不依赖于经验,比如,数学式子2+2=4;恒真命题“所有的单身汉一定没有结婚”;以及来自纯粹理性的推断“本体论证明”

来源: 维基百科

目标函数 技术

Objective function

目标函数f(x)就是用设计变量来表示的所追求的目标形式,所以目标函数就是设计变量的函数,是一个标量。从工程意义讲,目标函数是系统的性能标准,比如,一个结构的最轻重量、最低造价、最合理形式;一件产品的最短生产时间、最小能量消耗;一个实验的最佳配方等等,建立目标函数的过程就是寻找设计变量与目标的关系的过程,目标函数和设计变量的关系可用曲线、曲面或超曲面表示。

来源: 百度百科

参数 技术

parameter

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

来源: 维基百科

vQzyQzA.png!web
机器之心

机器之心是国内领先的前沿科技媒体和产业服务平台,关注人工智能、机器人和神经认知科学,坚持为从业者提供高质量内容和多项产业服务。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK