机器学习和深度学习在构建聊天机器人之间有什么区别?

时间:2020-03-14 11:02:41

标签: machine-learning deep-learning nlp chatbot nlu

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

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

我只是感到困惑,如果我使用深度学习模型(seq2seqlstmtransformerattentionbert…)来训练chatbot,是否涵盖所有这三个组件?如果是这样,您能否更具体地说明它与这三个部分的关系?如果没有,我如何合并它们?

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

2 个答案:

答案 0 :(得分:0)

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

  1. 机器学习和深度学习有什么区别?
  2. 深度学习如何影响聊天机器人框架的三个组成部分?

对于#1,深度学习是机器学习的一个示例。将您的任务视为绘图问题。您可以转换数据,使其在绘图上具有n维表示。该算法的目标是创建一个函数,该函数表示在绘图上绘制的一条线(理想情况下)将点彼此干净地分开。图的每个扇区代表您想要的任何输出(例如,类/标签,相关词等)。基本的机器学习在``线性可分离''问题上创建了一条直线(即很容易画出一条清晰地将类别分开的直线)。深度学习使您可以通过创建真正非常复杂的功能来解决可能不太干净的问题。为此,您需要能够将多个维度引入映射功能(这是深度学习的功能)。这是深度学习所做的非常表面的观察,但这足以处理您的问题的第一部分。

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

由于听起来您希望聊天机器人超越简单的输入-输出匹配,并处理诸如共指解析之类的复杂语义,因此您的任务似乎足够困难,并且是深度学习解决方案的理想之选。我不必为每个聊天机器人框架步骤都确定一个特定的解决方案而担心,因为与深度学习一起,每个步骤所涉及的任务都会相互融合(例如,深度学习解决方案不需要将意图然后管理对话,它将简单地从成千上万的类似情况中学习,并应用最相似的响应的变体。

我建议将问题视为翻译问题-但不是从一种语言翻译成另一种语言,而是从输入查询翻译成输出响应。翻译经常需要解决同声传译和人们习惯于解决的解决方案,这可能是您的理想选择。

这里有一些很棒的资源可供阅读,以帮助您解决问题以及如何解决问题:

答案 1 :(得分:0)

在使用传统机器学习模型和使用深度学习模型之间始终存在一个权衡。

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

  2. 传统的ML模型在数据较少且性能适中的情况下效果很好。推理时间也更少。

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

如果域为banking or finance,则人们可以等待几秒钟,但结果却不正确。另一方面,在entertainment域中,您需要尽早提供结果。

决定取决于应用程序域+您具有的数据大小+期望的精度。

RASA是值得研究的东西。