ACL 2020论文分享 | 新任务:融合多个对话类型的对话式推荐

欢迎关注【百度NLP】官方微信公众号,及时获取更多自然语言处理领域的技术干货!

点击链接阅读原文:https://mp.weixin.qq.com/s/f3dCOc4Mog9eZTl0k5YQew

本文对百度入选ACL 2020的论文**《Towards Conversational Recommendation over Multi-Type Dialogs》**进行解读,该论文提出了一个新对话任务:融合多个对话类型的对话式推荐。
在这里插入图片描述

本论文地址:
https://arxiv.org/pdf/2005.03954.pdf

建议大家点击阅读以下文章,以更加了解人机对话技术:

《一文看懂人机对话》链接:https://mp.weixin.qq.com/s/fkcZOVJUreZqj7aQBkslog
《直播回顾 | “听大咖讲论文” ACL 2020 百度论文分享会A场》链接 :
https://mp.weixin.qq.com/s/w1oMnYDql09EVBbmIV6cSg

《直播回顾 | “听大咖讲论文”ACL 2020百度论文分享会 B场》链接:https://mp.weixin.qq.com/s/9mYxjSCJufEBSAVhxL23Aw

动机

人机对话是人工智能的一项基本挑战,涉及语言理解、对话控制和语言生成等关键技术,受到了学术界和工业界的广泛关注。

随着智能音箱的普及,对话式推荐变得越来越重要。对话式推荐指通过基于对话的人机交互形式实现高质量的自动推荐。前人工作大致可以分为两大类:

基于任务类对话的建模方式;
基于更自由的开放域对话的建模方式。

前人工作通常集中于单一对话类型,没有考虑如何同时处理多个对话类型(闲聊/问答/任务/推荐)。但是在实际应用中,人机对话通常包含多个对话类型。

基于以上考虑,研究人员提出一个新对话任务:融合多个对话类型的对话式推荐。研究人员期望系统主动且自然地从任意类型对话(闲聊/问答等)引导到推荐目标上。如图1所示,给定一个起始对话(例如问答),系统可为推荐规划一个对话目标序列,然后基于该目标序列驱动自然的对话,最后完成目标实体的推荐。本论文中的任务设定与前人工作的区别在于:

论文中的对话包含多个对话类型;
论文强调系统的主动对话能力,例如系统可主动规划一个对话目标序列,而该序列通常对用户是不可见的。

为辅助该任务的研究,研究人员构建了一个支持多对话类型的人-人对话推荐数据集(DuRecDial)。该数据集的特点包括:

每个对话session包含多个对话类型;
包括丰富的交互逻辑;
对话领域的多样性;
为每个用户建立个性化的profile,支持个性化的推荐。
在这里插入图片描述
【表1 】论文中数据集与相关数据集在如下维度的比较:session数量/utterance数量/对话类型/对话领域/是否支持用户个性化

在这个任务和数据集,研究人员尝试解决目前人机对话存在的一些问题:

自然的融合多种类型对话;
机器根据用户长期偏好规划对话目标序列,并主动引领对话;
包含丰富的对话逻辑,如用户转移话题,也可产生合理回复;
充分利用之前对话,对话结束会根据用户反馈,实时更新用户Profile,更新的Profile会影响后续对话。

任务设置

研究人员要求两人进行对话,其中一人扮演recommendation seeker(用户),另一个人扮演recommender(bot),要求recommender主动引导对话,然后基于用户profile推荐,而不是用户引导对话或寻求推荐。例如在用户关于『生死劫』的问答后,机器根据其长期偏好和知识图谱信息,规划对话目标序列(关于『周迅』的闲聊>>推荐电影『风声』),并自然地引导对话,当用户转移话题(更喜欢『刘若英』的电影),机器根据其profile,精准推荐『南京1937』,最终完成所有对话目标。对话结束后,用户profile会根据其反馈而更新,以便于提高后续对话的用户体验。

在这里插入图片描述
【图1】 融合多对话类型的对话式推荐样例

用户profile如图1左上部分所示,给机器提供的知识图谱信息是目标序列相关的子图信息。图1右侧为多类型对话中的对话式推荐示例,用户问答后,机器主动引导对话,自然流畅地实现对话目标的转移。

这个任务跟之前任务的不同主要包括:
对话包含多个goal(目标),每个goal都包含goal type和goal topic;type决定对话类型,topic对type进一步细化,决定对话的具体内容。
机器通过规划对话目标序列来主动引导对话,而用户不知道对话目标。

数据集建设

现存对话数据集不适用于论文中的任务,因此研究人员通过人工标注的方式在明星、电影、音乐、新闻、美食、天气、POI等领域构建一个新的对话数据集(DuRecDial),用于融合多类型对话的对话式推荐的研究。数据集构建包括:构建领域级对话目标序列、构建用户Profile、知识挖掘、构建知识图谱、构建任务模板和语料众包标注。主要流程如下图所示:

在这里插入图片描述
【图2】 数据集建设的主要流程

1、构建领域级对话目标序列
首先根据百度知识图谱,选取20个对聊天有价值的领域,然后分别组合成对话目标序列,再经过多人多次校验,过滤不容易组成目标序、加入目标序列会导致目标转移不自然、跟其他领域关联性较小的领域,剩下7个领域。然后枚举7个领域的目标序列,再经过多次人工校验和试标注,最终产生领域级对话目标序列候选集。

在这里插入图片描述
【图3】 领域级目标序列

2、构建用户Profile
每个用户均有独一无二的profile,否则推荐就乱了。用户Profile包括两部分:姓名、性别、年龄、居住地、职业等基本信息;领域级偏好、实体级偏好等偏好信息。

基本信息的构建相对简单,但也比较细致。随机从『男、女』指定性别,从5个年龄段随机选择年龄,从55个热门城市随机分配一个居住地(居住地会影响接下来的天气、美食、POI数据的构建),然后根据性别随机生成姓名(姓名为2或3个字,不同性别候选字不同),根据年龄为用户分配职业状态,再根据职业状态分配几种聊天话题,聊天话题会影响对话的标注。

偏好包括:领域偏好(比如喜欢音乐,不喜欢新闻等)、实体偏好(比如喜欢歌曲A,而不喜欢歌曲B)。领域偏好根据目标序列包含的领域随机生成,再人工校验,并根据试标注不断完善;只有领域偏好,无法标注对话,因此需加入实体偏好,实体偏好根据知识图谱和领域偏好确定,然后人工校验。偏好的设定很关键,也是论文中任务和数据集主打的一个点。

需要强调的是,为更符合真实应用,用户知道自己的profile,机器只能通过和用户聊天获取profile。

3、知识挖掘
研究人员首先根据用户居住的55个热门城市,从『2345天气』抓取2017年7月到2019年8月的历史天气。再根据天气和美食的关系,从『美团网』和『美食天下』抓取美食相关知识。再根据美食和居住城市,从『美团网』抓取POI(餐厅)相关知识。

然后,从『时光网』挖掘电影和电影明细相关的结构化和非结构化知识信息,如电影票房、导演、评论等。根据挖掘的这些静态知识进一步计算出动态知识以丰富知识内容,比如根据票房信息计算出电影之间的票房排行,根据评分信息离散化得到电影或人物的口碑信息等。

接着,从『网易云音乐』抓取2000个热门歌手及其热门歌曲。把歌手和电影明星取交集,再根据电影、音乐数量人工过滤(因为任务中,每个用户都跟机器有多个对话,需要推荐很多实体),最终确定明星候选集。然后多个新闻来源抓取明星新闻,再根据新闻数过滤,产生最终对话使用的明星集合。需要说明的是,研究人员使用电影和音乐评论当推荐理由,而网易云音乐评论质量较差,故从『百度百科』抓取音乐鉴赏补充评论。

最终所有数据都会清洗和过滤,经抽样评估,研究人员挖掘的知识准确率在98%以上。

4、构建知识图谱
类似传统图谱构建,研究人员以挖据的三元组知识中的实体和值为节点,属性为边建立一阶图谱关系,除此之外,研究人员对有相同属性和值的两个实体建立二阶关系,如“红海行动”和“湄公河行动”的导演都是林超贤,这两个实体存在二阶关联关系。

5、构建任务模板
任务模板用来明确双方聊什么、怎么聊,它包括:实体级的goal序列,以及每个goal的描述(实现该目标的一些具体要求)。首先,用户领域偏好和领域级目标序列取交集,产生特定用户的领域目标序列,再根据用户实体偏好,产生实体级goal序列。然后基于多种规则和人工标注,产生每个goal的描述。任务模板如下图所示:

在这里插入图片描述
【图4】 任务模板

至此,标注前的数据准备就结束了,研究人员的经验是这些准备很关键,甚至能决定数据集能不能标注。随标注的进行,这些数据准备还会不断完善。

6、语料众包标注
不同于self-play一人扮演对话双方的标注方式,研究人员在众包平台(test.baidu.com)随机挑选两个标注人员模拟真实对话的双方标注每组对话数据。为保证至少有两个标注人员同时进入标注任务,研究人员安排多个外包团队进入标注平台。标注时,每组对话随机挑选两个标注人员标注,其中之一扮演机器角色主动引领对话进程完成设定的对话目标,另一标注人员扮演真实用户角色响应机器角色的对话。

需要说明的是,对任何数据集来说,质量都是很重要的,因此论文中有严格的数据质量控制流程。具体如下图:

在这里插入图片描述【图5】 数据质量控制流程

标注结束后,通过采样评估DuRecDial质量,完全符合要求的达90%左右,且不存在有严重问题的数据。DuRecDial跟现存数据集的对比,以及数据集统计,如下图所示:

在这里插入图片描述【图6】 跟现存数据集的对比及数据集统计

基线模型建设

目前人机对话任务有检索和生成两种主流技术方向,研究人员在这两个方向都建立基线模型,包括两部分:

对话目标规划模块(a):首先预测当前goal是否完成;其次预测下一个对话类型以及目标实体;
回复模块:论文中实现了检索模型(b)和生成模型(c)。

模型图如下所示:

在这里插入图片描述【图7】 模型图

1、对话目标规划
正如前面所述,对话目标对任务很关键,所以在检索或生成回复前,需知道当前对话目标。基于此,研究人员对目标规划单独建模,包括两个模块:Goal completion estimation(GCE)、Current goal prediction(CGP)。具体模型图如下所示:

在这里插入图片描述
【图8】 目标规划模型

GCE通过计算目标完成的概率,评估其是否完成(概率大于0.5完成),采用CNN做二分类,计算方式如下:

在这里插入图片描述
如果目标完成,CGP需要预测新的目标。目标包含Goal type和Goal topic,故CGP包含Goal type prediction和Goal topic prediction(均为多分类),CGP是个multi-task分类问题。我们采用基于CNN的multi-task分类来预测,具体计算方式如下:

在这里插入图片描述

预测出的goal会分别输入检索模型和生成模型,以便于检索或生成跟对话目标和用户profile更一致的回复。

2、检索模型
检索模型借鉴信息检索的方法从对话语料库中检索候选回复,然后使用排序模型对候选回复进行排序,再选取高相关性的回复进行输出,如图9左侧所示。

在这里插入图片描述
【图9】 检索模型

论文中的候选回复是从训练集中相同对话目标类型、相同轮次的机器回复中随机选取的。

排序阶段,使用分类方法判断每个候选回复Y属于正确回复的概率,如图9右侧所示,首先使用BERT将候选回复Y和对话历史X(包括当前用户输入)表示为向量xy,再使用双向GRU分别对每条知识、对话目标gc进行编码,使用attention方式将所有相关知识融合为一个知识向量kc,通过softmax层进行分类判断。判断方法如下:
在这里插入图片描述

3、生成模型

在这里插入图片描述
【图10】 后验生成模型

生成模型借鉴Seq2Seq模型,如图10所示,研究人员在Seq2Seq基础上,分别使用双向GRU对对话历史X、相关知识、对话目标gc进行编码,通过attention选择回复需要使用的知识信息,并引入decoder中。研究人员发现:通过输出回复的loss信息再经decoder长距离梯度回传很难有效指导模型进行知识选择。

因此研究人员通过最大化逼近后验概率方式训练基于attention的知识选择模块,使得没有正确回复信息时也可较好地进行知识选取,具体如下:

在训练阶段使用标准回复Y中的后验知识信息指导模型进行先验知识选择,即让先验知识分布p(ki|x,gc)拟合后验知识分布p(ki|x,y,gc),训练时将这两个分布向量的KL散度作为Loss的一部分。KL散度计算方法如下:

在这里插入图片描述

此外,为避免在计算后验知识分布时存在严重信息损失,借鉴自编码思想,训练阶段让标准回复计算的后验知识分布能解码出标准回复本身,即用后验分布预测标准回复的每个词,预测结果的BOW Loss也作为整体Loss的一部分,BOW Loss计算如下:

在这里插入图片描述

在生成回复时,使用标准negative loglikelihood(NLL) loss做Loss。模型最终的loss为:

在这里插入图片描述

其中α为一个可训练的参数。

实验及结果

研究人员按65%、10%和25%随机划分DuRecDial产生训练集、验证集和测试集。

基线模型采用开放域对话广泛采用的Seq2Seq模型【论文录用后,研究人员尝试HRED(Li et al.,2018)和KBRD(Chen et al.,2019),发现效果还不如Seq2Seq】,语料中的对话历史、知识信息和对话目标等拼接成一个字符串作为模型的输入。

我方模型:
MGCG_R:基于自动goal规划及检索排序回复模型的系统;
MGCG_G:基于自动goal规划以及生成回复模型的系统。

由于对话的开放性,对话的自动评估存在很多不足,因此在自动评估基础上进一步使用人工评估的来评估对话效果。实验设计如下所示:
在这里插入图片描述
【图11】 实验设置

1、自动评估
由于无法自动生成用户回复,自动评估只能进行单轮评估,即给定对话历史(包括当前用户输入),评估系统输出的回复。评估指标既有检索相关的指标Hits@k又有生成相关的PPL、F1、BLEU和DISTINCT指标,同时使用准确召回指标(P、R、F1)评估回复中知识使用情况。评估估结果如下:

在这里插入图片描述
【图12】 自动评估结果。+(-)gl. 表示使用(没使用)对话目标。+(-)kg. 表示使用(没使用)外部知识。

结论:

  1. 从表中还可以看到检索模型和生成模型要优于Seq2Seq模型,验证了论文中模型的有效性。

  2. 为了观察对话目标的作用,每个模型都做了引入目标和不引入目标的对比,从实验结果中可以看出引入对话目标能有效提升系统的效果,尤其是生成模型。

  3. 为了观察知识的作用,每个模型都做了引入知识和不引入知识的对比,从实验结果中可以看出引入知识能有效提升系统的效果,尤其是生成模型。

  4. 通过自动评估指标很难判断检索模型和生成模型的优劣,检索模型在检索指标优于生成模型,而生成模型在生成指标优于检索模型,推测这和两种模型各自的优化指标有关。

  5. 知识使用上,生成模型优于检索模型,说明后验信息能有效指导模型进行知识选择。

2、人工评估
研究人员进一步对自动评估中效果最好的三个+gl.+kg.模型进行单轮和多轮人工评估。多轮评估时使用类似于数据标注的方法先生成多轮评估数据,不同的是将数据标注时扮演机器角色的标注专员替换成候选模型。每个模型生成100组评估数据,然后3个评估专员共同评估。单轮评估包括:流畅性、合理度、信息多样性、主动性等4个指标。多轮评估指标有Goal完成度和多轮一致性coherence等2个指标。评估结果如下所示:

在这里插入图片描述
【图13】 人工评估结果

结论:

  1. 检索模型和生成模型,都比Seq2seq模型效果好,流畅性、合理性、信息多样性、goal完成率、一致性都好很多。主要原因是Seq2seq生成很多没价值的安全回复。

  2. 生成模型整体上要优于检索模型,结合图14的case可以发现,这主要是由于检索模型的回复一般上下文相关性、一致性较差。

  3. 检索模型的流畅性要好过生成模型,这是因为检索模型的回复都是从人工标注的数据集中选出的。

  4. 因为任务的复杂性,数据集包含对话类型、领域、对话逻辑的多样性,从合理性、Goal完成度和coherence的效果可以看出,所有模型都还有很大的提升空间。

在这里插入图片描述
【图14】 3个模型生成的对话示例

此外,上面实验表面,使用KG和goal可以提升生成回复的质量,因此研究人员进一步分析知识使用和goal完成的关系,抽样评估各类型对话:goal完成、goal没完成、以及使用知识的数量。具体如下所示:

在这里插入图片描述
【图15】 知识使用和goal完成的关系

由此,可以得出的结论是:多使用知识,一定程度上可提高goal完成度;闲聊因为所需知识相对较少,所以goal比较容易完成;推荐和问答因为需要使用的知识较多,所以目标不太容易完成;任务型对话,因为轮数相对较多,目标也不容易完成。

开源

研究建设的数据集DuRecDial以及相应的基线系统会在PaddleNLP开源:
https://github.com/PaddlePaddle/models/tree/develop/PaddleNLP/Research/ACL2020-DuRecDial.

PaddleNLP是基于飞桨PaddlePaddle深度学习框架打造的领先、全面、易用的NLP开源工具集与预训练模型集。PaddleNLP开源内容覆盖了工业应用和学术研究;为开发者提供了多种业内效果领先的NLP应⽤任务模型和前沿的论文、代码、数据,让开发者能以超低门槛获取多种顶尖NLP能力;为研究者提供百度NLP前沿研究成果的代码与数据等,让研究者们可以快速复现实验,并据此开展新的研究。

PaddleNLP-研究版:开源了NLP领域最新研究成果的代码及数据,包括领域权威会议ACL、NAACL、IJCAI等,权威竞赛MRQA、SemEval等,可以帮助研究者快速了解百度NLP的前瞻研究成果,并在此基础上开展研究。

竞赛

中国计算机学会、中国中文信息学会和百度公司联合举办的“2020语言与智能技术竞赛”已于5月底确定竞赛结果,竞赛任务之一“面向推荐的对话”任务便是基于论文中建设的数据集DuRecDial设立。本次竞赛共收到了1065支队伍报名,其中有113支队伍提交了结果。竞赛分为三阶段:

第一阶段,自动评估,在测试集1自由打榜,并优化模型,历时约一个半月;

第二阶段,自动评估,在最终测试集评估效果,并筛选Top10队伍,历时一周;

第三阶段,人工评估,对自动评估Top10队伍的模型进行单轮、多轮人工评估,并确定获奖名单,历时10天。

最终获奖团队如图所示。详细信息参见比赛官网:
https://aistudio.baidu.com/aistudio/competition/detail/29

在这里插入图片描述
【图16】 面向推荐的对话竞赛获奖名单

总结

研究人员针对目前对话研究中普遍存在的只有一种对话类型、没对话目标、机器无意识被动对话、对话逻辑较少、不能充分利用之前对话等问题,提出新任务:融合多种类型对话的对话式推荐,并标注包含多种对话类型、多领域和丰富交互逻辑的数据集(DuRecDial)。此外,论文中还提出具有多对话目标驱动策略机制的对话生成框架,展示DuRecDial的可用性。

DuRecDial在对话类型、领域和对话逻辑的复杂性和多样性,使其还可支持:基于知识的对话、目标导向对话、多类型对话建模、对话领域迁移等。这些研究任务的深入探讨可以作为我们的未来工作。

同时,“2020语言与智能技术竞赛”基于数据集DuRecDial设立了“面向推荐的对话”任务,吸引众多NLP开发者组队参赛,影响广泛。我们也期待更多研究人员参与多类型对话和对话式推荐的研究,以促进此领域的技术进步。

至此,对《Towards Conversational Recommendation over Multi-Type Dialogs》论文的分享到此结束,敬请期待2020百度被ACL收录的其他论文。

百度自然语言处理(Natural Language Processing,NLP)以『理解语言,拥有智能,改变世界』为使命,研发自然语言处理核心技术,打造领先的技术平台和创新产品,服务全球用户,让复杂的世界更简单。在这里插入图片描述

展开阅读全文
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值