“天”不要聊死了,聊天机器人正认真学习该如何让谈话继续吸引住你

  • 时间:
  • 浏览:7

资料来源:数据战斗学校

让机器通过自然语言与人类自由交流是人工智能领域的重要目标和主要挑战之一。近年来,在深度学习技术的支持下,聊天机器人生成与聊天内容相关的回复的能力日益增强,甚至连真实的都可以被人类弄得无法分辨。

但在训练阶段,现有的开放式对话系统只是模仿人类产生反应。而不同的人类反应在聊天场景中的效果却大相径庭:有些反应可以吸引其他人与之互动;而有些回复很平淡,无法引起别人的兴趣去和他们讨论交流。因此,一个优秀的聊天机器人应该在“人形”的基础上更进一步,成为一个有吸引力的说话者,积极推进对话过程。

在今年的自然语言处理峰会EMNLP上,微软的研究人员为这个新目标出发了。他们从社交网络的现有数据中提取人类反馈信息。通过基于这些反馈信息的训练,聊天机器人在选择响应时,可以考虑响应与人类偏好的相关性,即选择那些能够获得正面响应的响应。

寻找合适的人类反馈数据

要得到这样的机器人,首先需要通过合适的数据了解人类的喜好。这样的数据应该是一对多的聊天形式,也就是在同一个聊天场景中有多个回复,每个回复都有一个反映其热度的指标,表明回复收到反馈的热情。

但是直接收集一对多的聊天数据,雇佣人类进行标注,既费时又费力。而且一个标注者标注反馈热情是不够的,需要不止一个人投票。同时,其他可以自动计算的常规质量评价指标,如词多样性,不能反映人的偏好。

 图1:社交媒体中帖子的回复的树状结构。有三个可以衡量的人类反馈程度的指标:Updown=点赞数-反对数;Depth:深度,后续回复的轮数。Width:宽度,直接回复该评论的评论数目。图片出处:DialogRPT

因此,研究人员从社交网络中寻找合适的人类反馈数据。

如图1所示,社交网络上的帖子和回复评论可以形成树形结构。每个节点代表一个评论,包括它的内容和喜欢/不喜欢的数量。每个节点的父节点是它回复的注释,每个节点的子节点回复它的注释。对于一个节点,从根节点到其父节点的路径定义了上下文C(以上信息),这个注释也是这个上下文C的回复R,在这样的设置下,可以得到一段对话数据(C,R)。因为一个评论可以得到多个回复,也就是一个父节点可以有多个子节点,这是一对多的对话数据。

图2: 不同人类反馈指标的Spearman系数,数值越大表示两个指标的相关性越高。

每个评论有三种反馈数据:(1)宽度:获得的评论数,即子节点数。(2)深度:之后评论回复的回合数,即后代节点的最大深度。(3)正反数。作者利用Reddit网站上的数据来研究这三个指标的相关性。

如图2所示,宽度和深度相关性较强,但与喜欢次数相关性较弱。作者猜测,可能的原因是人们在称赞同意后就不再评论了。值得注意的是,这里的Updown指数是喜欢数和对立数之差。也许有争议的帖子更能引起人们的讨论,所以更多的喜欢和反对或更小的差距的帖子会引起热烈的讨论,宽度和深度更大。

这三个指标可以从某些方面反映出人类反馈的积极性。但是,根据相关研究,虽然喜欢的次数与受欢迎程度大致相关,但也受到很多其他因素的影响。首先,这些指标表现出长尾分布的特点,少量的回复收到了绝大多数的回复和赞。此外,这些指标还与帖子所在的版块、发表评论的时间以及发布者对社交网络的影响有关。因此,在使用这些数据训练模型时,有必要对其进行仔细的标准化。

DIALOGRPT:基于GPT2的12层transformer模型

接下来,研究人员使用这些数据将人类偏好信息注入模型。给定一个聊天场景C和一系列回复,模型需要根据这些回复的热情程度,也就是宽度、深度和喜欢次数,对其进行排序。

现有聊天系统主要通过响应相关性(如困惑困惑和互信息)或人工设计的特征来衡量候选集合中响应的合适性。这种方法不能直接使用现实世界中的人类反馈数据进行端到端的训练。

如前所述,有很多因素可能会影响评论的反馈,所以作者把排名问题变成了比较问题。在训练过程中,模型不再单独预测一个评论的评分,而是一次比较两个可比较的回答:训练模型给正面例子的评分更高(得到更多的回答或好评)。

图3: DialogRPT目标函数,在优化过程中最大化阳性病例的评分(-),最小化阴性病例的评分(-)。图片来源:DialogRPT

为了使正反例具有可比性,作者对数据对做了严格的限制:(1)正反例的两个回复都是在同一个聊天场景中生成的,即它们的C相同。即在社交网络回复树中,两个评论的父节点是相同的。(2)两次评论的时间间隔不超过确定的阈值(本文中为1小时)。避免时差过大对反馈的影响。(3)正面案例的回复数量应超过负面案例的一定阈值,以减少噪音。由于衡量回应的三个指标具有长尾特征,作者采用绝对值阈值和百分比阈值对数据进行过滤,去除反对数大于喜欢数的数据。在多指标训练过程中,为了防止只有一个指标发挥作用,模型对其进行加权。

在考虑人类偏好程度的基础上,该模型应该能够同时评估回复和聊天场景的内容相关性。于是研究人员引入了人对假任务,即给定上下文和评论,来判断评论是否来自这个聊天场景。

图4: 模型从两个方面对回复进行测评:人类的偏好程度(3个指标)和评论的“类人”程度。两部分的训练数据情况如右图所示。图片出处:DialogRPT

从2011年到2012年,研究人员从Reddit网站上抓取了这些帖子和1.47亿条聊天数据(数据集是开源的)。在学习人类偏好信息的任务中,按照之前的体处理方法共获得1.33亿对数据。

在学习内容相关信息的任务中,否定案例通过两种方式获得:(1)抽样:从训练集中随机选取。(2)生成:使用对话生成模型DialoGPT生成回复作为反面例子。由于DialoGPT具有很强的模仿人类生成回复的能力,作者只选取了5.3万条反馈值较高的回复作为正面例子,以区别于机器生成的结果。

利用这些数据,作者训练了基于GPT2的12层变压器模型DialogRPT,并用DIaloGPT-medium初始化了一些参数。作者在不同的实验设置下,将该模型与BoW(单词包模型)、Dialogue(对话困惑)、BM2.5(关键词相似性度量)、convert(基于转换模型的convert(Reddit数据))等基准方法进行了比较。

图4:实验结果样例。图片出处:DialogRPT

从词袋模型的分析结果可以发现,包含较少信息的回应得到的回应和好评较少。而以问题(什么/谁/为什么/如何)形式的回复,导致了更长(更深)的对话,拥有更广泛受众(任何人、每个人)的评论会收到更直接(更广泛)的评论。如图4所示,DIALOGRPT模型也捕获了这样的信息。

图5:排序测评结果。Pairwise列:给定同一聊天场景下的一组正负例,模型赋予正例更高分值的比率。Spearman列:为同一聊天场景下的一组回复排序。图片出处:DialogRPT

接下来,作者通过两种排序方法对模型的能力进行了定量评价。(1)以与训练阶段相同的目标,给定正反例,测试模型是否能给正例较高的分数。(2)给定同一聊天场景中的一组响应,使用Spearman系数来衡量模型的排序结果与实际人类偏好之间的差异。

在两种不同的设置下,DIALOGRPT的效果明显优于其他方法。

图6:不同数据集上的回复检索实验结果。模型需要根据聊天场景信息检索合适的回复。Hits@k表示排列后的回复列表中,正确答案出现在前k个中的比率。K值代表K值代表对应数据集每个聊天场景下人类回复的个数,也就是正确答案的个数。图片出处:DialogRPT

作者还将在Reddit上训练的模型直接应用于DailyDialog、Twitter、PersonaChat等数据集,并根据聊天场景检索合适的响应。如图6所示,该模型尚未在这些数据集上训练,但仍取得了最佳结果。在Reddit数据集里,每个聊天场景都有多个正确回答(k5),所以作者引入了BLEU等基于参考的评价指标进行对比。DIALOGRPT模型看不到这些参考数据,但明显超过了使用这些参考响应的方法。

图7:数据对测评实验结果。给定包含正例与负例的数据对,模型能否赋予正例更高的分值。Human vs。 Human: 正例负例均为人类回复,正例的相关指标更高。Human vs。 Fake:正例为该聊天场景下的人类回复,负例为随机选取的人类回复(Rand)或机器在该聊天场景下生成的回复(Generated)。

接下来,作者评估模型生成与内容相关的响应的能力。他将使用不同的数据与任务训练的模型进行比较。结果如图7所示。左上角的实验结果与上述三个指标的相关性研究结果一致。从右上图的实验结果来看,人类偏好信息训练的模型在区分正面人类反应和随机选取的人类反应方面能力较弱,但可以更好地区分机器生成的结果。

这说明虽然DialogGPT可以产生与内容相关的类人响应,但并不能得到太多的人的反馈。结果还表明,两个任务的目标,即类人和人类偏好,仍然存在一定的差距。因此,在最后一行,作者将这两个任务结合起来训练模型,最终在这两个方面都取得了优异的成绩。这样,该模型可以在选择响应时权衡这两个指标。

在聊天机器人说话越来越像人的今天,如何产生高质量的回应成为一个新的研究方向。本文指出,获得反馈的强度是高质量的具体表现。这个目标在许多应用方向上都很有价值。比如在人们寄予厚望的心理干预领域,聊天机器人不仅需要产生一致的反应,还需要保持对话者愿意沟通,引导其转变为积极的心理状态。