前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DialoGPT:大规模预训练的对话响应模型

DialoGPT:大规模预训练的对话响应模型

作者头像
DrugAI
修改2021-02-02 11:33:52
2.9K0
修改2021-02-02 11:33:52
举报
文章被收录于专栏:DrugAIDrugAI

今天给大家介绍的是由微软Yizhe Zhang等人发表在arXiv上的文章”DialoGPT: Large-Scale Generative Pre-training for Conversational Response Generation”,此文已被ACL 2020接收。

本文介绍了一种大规模、可调整的神经对话响应生成模型DialoGPT(dialogue generative pre-trained transformer),模型在从2005年至2017年Reddit评论链中提取的1.4亿条会话交流的数据上进行训练。DialoGPT扩展了Hugging face transformer模型来实现接近人类的表现。相比于基准系统,DialoGPT生成的文本更相关,更有内容,更具有一致性。

1

介绍

最近,利用基于transformer架构进行大规模预训练的模型都取得了很大的成功。例如,OpenAI的GPT-2证明了在大规模数据集训练的transformer模型可以捕捉文本数据中的长期依赖关系,并且可以生成流畅、词汇多样、内容丰富的文本。

DialoGPT扩展了GPT-2来应对对话神经响应生成(conversational neural response generation model)遇到的挑战。神经响应生成是文本生成的子问题,任务是迅速生成自然的文本(与训练文本不一致)。人类对话包含了两个对话者的竞争目标,潜在的响应(回复)更加多样化。因此,相比于其他文本生成的任务,对话模型提出了一个更大的一对多的任务。并且人类的对话通常也不正式,经常包含缩写或错误,这些都是对话生成的挑战。

类似于GPT-2,DialoGPT也表示为一个自回归(autoregressive, AR)语言模型,利用多层transformer模型架构。但是不同于GPT-2,DialoGPT在从Reddit讨论链中提取的大规模会话对上进行训练。作者的假设是这可以让DialoGPT捕捉到更细粒度的对话流中的联合概率分布P(Target, Source)。在实践中观测到,DialoGPT产生的句子是多样的,并且包含了针对源句子的信息。作者将预训练好的模型在公开的基准数据集DSTC-7上进行了评估,又从Reddit提取了新的6000+条作为参考测试数据。无论在自动评估还是人类评估中,DialoGPT都展示了最先进的结果,将表现提升到接近人类回复的水平。

2

数据集

数据提取于2005年至2017年Reddit网站的评论链。Reddit讨论链可视为树结构的回复链,这是由于一条评论回复另一条评论形成了父结点和子结点。作者提取了从根结点到叶子结点每一条路径作为一条包含多种对话的训练样例。

作者过滤掉了以下数据:

  1. 在源或目标中包含URL连接;
  2. 目标包含至少3个重复词;
  3. 回复不包含50种常见英语单词之一,这是由于它可能并非是英语句子;
  4. 回复包含特定的标记,因为它可能是标记语言;
  5. 源和目标句子序列加起来超过200个单词;
  6. 目标包含了攻击性语言;
  7. 非常常见的内容。

过滤后的数据集包含了147, 116, 725条对话实例,总共18亿个单词。

3

方法

3.1 模型架构

作者在GTP-2架构的基础上训练DialoGPT模型。作者参考OpenAI GPT-2将多轮会话作为长文本,将生成任务作为语言模型。首先,作者把一次会话中的所有对话合并为一个长文本,以文本结束符作为结尾。源句子(source sentence)表示为,目标句子(target sentence)表示为,条件概率可写为

对于一个多轮对话,(1)式可被写为,这本质上是条件概率的乘积。因此,优化单个目标可被视为所有的“源-目标”对。

3.2 互信息最大化

作者实现了最大化互信息(maximum mutual information,MMI)评分方程。MMI采用预训练反馈模型来预测给定响应的源句子,即P(Source|target)。作者首先使用top-K采样生成了一些假设,然后利用概率P(Source|Hypothesis)来对全部假设重新排名。从直觉上来说,最大化反馈模型概率惩罚了那些温和的假设,这是由于频繁的和重复的假设可以与许多可能的查询关联,因此得到的概率都比较低。

作者尝试使用强化学习的策略梯度方法优化reward,其把reward定义为P(Source|Hypothesis)。验证集的reward在稳定提高,但是不像RNN模型架构训练的那样.作者观察到强化学习训练很容易地收敛到退化的局部最优解,这种情况下假设在重复源句子(鹦鹉学舌)和互信息最大化。作者认为transformers模型由于具有强大的表示能力,因此会陷入局部最优解。因此作者把RL的规范化训练留给未来的工作。

4

结果

4.1 实验细节

作者分别训练了参数大小为117M、345M、761M的模型,模型使用了50257个词条(entry)。作者使用了Noam学习率,学习率是根据验证损失来选择的。为了加速训练,作者将所有的训练数据压缩到懒加载数据库文件中,数据仅在被需要时才被加载,用独立的异步数据处理来训练。作者进一步采用了动态批处理策略,将相似长度的会话分组到同一批中,从而提高了训练吞吐量。经过以上调整,训练时间随着GPU数量的增加近似线性下降。

4.2 DSTC-7对话系统技术竞赛

DSTC(Dialog System Technology Challenges)中有一个端到端的对话建模任务,任务的目标是通过注入基于外部知识的信息来产生超越闲聊(chitchat)的对话。这个任务不同于通常认为的面向目标的、面向任务的或任务完成的对话,因为它没有特定的或预定义的目标(例如预订航班、餐馆预定餐桌等)。相反,它针对的是类似人类的对话,在这种对话中,潜在的目标通常是不明确的或事先未知的,就像在工作和生产环境(如头脑风暴会议)中人们共享信息时看到的那样。

DSTC-7测试数据包含了Reddit数据对话。为了创建一个多引用(multi-reference)测试集,作者使用了包含6次或更多回复的对话。经过其它条件的过滤,得到了大小为2208的“5-引用”测试集。

表1:DialoGPT与Team B、PERSONALITYCHAT对比

作者利用了标准的机器翻译评价BLEU、METEOR、NIST来进行自动评估,并用Entropy和Dist-n来评估词汇多样性。作者将DialoGPT与“Team B”(竞赛的优胜模型)、GPT、PERSONALITYCHAT(一种seq2seq模型,已应用于生产环境作为微软Azure的认知服务)行了比较,结果如表1所示,在各项都是目前最先进的水平。

4.3 一个新的Reddit多引用数据集

作者用包含6k样例的多引用测试集评估DialoGPT,结果如表2所示。作者分别在从头训练的模型和GPT-2预训练并微调好的模型上进行测试。

表2:6k多引用Reddit评估

4.4 利用MMI重排名响应

作者使用微调的345M个参数的GPT-2模型对每个输入的源句子尽心top-K采样,生成16个样本。随后利用反馈模型进行重新排序。选择产生反馈模型最小损失的响应进行评估,结果如表2所示,MMI re-rank产生的回复更加多样化,除BLEU外都有提高。

4.5 生成例子

作者制作了一个输出基于Top-k采样的聊天机器人,如表3所示。在某种程度上,模型展现出解决常识性问题的能力,大概是因为可以从Reddit数据中学到大量的信息。在某些情况下,系统会生成一个合理的答案,而不是给出“想要的”答案。作者的观察还表明系统比RNN更好地处理多轮生成,并对上下文来说更具一致性。

表3:聊天机器人的多轮对话例子

4.6 人工评估

作者评估了Reddit 6K test dataset 的2000条随机采样的测试数据。系统把输出配对的数据随机分发给3名裁判,裁判依据相关性、信息量和多像人类产生的数据利用3分量表进行排序,结果如表4所示。一个显著的现象是DialoGPT优于PersonalityChat。该表还表明,一个DialoGPT中等规模模型可能已经接近人类回复水平。

表4:人工评估结果

5

限制和风险

尽管在训练前尽量避免了攻击性词语,但DialoGPT依旧有输出这些词语的可能。输出也可能隐含了对性别和历史的偏见。使用这个模型产生的回复可能会表现出一种表达对不道德的、有偏见的或冒犯性的主张的赞同的倾向。

6

总结

本文基于Reddit数据集,拓展GTP-2训练了一个预训练模型DialoGPT。该模型由一个分布式训练pipeline和几个预先训练的模型组成,这些模型可以进行微调,可在几个小时内获得中等规模的定制数据集上的会话模型。DialoGPT完全开源且易于部署,允许使用者使用这种数据集来训练。作者将在未来研究如何如何利用强化学习来进一步提高生成回复的相关性,并防止模型产生异常的回复。

参考资料

论文

https://arxiv.org/abs/1911.00536?context=cs.LG

数据和源代码

https://github.com/microsoft/DialoGPT

官方博客

https://www.microsoft.com/en-us/research/project/large-scale-pretraining-for-response-generation/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-01-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DrugAI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档