Auto Byte

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

微信扫一扫获取更多资讯

Science AI

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

微信扫一扫获取更多资讯

邓云天作者哈佛大学NLP组博士生学校自然语言处理研究方向

哈佛NLP组论文解读:基于隐变量的注意力模型 | 附开源代码

摘要

Attention 注意力模型在神经网络中被广泛应用。在已有的工作中,Attention 机制一般是决定性的而非随机变量。我们提出了将 Attention 建模成隐变量,并应用 VAE 和 policy gradient 训练模型。在不使用 KL annealing 等 trick 的情况下训练,在 IWSLT 14 German-English 上建立了新的 state-of-the-art。

■ 论文 | Latent Alignment and Variational Attention

■ 链接 | https://www.paperweekly.site/papers/2120

■ 源码 | https://github.com/harvardnlp/var-attn

背景

近年来很多文章将 VAE 应用到文本生成上,通过引入隐变量对文本中的一些不确定性(diversity,如文章风格主题、蕴含情感等)进行建模。这样做往往会遇到一个常见的问题—— KL collapsing。这个问题最早在 16 年时由 Bowman 指出 [1],其描述的现象是直接训练 VAE 得到的 KL 接近 0——这也就意味着近似后验和先验一样,使得隐变量被模型忽略 [5]。

Bowman 的解决办法是使用 KL annealing [1](KL 项的权重从 0 开始逐渐增加到 1)或者 word dropout(不常用在此略过)。随后,17 年 Yang 等人对 KL collapsing 的问题进行了更细致的分析 [2],并提出降低 decoder 的 contextual capacity 改善这个现象。此外 Zhao 等人提出 bag-of-word loss 去解决这个问题 [3]。18年 Graves 等人也对 KL collapsing 进行了分析 [4]。

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

以下是一个简单的直觉:下图蓝色部分展示的是传统 Attention,下图红色部分展示的我们提出的隐变量 Attention。传统的 Attention 机制仅能通过之前生成的单词确定当前即将生成单词的 Attention,而因为存在多种翻译方式,所以会出现 attend 到和实际翻译的单词并不对应的位置的问题。而在红色部分展示的我们提出的隐变量 Attention 中,我们可以通过全部的源文本和目标文本去得到更准确的后验 Attention,因此 Attention 和实际翻译应该 attend 的源单词对应得更好。并且,这样得到的更好的后验 Attention 可以提供给 decoder,从而使 decoder 拿到更 clean 的 feature,藉此可以得到更好的模型。

方法

基于这个直觉,我们将注意力 Attention 建模成隐变量。假定 x 是源文本,y 是目标文本,z 是 attention,根据标准的 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 去优化上面的目标函数。由于 decoder 和 encoder 之间的主要信息传输通道是通过 attention,如果忽略了这个隐变量,就会无法得到源文本的信息而得到很大的 penalty。这与之前的许多工作中直接把隐变量加入到每个 decoding step 不同,因为那样即使 decoder 忽略了隐变量,也可以达到很好的模型表现 [5]。因此通过直接优化目标函数这个隐变量也不易被忽略,我们的实验完全验证了这一点。

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

这里我们把德语(纵向)翻译成英语(横向)。红色代表先验,即只观测到 x 而不观测到 y 的 p(z | x),蓝色代表后验,即观测到全部信息的 p(z | x, y)。注意到在第二个单词 actually 处,红色的先验试图 attend 到 nun 后面的逗号“,”,从而试图生成一个 “well,” 的翻译结果。然而实际的英语翻译中并没有逗号,反而直接是 well actually

由于后验 q(z | x, y) 可以看到实际的翻译,因此蓝色的后验正确 attend 到了 tatsachlich 上。注意到训练目标 ELBO 中我们从 q 中采样 Attention 给 decoder,因此通过使用 VAE 的方法,decoder 得到了更准确的 Attention 信号,从而可能提高模型的表达能力。

结果

实验上,我们在 IWSLT 14 German-English 上得到了新的 state-of-art。其中 KL 大约在 0.5,cross entropy loss 大约在 1.26,而且我们人工比较了很多后验和先验也很符合我们的建模直觉。

欢迎尝试我们的代码,我们提供了能复现我们 state-of-art 效果的 preprocessing、training、evaluation 的 command,以及我们报告的模型。

相比过去的大部分工作是从 Attention 计算出来的固定维度的 context vector,我们提出了将 Attention 建模成隐变量,即在 simplex 上的 Attention 本身。由于我们的工作是对 Attention 注意力机制的改进,因此理论上可以被应用到一切包含 Attention 的 task 中。文章里除了机器翻译外我们也做了个视觉问答系统的实验。我们的具体模型和 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 Dilated Convolutions 

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

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

[5]. Zhang et al, Variational Neural Machine Translation

PaperWeekly
PaperWeekly

推荐、解读、讨论和报道人工智能前沿论文成果的学术平台。

工程注意力模型VAE
3
相关数据
自动编码器技术

自动编码器是用于无监督学习高效编码的人工神经网络。 自动编码器的目的是学习一组数据的表示(编码),通常用于降维。 最近,自动编码器已经越来越广泛地用于生成模型的训练。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

神经机器翻译技术

2013 年,Nal Kalchbrenner 和 Phil Blunsom 提出了一种用于机器翻译的新型端到端编码器-解码器结构 [4]。该模型可以使用卷积神经网络(CNN)将给定的一段源文本编码成一个连续的向量,然后再使用循环神经网络(RNN)作为解码器将该状态向量转换成目标语言。他们的研究成果可以说是神经机器翻译(NMT)的诞生;神经机器翻译是一种使用深度学习神经网络获取自然语言之间的映射关系的方法。NMT 的非线性映射不同于线性的 SMT 模型,而且是使用了连接编码器和解码器的状态向量来描述语义的等价关系。此外,RNN 应该还能得到无限长句子背后的信息,从而解决所谓的「长距离重新排序(long distance reordering)」问题。

参数技术

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

注意力机制技术

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

机器翻译技术

机器翻译(MT)是利用机器的力量「自动将一种自然语言(源语言)的文本翻译成另一种语言(目标语言)」。机器翻译方法通常可分成三大类:基于规则的机器翻译(RBMT)、统计机器翻译(SMT)和神经机器翻译(NMT)。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

目标函数技术

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

问答系统技术

问答系统是未来自然语言处理的明日之星。问答系统外部的行为上来看,其与目前主流资讯检索技术有两点不同:首先是查询方式为完整而口语化的问句,再来则是其回传的为高精准度网页结果或明确的答案字串。以Ask Jeeves为例,使用者不需要思考该使用什么样的问法才能够得到理想的答案,只需要用口语化的方式直接提问如“请问谁是美国总统?”即可。而系统在了解使用者问句后,会非常清楚地回答“奥巴马是美国总统”。面对这种系统,使用者不需要费心去一一检视搜索引擎回传的网页,对于资讯检索的效率与资讯的普及都有很大帮助。从系统内部来看,问答系统使用了大量有别于传统资讯检索系统自然语言处理技术,如自然语言剖析(Natural Language Parsing)、问题分类(Question Classification)、专名辨识(Named Entity Recognition)等等。少数系统甚至会使用复杂的逻辑推理机制,来区隔出需要推理机制才能够区隔出来的答案。在系统所使用的资料上,除了传统资讯检索会使用到的资料外(如字典),问答系统还会使用本体论等语义资料,或者利用网页来增加资料的丰富性。

推荐文章
暂无评论
暂无评论~