воскресенье, 22 мая 2016 г.

Deep Learning для чат ботов (Часть 1)


Чат ботов также называют диалоговыми агентами или диалоговые системами, сейчас это очень горячая тема. Microsoft сделала большую ставку на чат ботов, и после этого такие компании как Facebook (M), Apple (Siri), Google, WeChat, and Slack. Это новая волна стартапов попытается изменить для пользователей взаимодействие с сервисами с помощью построения пользовательских приложений подобных Operator и x.ai, бот платформами как Chatfuel, и бот библиотеками как Howdy’s Botkit. Также Microsoft недавно предоставила свой Бот фреймворк.

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

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

СИСТЕМАТИКА МОДЕЛЕЙ

Поисково ориентированная vs. Генеративная модель

Поисково ориентированную модель (проще)  используют как хранилище стандартных ответов часть которых эвристика которая выбирает ответ на основе введенного текста и его контекста. Эвристикой может быть простое выражение на основе некоторых заданных правил, или как совокупность классификаторов Машиного Обучения. Эти системы не генерируют новый текст, они только выбирают ответ из определенных значений.

Генеративная модель (сложнее) не полагается на предопределенные ответы. Эта модель генерирует новые ответы с нуля. Генеративная модель обычного базируется на методах Машинного Обучения, но вместо перевода из одного языка к другому, она переводит из ввода в вывод(ответ).



Обе модели имеют очевидные плюсы и минусы. Благодаря хранилищу вручную созданных ответов , поисковая модель не будет делать грамматических ошибок. Однако они могут быть неспособны справляться с неизвестными случаями для которых нет подходящих предопределенных ответов. По некоторым причинам , эти модели не могут ссылаться на пред идущие контекстные информационные сущности  такие как имена упомянутые раньше в диалоге. Генеративная модель "умнее". Она может ссылаться назад к сущностям при вводе и давать понятие того о чем говорят люди. Хотя , эта модель сложно подается обучению, она вероятней всего будет делать грамматические ошибки(особенно при длинным предложениях ), и как правило нуждается в большом количестве тренировочной информации.



Методы Машиного обучения могут быть использованы для обоих поисково ориентированной и генеративной модели. Но исследования движутся в сторону генеративной модели. Архитектура Машинного обучения подобна Последовательности в Последовательности которая уникально подходит для генерации текста и исследователи надеются добиться быстрого прогресса в этой области. Однако, мы еще на ранних стадиях построения генеративной модели которые работают уже достаточно хорошо. Системы производства наше время подобны к поисково ориентированной модели.

Длинные vs. короткие Диалоги

Длинные диалоги более сложны для автоматизации. Одна из сторон из спектра это Короткие тестовые разговоры (легче) где цель это создать один ответ на один ввод . Для примера, вы должны получить конкретный вопрос от пользователя и ответить с соответствующим ответом.
При этом используя длинные диалоги (сложнее) когда вам приходиться идти через множество слов и нужно хранить суть того что было сказано. Пользователи поддерживают диалоги обычно длинными диалогами с различными вопросами.

Открытая область vs. Закрытая область
В открытой области (сложнее) установка пользователем разговора может быть начата где угодно. При этом у нас не будет четкой определенной цели и намерения. Диалоги в социальных сайтах  таких как Twitter and Reddit обычно имеют Открытую область  - они могут продолжаться в любом из направлений. Существует Бесконечное число тем и фактов которые определяют количество мировых знаний которые являются обязательными для создания разумных ответов , делая это сложной проблемой.В Закрытой области(легче) установить пространство возможных  вводов и выводов являющими отчасти ограниченными потому что система пытается достигнуть определенных целей. Техническая поддержка пользователей или Торговые ассистенты пример проблем в закрытой области. Эти системы не нуждаются в способности говорить о политике, им просто нужно как можно более эффективно выполнять свою конкретную задачу. Конечно, пользователи могут продолжать начинать разговор в любом месте , но системе не нужно обрабатывать все эти случаи - и пользователи предлагают что об этом.

ОБЩИЕ ПРОБЛЕМЫ
Есть некоторые очевидные и не столь очевидные проблемы при создании диалоговых агентов, большинство из которых являются активными в области исследований.

ВКЛЮЧЕНИЕ КОНТЕКСТА

Давая умные ответы системе нужно объединять как языковой контекст так и физический контекст. В длинных разговорах люди могут следит за тем что они написали и за тем какая информация была получена. Это пример лингвистического контекста. Большинство подходов это встраивание диалога в вектор, но делая это с длинными диалогами возникают сложности.
Эксперименты в построении непрерывной цепи диалоговых систем используя генеративно иерархической нейронной модели и Предупреждения для Нейронных сетей Диалоговых Моделей продолжают эту тему. Также, возможно, потребуется включить другие виды контекстных данных, такие как дата и время, месторасположение или информация о пользователе.

ОПРЕДЕЛЕНИЕ ЛИЧНОСТИ

Когда создается ответ агент должен предоставить последовательный ответ для семантической индентификации ввода. Для примера , когда вы получаете ответ на ответ "How old are you?" и "What is your age". Это может звучать просто, но включение такого фиксированного знания или "личности" в модели является одной из проблем исследовании. Много систем изучают как создавать лингвистично правдоподобные ответы, но у них нет навыков для создания семантических последовательностей. Обычно это бывает потому что они обучены на большом количестве данных полученной от разных пользователей.  Модели подобны данной в Личностно базовой нейронной диалоговой системы создают первые шаги на пути явного моделирования личности.

ОПРЕДЕЛЕНИЕ МОДЕЛЕЙ

Идеальный путь для оценивания диалогового агента заключается в измерении того? выполняет ли он свою задачу, например решил ли  проблему клиентов, в данном диалоге. Но такие метки дорогостоящие для получения информации поскольку они требуют человеческого суждения и оценки. Иногда там нет четко определенной цели, как в случае с моделями открытой области.
Общие показатели, такие как BLEU, которые используются для машинного перевода и основаны на соответствия текста не очень хорошо подходят, потому что разумные ответы могут содержать совершенно разные слова или фразы. На самом деле, в том, как не нужно оценивать вашу диалоговую систему: эмпирическое исследование по оценке неконтролируемой Метрики для диалога исследователей Generation Response считают, что ни один из наиболее часто используемых показателей  на самом дело тоже контролируются человеческим суждением.

ПОНЯТИЯ И РАЗНООБРАЗИЕ

Общей проблемой генеративных систем является то, что они, как правило, производят общие ответы, такие как "Это здорово!" Или "я не знаю", для работы для большого количества входных случаев. На ранних версиях Google Smart , как правило, отвечал: "Я люблю тебя" это могло быть что угодно. Это отчасти является результатом того, как обучаются эти системы, как с точки зрения данных, так и с точки зрения фактических учебных целей / алгоритмов.
Некоторые исследователи пытались искусственно поощрять разнообразие с помощью различных целевых функций. Тем не менее, люди, как правило, производят ответы, которые являются специфическими для ввода и несут некоторую семантику. Поскольку генеративные системы (и в частности, системы открытой области) не обучены иметь конкретные мысли и намерения у них нет такого рода разнообразия.

Насколько хорошо это действительно работает?

Принимая во внимание все острые края исследования в данный момент, где мы сейчас, и насколько хорошо эти системы на самом деле работают? Давайте снова рассмотрим нашу систематику. Для Поисково ориентированной модели с открытой областью это очевидно не возможно потому что вы никогда не наберете вручную всех заготовленных ответов  покрывающих все возможные случаи в разговоре. Генеративно ориентированная модель
с открытой областью это уже почти ИИ потому что нужно покрывать все сценарии в беседе.Мы еще далеки от этого (но исследователи уже движутся в этом направлении).

СПИСОК ДЛЯ ПРОЧТЕНИЯ

  • Neural Responding Machine for Short-Text Conversation (2015-03)
  • A Neural Conversational Model (2015-06)
  • A Neural Network Approach to Context-Sensitive Generation of Conversational Responses (2015-06)
  • The Ubuntu Dialogue Corpus: A Large Dataset for Research in Unstructured Multi-Turn Dialogue Systems (2015-06)
  • Building End-To-End Dialogue Systems Using Generative Hierarchical Neural Network Models (2015-07)
  • A Diversity-Promoting Objective Function for Neural Conversation Models (2015-10)
  • Attention with Intention for a Neural Network Conversation Model (2015-10)
  • Improved Deep Learning Baselines for Ubuntu Corpus Dialogs (2015-10)
  • A Survey of Available Corpora for Building Data-Driven Dialogue Systems (2015-12)
  • Incorporating Copying Mechanism in Sequence-to-Sequence Learning (2016-03)
  • A Persona-Based Neural Conversation Model (2016-03)
  • How NOT To Evaluate Your Dialogue System: An Empirical Study of Unsupervised Evaluation Metrics for Dialogue Response Generation (2016-03)


Оригинальная статья : http://www.wildml.com/2016/04/deep-learning-for-chatbots-part-1-introduction/

Комментариев нет:

Отправить комментарий