Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

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

attention注意力模型在神经网络中被广泛应用,不过attention机制一般是决定性的而非随机变量。我们提出了将attention建模成隐变量(注意是在simplex上的attention本身而不是从attention计算出来的固定维度的context vector),应用VAE和policy gradient训练模型,在不使用kl annealing等trick的情况下训练,在IWSLT 14 German-English上建立了新的state of art,我们的代码在https://github.com/harvardnlp/var-attn上开源,文章在https://arxiv.org/pdf/1807.03756.pdf。

背景:近年来很多文章将VAE应用到文本生成上,通过引入隐变量对不确定性进行建模。不过有个常见的KL collapsing的问题,最早由Bowman16年指出[1],现象是直接训练VAE得到的KL接近0,也就意味着近似后验和先验一样,隐变量被模型忽略[5]Bowman的解决办法是使用KL annealingKL项的权重0开始逐渐增加到1)或者word dropout(不常用在此略过)。17年杨子超[2]kl collapsing的现象进行了更细致的分析,并提出降低decodercontextual capacity改善这个现象。此外赵天成[3]提出bag-of-word loss去解决这个问题。18Graves[4]也对kl collapsing进行了分析。

在我们的工作中,attention被建模成隐变量,由于decoderencoder之间的主要信息传输通道是通过attention,如果忽略了这个隐变量,就会无法得到源文本的信息而得到很大的penalty(这相比之前的许多工作中直接把隐变量加入到每个decoding step不同,因为那样即使decoder忽略了隐变量,也可以达到很好的模型表现[5])。因此通过直接优化目标函数这个隐变量也不易被忽略,我们的实验完全验证了这一点。

值得注意的是,我们将attention建模成隐变量并不是为了单纯应用VAE这个工具,而是因为我们认为将attention建模成隐变量可以为decoder提供更cleanfeature,从而在不增加模型参数的情况下提高模型的表达能力(注意inference network在测试阶段不被使用因此不计入模型参数),在我们后面的例子中我们会做一个简单的说明。

以下是一个简单的直觉:与传统的attention机制仅能通过之前生成的单词确定当前即将生成单词的attention(下图蓝色部分,仅能观测到已经预测的单词,由于存在多种翻译方式因此会attend到和实际翻译的单词并不对应的位置)不同,我们通过全部的源文本和目标文本去得到更准确的后验attention(下图红色部分,通过全部信息得到后验,因此attention和实际翻译应该attend的源单词对应),并把更好的后验attention提供给decoder从而使decoder拿到更cleanfeature,藉此希望得到更好的模型。

方法:假定x是源文本,y是目标文本,zattention,根据标准的VAE方法,我们引入inference network q(z | x, y)去近似后验,那么ELBO可以表达为(为了简单我们考虑目标文本只有一个单词的情况):

上面不等式的右侧是ELBO,其中第一项是从q(z | x, y)中采样出attention,使用采样出的attention作为decoder的输入计算cross entropy loss,第二项是确保后验分布接近先验分布(注意到此处的先验和一般的VAE不同,我们的先验是和模型一起学习的)。我们的p(z | x)q(z | x, y)都是categorical分布,,因此我们使用policy gradient去优化上面的目标函数。

由于我们的后验q能看到全部的xy,因此后验中采样的attention可以比先验p(z | x)好,比如以下的例子:

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

结果:我们在IWSLT 14 German-English上得到了新的state-of-art,其中KL大约在0.5cross entropy loss大约在1.26,而且我们人工比较了很多后验和先验也很符合我们的建模直觉。欢迎尝试我们的代码https://github.com/harvardnlp/var-attn(我们提供了能复现我们state-of-art效果的preprocessingtrainingevaluationcommand,以及我们报告的模型)。我们的工作是对attention的改进,因此理论上可以被应用到一切包含attentiontask中,文章里除了机器翻译外我们也做了个视觉问答系统的实验。我们的具体模型和inference network的结构请参见我们的论文和代码。

限于作者的水平,本文中有错误和纰漏在所难免,望读者朋友多多包涵!也欢迎发邮件给我dengyuntian@seas.harvard.edu交流。

[1] Bowman et al, Generating Sentences from a Continuous Space

[2] Yang et al, Improved Variational Autoencoders for Text Modeling using DilatedConvolutions

[3] Zhao et al, Learning Discourse-level Diversity for Neural Dialog Models using Conditional Variational Autoencoders

[4] Graves et al, Associative Compression Networks for Representation Learning

[5] Zhang et al, Variational Neural Machine Translation

哈佛自然语言处理
哈佛自然语言处理

哈佛自然语言处理(harvardnlp)的专栏

理论哈佛大学NLP变分注意力VAE注意力机制
暂无评论
暂无评论~