论文笔记-对话系统

paper

A Survey on Dialogue Systems: Recent Advances and New Frontiers, Chen et al. 2018

motivation

这是一篇关于对话系统的综述。

对话系统主要分为两大类:

  • 任务导向型(task-oriented) 对话系统
  • 非任务导向型(non-task-oriented)对话系统
    • 序列到序列模型 sequence-to-sequence models
    • 检索式模型 retrieval-based methods

task-oriented dialogue system

面向任务的系统旨在帮助用户完成实际具体的任务,例如帮助用户找寻商品,预订酒店餐厅等。

有两种方式:

  • pipeline methods
  • end-to-end methods

pipeline methods

其流程是4个步骤:

  • language understanding
  • dialogue state tracking
  • policy learning
  • natural language generation

language understanding

第一步是 utterance 理解。将给定的 utterance 映射成对应的语义槽 (semantic slots).

Given an utterance, natural language understanding maps it into semantic slots. The slots are pre-defined according to different scenarios.
slots 都是根据特定的场景定义好的。

看表格能发现,包含三个任务:

  • intent dection: 这个是 utterance-level classification,也就是一个分类任务
  • domain classification: 也是分类任务
  • slot filling: 这是 word-level 的任务,可以定义成序列标注问题,输入是一个 utterance,输出是对应每个 word 的 semantic label.

关于 slot filling 的 paper:

  • CRF baseline
  • DBNs:
    • Deep belief network based semantic taggers for spoken language understanding
    • Use of kernel deep convex networks and end-to-end learning for spoken language understanding
  • RNN:
    • Investigation of recurrent-neural-network architectures and learning methods for spoken language understanding, 2013
    • Deep belief nets for natural language call-routing. 2011
    • Recurrent neural networks for language understanding, 2013
    • Spoken language understanding using long short-term memory neural networks. 2014

Dialogue State Tracking

对话的状态跟踪,预测每一轮对话 user 的 goal. 对话状态跟踪是确保对话系统健壮性的核心组件。它在对话的每一轮次对用户的目标进行预估,管理每个回合的输入和对话历史,输出当前对话状态。这种典型的状态结构通常称为槽填充或语义框架。

所以对应的 state 是根据场景预定义好了的嘛?比如 online shopping,对应的 state 可能就有 推荐,比较,下单等等?

基于传统方法的有很多,基于 deep learning 的有:

  • [26] Deep neural network approach for the dialog state tracking challenge. 2013
  • [58] Multi-domain dialog state tracking using recurrent neural networks. 2015
  • [59] Neural belief tracker: Data-driven dialogue state tracking, 2017

Policy learning

根据上一步得到的 state,来制定下一步的 action. 很符合强化学习的理念啊,不过需要解决 热启动 (warm-start) 的问题。

  • 基于规则的监督学习(state 的状态需要规则来定义):
    • [111] Building task-oriented dialogue systems for online shopping,
  • deep reinforcement learning:
    • [14] Strategic dialogue management via deep reinforcement learning, 2015

基于强化学习的方法已经超过监督学习了。

natural language generation

一个好的生成器通常依赖于几个因素:适当性、流畅性、可读性和变化性。传统的NLG方法通常是执行句子计划。它将输入语义符号映射到代表话语的中介形式,如树状或模板结构,然后通过表面实现将中间结构转换为最终响应。深度学习比较成熟的方法是基于LSTM的encoder-decoder形式,将问题信息、语义槽值和对话行为类型结合起来生成正确的答案。同时利用了注意力机制来处理对解码器当前解码状态的关键信息,根据不同的行为类型生成不同的回复。

  • [123] Context-aware nat- ural language generation for spoken dialogue systems. Zhou et al, 2016 COLING

adopted an encoder-decoder LSTM-based structure to incorporate the question information, semantic slot values, and dialogue act type to generate correct answers. It used the attention mechanism to attend to the key information conditioned on the current decoding state of the decoder. Encoding the di- alogue act type embedding, the neural network-based model is able to generate variant answers in response to different act types.

end-to-end model

传统的 pipeline 的方法的缺点:

  • user 的反馈很难传递到每一个 module
  • 每一个 module 都是相互依赖的 (process interde- pendence) 也就是在不同的 domain 或者 scenarios 时,pipeline 设计的对话系统可能就不使用的,因为 slots 和 features 都是 task-specificed,都会相应的改变。而这些过程都需要大量的人工工程。

因此我们需要 end-to-end model。与传统的 pipeline 模型不同,端到端模型使用一个模块,并与结构化的外部数据库交互。

  • network-based end-to-end 模型需要大量的标注数据
    • Learning end-to-end goal-oriented dialog, Bordes et al, 2017 ICLR
    • A network-based end-to-end trainable task-oriented di- alogue system, 2017 ACL
  • end-to-end reinforcement learning 在对话管理中,联合训练 state tracking 和 policy learning, 从而使得模型鲁棒性更强。
    • Towards end-to-end learn- ing for dialog state tracking and management us- ing deep reinforcement learning,2016 ACL
  • task-completion neural dialogue system, 其目标就是完成一个任务。
    • End-to-end task- completion neural dialogue systems,2017

以任务为导向的对话系统通常还需要查询外部知识库。传统的采用的方法就是通过 semantic parsing 形成一个 query,然后去匹配外部知识库,通过检索得到想要的 entries. 其缺点是:

  • 检索的结果不包含有关语义分析中的不确定性信息
  • 检索的过程是不可微的 (non-differentiabl), 因此 semantic parsing 和 dialogue policy 只能分别训练,导致 online end-to-end 的模型很难部署。

解决这个问题的 paper:

Non-task-oriented dialogue system

非任务导向型对话系统也就是聊天机器人, 是通过生成模型或基于检索的方法实现的。 生成模型能够生成更合适的回复(也就是跟上下文语义更接近),而这些回复可能从来没有出现在语料库中,而基于检索的模型则能得到具有信息充裕 (informative) 和 fluent 的回复。

Neural Generative models

深度学习在机器翻译中的成功应用,即神经机器翻译,激发了人们对神经生成对话研究的热情。 最开始也有一篇 paper,将对话当最机器翻译来做的 paper. 把对话看作是将 post 翻译成 response。但是区别在于 response 的范围很广,而且 post 和 response 并不像翻译的两个句子之间存在对齐关系。

目前神经生成模型的热门研究课题,主要是讨论: - response diversity - modeling topics and personalities - leveraging outside knowledge base - the interactive learning - evaluation

Sequence-to-Sequence Models

这个就是基本的 seq2seq 模型。好奇的是,如何解决多轮对话,如何结合 history 信息,如何控制对话的状态,这些都需要深入看 paper 吧。

Dialogue Context

考虑历史对话的历史信息的能力是建立可保持对话活跃的对话系统的关键。

Response Diversity

A challenging problem in current sequence-to-sequence dialogue systems is that they tend to generate trivial or non-committal, universally relevant responses with little meaning, which are often involving high frequency phrases along the lines of I dont know or Im OK.
在当前的序列对话系统中,一个具有挑战性的问题是,它们倾向于产生意义不大的普通或不重要的、普适的回答,而这些回答往往涉及到“我不知道”或者“我很好”这样的高频率短语。

  1. MMI and IDF

模型的这种行为可以归咎于模型赋予了 "safe" response 更高的概率。A diversity-promoting objective function for neural con- versation models. ACL 2016 使用了 Maximum Mutual Information 作为优化目标,这是最初在语音识别领域引入的。 它测量了输入和输出之间的相互依赖关系,并考虑了消息回复的逆向依赖性。 An attentional neural conversation model with improved speci- ficit, 2016 结合逆文档频率(IDF)到训练过程来评价回复的多样性。(在不同的 document 中出现的回复次数越多,其相应的权重越低)。

  1. beam-search

一些研究表明,解码的过程也是回复冗余的另一个缘由。[86][72][42] 发现 beam-search 在生成候选答案时中缺乏多样性。[86] 提出了一种衡量不同回复之间的相似度的方法,类似于正则惩罚项吧,来增强 beam-search 的目标函数。[72] 提出了一种随机 beam-search 的方法,[42] 则使用了一个惩罚项来惩罚来自同一父节点中的子节点的展开。

  1. re-ranking

[38][77][72] 结合全局特征,重新执行 re-ranking 的步骤,从而避免生成 dull or generic 的回复。

  1. PMI
    [57] 猜测问题不仅仅在于解码和 respones 的频率,而且消息本身也缺乏足够的信息。 它提出使用逐点互信息(PMI)来预测名词作为关键词,反映答复的主要依据,然后生成一个包含给定关键字的答复.

  2. latent variable
    另一系列工作着重于通过引入随机隐变量来产生更多不同的输出。 他们表明,自然对话不是确定性的 —— 对同一信息的答复可能会因人而异。 但是,当前回复是从确定性 encoder-decoder 模型中采样的。 通过整合隐变量,这些模型的优点是,在生成时,他们可以通过首先对隐变量的分配进行采样,然后确定性地进行解码,从分布中采样回复。

Topic and Personality

明确对话的内在属性是提高对话多样性和保证一致性的另一种方法。在不同的属性中,主题和个性被广泛地进行研究探讨。

  1. Topic aware neural response generation, AAAI 2017 注意到人们经常把他们的对话与主题相关的概念联系起来,并根据这些概念做出他们的回复。他们使用Twitter LDA模型来获取输入的主题,将主题信息和输入表示输入到一个联合注意模块中,并生成与主题相关的响应。

  2. Multiresolution recurrent neural networks: An application to dialogue response generation. AAAI 2017 对粗粒度的 tokens sequence 和 dialogue generation 进行联合建模,粗粒度的 tokens 主要是用来探索 high-level 的语义信息,通常是 name entity 或 nouns.

  3. Emotional chatting machine: Emotional conversation generation with internal and external memory 将情感 embedding 融入到了对话生成中。Affective neural response generation, 2017 通过三种方式增强回复的情感:

  • incorporating cognitive engineered affective word embeddings
  • augmenting the loss objective with an affect-constrained objective function
  • injecting affective dissimilarity in diverse beam-search inference procedure
  1. Assigning personality/identity to a chatting machine for coherent conversation generation 让对话个性化,并且保持一致性。Neural per- sonalized response generation as domain adaptation 提出了一种两阶段的训练方法,使用大规模数据对模型进行初始化,然后对模型进行微调,生成个性化响应。

  2. Personalizing a dialogue system with transfer reinforcement learning 使用强化学习来消除对话的前后不一致性。

Outside Knowledge Base

人类对话与对话系统之间的一个重要区别是它是否与现实相结合。结合外部知识库(KB)是一种很有前途的方法,可以弥补背景知识之间的差距,即对话系统和人之间的差距。记忆网络(Memory Network)是一种以知识库处理问题的经典方法。因此,它非常直接的别用于在对话生成中。实际研究表明,所提出的模型能够通过参考知识库中的事实来生成对问题的自然和正确答案。

Interactive Dialogue learning

通过交互来学习是对话系统的最终目标之一。Deep reinforcement learning for dialogue generation, ACL 2016 利用两个虚拟智能体模拟对话。它们定义了对描述一个较好的对话的汇报的一个简单的启发式的估计:好的对话是有前瞻性[1]或者交互式的(当前轮为下一轮对话铺垫),是信息丰富的和连贯的。一个RNN的编码器-解码器所有参数定义了一个在无穷大的动作空间上从所有可能的话语中进行选择的策略。智能体是通过策略梯度方法 Simple statistical gradient-following al- gorithms for connectionist reinforcement learning, 1992 来优化由开发者定义的长期奖励,而不是通过标准seq2seq的MLE目标函数来学习策略。[32]进一步试图提高机器人从交互中学习的能力。通过对文本和数字反馈使用策略学习和前向预测,该模型可以通过(半)在线方式与人进行交互来提高自身性能。

由于大多数人类在对答案并不自信时通常会要求提供一些澄清或者提示,所有机器人拥有这种能力也是相当自然的。Learning through dialogue interactions by asking questions. 2017 定义了机器人在回答问题时遇到困难时的三种情况。与不采用提问的实验结果相比,这种方法在一些情况下有了很大的改进。Deal or no deal? end-to-end learning of negotiation dialogues, ACL 2017 在谈判任务中进行了探索。由于传统的序列到序列模型模拟人类的对话没有优化具体的目标,这项工作采取了面向目标的训练和解码方法,并展示了一个有价值的视角。

Evaluation

评价生成回复的质量是对话系统的一个重要方面。任务导向型的对话系统可以基于人工生成的监督信号进行评估,例如任务完成测试或用户满意度评分等,然而,由于高回复的多样性,自动评估非任务导向的对话系统所产生的响应的质量仍然是一个悬而未决的问题。目前的方法有以下几种:

  • BLEU, METEOR, and ROUGE 值,也就是直接计算 word overlap、ground truth和你生成的回复。由于一句话可能存在多种回复,因此从某些方面来看,BLEU 可能不太适用于对话评测。
  • 计算 embedding的距离,这类方法分三种情况:直接相加求平均、先取绝对值再求平均和贪婪匹配。
  • 进行图灵测试,用 retrieval 的 discriminator 来评价回复生成。

Retrieval-based Methods

基于检索的方法从候选回复中选择回复。检索方法的关键是消息-回复匹配,匹配算法必须克服消息和回复之间的语义鸿沟。

single-turn response match

\[match(x,y)=x^TAy\]

Convolutional neu- ral network architectures for matching natural lan- guage sentences, 2014 利用深度卷积神经网络体系结构改进模型,学习消息和响应的表示,或直接学习两个句子的相互作用表示,然后用多层感知器来计算匹配的分数。

multi-turn response

Hybrid Methods

将生成和检索方法结合起来能对系统性能起到显著的提升作用。基于检索的系统通常给出精确但是较为生硬的答案,而基于生成的系统则倾向于给出流畅但却是毫无意义的回答。在集成模型中,被抽取的候选对象和原始消息一起被输入到基于RNN的回复生成器中。这种方法结合了检索和生成模型的优点,这在性能上具备很大的优势。

展望

端到端的框架不仅在非面向任务的聊天对话系统中流行,而且在面向任务的对话系统中逐步流行起来。深度学习能够利用大量的数据,从而模糊了任务导向型对话系统和非任务导向型对话系统之间的界限。值得注意的是,目前的端到端模型仍然远非完美。尽管取得了上述成就,但这些问题仍然具有挑战性。接下来,我们将讨论一些可能的研究方向。

  • Swift Warm-Up,在一些新的领域,特定领域对话数据的收集和对话系统的构建是比较困难的。未来的趋势是对话模型有能力从与人的交互中主动去学习。

  • Deep Understanding. 深度理解。现阶段基于神经网络的对话系统极大地依赖于大量标注好的数据,结构化的知识库以及对话语料数据。在某种意义上产生的回复仍然缺乏多样性,有时并没有太多的意义,因此对话系统必须能够更加有效地深度理解语言和真实世界。

  • Privacy Protection. 目前广泛应用的对话系统服务于越来越多的人。很有必要注意到的事实是我们使用的是同一个对话助手。通过互动、理解和推理的学习能力,对话助手可以无意中隐蔽地存储一些较为敏感的信息。因此,在构建更好的对话机制时,保护用户的隐私是非常重要的。