题目

A Knowledge-Grounded Neural Conversation Model

简介

现在的大多数模型都可以被应用在闲聊场景下,但是还没有证据表明他们可以应用在更有用的对话场景下。这篇论文提出了一个知识驱动的,带有背景知识的神经网络对话系统,目的是为了在对话中产生更有意义的回复

why

当下,端到端的神经网络模型已经可以在对话系统中产生十分自然的对话内容。可是,现有的神经网络对话模型仍存在着一个问题:对于用户的输入,现有的系统无法考虑对话外部事实信息或者用户对于实体的观点,这样使其产生的对话没有实质性内容,不能特定任务下进行·很好的对话

what

本文的方法只需要一种基于对话上下文注入外部信息的方法(例如,简单的实体名称匹配),这使得它在开放域环境中非常通用和适用。在这个框架中,本文使用了来自推特的23M通用域对话和1.1M Foursquare数据大规模地训练了系统,表明了在信息量方面的显著改进超过了大规模的SEQ2SEQ基线模型。据文章所知,这是第一个有效利用外部知识的大规模、完全数据驱动的神经对话模型

首先,给定对话系统的历史内容或者输入的源句子S,该模型通过如关键词匹配或者其他更先进的技术(如实体链接和命名实体识别)从S中选择出关注点(一个或者多个实体)来作为链接事实的查询值

然后,该模型使用查询值从世界事实的集合中选择出和本次对话相关的事实集合

最后,将该模型对话系统的历史内容或者输入的源句子S输入到对话的encoder中,还有相关事实集合输入到事实的encoder中,把两个encoder输出的状态输入到decoder中产生最终的对话内容

how

  1. 对话的decoder和encoder采用的是RNN,RNN的单元选择的是GRU

  2. facts的encoder和MemoryNetwork的结构十分相似,包含一个储存事实的辅助memory。具体来说,给定一个输入的句子和一个和对话历史相关的事实集合,一个RNN encoder首先逐词读入输入的句子对隐状态进行更新产生输入句子的表示u。这里令ri为事实fi的词袋表示,那么:

  • Multi-Task Learning
    多任务学习利用传统对话系统的数据进行预训练,而且还能够综合利用不同任务的训练数据

    NOFACTS task:使用传统的对话系统的训练问答对进行学习,不学习模型中事实 encoder 的部分

    FACTS task:使用其他任务包含事实集合的问答对对整个模型进行学习

    AUTOENCODER task:和FACTS task非常相似,将其训练问答对的回答内容进行替换得到,目标在于使得对话内容更具有意义

Experiment

本文在两个常用的社交网络数据Twitter和Foursquare上进行了分别对比了以下模型的实验:

SEQ2SEQ:用23M标准对话数据训练的端到端模型

MTASK:用23M标准对话数据和1M的事实对话数据(不使用中间的事实)对NOFACTS task进行训练的模型

MTASK-R:用23M标准对话数据进行NOFACTStask训练,用1M事实对话数据进行FACTS task训练的模型

MTASK-F:用23M标准对话数据进行NOFACTStask训练,用1M事实对话数据进行AUTOENCODER task训练的模型

MTASK-RF:用23M标准对话数据进行NOFACTStask训练,用1M事实对话数据进行FACTS task和AUTOENCODER task训练的模型

  • Automatic Evaluation

  • Human Evaluation


Conslusions

本文提出了一个新颖的基于知识的对话引擎,它可以作为多轮推荐或对话式问答系统的核心组件。该模型是一个大规模、可扩展、完全数据驱动的神经对话模型,可以有效地利用外部知识,并且不需要显式的槽填充。它通过多任务学习自然地组合会话和非会话数据,将SEQ2SEQ方法推广到神经会话模型

更多推荐

论文-《A Knowledge-Grounded Neural Conversation Model》