乐趣区

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

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


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

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


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

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

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

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

动机

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

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

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

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

基于以上考虑,研究人员提出一个新对话任务:融合多个对话类型的对话式推荐。研究人员期望系统主动且自然地从任意类型对话(闲聊/问答等)引导到推荐目标上。如图 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 层进行分类判断。判断方法如下:

【图 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. 表示使用(没使用)外部知识。

结论:

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

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

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

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

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

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

【图 13】人工评估结果

结论:

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

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

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

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


【图 14】3 个模型生成的对话示例

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

【图 15】知识使用和 goal 完成的关系

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

开源
研究建设的数据集 DuRecDial 以及相应的基线系统会在 PaddleNLP 开源:
https://github.com/PaddlePadd…

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/ai…

【图 16】面向推荐的对话竞赛获奖名单

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

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

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

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

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

退出移动版