Почему миру нужны чат-боты
26 марта 2017
Рубрика: ИТ-ресно.
Автор: .

Перспектива разговора с компьютером уже давно волнует людей. В середине XX века, когда о современных вычислительных мощностях можно было только мечтать, в массовой культуре начали появляться говорящие машины: одни помогали — как, например, бортовой компьютер в «Звездном пути»; другие мешали — как HAL 9000 из фильма «2001 год: Космическая Одиссея».

Еще в 1950 году Алан Тьюринг (Alan Turing) сформулировал знаменитый «Тест Тьюринга». Суть его в том, что человек вслепую взаимодействует с компьютерной программой и другим человеком. Изучив ответы на свои вопросы, он должен понять, кто из собеседников компьютер, а кто — человек. Чтобы пройти тест, программа должна убедить человека сделать неправильный выбор.

Классический пример раннего чат-бота — программа ELIZA. Ее разработал в середине 60-х годов профессор Массачусетского технологического института Джозеф Вайзенбаум (Joseph Weizenbaum). ELIZA умела создавать иллюзию разговора с психотерапевтом. Для того времени это было что-то особенное и многие люди, включая секретаршу Вайзенбаума, были уверены, что ELIZA может мыслить и чувствовать.

Новый подъем интереса к чат-ботам случился в 90-е. Именно тогда появился термин «чат-бот». Тогда же начали появляться боты для пользователей IRC (англ. Internet Relay Chat), чуть позже пошли боты для популярнейших мессенджеров, вроде AOL Instant Messenger. В 2001 году выход альбома группы Radiohead «Amnesiac» сопровождался релизом чат-бота GooglyMinotaur, который умел посылать поклонникам группы новости, MP3-файлы и другой контент.

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

Нейронные сети

В 2017 году разговор о чат-ботах невозможен без упоминания нейросетей. Разобраться в термине поможет Андрей Фильченков, доцент кафедры университета ИТМО, спикер школы-хакатона для проектов в сфере нейротехнологий.

«Как следует из названия, нейросети — это сети. Элемент сети — нейрон, то есть довольно простой отдельный алгоритм, который придумали для классификации. На входе он получает некоторый набор значений, на выходе возвращает другое значение, равное линейной комбинации того, что он получил на входе. Возьмем, например, задачу расчета индекса массы тела. Индекс нелинейный от роста и веса, поэтому один нейрон с задачей расчета индекса массы тела по двум параметрам не справится. Но если несколько нейронов соединить вместе, то получится что-то, чем такую нелинейную функцию можно хорошо приблизить. Любые сложные зависимости, произвольную сложную функцию можно представить в виде композиции нескольких нейронов. На самом деле архитектура нейронных сетей предполагает, что нейроны не болтаются просто так, а они расположены в слоях, и на каждом из слоев соединены с нейронами предыдущих слоев, чьи выходы являются входами нейронов на следующих слоях».

Пример строения нейронной сети

«В итоге вся эта композиция устроена примерно так же, как один нейрон, — продолжает Фильченков. — Она получает на вход много значений и возвращает на выход одно или несколько значений, как захочется создателю. Чтобы обучить такую сеть, как и любой алгоритм машинного обучения, нужны данные. Возможно, с метками. Рассмотрим классический пример — диагностику заболеваний. Мы получаем на вход всевозможные симптомы болезни пациента, его физиологические характеристики и, возможно, метку о том, есть у него заболевание или нет. В итоге мы должны построить зависимость, связывающую эти характеристики и плохое самочувствие человека. На выходе нейросеть должна давать заболевание».

Важный момент в развитии искусственного интеллекта — появление глубоких нейронных сетей. «По сути, это отдельный, довольно большой класс нейронных сетей, у которых большое количество слоев», — поясняет Филь­ченков.

Давайте разберемся, как нейросети используются создателями чат-ботов.

«Суть подхода в том, что система сама учит закономерности как между словами в выражениях, так и между различными языковыми конструкциями и используемыми словами, анализируя множество «учебных текстов». Система сама генерирует множество шаблонов, на создание которых у людей ушли бы человеко-десятилетия, — объясняет Антон Колонин, автор проекта Aigents. — Успех этого подхода был также продемонстрирован несколько лет назад системой Watson, когда она выиграла у людей в популярном телешоу «Jeopardy» (прототип «Своей игры» — прим.), где победителю требуется в равной степени обладать эрудицией, интеллектом и знанием языка».

Андрей Фильченков уверен, что через 2–3 года практически все сложные системы, с которыми будут общаться люди, будут использовать глубокие нейросети. По его мнению, в ближайшей перспективе альтернатив им нет.

Как используются чат-боты

Бум чат-ботов, случившийся в конце 2015 года, обусловлен не только развитием нейросетей, но и падением популярности новых мобильных приложений. Согласно исследованию ComScore, средний пользователь смартфона проводит 80% времени лишь в трех приложениях. В большинстве случаев минимум один из них — мессенджер. Вот почему огромное количество современных чат-ботов живет в Telegram, Kik, WeChat, Facebook Messenger или Slack, главном рабочем мессенджере планеты. Многие аналитики считают, что приложения умирают, при этом обмен текстовыми сообщениями становится все более привычным интерфейсом. Грубо говоря, эти два тренда и должны обеспечить чат-ботам востребованность.

Сегодня чат-боты используются во всех сферах жизнедеятельности. Современные СМИ часто заводят информационных ботов. Так, бот журнала Wired умеет находить и отправлять самые важные новости бизнеса, науки, дизайна, технологий, а также просто самые популярные новости дня из числа опубликованных на сайте журнала. Газета The Sun успешно экспериментировала с ботом, отправляющим пользователям последние новости о переходах футбольных звезд. The New York Times создала бота для Facebook Messenger, который присылал важные новости о выборах президента США (кроме того, внутри компании используется Slack-бот, помогающий определять потенциальную виральность контента).

Боты активно используются в работе служб поддержки. Когда вы звоните в банк, вам, скорее всего, отвечает не живой оператор, а робот. По тому же принципу может применяться и чат-бот. Если компании нужен сервис поддержки, и она знает наиболее частые вопросы, возникающие у клиентов, доступный в любое время суток бот может стать оптимальным решением. В России такими ботами занимается, в частности, компания «Наносемантика».

Распространены боты для продажи. Классика жанра — боты для заказа пиццы. Такой есть, например, у Domino Pizza, второй по размеру сети пиццерий в Америке. Много внимания в свое время получил Slack-бот Vinny G, с помощью которого можно было быстро заказать в офис пиццу или цветы.

С помощью чат-ботов можно играть в несложные игры: текстовые квесты, головоломки, викторины. Компания Activision использовала чат-бота для раскрутки игры Call of Duty: Infinite Warfare. Игрокам предлагалось связаться через Facebook Messenger с персонажем игры, лейтенантом Рейесом, аккаунт которого являлся чат-ботом.

Отметим также чат-ботов для общения. Хороший пример — бот для мессенджера Kik под названием Roll, которым в октябре пользовалось около миллиона человек. Бот очень простой: в него встроено несколько вопросов, вроде «Стоит ли мне прямо сейчас заказать пиццу?» или «Стану ли я звездой Инстаграма?», на которые он генерирует ответы.

Чат-боты: опыт, проблемы, перспективы

Опытом разработки чат-ботов без использования нейросетей делится Анна Власова, руководитель лингвистического отдела компании «Наносемантика». В серверной части приложений эта компания использует процессоры Intel® Xeon®. Основной продукт «Наносемантики» — коммерческие инфы, виртуальные роботы-собеседники, которые клиенты компании устанавливают на своих сайтах. Для коммуникации с инфами пользователям не требуются специальные знания и навыки: общение идет на обычном языке, как в чате. Коммерческие инфы делятся на консультантов и промоутеров.

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

«Мы стараемся сохранить какие-то признаки реального человеческого диалога, — рассказывает Анна Власова. — А дальше зависит от того, какой набор функций сейчас востребован на рынке, что мы можем сделать и так далее. Бот, инф может решать те же проблемы, которые решают люди в тех местах, где нужно общение. Естественно, до определенной степени. Допустим, если бизнес предполагает сервис по техподдержке, консультации, помогает определиться с выбором, ответить на частые вопросы, то в этом месте может быть чат-бот. Он всегда доступен, не спит, не болеет, работает 24 часа в сутки. У нас есть решения для сайта WebMoney, для Avito — представляете, какой там поток! Еще одна удобная вещь в использовании чат-ботов — прозрачность. Если люди, отвечающие за бизнес, хотят точно знать, что будет говорить диалоговая система, они могут получить все ответы, проконтролировать их.

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

Антон Колонин, автор проекта Aigents, объясняет важную проблему применения нейронных сетей к обучению ботов диалогу. Она заключается в необходимости тщательного набора обучающих данных. По его словам, нужно предусмотреть все возможные сценарии диалогов и «скормить» их системе в процессе обучения. На практике, если такие сценарии есть для какой-то конкретной области, то проще запрограммировать их вручную, чем возиться с обучением, а потом проверять, успешно ли они прошли.

Антон также подчеркивает, что нейросети позволяют боту вести диалог в тех областях, на которые он не совсем обучен. «Бот может ошибаться, но он может учиться на своих ошибках, если учитель дает положительную либо отрицательную оценку его высказываниям или явно поправляет его, говоря то, что он должен был сказать, — объясняет Колонин. — Так же учатся дети. Но помимо накопления статистического опыта от общения с родственниками, учителями и сверстниками, дети получают в огромном объеме систему понятий и связей: ругаться — плохо, помогать — хорошо, хищники едят мясо, травоядные — траву. Когда у ребенка накапливается достаточно полная картина мира, называемая онтологией, в виде понятий и связей, наряду с многообразием шаблонов в виде грамматических конструкций, он в состоянии оперировать с любыми понятиями, встречающимися в любых конструкциях, даже если не сталкивался с ними раньше».

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

Рассуждая о проблемах, стоящих перед современными чат-ботами, использующими нейросети, Андрей Фильченков отмечает, что глубоким сетям нужно много данных для обучения: «Для написания brand new system («совершенно новой системы» — прим.) требуется довольно много затрат. И сети довольно тяжело обучать. В том смысле, что их необходимо долго настраивать в инженерном смысле. Для разработки успешных архитектур под конкретную задачу уходит немало часов, дней, а то и месяцев. Сейчас активно развиваются вещи, направленные на упрощение, автоматизацию создания таких систем, но пока до какого-то решения довольно далеко».

Еще один проблемный момент, который подчеркивает Фильченков: глубокие нейросети часто близки к тому, чтобы научиться языку, но не знаниям об окружающем мире.

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

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

Наконец, если говорить о перспективах чат-ботов, то, пожалуй, самый интересный момент касается «самосознания».

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

Очевидно, что чат-боты так или иначе будут развиваться. Перспектива общения с искусственным интеллектом вряд ли перестанет искушать человечество. Будем надеяться, что в итоге это будет похоже на «Звездный путь», а не на «Космическую одиссею».

Источник

Orphus system
Подписывайтесь на канал infoCOM.UZ в Telegram, чтобы первыми узнавать об ИКТ новостях Узбекистана
В Telegram
В WhatsApp
В Одноклассники
ВКонтакте