对话系统(一) 综述篇 Review of spoken dialogue systems 和 A Survey on Dialogue Systems

1. 论文研读笔记

这一期的论文研读开始涉入对话系统,这一自然语言处理目前学术界和工业界最为关注的话题。 在深入研究的开始,我们从综述开始学习,先浏览一下,这个方向比较主流的一些研究成果,从而展开更为深入的论文阅读。本期的综述,主要来源于两篇文章《Review of spoken dialogue systems》(López-Cózar et al., 2015)和 《A Survey on Dialogue Systems:
Recent Advances and New Frontiers》(Hongshen Chen, 2018)。

对话系统简介

对话系统按照目标可以分成任务型和非任务型,按照实现方式,也可以分成端到端和流水线等类型。一般来说,传统的对话系统主要由一下几个部分的组成,这也成为传统的流水线结构, 主要包括语音识别(ASR),口语理解(SLU,对话管理(DM),自然语言生成(NLG),文本生成语音(TTS)。其中ASR 和 NLG 更多的是语音识别领域的内容,本文的重点关注对话系统中间的三个模块。
moduls

口语理解 (SLU)

SLU 是ASR模块的下游模块,其任务是获取输入语音信号的语义表示。该语义通常以帧 frame 的形式表示,而每一个 frame 通常又包含多个槽位(Slot),例如,在飞机订票系统中,一个 SLU 的 frame 通常包含如下槽位:

  1. speechActType
  2. departureCity
  3. destinationCity
  4. departureDate
  5. arrivalDate
  6. airLine
    如果从上游收到的包含置信分数的语音信息如下:
    want (0.8676) go (0.6745) book (0.7853) a (0.7206) flight (0.6983) from (0.6205) Denver (0.3935) to (0.6874) New (0.8562) York (0.9876)
    那么帧获得的slot填充结果如下:
    speechActType: flightBooking (0.6745)
    departureCity: Denver (0.3935)
    destinationCity: New York (0.8562)

因为语言中常常带有歧义、人称代词、指示代词、以及省略成分,SLU 模块的高精度实现是很困难的。目前有两种主流的方式,综述中给出句法分析和统计机器学习两种当时的主流方式。SLU 模块也常常借助于对话历史模块的信息,其目的是搜索用户最近的对话历史找到当前 query 中没有显式提到的信息以更好的理解对话。

对话管理(DM)

口语理解的下游模块是对话管理器 DM。该模块的任务是决定系统如何回复给定的用户输入, 例如,向用户提供信息,向用户发出询问以确认系统理解,或者请求用户换一种句型表达需求。在上述飞机订票的对话系统实例中,DM 可能会决定触发一个询问请求让用户来确认“出发城市”这个槽位的值是不是“Denver”,其触发原因可能是语音识别系统对“Denver”这个词的置信度值过低。 为了给用户提供信息,对话管理器通常需要查询本地数据库或者互联网数据,同时它还需要考虑对话历史模块提供的信息。例如,DM 模块可能根据对话历史上下文发出询问请求以补充缺失数据。

对话管理器是协调人机交互的中心模块,它是一个相对成熟的研究课题,大致可分为如下类型:基于有限状态和对话语法,基于Frame的系统,信息状态更新(ISU),马尔可夫决策过程(MDPs)和部分可观测的马尔可夫过程(POMDPs)。

自然语言生成(NLG)

对话管理器的决策会输出给下游模块进行自然语言生成(NLG)。由于对话管理器的输出是抽象表达,我们的目标是将其转换为句法和语义上合法的自然语言句子,同时考虑对话上下文的连贯性。许多主流的自然语言生成系统是基于模板的,其根据句子的类型制定相应的模板。这些模版的某些成分是固定的,而另一些成分需要根据对话管理器的输出结果进行填充。例如,下述模板可以用来生成句子以表示两个城市间的航班。

TTS_Template_1 ::=
I found FLIGHT_S/P from
to
leaving on

在该模板中,尖括号部分需要根据对话管理器的输出值进行填充,填充后该 NLG 模块输出为:“I found three flights
from Madrid to New York leaving on Friday.”

一个好的生成器通常依赖于几个因素:充分性、流畅性、可读性和变化性。考虑到对话系统的连贯性,NLG 在生成语句的时候通常需要根据对话上下文综合考虑。相关技术涉及如何省略表达,即,省略前文中已经提到概念,或者使用代词指代前文已经出现的名词。该过程依赖对话历史模块的存储信息。NLG 模块还需要过滤冗余重复信息,该过程又被称为句子聚合。

端到端方法

传统的面向任务的对话系统尽管有许多领域特定的手工操作,但这导致其很难适应新的领域。面向任务的对话系统的传统流水线方法还有两个主要缺陷。一个是分数分配问题,最终用户的反馈很难会传到上游模块中。第二个问题是处理是相互依赖。每个模块的输入都依赖于另一个模块的输出,当调整一个模块到一个新环境或者用新数据进一步更新,所有其他模块都要进行相对应的调整以保证全局的优化。槽和特征可能也会相对应的改变。这种过程需要大量的人工操作。

随着近年来端到端生成模型的不断发展,进行了许多端到端可训练的用于面向任务的对话系统的框架的尝试。请注意,当我们介绍非面向任务的系统时,将会关注于神经生成模型的更多细节。端到端模型不再使用传统的流水线,而是使用一个模块,并使其与结构化的外部数据进行交互。N. Asghar等人的工作引【1】入了一个基于神经网络的端到端可训练的面向任务的对话系统。这个系统将对话系统的学习当做学习一个从对话历史到系统回复的映射,利用编码器-解码器模型训练整个系统。然而,这个系统是以监督学习方式进行训练的——不仅需要大量的训练数据,而且由于缺乏对训练数据中对话控制的探索,也可能无法健壮地找到一个好的策略。C. Xing等人的工作中【2】首先提出了一个端到端的强化学习方法,在对话管理中共同训练对话状态跟踪和政策学习,以便更好地优化系统动作。在对话中,智能体询问用户一系列是/否问题来找到正确的答案。这种方法在应用于关于猜测用户脑海中想着的名人的面向任务的对话问题时体现出良好效果。【3】将端到端系统作为完成任务神经对话系统,其最终目标是完成一项任务,如电影票预订。

面向任务的系统通常需要在外部知识库上进行查询。之前的系统是通过向知识库产生符号化查询,利用其属性检索相关条目来实现。这种方法通常利用在输入上做语义分析来得到表示智能体对用户目标的信念。这种方法有两个主要缺点:(1)检索结果不包含任何有关于语义分析不确定性的信息,(2)检索操作是不可导的,因此分析器与对话策略需要分别训练。一旦部署系统,这会使得从用户反馈中进行在线端到端学习变得十分困难。【4】受启发于键-值记忆网络,通过一个在知识库条目上可导的基于注意力的键-值检索机制来增强现有循环神经网络结构。【5】将符号化询问替换为在知识库上一个导出的表达哪些条目用户较感兴趣的“软”后验概率。

(未完待续)

参考文献

【1】N. Asghar, P. Poupart, X. Jiang, and H. Li. Deep active learning for dialogue generation. In Proceedings
of the 6th Joint Conference on Lexical and Computational Semantics (* SEM 2017), pages 78–83, 2017.
【2】 C. Xing, W. Wu, Y. Wu, J. Liu, Y. Huang, M. Zhou, and W. Y. Ma. Topic augmented neural response
generation with a joint attention mechanism. arXiv preprint arXiv:1606.08340, 2016.

【3】S. Lee and M. Eskenazi. Recipe for building robust spoken dialog state trackers: Dialog state tracking
challenge system description. In SIGDIAL Conference, pages 414–422, 2013.
【4】L. Deng, G. Tur, X. He, and D. Hakkani-Tur. Use of kernel deep convex networks and end-to-end learning
for spoken language understanding. In Spoken Language Technology Workshop (SLT), 2012 IEEE, pages
210–215. IEEE, 2012
【5】K. Cho, B. van Merrienboer, C. Gulcehre, D. Bahdanau, F. Bougares, H. Schwenk, and Y. Bengio.
Learning phrase representations using rnn encoder–decoder for statistical machine translation. In Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP), pages 1724–1734, Doha, Qatar, October 2014. Association for Computational Linguistics

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值