参与李诗萌 王淑婷

CMU、谷歌提出Transformer-XL:学习超长上下文关系

以往的 Transformer 网络由于受到上下文长度固定的限制,学习长期以来关系的潜力有限。本文提出的新神经架构 Transformer-XL 可以在不引起时间混乱的前提下,可以超越固定长度去学习依赖性,同时还能解决上下文碎片化问题。

语言建模需要对长期依赖性进行建模,它成功应用了无监督的预训练方法 (Peters et al., 2018; Devlin et al., 2018)。但要让神经网络对序列数据的长期依赖性建模一直都是一项挑战。

近期,Al-Rfou 等人(2018)设计了一组辅助损失来训练深度 Transformer 网络进行字符级语言建模,其结果远超 LSTM。虽然已经取得成功,但是 Al-Rfou 等人(2018)的 LM 是在长度固定的几百个字符片段上独立训练的,没有任何跨片段的信息流。由于上下文的长度是固定的,因此模型无法捕获任何超过预定义上下文长度的长期依赖性。此外,长度固定的片段都是在不考虑句子或其它语义边界的情况下通过选择连续的符号块来创建的。因此,模型缺乏必要的上下文信息来很好地预测前几个符号,这就导致模型的优化效率和性能低下。我们将这个问题称为上下文碎片化。

为了解决上文提到的上下文固定长度的限制,本文提出了一种叫做 Transformer-XL(超长)的新架构。我们将循环概念引入了深度自注意力网络。我们不再从头计算每个新片段的隐藏状态,而是重复使用从之前的片段中获得的隐藏状态。我们把重复使用的隐藏状态作为当前片段的内存,这就在片段之间建立了循环连接。因此,对超长期依赖性建模成为了可能,因为信息可以通过循环连接来传播。同时,从之前的片段传递信息也可以解决上下文碎片化的问题。更重要的是,我们展示了使用相对位置而不是用绝对位置进行编码的必要性,因为这样做可以在不造成时间混乱的情况下实现状态的重复使用。因此,作为额外的技术贡献,我们引入了简单但有效的相对位置编码公式,它可以泛化至比在训练过程中观察到的长度更长的注意力长度。

Transformer-XL 对从单词级到字符集的五个语言数据集上建模,都获得了很好的结果。Transformer-XL 提升了当前最佳(SoTA)的结果,它在 enwiki8 上将 bpc 从 1.06 提升到 0.99,在 text8 上将 bpc 从 1.13 提升到 1.08,在 WikiText-103 上将困惑度从 20.5 提升到 18.3,在 One Billion Word 上将困惑度从 23.7 提升到 21.8。TransformerXL 在宾州树库数据集上在没有经过微调的情况下也得到了 54.5 的困惑度,在同等配置下这是当前最佳的结果。

我们用了两种方法来定量研究 Transformer-XL 的有效长度和基线。和 Khandelwat 等人(2018)所做的研究相似,我们在测试时逐渐增加注意力长度,直到观察不到显著改善(相对增益小于 0.1%)为止。在这个配置下,我们的最佳模型在 WikeText-103 和 enwiki8 中用的注意力长度分别是 1600 和 3800。此外,我们还设计了一个叫做 Relative Effective Context Length (RECL) 的指标,该指标可以公平比较增加上下文长度对不同模型带来的收益。在这个配置下,Transformer-XL 在 WikiText-103 中学到 900 个词的 RECL,而循环网络和 Transformer 分别只学到了 500 和 128 个词。

论文:TRANSFORMER-XL: ATTENTIVE LANGUAGE MODELS BEYOND A FIXED-LENGTH CONTEXT 

论文地址:https://arxiv.org/abs/1901.02860

摘要:Transformer 网络具有学习更长期依赖性的潜力,但这种潜力往往会受到语言建模中上下文长度固定的限制。因此,我们提出了一种叫做 Transformer-XL 的新神经架构来解决这一问题,它可以在不破坏时间一致性的情况下,让 Transformer 超越固定长度学习依赖性。具体来说,它是由片段级的循环机制和全新的位置编码策略组成的。我们的方法不仅可以捕获更长的依赖关系,还可以解决上下文碎片化的问题。Transformer-XL 学习到的依赖性比 RNN 学习到的长 80%,比标准 Transformer 学到的长 450%,无论在长序列还是短序列中都得到了更好的结果,而且在评估时比标准 Transformer 快 1800+ 倍。此外,我们还提升了 bpc 和困惑度的当前最佳结果,在 enwiki8 上 bpc 从 1.06 提升至 0.99,在 text8 上从 1.13 提升至 1.08,在 WikiText-103 上困惑度从 20.5 提升到 18.3,在 One Billion Word 上从 23.7 提升到 21.8,在宾州树库(不经过微调的情况下)上从 55.3 提升到 54.5。我们的代码、预训练模型以及超参数TensorFlow 和 PyTorch 中都可以使用。

3 模型

用 Transformer 或自注意力机制进行语言建模的核心问题在于,如何将 Transformer 训练为可以把任意长度的上下文有效编码为长度固定的表征。在给定无限内存和计算资源的情况下,一种简单的方法是用无条件的 Transformer 解码器处理整个上下文序列,这和前馈神经网络相似。但在实践中资源都是有限的,因此这种方法不可行。

图 1:片段长度为 4 的标准模型图示。

为了解决使用固定长度上下文的局限性,我们在 Transformer 架构中引入了循环机制。在训练过程中,为之前的片段计算的隐藏状态序列是固定的,将其缓存起来,并在模型处理后面的新片段时作为扩展上下文重复使用,如图 2a 所示。

图 2:片段长度为 4 的 Transformer-XL 图示。

尽管在上一小节中提出的想法极具吸引力,但为了重复使用隐藏状态,我们还有一个尚未解决的重要技术问题。那就是,当我们重复使用隐藏状态时,要如何保证位置信息的一致性呢?

解决这个问题的基本思想是只编码隐藏状态中的相对位置信息。对相对位置进行编码的想法已经在机器翻译(Shaw et al.,2018)和音乐生成(Huang et al.,2018)中探索过。我们在此进行了不同的推导,得到了相对位置编码的新形式,它不仅与绝对位置编码有一对一的对应关系,而且从经验上讲它的泛化效果更好。

4 实验

表 1:与在 WikiText-103 上得到的当前最佳结果进行对比。

表 2:与在 enwiki8 上得到的当前最佳结果进行对比。

表 3:与在 text8 上得到的当前最佳结果进行对比。

理论Transformer自然语言处理
3
相关数据
自注意力技术

自注意力(Self-attention),有时也称为内部注意力,它是一种涉及单序列不同位置的注意力机制,并能计算序列的表征。自注意力在多种任务中都有非常成功的应用,例如阅读理解、摘要概括、文字蕴含和语句表征等。自注意力这种在序列内部执行 Attention 的方法可以视为搜索序列内部的隐藏关系,这种内部关系对于翻译以及序列任务的性能非常重要。

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

注意力机制技术

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

机器翻译技术

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

神经网络技术

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

前馈神经网络技术

前馈神经网络(FNN)是人工智能领域中最早发明的简单人工神经网络类型。在它内部,参数从输入层经过隐含层向输出层单向传播。与递归神经网络不同,在它内部不会构成有向环。FNN由一个输入层、一个(浅层网络)或多个(深层网络,因此叫作深度学习)隐藏层,和一个输出层构成。每个层(除输出层以外)与下一层连接。这种连接是 FNN 架构的关键,具有两个主要特征:加权平均值和激活函数。

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