В чем разница между машинным обучением и глубоким обучением при создании чат-бота? - PullRequest
1 голос
/ 14 марта 2020

Чтобы быть более точным c, традиционный фреймворк чат-бота состоит из 3 компонентов:

  1. NLU (1. классификация намерений 2. распознавание сущностей)
  2. Управление диалогами (1 DST 2. Политика диалога)
  3. NLG.

Меня просто смущает, что если я использую модель глубокого обучения (seq2seq, lstm, transformer, attention, bert…) для обучения чат-бота, покрыть все эти 3 компонента? Если да, не могли бы вы объяснить более конкретно, как это связано с этими 3 частями? Если нет, то как я могу их объединить?

Например, я создал чат-бота с закрытым доменом, но он ориентирован только на задачи, которые не могут обрабатывать другую часть, такую ​​как приветствие ... И он не может обрабатывать проблема разрешения Coreference (кажется, не имеет управления диалогами).

Ответы [ 2 ]

0 голосов
/ 28 апреля 2020

Всегда существует компромисс между использованием традиционных моделей машинного обучения и использованием моделей глубокого обучения.

  1. Модели глубокого обучения требуют больших данных для обучения, и обучение будет увеличиваться время и время тестирования. Но это даст лучшие результаты.

  2. Традиционные модели ML хорошо работают с меньшим количеством данных и сравнительно умеренной производительностью. Время вывода также меньше.

Для чат-ботов задержка имеет большое значение. И время ожидания зависит от приложения / домена.

Если домен banking or finance, люди могут подождать несколько секунд, но они не согласны с неправильными результатами. С другой стороны, в домене entertainment результаты необходимо доставить как можно раньше.

Решение зависит от области приложения + размер данных, который у вас есть + ожидаемая точность.

RASA * ​​1022 * - это то, на что стоит обратить внимание.

0 голосов
/ 15 марта 2020

Кажется, ваш вопрос можно разделить на два небольших вопроса:

  1. В чем разница между машинным обучением и глубоким обучением?
  2. Как фактор глубокого обучения влияет на каждый из три компонента фреймворков чата?

Для # 1 глубокое обучение является примером машинного обучения. Думайте о своей задаче как о проблеме с графиком. Вы трансформируете свои данные, чтобы они имели n-мерное представление на графике. Цель алгоритма - создать функцию, которая представляет линию, нарисованную на графике, которая (в идеале) четко отделяет точки друг от друга. Каждый сектор графика представляет любой вывод, который вы хотите (будь то класс / метка, связанные слова и т. Д. c). Базовое c машинное обучение создает линию для «линейно разделимой» задачи (т. Е. Легко провести линию, которая четко разделяет категории). Глубокое обучение позволяет вам решать проблемы, когда линия может быть не такой чистой, создавая действительно очень сложную функцию. Чтобы сделать это, вам нужно иметь возможность ввести несколько измерений в функцию отображения (что и делает глубокое обучение). Это очень поверхностный взгляд на то, что делает глубокое обучение, но этого должно быть достаточно, чтобы ответить на первую часть вашего вопроса.

Для # 2 хороший быстрый ответ для вас заключается в том, что глубокое обучение может быть частью каждого компонента фреймворка chatbot в зависимости от сложности вашей задачи. Если это легко, то классическое машинное обучение может быть достаточно хорошим, чтобы решить вашу проблему. Если это трудно, тогда вы можете начать искать решения для глубокого обучения.

Поскольку звучит так, будто вы хотите, чтобы чат-бот go был чуть больше простого согласования ввода-вывода и обрабатывал сложную семантику, такую ​​как разрешение базовых параметров, ваша задача кажется достаточно сложной и хорошим кандидатом на решение для глубокого обучения. Я бы не стал так сильно беспокоиться о том, чтобы определить конкретное c решение для каждого из этапов платформы чат-бота, потому что задачи, включенные в каждый из этих шагов, смешиваются друг с другом с глубоким изучением (например, решение для глубокого обучения не должно классифицировать Намерение , а затем управляет диалогом, оно просто извлечет уроки из сотен тысяч похожих ситуаций и применит вариант наиболее схожего ответа).

Я бы рекомендовал рассматривать эту проблему как проблему перевода - но вместо перевода с одного языка на другой вы переводите из входного запроса в выходной ответ. Перевод часто требует решения основных задач и решений, которые люди использовали для решения, которые могут быть идеальным вариантом действий для вас.

Вот несколько прекрасных ресурсов для чтения, чтобы сформулировать вашу проблему и узнать, как ее решить. :

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...