热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

面向任务的对话系统

面向任务的对话系统2.1流水线方法2.1.1语言理解2.1.2对话状态跟踪2.1.3策略学习2.1.4自然语言生成2.2端到端方法面向任务的对话系统一直是口语对话系统的重要分支。

面向任务的对话系统

        • 2.1 流水线方法
          • 2.1.1 语言理解
          • 2.1.2 对话状态跟踪
          • 2.1.3 策略学习
          • 2.1.4 自然语言生成
        • 2.2 端到端方法

面向任务的对话系统一直是口语对话系统的重要分支。在本节中,我们将回顾面向任务的对话系统的流水线方法和端到端方法。


2.1 流水线方法

基于流水线的面向任务的对话系统的典型结构如图1所示。它包含了四个关键部分:

image-20220407134042304



  • 语言理解。它被称为自然语言理解(NLU),它把用户话语解析为预定义的语义槽

  • 对话状态跟踪器。它管理每一轮的输入与对话历史,输出当前对话状态

  • 对话策略学习。它根据当前对话状态学习下一步动作

  • 自然语言生成(NLG)。它将选择的动作映射到其表层,生成回复

在接下来的小节中,我们将详细介绍每个部分的SOTA算法。


2.1.1 语言理解

给定一句话,自然语言理解将其映射到语义槽中。这些槽都是根据不同场景预设而成。表1展示一个自然语言表示的例子,其中“New York”是一个语义槽的值的位置,并且还确定了其领域和意图。通常我们需要进行两种类型的表示。第一种是句子级别的分类,例如用户意图和句子种类。第二种是词级别的信息抽取,例如命名实体识别和槽填充。

意图检测是用来检测用户的意图的。它把一句话分类为预先设定的意图之一。深度学习技术已经陆续应用于意图检测[10;73;99]。特别地,[19]采用卷积神经网络(CNN)提取询问向量表示询问分类的特征。这种基于CNN的分类框架也类似于[22]和[64]。相似的方法同样被用于领域的分类中。

槽填充是口语语言理解的另一个具有挑战性的问题。与意图检测不同,槽填充通常被定义为序列标注问题,其中句子里的词语被标上语义标签。 输入是由一系列单词组成的句子,输出是一个槽/概念的索引序列,每个单词一个。[11]和[10]使用深度信念网络(DBN),与CRF方法相比取得了优异的结果。[41;102;56;100]使用RNN进行槽填充。由NLU生成的语义表示由对话管理模块进一步处理。典型的对话管理部分包括两个阶段——对话状态跟踪和策略学习


2.1.2 对话状态跟踪

跟踪对话状态是确保对话系统健壮性的核心组成部分。它会在每一次对话中估计用户的目标对话状态H_t表示到时间 t 为止的对话历史的表示。这种经典的状态结构通常被称为槽填充或语义框架。在大多数商业实现中被广泛使用的传统方法通常采用手工制定的规则来选择最可能的结果[17]。然而,这些基于规则的系统容易出现频繁的错误,因为最可能的结果并不总是理想的结果[88]。

统计对话系统在有噪声的条件和模糊性下[104],维护了对真实对话状态的多重假设的分布。在对话状态跟踪挑战(DSTC)[87;86]中,生成结果的形式是每轮对话每个语义槽的值的概率分布。各种统计方法,包括复杂的手工制定规则[80],条件随机场[28;27; 53],最大熵模型[85]和网络风格排名[88]都出现在了对话状态跟踪挑战(DSTC)的共享任务中。

最近,[20]引入了信念追踪的深度学习。 它使用一个滑动窗口输出任意数量的可能值的一系列概率分布。虽然它是在某一个领域的训练出来的,但它可以很容易地转移到新的领域。[48]开发了多领域RNN对话状态跟踪模型。它首先使用所有可用的数据来训练一个非常泛化的信念跟踪模型,然后对每一个特定领域利用这个泛化模型进行专门化,从而学习领域特定的行为。[49]提出了一个神经信念跟踪器(NBT)来检测槽值对。它将用户输入之前的系统对话动作,用户话语本身以及一个候选的需要判断是否出现的槽-值对作为输入,通过遍历所有的槽-值对来判断哪些已经被用户所表达出来。


2.1.3 策略学习

以从状态跟踪器获得的状态表示作为条件,策略学习将产生下个可用的系统动作。无论是监督学习还是强化学习都可以被用于优化策略学习。通常,基于规则的智能体将被用于热启动系统[86],然后利用规则生成的动作进行监督学习。在在线购物场景中,如果对话状态是“推荐”,那么“推荐”动作将被触发,系统将会从产品数据库中检索产品。如果状态是“比较”,系统则会比较目标产品/品牌[98]。对话策略可以通过进一步端到端的强化学习进行训练,以引导系统朝着最终性能做出决策。[9]在对话策略中利用深度强化学习,同时学习特征表示和对话策略。该系统超过了包括随机、基于规则和基于监督学习的基线方法


2.1.4 自然语言生成

自然语言生成将抽象的对话动作转化为自然语言的浅层表达。正如[68]中提到的,一个好的生成器通常依赖于几个因素:充分性、流畅性、可读性和变化性。NLG的传统方法通常采用句子规划。它将输入的语义符号映射为中间形式的表示,利用树状或者模板结构,然后把这些中间结构通过表层实现来转化为最终的回复[77;69]。

[81]和[82]引入了基于神经网络(NN)的NLG方法,其基于LSTM的结构类似于RNNLM [42]。对话动作类型和槽-值对被转化为一个1-hot控制向量,作为附加的输入,来确保生成的句子表达确定的意图。[81]使用一个正向RNN生成器,一个CNN重排器与一个后向RNN重排器。所有的子模块通过共同优化来产生以固定对话动作为条件的句子。为了解决在表层实现中槽信息缺失和重复的问题,[82]使用了额外的控制单元来门控对话动作。[72]通过利用对话动作来选择LSTM的输入向量,扩展了这一方法。这个问题后来通过多步调整扩展到多领域场景[83]。[110]采用基于编码器-解码器的基于LSTM的结构来结合问题信息,语义槽值和对话动作类型来生成正确答案。它使用注意力机制来关注解码器当前解码状态的关键信息。通过编码对话动作类型嵌入,基于神经网络的模型可以生成许多不同动作类型的回复答案。[14]还提出了一种基于seq2seq的自然语言生成器,可以被训练用于利用对话动作输入来产生自然语言和深度语法树。这种方法后来利用之间用户的话语和回复进行了扩展[13]。它使模型能够使用户适应(说话)的方式,从而提供适当的回复。


2.2 端到端方法

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

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

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

文章节选于:A Survey on Dialogue Systems: Recent Advances and New Frontiers


推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 本博文基于《Amalgamationofproteinsequence,structureandtextualinformationforimprovingprote ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 本文介绍了腾讯最近开源的BERT推理模型TurboTransformers,该模型在推理速度上比PyTorch快1~4倍。TurboTransformers采用了分层设计的思想,通过简化问题和加速开发,实现了快速推理能力。同时,文章还探讨了PyTorch在中间层延迟和深度神经网络中存在的问题,并提出了合并计算的解决方案。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 3年半巨亏242亿!商汤高估了深度学习,下错了棋?
    转自:新智元三年半研发开支近70亿,累计亏损242亿。AI这门生意好像越来越不好做了。近日,商汤科技已向港交所递交IPO申请。招股书显示& ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • Learning to Paint with Model-based Deep Reinforcement Learning
    本文介绍了一种基于模型的深度强化学习方法,通过结合神经渲染器,教机器像人类画家一样进行绘画。该方法能够生成笔画的坐标点、半径、透明度、颜色值等,以生成类似于给定目标图像的绘画。文章还讨论了该方法面临的挑战,包括绘制纹理丰富的图像等。通过对比实验的结果,作者证明了基于模型的深度强化学习方法相对于基于模型的DDPG和模型无关的DDPG方法的优势。该研究对于深度强化学习在绘画领域的应用具有重要意义。 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • 建立分类感知器二元模型对样本数据进行分类
    本文介绍了建立分类感知器二元模型对样本数据进行分类的方法。通过建立线性模型,使用最小二乘、Logistic回归等方法进行建模,考虑到可能性的大小等因素。通过极大似然估计求得分类器的参数,使用牛顿-拉菲森迭代方法求解方程组。同时介绍了梯度上升算法和牛顿迭代的收敛速度比较。最后给出了公式法和logistic regression的实现示例。 ... [详细]
  • OCR:用字符识别方法将形状翻译成计算机文字的过程Matlab:商业数学软件;CUDA:CUDA™是一种由NVIDIA推 ... [详细]
  • 知识图谱表示概念:知识图谱是由一些相互连接的实体和他们的属性构成的。换句话说,知识图谱是由一条条知识组成,每条知识表示为一个SPO三元组(Subject-Predicate-Obj ... [详细]
  • 当写稿机器人真有了观点和感情,我们是该高兴还是恐惧?
    目前,写稿机器人多是撰写以数据为主的稿件,当它们能够为文章注入观点之时,这些观点真的是其所“想”吗?最近,《南 ... [详细]
author-avatar
真实的姜伯约_832
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有