1

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

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

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

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

4

2 回答 2

0

看来您的问题可以分为两个较小的问题:

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

对于#1,深度学习是机器学习的一个例子。把你的任务想象成一个绘图问题。您转换数据,使其在绘图上具有 n 维表示。该算法的目标是创建一个函数,该函数表示在绘图上绘制的一条线,该线(理想情况下)将点彼此清晰地分开。图表的每个部分都代表您想要的任何输出(可以是类/标签、相关词等)。基本的机器学习在“线性可分”问题上创建了一条线(即很容易画一条清晰地分隔类别的线)。深度学习使您能够通过创建一个非常、非常、非常复杂的函数来解决线条可能不那么干净的问题。为此,您需要能够向映射函数引入多个维度(这是深度学习所做的)。

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

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

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

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

于 2020-03-15T20:08:54.967 回答
0

使用传统的机器学习模型和使用深度学习模型之间总是需要权衡取舍。

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

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

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

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

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

RASA是值得研究的东西。

于 2020-04-28T12:52:37.980 回答