作者 | LZM

来源丨数据实战派

文本生成对于许多自然语言处理应用来说都是非常重要的。

但神经语言模型的基于最大化的解码方法(如 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,该对比损失函数定义为:

其中,ρ 是预先设定的 margin,hxi 是模型输出的 xi 的表示向量。相似度函数 s 计算任意两个表示向量之间的余弦相似度:

可以想象,通过训练上述对比损失函数,不同 token 的表示间的距离将被拉开。因此,可以得到一个可分的、各向同性的模型表示空间。最终的总损失函数为:

  • 对比搜索

研究团队提出一种新的解码方法:对比搜索(contrastive search)。每一步解码时,(1)模型从最可能的候选集合中选出一个作为输出,(2)产生的输出应当与前面已经生成的内容足够不同。这种方式下生成的文本在保持与前文的语义一致性的同时还能避免模型退化。具体来说,输出 xt 的生成满足:

其中 V(k) 是候选词集合,k 通常取 3 到 10。上式的第一项代表模型对 v 的支持度 v(model confidence),是模型估计的候选词 v 为下一个词的概率。第二项是对模型退化的惩罚项(degeneration penalty)是下一个词 v 与前面已生成的词的相似度最大值。α 是超参数,负责调节两项损失之间的平衡。当 α=0 时,解码方法退化到贪婪搜索。

效率分析:该方法可以有效地实现对比搜索。所需的额外计算是退化罚的计算,该计算可以通过简单的矩阵乘法来实现。后文将证明,对比搜索的译码速度优于或可与其他广泛应用的译码方法相媲美。

文本生成


首先在开放式文本生成任务(open-ended document generation)上评价研究团队所提出的新方法。

模型和基线 本文提出的方法与模型结构无关,因此可以应用于任何生成模型。在这项实验中,他们在具有代表性的 GPT-2 模型上评估了所提出的方法。

具体来说,研究团队在评估基准(详细如下)上使用提出的目标 LSimCTG 对 GPT-2 进行了调优,并使用不同的解码方法生成连续文本。使用基础模型(117 M 参数)进行实验,该模型由 12 个 Transformer 层和 12 个 attention head 组成,将本方法与两个强基线方法进行比较:

(1)GPT-2 在标准 MLE 损失函数上微调;(2)利用非似然目标函数微调。研究团队的实现基于 Huggingface 库(Wolf 等人,2019)。

基准数据集 研究团队在 Wikitext-103 数据集(Merity 等人, 2017)上进行了实验,该数据集包含了一个包含超过 1 亿单词。Wikitext-103 是一个文档级数据集,已被广泛用于大规模语言建模的评估。

评价指标


研究团队从两个方面进行评价:

(1)语言建模质量,衡量模型的内在质量;

(2)生成质量,用来衡量生成文本的质量。

l 语言建模质量

n 困惑度

n 预测准确率

n 预测重复率

l 文本生成质量

n 生成重复度

n 多样性

nMAUVE(一种度量机器生成文本与人类生成文本间相近程度的指标;MAUVE 越高,机器文本越像人类文本)

n 语义连贯性

n 生成文本的困惑度

实验结果


表1. 多种方法在 Wikitext-103 数据集上的测试结果

表1 展示了 Wikitext-103 数据集上的实验结果。

语言建模质量 从结果来看,SimCTG 获得了最好的困惑度和下一个 token 预测准确率。因为其使用了更有区分度的分布式表示,SimCTG 在进行下一个 token 预测时更不容易混淆,从而提高了模型性能。在 rep 和 wrep 度量上,非似然模型产生了最好的结果,但代价是复杂性和下一个 token 预测准确性方面的性能下降。

文本生成质量 


首先,在 rep-n 和多样性指标上,SimCTG+对比搜索获得了最好的性能,表明它最好地解决了模型退化问题。其次,MAUVE 分数表明 SimCTG+对比搜索生成的文本在令牌分布方面与人类编写的文本最接近。第三,在所有方法中,SimCTG+对比搜索是唯一一种一致性得分在 0.6 以上的方法,表明该方法生成的文本质量高,且相对于前缀而言语义一致。最后,gen-ppl 度量也验证了 SimCTG+对比搜索的优越性,因为与其他方法相比,它获得了明显更好的生成困惑度。

此外,从 MLE 和 Unlikelihood 基线的结果来看,对比搜索仍然比贪婪搜索和 beam 搜索带来了额外的性能提升。然而,对比训练的性能提高仍然滞后于 SimCTG,这说明了对比训练的必要性。一个可能的原因是,没有对比损失 LCL,MLE 或 unlikelihood 训练出来的 token 表示不具备充分的可区分性。因此,不同候选对象的退化惩罚不易区分,输出的选择受模型置信度的影响,使得对比搜索的有效性降低。

人工评价


研究团队还通过内部评分平台,在高英语水平学生的帮助下进行了人工评价。所有生成文本和真实的后文放在一起随机打乱,然后由 5 个人类评分者评估,最终产生总共 9000 个标注样本。评估遵循李克特 5 点量表(1、2、3、4 或 5),从以下三个方面进行打分:

  • 连贯性:生成的文本是否与前文在语义上保持一致

  • 流畅性:生成的文本是否易读

  • 信息量:生成的文本是否多样,是否包含有趣的内容

表2. 文本生成的人工评价

表2 给出了人工评价结果,其中第一行显说明了人类评价能够很好的发现参考文本。首先,研究团队发现直接使用 MLE 或 Unlikelihood 模型进行对比搜索并不能得到满意的结果。这是由于它们表示空间的各向异性。第二,Unlikelihood 模型的一致性得分明显低于 MLE 和 SimCTG,表明其产生的结果最不可能,这从表1 的 generation perplexity(gen-ppl)中也可以看出。此外,SimCTG +对比搜索结果在一致性和流畅性方面明显优于不同模型的核抽样。

最后,SimCTG-large +对比搜索获得了全面的最佳性能,甚至在流畅度指标上与人类书写的文本表现相当。这揭示了该方法对于大型模型的通用性,未来的工作可以集中于将其扩展到包含超过数十亿参数的模型,如 GPT-3。

开放式对话系统


为了测试这个方法在不同任务和语言中的通用性,本文还在开放域对话生成任务中评估了研方法。在这个任务中,给定一个多回合对话上下文(每个回合都是一个用户的话语),要求模型生成一个语义上与上下文一致的适当的响应。在这里,对话语境被视为前文。

基线模型和基准测试集 研究在中文和英文两种语言的两个基准数据集上进行了实验。中国数据集方面,使用 LCCC 数据集(Wang 等人,2020)。英语数据集方面,则使用 DailyDialog 数据集。

研究团队比较了通过 SimCTG 和 MLE 微调的 GPT-2 模型。具体来说,对于中文基准数据集,使用了一个公开可用的中文 GPT-2(Zhao 等人,2019)。在训练期间,使用 128 作为 batch size,并将训练样本截断为最大长度 256 个 token。在 LCCC 数据集上,对模型进行 40k 步的训练(即微调)。对于 DailyDialog 数据集,由于其数据集较小,将模型训练 5k 步。优化方面,使用 Adam 优化器和 2e-5 的学习率。

模型评价 研究团队依靠人工评价来衡量模型的性能,从测试集中随机选取了 200 个对话上下文,请 5 位标注者从三个维度:连贯性、流畅性和(3)信息量,分别进行打分。分数遵循李克特 5 分量表(1、2、3、4 或 5)。

表3. 开放式对话的人工评价

表3 展示了开放式对话的人工评价结果。在这两个数据集上, SimCTG +对比搜索在各种指标上显著优于其他方法,这表明该方法可推广到不同的语言和任务上。值得强调的是,在 LCCC 基准测试中,SimCTG +对比搜索在流畅度指标上的表现出人意料地优于人类,而在连贯性和信息量指标上的表现也相当不错。

并且,即使不进行对比训练,MLE 模型在使用对比搜索时的性能也显著提高。这是由于汉语语言模型的固有属性,MLE 目标已经可以产生一个表现出高度各向同性的表示空间,使得对比搜索可以直接应用。这一发现尤其具有吸引力,因为它揭示了对比搜索在现成语言模型(即不进行对比训练)上的潜在适用性,适用于某些语言,如汉语。

总结


这项研究中,作者们证明了神经语言模型的退化源于它们的 token 表示的各向异性性质,并提出了一种新的方法——SimCTG,用于训练语言模型,使其获得一个各向同性且有区分度的表示空间。此外,研究还介绍了一种新的解码方法——对比搜索,该方法与本文所提出的 SimCTG 目标一致。基于在两种语言的三个基准测试集上进行的广泛实验和分析,自动和人工评价都表明了,本文所提的方法大大削弱了模型退化程度,显著优于当前最先进的文本生成方法。

技术

用Python写了个使命召唤外挂

资讯

俄罗斯 Android 系统受限

技术

面向小白超全Python可视化教程

技术

一行Python代码能干嘛?来看!

分享

点收藏

点点赞

点在看

​GPT-3好“搭档”:这种方法缓解模型退化,让输出更自然相关推荐

  1. 后GPT 3.0时代,主流大模型技术精要详解,走向AGI之路的大门已开

    转载自 | 机器之心 来源 | 知乎 作者 | 张俊林 洋洋洒洒近三万字,中国中文信息学会理事.中科院软件所博士.新浪微博机器学习团队新技术研发负责人的张俊林回顾了大型语言模型(LLM)的发展历程.技 ...

  2. 领域适配前沿研究——场景、方法与模型选择

    下期内容:岂凡超<义原知识库的应用和扩充> 报名请点击「阅读原文」 在线直播时间:12月31日19:30-20:30 12月24日, 在智源论坛Live第2期活动中,我们邀请了2019年清 ...

  3. “智源论坛Live”报名 | 清华大学游凯超:领域适配前沿研究--场景、方法与模型选择...

    报名请点击「阅读原文」 在线直播时间:12月24日19:30-20:30 "智源论坛Live"第2期 "智源论坛Live"是智源论坛系列活动之一,通过在线直播形 ...

  4. 【数据挖掘】聚类算法 简介 ( 基于划分的聚类方法 | 基于层次的聚类方法 | 基于密度的聚类方法 | 基于方格的聚类方法 | 基于模型的聚类方法 )

    文章目录 I . 聚类主要算法 II . 基于划分的聚类方法 III . 基于层次的聚类方法 IV . 聚合层次聚类 图示 V . 划分层次聚类 图示 VI . 基于层次的聚类方法 切割点选取 VII ...

  5. 装配图位置偏转怎么调整_物理微课|匀变速直线运动、电容器动态分析及磁偏转技巧、方法、模型...

    匀变速直线运动三大推论是什么?如何利用它们快速解题?电容器动态分析的重点是什么?磁偏转问题有什么严谨好用的技巧和方法?物理侯老师为您详细解答以上问题. 高一 匀变速直线运动三大推论 匀变速直线运动是我 ...

  6. 软件工程——认识方法、模型、工具和技术

    做任何事情都要讲究一个方法,好的方法可以起到事半功倍的效果,提高我们的做事效率.在我们身边,有的人做事效率很高,处理事情井井有条:有的人做事效率就比较低下,处理事情拖拖拉拉.做事效率低下的人不代表他们 ...

  7. 36个数据分析方法与模型

    目录 一.战略与组织 二.质量与生产 三.营销服务 四.财务管理 五.人力资源 六.互联网运营 好的数据分析师不仅熟练地掌握了分析工具,还掌握了大量的数据分析方法和模型. 这样得出的结论不仅具备条理性 ...

  8. 【点赞收藏】36个顶级数据分析方法与模型!

    来源:数据分析不是个事儿 好的数据分析师不仅熟练地掌握了分析工具,还掌握了大量的数据分析方法和模型. 这样得出的结论不仅具备条理性和逻辑性,而且还更具备结构化和体系化,并保证分析结果的有效性和准确性. ...

  9. SuperMap BIM+GIS-Revit模型处理-第三节 Revit模型优化方法及模型缓存策略

    在模型导入SuperMap平台之后,在应用过程中必然会遇到性能问题,随之而来的就是如何优化模型.本文将总结使用经验和理解,从实际出发介绍几种优化方法和缓存策略.以下操作均在SuperMap iDesk ...

最新文章

  1. Java项目:疫情人员流动管理系统(java+JSP+SSM+Springboot+maven+Mysql)
  2. JAVA中复制数组的方法
  3. 【Python】sort 和 sorted 的用法区别
  4. VTK:重新采样附加的 PolyData用法实战
  5. php date函数实现,PHP date() 函数可实现的功能列表
  6. SIGIR2020 | 一种新颖的推荐系统重训练技巧
  7. POJ 3159 Candies 差分约束dij
  8. 不能为虚拟电脑 ubuntu 打开一个新任务的解决办法
  9. 值类型和引用类型的区别?
  10. android中的sqlite注意事项
  11. android tv背景图片,android中shape绘制背景图片
  12. Rust: Atom中cargo build error
  13. ThinkPHP框架学习(一)
  14. pc电脑版java模拟器下载安装_PC电脑版java模拟器
  15. Openssl学习——x509证书函数
  16. 电脑终端仿真程序(crt中文免费版) 附使用说明
  17. html页面内容的收缩和展开效果,jquery简单实现网页层的展开与收缩效果
  18. CST启用GPU加速的调试笔记
  19. Tic Tac Toe
  20. 爬虫 一些爬取图片时出现的错误

热门文章

  1. LeetCode Python题解(一)----双指针法
  2. linux下字符串处理工具一:grep
  3. springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序
  4. reportNG定制化之失败截图及日志
  5. css左固定右自适应常用方法
  6. group by 查找订单的最新状态 join
  7. ListView中CheckBox使用问题
  8. 图书管理系统5W1H
  9. 1.0 封装后的布局成本
  10. WPF及Silverlight中将DataGrid数据导出