在构建聊天机器人方面,机器学习和深度学习有什么区别



更具体地说,传统的聊天机器人框架由3个组件组成:

  1. NLU(1.意图分类2。实体识别(
  2. 对话管理(1。DST 2。对话政策(
  3. NLG

我只是很困惑,如果我使用深度学习模型(seq2seqlstmtransformerattentionbert…(来训练聊天机器人,它涵盖了所有这三个组件吗?如果是,你能更具体地解释一下它与这三个部分的关系吗?如果没有,我该如何组合它们?

例如,我建立了一个封闭域聊天机器人,但它只是面向任务的,不能处理问候之类的其他部分……而且它不能处理引用解决问题(它似乎没有对话管理(。

您的问题似乎可以分为两个较小的问题:

  1. 机器学习和深度学习之间有什么区别
  2. 深度学习是如何融入聊天机器人框架的三个组成部分的

对于#1,深度学习是机器学习的一个例子。把你的任务想象成一个绘图问题。变换数据,使其在图上具有n维表示。该算法的目标是创建一个函数,该函数表示在绘图上绘制的一条线,该线(理想情况下(将点彼此干净地分隔开。图形的每个扇区表示您想要的任何输出(无论是类/标签、相关单词等(。基本的机器学习在"线性可分离"问题上建立了一条线(即,很容易画出一条干净地分离类别的线(。深度学习使您能够通过创建一个非常非常复杂的函数来解决线路可能不那么干净的问题。要做到这一点,你需要能够向映射函数引入多个维度(这就是深度学习的作用(。这是对深度学习的一个非常肤浅的观察,但这应该足以处理你问题的第一部分。

对于#2,一个很好的快速答案是,深度学习可以成为聊天机器人框架每个组件的一部分,这取决于你的任务有多复杂。如果它很容易,那么经典的机器学习可能足以解决你的问题。如果这很难,那么你可以开始研究深度学习的解决方案。

由于听起来你希望聊天机器人超越简单的输入输出匹配,处理复杂的语义,如共指解析,因此你的任务似乎足够困难,是深度学习解决方案的好候选者。我不会太担心为每个聊天机器人框架步骤确定特定的解决方案,因为每个步骤中涉及的任务都与深度学习融合在一起(例如,深度学习解决方案不需要对意图进行分类,然后管理对话,它只需要从数十万种类似的情况中学习,并应用最相似的反应的变体(。

我建议将此问题作为翻译问题来处理,但您不是从一种语言翻译到另一种语言,而是从输入查询翻译到输出响应。翻译经常需要解决共同参考和人们用来解决的解决方案,这对你来说可能是一个理想的行动方案。

这里有一些优秀的资源可以阅读,以确定你的问题以及如何解决它:

  • Google的神经机器翻译
  • BERT的微调任务

在使用传统的机器学习模型和使用深度学习模型之间总是存在权衡。

  1. 深度学习模型需要大量数据来训练,并且训练时间和时间会增加;测试时间。但它会带来更好的结果。

  2. 传统的ML模型在数据较少的情况下运行良好,相对而言性能适中。推理时间也更短。

对于聊天机器人来说,延迟非常重要。延迟取决于应用程序/域。

如果域是banking or finance,人们可以等待几秒钟,但他们不能接受错误的结果。另一方面,在entertainment域中,您需要尽早交付结果。

决策取决于应用程序域+您拥有的数据大小+预期的精度。

RASA值得研究。

最新更新