文本生成对于许多自然语言处理应用来说都是非常重要的。
但神经语言模型的基于最大化的解码方法(如 beam search)往往导致退化解,即生成的文本是不自然的,并且常常包含不必要的重复。现有的方法通过采样或修改训练目标来引入随机性,以降低某些 token 的概率(例如,非似然训练)。然而,它们往往导致解决方案缺乏连贯性。
近日,来自剑桥大学、香港中文大学、腾讯 AI 实验室和 DeepMind 的科学家们证明,自然语言生成模型出现退化现象的一个潜在原因是 token 的分布式表示向量存在各向异性。
他们进一步提出了一个基于对比学习的自然语言生成框架。在两种语言的三个基准测试上进行的大量实验和分析表明,该方法在人工评估和自动评估两个方面上优于目前最先进的文本生成方法。
研究动机与主要研究内容
图1. Token 表示向量的 cosine 相似度矩阵
这项研究中,研究团队发现,神经语言模型的退化源于 token 表示向量的各向异性分布,即它们的表示向量驻留在整个空间的一个狭窄子集中。
图1(a)展示了 token 表示向量的 cosine 相似度矩阵,其中表示向量来源于 GPT-2 的最后一个隐层的输出。研究团队看到句子中 token 之间的余弦相似度超过 0.95,这意味着这些表征彼此十分接近。
在理想情况下,模型的 token 表示应遵循各向同性分布,即 token 相似度矩阵应是稀疏的,不同 token 的表示应是有区别的,如图2(b)所示。在解码过程中,为了避免模型退化,需要保留生成文本的 token 相似矩阵的稀疏性。
基于上述动机,研究团队提出了 SimCTG(一个简单的神经文本生成对比框架),该框架鼓励模型学习有区分度的、各向同性的 token 表示。
对比搜索背后的关键直觉是:
(1)在每个解码步骤,输出应该从组中选择最有可能的候选词的预测模型,以更好地维护生成的文本之间的语义一致性;
(2)token 相似矩阵的稀疏性应该保持以避免退化。
主要方法
对比训练
研究团队的目标是鼓励语言模型学习有区别且各向同性的 token 表示。为此,在语言模型的训练中引入了一个对比损失函数 LCL。给定任意一个变长序列 x,该对比损失函数定义为: