题目:《Proactive Human-Machine Conversation with Explicit Conversation Goals》

介绍

这是一篇ACL2019的文章,

  • 主动对话的目标是赋予对话系统引导对话的能力
    (1)现有的关于主动对话的工作通常仅限于特定的对话场景:
    Young等人(2013年)、Mo等人(2016年)和Bordes等人(2018年)提出,通过积极质疑/澄清缺失/模糊的时间段,更积极地完成任务,比如餐厅预订

    (2)除了面向任务的对话系统,研究人员还研究了构建主动社交machine:
    王等(2018)探索了在开放域会话系统中提出好的问题,李等人(2018)使聊天机器人能够在闲聊中推荐电影

    与现有的工作不同:
    本文通过有规划一个具有明确目标的知识图谱来积极引导对话,除此之 外还创建了一个新的数据集来促进这种对话系统的开发

  • 基于知识的对话
    (1)一个主要的研究方向是利用知识在闲聊中产生引入有意义或者个性化的回应(Ghazvininejad等人,2018年;V ougiouklis等人,2016年;周等,2018等)

    (2)Mogh等人(2018)和Dinan等人(2019)发布了数据集,其中的每个话语都与相关知识对齐,包括结构化三元组和非结构化句子

    本文通过将整个知识图包含到对话建模中,提出了一个新的任务,即通过对知识图的规划来主动引导对话

why

虽然在人机对话系统中进行了很多研究,但是目前仍然处于初级阶段。因为machine大多是被动地回应用户的一个问题,缺乏信息交互,没有像人一样的自主意识去引导一段对话,规划对话目标。基于此,本文构建了human-like对话系统,想要赋予machine在明确的目标下,主动引导对话的能力(引入一个新的对话主题或者维护当前对话主题)。

what

本文通过在知识图上规划对话策略来研究主动对话系统(前提假设是用知识进行推理和规划是实现主动对话的关键),大致来说,在本文中,通过将一个明确的目标设置为知识路径来模拟这一过程。

其中知识路径中的每个结点就代表对话中的每个主题,图谱中实体的切换就可以看作对话主题的转换。考虑到这一点,本文首先基于事实知识图谱和非事实知识,对齐实体和非结构化的句子;然后,使用这个KG来促进知识路径规划和响应生成。

为了让conversational agents充分利用所提供的知识来实现给定的目标,具体实现了:

  • 提出了一个新的任务来模拟人类在结合了事实知识和非事实知识的知识图上引导对话的行为,这在现实世界中有着广泛的应用,但还没有得到很好的研究。
  • 构建并发布了一个名为DuConv的新的大规模数据集,以促进知识驱动的主动对话系统的开发
  • 本文提出知识感知的主动对话模型,并对数据集进行详细分析。实验结果表明,我们提出的方法充分利用了相关知识来生成更多样的会话。

How

  • 数据集的构建

    数据集的构建主要分为四个步骤:
    (1)知识爬取
    从网站上爬取电影相关的信息,有结构化的三元组知识和非结构化的知识(电影评论),并过滤掉一些脏数据
    (2)知识图谱构建
    基于爬取后的原始数据构建知识图谱,有多种类型的知识三元组(主谓宾)组成,一种是直接三元组:包含了一种关系;还有一种是联合三元组:拥有共同的谓语或者宾语
    (3)对话目标分配
    在构建好的知识图谱上,随机抽取一些知识路径当作对话目标。其中,一半的知识路径来自于直接三元组,另一半的知识路径来自于联合三元组
    (4)众包标注
    安排外包团队开展对话标注。标注时,每组对话随机安排两个标注人员标注,一个扮演对话引领者根据提供的知识子图信息主动完成设定的对话目标,另一个扮演跟随者只根据对话历史去回应引领者。以这种方式,记录了对话话语以及相关的知识三元组和知识路径,构建了整个对话数据集

  • 模型方法

    • 基于检索的模型
      该方法有两步:
      1)从数据库中检索候选的回应项
      2)以及从候选的回应项中选择最佳的一个
      也就是,基于检索的模型从对话语料库中检索候选回复,然后使用排序模型对候选回复进行排序,再选取高相关性的回复进行输出

      1)对于第一步,本文对候选回应项的收集类似于大多数现有的工作,一个显著区别是,我们在知识图中使用实体类型来规范化实体,以提高泛化能力。

      2)对于第二步,模型架构图如下所示,输入有对话上下文X,每个候选回应项Y, 对话目标G= [start, topic a, topic b],和相关的知识K,为了计算Y是否是X最好的回应项,采取公式计算:p(l = 1|Y, X, K, G)
      其中,X和Y通过Bert模型编码表示成xy,K和G被bi-directional GRU编码表示k,然后为了有针对性利用相关知识,采用了注意力机制


      最后,xy和k拼接到一起,经过MLP层去计算X和Y的匹配得分

    • 基于生成模型
      该方法基于seq2seq模型,并结合了知识选择模块,该模型总共有四部分组成:the Utterance Encoder(双向GRU), the Knowledge Encoder(双向GRU), the Knowledge Manager and the Decoder

      首先,输入有对话上下文X,对话目标G和相关知识K,把X和G按顺序拼接成一个句子,通过the Utterance Encoder进行编码;把K通过the Knowledge Encoder进行编码

      然后,对于知识的选择,为了迫使模型在知识选择上模仿人类,论文中引入了两种不同的分布:1)先验分布p(ki|x)和后验分布p(ki|x,y)。将先验分布p(ki|x)作为机器推理的知识,将后验分布p(ki|x,y)作为人类推理的知识,然后通过最小化这两个分布之间的KLDivLoss来迫使机器模仿人类,这可以表述为:

      接下来,使用注意力机制融合相关的知识信息,生成最终的知识表示向量

      最后,本文使用deocder(GRU+knowledge gate)进行解码.除了KLDivLoss,模型中还有NLL Loss(衡量模型输出和真实输出的差异)和BOW Loss(衡量真实输出和相外部知识的相关性).

Result

评估方式有两种:自动评估和人为评估

  • 自动评估
    对于自动评估,本文利用BLEU、PPL、F1、DISTINCT1/2在内的几个常用指标来自动测量流畅性、相关性、多样性等,还通过计算知识精度/召回率/F1分数来评估每个模型利用知识的能力.评估方法是让模型从10个候选回应中选择最好的一个,其中10个候选项中有一个是真实回答,其他9个是从训练数据集中随机采样组成

  • 人为评估
    分别从单轮或者多轮两个层级进行评估
    单轮评估时给定对话背景、对话目标以及相关知识,要求每个模型根据对话背景做出响应。三个注释者根据流畅性、连贯性、信息性和主动性来评估这些回答

    多轮级别的评估更具挑战性.给定一个对话目标和相关知识,要求每个模型生成100个对话与一名志愿者交谈,并引导对话实现目标.然后由三个人从两个方面对生成的对话进行评估:目标完成度和连贯性.
    其中,目标完成度有三档,评估标准如下:
    (1)0档,表示Goal未完成,即没有按Goal设定完成话题转移
    (2)1档,表示Goal完成,但没有充分利用知识信息
    (3)2档,表示Goal完成,而且充分利用知识信息

    对于积极度,我们也有三个等级:
    “1”表示引入与语境相关的新话题的良好积极度
    “-1”表示引入新话题但与语境无关的不良积极度
    “0”表示没有引入新话题

  • 模型比较
    本文通过将知识路径中的特定两个主题分别替换为“主题a”和“主题b”来规范化训练/有效/测试数据.使用这种标准化语料库的模型被称为标准化模型,而且标准化模型在数据上表现最好.

  • 结果比较
    基于检索的模型和基于生成的模型在自动评估和人工评估方面具有显著不同的性能
    1)基于检索的模型在Hits@K上运行得更好,但是与基于生成的模型相比,在F1和BLEU上运行得更差。这可能是因为它们在不同的指标上进行了优化
    2)对于人类评估,可以观察到基于检索的方法明显比基于生成的模型差。这是因为检索到的候选限制了基于检索的模型的潜力
    3)使用知识的方法优于不使用知识的方法,这证实了使用背景知识的有效性,规范化“主题a”和“主题b”可以显著提高所有模型的性能,因为它们对知识具有泛化能力
    4)本文提出的生成模型可以利用更多的知识来实现对话目标,这证明了知识后验/先验分布学习的有效性
    5)然而,对于对话级的人类评价,仍然有15%到20%的对话目标没有实现。原因可能是模型(无论是检索还是生成)都没有明确的多轮策略机制来控制整个会话流

Conclusion

(1)本文赋予human-like conversational agent主动引导会话的能力
(2)创建了一个名为DuConv的新数据集

更多推荐

论文-Proactive Human-Machine Conversation with Explicit Conversation Goals