NLP 论文领读|文本生成模型退化怎么办?SimCTG 告诉你答案

欢迎关注「澜舟 NLP 论文领读」专栏!快乐研究,当然从研读 paper 开始。快快关注“澜舟科技”公众号入群交流,官网:https://langboat.com

本期分享者:白承麟

澜舟科技算法实习生,北京交通大学自然语言处理实验室二年级硕士生,目前正在进行文本生成方向的研究。

Email: chenglin.bai09@gmail.com

写在前面

开放式文本生成技术是各种自然语言应用(如故事生成、对话系统)中不可或缺的组成部分,其目标是根据给定语境创作一段连贯的文本。然而,基于 MLE 训练的语言模型往往面临退化问题,即随着生成文本长度的增加其质量会逐渐降低,容易出现多种层次(字、短语、句子级)的重复生成。

《A Contrastive Framework for Neural Text Generation》这篇论文中提出一种SimCTG 方法(a simple contrastive framework for neural text generation),通过抑制模型生成不自然且包含不必要重复的文本,从而缓解文本生成模型的退化问题。实验结果显示,SimCTG在所有对比基线模型中有着最好的文本生成性能,且在不同语言、不同的文本生成任务上具有通用性。

论文标题

A Contrastive Framework for Neural Text Generation

论文作者

Yixuan Su, Tian Lan, Yan Wang, Dani Yogatama, Lingpeng Kong, Nigel Collier

论文单位

剑桥大学语言技术实验室等

论文链接

https://arxiv.org/abs/2202.06417

研究背景与动机

重复生成是长文本生成中很常见的现象,如果你熟悉 huggingface 的话,你应该了解 huggingface 提供了一些“土办法”来解决重复生成问题,比如 no_repeat_ngram_size 和 repetition_penalty。它们并没有改变模型,而是基于规则直接修改模型计算的置信度(这也是为什么称之为“土办法”),虽然能减少重复,但会对文本的流畅度和语义有比较大的影响。

学术界中缓解退化问题目前主要有两种方法:一种方法是随机采样,从候选集合中按置信度顺序随机选取一些单词。虽然能减少重复的生成,但采样的方法引入了语义不一致问题,采样的文本往往与人写的前文语义关联性弱,甚至矛盾。另一种方法是通过修改模型的输出单词分布与非似然训练来解决退化问题,但非似然训练往往会导致不流畅的生成。

在这项工作中,作者另辟蹊径,认为神经语言模型的退化源于单词表示的各向异性分布,即它们的表示位于全体表示空间的一个狭窄子集中。

图 1. 解码中单词表示余弦相似度矩阵(a)GPT2 模型(b)SimCTG 模型

图 1 展示了单词表示的余弦相似度矩阵,显而易见,由 GPT-2 产生的单词表示(取自 Transformer 的最后一层)高度相似,这是非常不可取的,意味着这些表示彼此接近,自然地导致模型在不同的步骤中容易生成重复的单词。理想情况下,模型输出的单词表示应遵循各向同性分布,即单词的相似度矩阵是稀疏的,如图 1(b)所示。此外,在解码过程中,应尽可能保持文本的标记相似度矩阵的稀疏性,从而避免模型退化。

基于上述动机,作者提出“对比训练+对比搜索”的方法,鼓励模型学习各向同性的单词表示,避免模型退化。自动评测和人工评测结果表明,SimCTG 在两种语言的三个基准测试集上,达到了最好的性能。

对比训练

上面我们说到,单词表示的各向异性是模型退化的一个重要原因,那么如何改善表示空间,使其具备各向同性的特征呢?一个自然的想法是将单词之间的距离作为优化目标,这样就可以将表示空间中原本稠密分布的单词表示疏解开来,形成一个稀疏的、各向同性的表示空间。

具体来说,作者引入“对比学习”的思想,对于文本中的每一个单词,选取该单词作为锚点和正例,其他单词作为负例,以余弦相似度为距离度量,构建对比学习的三元损失。 对比学习的目标在于拉近锚点和正例的表示距离(由于锚点和正例为同一个单词,具有相同的表示,它们的余弦相似度恒等于 1),拉远锚点和负例的表示距离,这样就可以构造一个具有稀疏分布特性的良好表示空间啦!

对比学习的损失函数如下:

其中, ∣ x ∣ |x| x表示文本长度, ρ \rho ρ为超参数。 s s

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值