【论文笔记】DialoGPT:Large-Scale Generative Pre-training for Conversational Response Generation

DIALOGPT:Large-Scale Generative Pre-training for Conversational Response Generation

在这里插入图片描述

会议:ACL2020 System Demonstrations

原文DialoGPT-acl2020demos

源码项目地址

Abstract

从Reddit上获取了2005-2017年的147M评论数据进行生成式预训练,发布了DialoGPT模型。DialoGPT具备通用对话回复能力,能够生成更具相关性、内容丰富、上下文一致性的回复。

Model

Model Architecture

使用GPT2作为基本架构,把多轮对话建模为长文本,把对话生成任务视为语言建模。具体而言,将一个多轮对话单元拼接为一个长文本,以文本标记符结束。然后将source(对话历史)表示为 S = x 1 , ⋅ ⋅ ⋅ , x m S = x_1,···,x_m S=x1⋅⋅⋅xm,将target(生成目标)表示为 T = x m + 1 , ⋅ ⋅ ⋅ , x N T = x_{m+1},···,x_N T=xm+1⋅⋅⋅xN。将第二句至最后一个句子都作为回复,优化所有的源-目标对(source-target pair)。

Mutual Information Maximization

  • 为了应对开放域文本生成容易生成枯燥、无信息性文本的问题,本文实现了一个最大互信息评分函数(MMI)。

  • MMI采用了一个预训练的后向模型,从给定的回复预测源句,即: P ( S o u r c e ∣ T a r g e t ) P(Source|Target) P(SourceTarget)。首先通过top-采样生成一系列假设(hypotheses),然后使用 P ( S o u r c e ∣ H y p o t h e s i s ) P(Source|Hypothesis) P(SourceHypothesis)对假设进行重排序。

  • 具体操作是首先将对话历史复制成N份(文中N取16),然后将这N份相同的对话历史输入正向模型,通过Top-K采样(文中K取10)得到N个不同的回答。然后将这N个回答分别与倒序的对话历史拼接成一个长文本,输入反向模型,最后取loss最小的回答作为模型输出。正向模型和后向模型都是一个345M的从GPT-2medium微调的模型。实验结果表明,MMI能产生更加多样性的回复,体现在NIST、METEOR、Entropy、Dist指标比较高。

  • Intuition:直观来看上,最大化后向模型似然惩罚了枯燥苍白的假设,因为频繁和重复的假设可以与许多可能的查询(context)相关联,从而为任何特定的查询产生较低的概率。(即,与通用回复相对应的Source很多,所以当产生通用回复的时候就不太可能反推出一个具体的Source,因此提高了回复质量。)

Experiment

  • 作者发现模型在一些指标上已经超过了人类的表现,但作者认为这并不意味着这模型生成的结果比人类更真实,而可能是由于对话过程的一对多本质。如图所示,多种人类回复(R1-R4)可以很好地作为上文的回答。不失一般性,假设R1-R3是测试集的标签,而R4是人类给出的回答。在语义空间中,一个训练良好的模型生成的回答Rg会更倾向于位于所有可能的回复的几何中心附近因为训练目标是寻求生成最可能的回复。这样的结果可能接近所有训练实例的几何平均值,从而“平均”这些实例。因此,生成的回复Rg可能比目标人类响应R4具有更低的“语义距离”(体现在具有更高的自动评分,如BLEU)。

在这里插入图片描述

  • 作者对比了直接微调GPT-2 vs. 重新预训练DialoGPT,实验结果表明,对于小模型,直接微调GPT2效果更好,而大模型则二者性能相当。

猜你喜欢

转载自blog.csdn.net/m0_47779101/article/details/129969072