Строительные блоки когнитивного разговорного агента

Чат-боты - это компьютерные программы, которые могут разговаривать с пользователями-людьми. По умолчанию чат-бот не должен быть умным. То, что должно быть полезным и пригодным для использования. Например, чат-бот, задачей которого является сбор информации от пользователей, будет просто задавать вопросы пользователям и предоставлять им простой механизм ответа в стиле касания и пролистывания с помощью кнопок и каруселей. Хотя он выполняет задачу, для которой предназначен, его нельзя считать интеллектуальным чат-ботом.

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

1. Восприятие

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

Другой пример и источник разочарования пользователя - это когда пользователь хочет сказать: «Доступно ли оно желтым?» когда предлагались другие варианты, такие как «красный» и «синий». Хотя чат-бот дал понять, что продукт недоступен желтым цветом, не дав ему / ей возможности, пользователь все равно может задать вопрос, ожидая положительного ответа (например, продукта в настоящее время нет в наличии и он будет будет доступен в желтом цвете в ближайшем будущем).

Чтобы снизить сложность дизайна, вы можете попробовать сделать это в два этапа. Шаг 1. Сохраняйте локальность. Узнавайте смысл высказываний пользователя в ответ на вопрос чат-бота и игнорируйте проактивные высказывания пользователя. Это уменьшает количество ответов, которые пользователи могут получить в заданном контексте, и тем самым сокращает усилия по проектированию и программированию. Шаг 2: Как только ваш чат-бот сможет локально определять естественный язык в ответ на вопросы, попробуйте распознавать NL-высказывания пользователя, когда он / она проявляет инициативу и проявляет инициативу. Существует ряд наборов инструментов, которые вы можете использовать для добавления возможности NL к вашему чат-боту, например, API.ai, IBM Watson, Wit.ai и т. Д.

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

2. Обучение

Еще одна черта интеллекта, которой может обладать ваш чат-бот, - это обучаемость. Ваш чат-бот учится? Учится ли со временем улучшать свою производительность? Отдельные модули вашего чат-бота, такие как модули понимания NL и моделирования пользователей, могут научиться работать лучше с течением времени, используя алгоритмы машинного обучения (ML) в тандеме с людьми-супервизорами. Доступен ряд методов машинного обучения: контролируемое, неконтролируемое и обучение с подкреплением. Каждый из них может быть реализован с использованием множества алгоритмов. Для таких задач, как классификация намерений пользователя по высказываниям пользователя, можно использовать контролируемое обучение. Для поиска кластеров пользователей на основе их разговорного поведения можно использовать алгоритмы неконтролируемой кластеризации. А для обучения эффективному и оптимальному поведению при разговоре (т.е.что бот должен сказать сейчас?) Можно использовать алгоритмы обучения с подкреплением.

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

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

3. Планирование

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

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

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

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

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