突破长篇上下文理解挑战,Google发布全新自然语言理解架构

Google近日针对超越固定长度的上下文数据,发布全新的NLU架构Transformer-XL,并将Transformer-XL于GitHub上开源发布,包含研究论文中用到的预先训练的模型、超参数和程序代码。现今的自然语言理解模型有一定的限制,由于上下文之间的依赖性,导致既有的自然语言理解模型,在面对篇幅较长的上下文理解时,效果有限。

在自然语言理解研究中,通常必须使用前面的片段信息来了解当前的消息,称之为长期依赖性(long-range dependence),简单来说,就是为了正确地理解一篇文章,有时候需要参考数千个字之前的一个单词或是一个句子,大多数的研究人员用神经网络处理这项问题时,会用门控循环网络(Gating-based RNNs)和梯度裁剪(gradient clipping )技术,来改善长期依赖模型,但是还是不足以完全解决这项问题。

目前最好的方法是通过Google于2017年推出的NLU神经网络架构Transformers,Transformers允许数据元(data unit)之间直接链接的特性,能够有效地截取长期依赖性,但是在语言建模中,Transformers目前实现的方法适用于固定长度的文章,举例来说,一个长篇文章会被切成由几百个字符组成的固定长度的片段,每个片段再分开处理,而这样的方法有2大限制,一是该算法无法为超过固定长度的文本篇幅创建依赖模型,二是裁切片段的程序无法识别句子的边界,导致上下文碎片化而难以优化,这个问题就算对长期依赖性不强的较短串行而言,也是非常麻烦。

为了解决上述的限制,Google针对超越固定长度的上下文数据,发布了全新的NLU架构Transformer-XL,该架构包含2项技术: 片段式递归机制(segment-level recurrence mechanism )和相对位置编码设计(relative positional encoding scheme)。

片段式递归机制是在训练的过程中,将前一个片段的计算结果修复并保存,以利在下一个新的片段执行时重新利用,由于上下文信息可以在片段的边界中流动,神经网络深度有几层,这项额外的链接机制就能为依赖关系的长度提升几倍,除此之外,递归的机制也解决了上下文碎片化的问题,提供新的片段上下文必要的标注。

而当系统要重复使用上一个片段的结果时,必须将上一个片段的编码位置,集成至新的片段位置编码中,这样的操作会导致位置编码不连贯,为了实现片段式递归机制,因此需要搭配相对位置编码的设计,与其他相对位置编码设计不同的是,Google是用可学习的转换固定矢量,如此一来,该相对位置编码设计能够更广泛地适用于较长的串行中。

Google研究团队实验发现,Transformer-XL比vanilla Transformer模型更能有效地理解更长的上下文,且不需要重新计算就能处理新片段的数据,因此大幅提升自然语言理解的性能,Google认为,该研究成果可以改善语言模型预先训练的方法、创造逼真的长篇文章,也能协助图片和语音领域的应用开发。