- Боты и люди: кто есть кто?
- Что на самом деле показывает тест Тьюринга?
- Читайте также :
- Виртуальная романтика
- Самообразование неигровых персонажей
- Читайте также :
- Боты в интернете
- Боты и психоанализ
- Это может быть интересно :
- Постскриптум: пишем своего чат-бота
- Что внутри чат-бота?
- Возможности алгоритмов
- Понимание текста (Natural Language Understanding, NLU).
- Виды чат-ботов
- Виды машинного обучения
Боты и люди: кто есть кто?
Чат-боты и способы их использования больше говорят не о машинном интеллекте, а о том, сколько неизведанного в людях.
Проблематика, связанная с искусственным интеллектом, глубже, чем анализ способностей компьютеров. Беседы с программами приближают нас к ответам на вопросы о главных загадках бытия. Несмотря на то, что ученые работают над коннектомом мозга человека, а компьютеры превратились из огромных вычислительных машин в смарт-утройства, некоторые вопросы, касающиеся высших психических функций, до сих пор не находят ответов. Объективность теста Тьюринга находится под вопросом, поскольку мы до сих пор не можем с уверенностью сказать, что же это такое — мышление.
Что на самом деле показывает тест Тьюринга?
Читайте также :
Ранее мы уже рассуждали о том, могут ли машины мыслить. В первую очередь в связи с этим вопросом вспоминают тест Тьюринга, суть которого состоит в том, что человеку, который общается посредством текста с компьютером и другим человеком, предлагается установить, кто есть кто. Программа при этом должна ввести собеседника в заблуждение, притворившись разумным существом. Идея теста появилась более 50 лет назад, и с тех пор компьютеры существенно продвинулись в развитии. Например, если в середине века для того, чтобы обработать запрос и ответить, машине требовалось больше времени, чем человеку, то теперь ботов, способных отвечать мгновенно, приходится учить выдерживать паузу для правдоподобия.
Ученый XIX века Теодор Липпс создал теорию вчувствования, согласно которой наши эмоциональные суждения распространяются на явления природы («радостный солнечный день», «тоскливый осенний дождь»), в то время как сама природа понятия не имеет, печальна она или радостна. Это может быть справедливо и для алгоритмов: мы стремимся увидеть в компьютере собеседника. Это отмечают исследователи, критикующие тест Тьюринга.
Можно сказать, что этот опыт не помогает установить подлинную сущность собеседника (машина или человек?), а показывает, соответствует ли тот нашим социальным ожиданиям и требованиям к диалогу.
Виртуальная романтика
Люди умудряются заводить с программами настоящие романы. Например, существуют сервисы fakegirlfriend.com и fakeinternetgirlfriend.com, создающие видимость, что человек, который ими пользуется, состоит в реальных отношениях. Проекты такой направленности соревнуются между собой в правдоподобии виртуального образа подруги, которая оставляет сообщения в социальных сетях, благодарит за подарки, публично признается в любви и поздравляет с праздниками. Сервисы Invisible Girlfriend и Invisible Boyfriend, которые обеспечивают максимальную персонализацию, позволяют обмениваться с вымышленным партнером сообщениями (правда, для этого потребуется американский или канадский телефонный номер).
В августе 2015-ого года разразился скандал, связанный с хакерским взломом и без того скандального «сайта для супружеских измен» Ashley Madison. В результате выяснилось, что практически все пользователи ресурса — мужчины, в то время как большая часть женщин — боты. Для того, чтобы отправлять сообщения, мужчинам нужно было платить деньги (таким образом, по утверждению руководителей проекта, формировалась платежеспособная аудитория). В результате пользователей ожидало общение с чат-ботами, которые генерировали сообщения вроде «привет, как дела».
Возможно, хорошая новость состоит в том, что количество реальных измен, которые совершились благодаря Ashley Madison, оказалось ничтожно малым. С другой стороны, внушительная часть аудитории сайта состояла из людей, готовых принять программу за человека и заплатить за это настоящими деньгами.
Мы убедились, что результат теста Тьюринга зависит от людских ожиданий. Это подтверждает история Ashley Madison. Люди легко попадают в ловушку и позволяют программам себя обмануть, если надеются на свидание: воображение достраивает картину приятного вечера, позволяя игнорировать несуразицу в сообщениях.
В отдельных случаях сбоев ПО боты начинали разговаривать друг с другом. Классик киберпанка Уильям Гибсон предположил в своем твиттере, что они готовят план бегства.
Самообразование неигровых персонажей
Среди геймдизайнеров в последнее время обсуждаются перспективы развития игр с открытым миром, в которых сюжет и образы персонажей не создаются разработчиком, а генерируются динамически, в соответствии с поведением игрока. Подвижки в этом направлении начались уже с выбора уровня сложности. Сейчас специальные программы могут регулировать атаки противников в зависимости от действий пользователя (например, Left for Dead), а элементы процедурной генерации используются для проработки среды. Однако настоящей «умной» виртуальной реальностью станет игра, способная обучаться у человека, развиваться и предлагать нестандартные решения. Благодаря этому неигровые персонажи смогут самостоятельно поддерживать осмысленные диалоги.
Джефф Оркин, разработчик игр и исследователь, защитил в Масачусетском технологическом институте диссертацию о краудсорсинге данных для разработки ИИ. Его концепция предполагает, что компьютер может анализировать поведение пользователя и самостоятельно выстраивать сюжеты, а персонаж будет приобретать квазиличность за счет естественно расширяющегося словаря и набора поведенческих реакций.
Читайте также :
Вместе с тем некоторые игроки бросают как многопользовательские, так и одиночные игры с необычным управлением или сложными правилами, потому что обучаться оказывается слишком трудно.
В онлайн-играх пользователи называют человеческий фактор одним из самых раздражающих багов. Никто не имеет гарантии, что другой человек вдруг не начнет убивать союзников, намеренно проигрывать бои или портить атмосферу.
Получается, что в чем-то homo ludens проигрывает по сравнению с machina ludens: в некоторых случаях программы оказываются лучшими игроками, чем люди.
Боты в интернете
В 2014 году исследовательская группа Сары Кесслер создала большое количество акканутов-ботов в Твиттере, чтобы выяснить, смогут ли фильтры сервиса и множество пользователей отличить «мёртвые души» от живых людей. Впрочем, как раз «мёртвыми» эти аккаунты не были. Они активно делали записи и перепосты, упоминали других блоггеров и набрали большое количество подписчиков.
Для распространения информации в интернете есть возможность создания целых ботоферм, которые будут размещать рекламу и политическую агитацию, либо намеренно «мусорить» в комментариях к неугодным хозяину «фермы» постам. Такие методы продвижения и создания информационного шума не вызывают уважения, однако часто находятся люди, которые начинают разговаривать с ботами или верить их текстам.
Иногда, натыкаясь на несвязные и безграмотные комментарии от других пользователей или получая бессмысленные сообщения, мы сомневаемся, писал ли это живой человек, либо примитивный бот. Так кто же все-таки должен проходить тест Тьюринга, робот или человек?
Боты и психоанализ
В 1960-х годах Джозеф Уайзенбаум создал знаменитую программу Элиза (ELIZA), которая имитировала поведение психотерапевта, задавая наводящие вопросы. Выяснилось, что чат-бот может быть быть идеальным аналитиком, реагируя на все реплики фразами вроде «Расскажите об этом», «Что вы чувствуете, говоря это?», «Почему это важно для вас?». Как идеальный психотерапевт, программа задает абстрактные вопросы и оставляет того, кто хочет выговориться, наедине с самим собой.
Это может быть интересно :
Иногда мы плохо понимаем других людей или отвечаем неадекватно. Мешают различие активных словарей, банальная невнимательность и желание поговорить «о своём» вырвав из контекста случайное слово в чужой речи. Получается, что в каждый момент, когда мы не понимаем другого и отвечаем на вопрос невпопад, мы ведем себя как плохо собранный виртуальный собеседник.
Проблема виртуального собеседника упирается в идею непознаваемости чужого мышления и малую изученность человеческого разума как такового. Создание машинного интеллекта — своего рода психоанализ для нашей цивилизации, способ ответить на вопросы о том, как мы размышляем и чего хотим от общения. Таким образом, моделирование мыслительных процессов и создание интеллектуальных программ является, в первую очередь, попыткой человека прояснить собственную сущность.
То, как удачно машина справляется с функцией аналитика, говорит о том, что в первую очередь мы ждем от диалога возможности выразить себя. На самом деле, программа перехватывает инициативу, избегая роли отвечающего, а заодно и логических сбоев.
Постскриптум: пишем своего чат-бота
Переходя от теории к практике, нужно сказать, что написание чат-бота — не только способ прояснить кое-что насчет искусственного интеллекта, а также своего словарного запаса и ассоциативных рядов, но и хорошее упражнение для программиста, которое дает мотивирующий интерактивный результат.
Чтобы научить чат-бота говорить, потребуется составить его словарь, разделив его на тематические блоки; на слово из соответствующего блока бот будет отзываться родственным словом. Можно сделать бота, который будет отвечать гиф-картинками и мемами, загружаемыми из интернета, по проставленным тэгам сопоставляя ситуации их использования со своим случаем.
В качестве туториала можно воспрользоваться онлайн-уроками. Например, на Курсотеке доступен курс Как создать своего чат-бота от автора чат-бота Eugene Goostman.
12 января 2016, 12:00
Мнение автора может не совпадать с позицией редакции.
Источник
Что внутри чат-бота?
Меня зовут Иван Бондаренко. Я занимаюсь алгоритмами машинного обучения для анализа текстов и устной речи примерно с 2005 года. Сейчас работаю в Московском Физтехе ведущим научным разработчиком лаборатории бизнес-решений на основе Центра компетенций НТИ по Искусственному интеллекту МФТИ и в компании Data Monsters, которая занимается вопросами практической разработки диалоговых систем для решения тех или иных задач в индустрии. Также немного преподаю у нас в университете. Мой рассказ будет посвящен тому, что такое чат-бот, как алгоритмы машинного обучения и другие подходы применяются для автоматизации общения человека и компьютера и где это может быть реализовано.
Полную версию моего выступления на «Ночи научных историй» можно посмотреть в видеозаписи, а краткие тезисы я приведу в тексте ниже.
Возможности алгоритмов
В первую очередь, алгоритмы взаимодействия с человеком находят успешное применение в call-центрах. Работа оператора call-центра очень тяжелая и дорогостоящая. Более того, во многих ситуациях полностью решить проблему общения человека и компьютера практически невозможно. Одно дело, когда мы работаем с банком, у которого, как правило, несколько тысяч клиентов. Можно набрать штат сотрудников call-центра, который бы обслуживал этих клиентов и беседовал с ними. Но когда мы решаем более масштабные задачи (например, производим смартфоны или какую-то другую бытовую электронику), у нас клиентов не несколько тысяч, а несколько десятков миллионов по всему миру. И мы хотим понимать, какие проблемы с нашей продукцией есть у людей. Пользователи, как правило, делятся друг с другом информацией на форумах либо пишут в службу поддержки производителя смартфонов. Живые операторы не смогут справиться с работой по огромной клиентской базе, и здесь на помощь приходят алгоритмы, которые могут работать в многоканальном режиме, обслуживая огромное количество людей.
Для решения подобных задач, для построения алгоритмов диалоговых систем, которые могли бы взаимодействовать с человеком и извлекать смысл, важную информацию из произвольных сообщений, существует целое направление в области компьютерной лингвистики – анализ текстов на естественном языке. Робот должен уметь читать, понимать, слушать, говорить и так далее. Это направление – Natural Language Processing (анализ текста на естественном языке) – распадается на несколько частей.
Понимание текста (Natural Language Understanding, NLU).
Когда бот общается с человеком и человек что-то пишет боту, нужно понять, что написано, что хотел пользователь, о чем он упоминал в своей речи. Понимание намерений пользователя, так называемого интента – чего человек хочет: перевыпустить банковскую карту или заказать пиццу. И выделение именованных сущностей, то есть вещей, о которых конкретно говорит пользователь: если это пицца, то «Маргарита» или «Гавайская», если карта, то какая система – MasterCard, Мир и так далее.
И, наконец, понимание тональности сообщения – в каком эмоциональном состоянии находится человек. Алгоритм должен уметь детектировать, в какой тональности написано сообщение, либо это новостной текст, либо это сообщение от человека, который общается с нашим ботом, для того чтобы адекватным образом реагировать на тональность.
Порождение текста (Natural Language Generation) – адекватная реакция на человеческий запрос таким же человеческим языком (естественным), а не сложной табличкой и не формальными фразами.
Распознавание и синтез речи (Speech-to-Text and Text-to-Speech). Если чат-бот не просто переписывается с человеком, а говорит и слушает, нужно научить его понимать устную речь, звуковые колебания преобразовывать в текст, чтобы потом модулем понимания текста этот текст анализировать, и из текста-ответа генерировать, в свою очередь, звуковые колебания, которые потом услышит человек, абонент.
Виды чат-ботов
В чат-ботах можно выделить несколько ключевых архитектур.
Чат-бот, отвечающий на наиболее часто задаваемые вопросы (FAQ-чатбот) – самый простой вариант. Мы всегда можем сформулировать набор типовых вопросов, которые задают люди. Для сайта по доставке готовой еды, как правило, это вопросы: «сколько будет стоить доставка», «доставляете ли вы в Первомайский район», и пр. Можно их сгруппировать по нескольким классам, интентам, пользовательским намерениям. И для каждого интента подобрать типовые ответы.
Целенаправленный чат-бот (goal oriented bot). Я здесь попытался показать архитектуру подобного чат-бота, который реализован в проекте iPavlov. iPavlov – это проект по созданию разговорного искусственного интеллекта. В частности, целенаправленный чат-бот помогает пользователю достичь какой-то цели (например, забронировать столик в ресторане или заказать пиццу, или что-то узнать о проблемах в банке). Речь идет не просто об ответе на вопрос (вопрос-ответ – без всякого контекста). У целенаправленного чат-бота есть модуль понимания текста, управления диалогом и модуль генерации ответов.
Чат-боты вопросно-ответной системы question answering system и просто «болталки» (chit chat bot). Если два предыдущих типа чат-ботов либо отвечают на наиболее часто задаваемые вопросы, либо ведут пользователя по графу диалогов, в конце концов, помогая забронировать ресторан, выясняя, что хочет пользователь, китайскую или итальянскую кухню и т.д., то вопросно-ответная система – это другой тип чат-бота. Задача такого чат-бота – не двигаться по графу диалога и не просто классифицировать намерения пользователя, а обеспечивать информационный поиск – находить наиболее релевантный документ, соответствующий вопросу человека, и место в документе, где содержится ответ. Например, сотрудники крупного ритейлера вместо того, чтобы заучивать наизусть инструкции, регламентирующие работу, либо искать ответ, куда ставить гречку, задают вопрос такому чат-боту на основе вопросно-ответной системы.
Виды машинного обучения
Распознавание интентов, выделение именованных сущностей, поиск в документах и поиск мест в документе, которые соответствуют семантике вопроса – все это без машинного обучения, без некого статистического анализа реализовать невозможно. Поэтому в основе современных чат-ботов лежит машинное обучение –методы задач, аппроксимации некой скрытой закономерности, которая есть в больших массивах данных и выявление этих закономерностей. Такой подход имеет смысл применять, когда закономерности, задачи есть, но простую формулу, формализм для описания этой закономерности придумать невозможно.
Существует несколько видов машинного обучения: с учителем (supervised learning), без учителя (unsupervised learning), с подкреплением (reinforcement learning). Нас интересует, прежде всего, задача обучения с учителем – когда есть входные изображения и указания (метки) учителя и классификация этих изображений. Либо входные речевые сигналы и их классификация. И мы учим нашего бота, наш алгоритм воспроизводить работу учителя.
О’кей, вроде бы все круто. А как научить компьютер понимать тексты? Текст – это сложный объект, и как буквы превратить в числа и придумать векторное описание текста? Есть самый простой вариант – «мешок слов». Мы задаем словарь всей системы, например, все слова, которые есть в русском языке, и формулируем вот такие очень разреженные вектора с частотами слов. Этот вариант хорош для простых вопросов, но для более сложных задач он не годится.
В 2013 году произошла в некотором роде революция в моделировании слов и текстов. Томас Миколов предложил специальный подход эффективного векторного представления слов, основанный на дистрибутивной гипотезе. Если разные слова встречаются в одном и том же контексте, значит, они имеют что-то общее. Например: «Ученые провели анализ алгоритмов» и «Ученые провели исследование алгоритмов». Так, «Анализ» и «исследование» являются синонимами и обозначают примерно одно и то же. Поэтому можно научить специальную нейронную сеть прогнозировать слово по контексту, либо контекст по слову.
Наконец, как мы обучаем? Для того чтобы обучить бота понимать интенты, истинные намерения, нужно вручную разметить кучу текстов с помощью специальных программ. Чтобы научить бота понимать именованные сущности – имя человека, название фирмы, локация – тоже нужно размещать тексты. Соответственно, с одной стороны, алгоритм обучения с учителем наиболее эффективный, он позволяет создавать эффективную распознающую систему, но, с другой стороны, возникает проблема: нужны большие размеченные дата-сеты, а это делать дорого и долго. В процессе разметки дата-сетов могут быть ошибки, вызванные человеческим фактором.
Для решения этой проблемы в современных чат-ботах применяют так называемый перенос обучения – transfer learning. Те, кто знают много иностранных языков, наверняка замечали такой нюанс, что очередной иностранный язык учить легче, чем первый. Собственно, когда вы изучаете какую-то новую задачу, то пытаетесь использовать для этого свой прошлый опыт. Так вот, transfer learning (перенос обучения) как раз основан на этом принципе: мы обучаем алгоритм решать одну задачу, для которой у нас есть большой дата-сет. А потом этот обученный алгоритм (то есть берем алгоритм не с нуля, а обученный решению другой задачи), дообучаем решать нашу задачу. Таким образом, мы получаем эффективное решение с использованием небольших различных данных.
Одна из таких моделей – это ELMo (Embeddings from Language Models), как ELMo из Улицы Сезам. Мы используем рекуррентные нейронные сети, они имеют память и могут обрабатывать последовательности. Например: «Программист Вася любит пиво. Каждый вечер после работы он заходит в «Джонатан» и пропускает бокал-другой». Так вот, он – это кто? Он – это вечер, он – это пиво, или он – это программист Вася? Нейронная сеть, которая обрабатывает слова, как элементы последовательности, учитывая контекст, рекуррентная нейронная сеть, может понять взаимосвязи, решить эту задачу и выделить какую-то семантику.
Мы обучаем такую глубокую нейронную сеть моделировать тексты. Формально это задача обучения с учителем, но учителем у нас выступает сам неразмеченный текст. Следующее слово в тексте является учителем по отношению ко всем предыдущим. Таким образом, можем использовать гигабайты, десятки гигабайт текстов, обучать эффективные модели, которые выделяет семантика в этих текстах. И потом, когда мы используем модель Embeddings from Language Models (ELMo) в режиме вывода, мы подаем слово с учетом контекста. Не просто stick, a let’s stick. Смотрим, что нейронная сеть генерирует в этот момент времени, какие сигналы. Эти сигналы мы катанируем и получаем векторное представление слова в конкретном тексте, с учетом его конкретной сематической значимости.
В анализе текстов есть еще одна особенность: когда решается задача машинного перевода, один и тот же смысл одним количеством слов на английском может быть передан и другим количеством слов на русском. Соответственно, идет не линейное сопоставление, и нам необходим механизм, который бы акцентировал внимание на тех или иных кусочках текста, чтобы адекватно их перевести на другой язык. Изначально внимание было придумано для машинного перевода – задача преобразования одного текста в другой с обычными рекуррентными нейронными системами. В это мы добавляем специальный слой внимания, который в каждый момент времени оценивает, какое слово нам сейчас важно.
Но потом ребята из Google подумали, а почему не использовать механизм внимания вообще без рекуррентных нейронных сетей – только внимание. И придумали архитектуру, которая называется трансформер (BERT (Bidirectional Encoder Representations from Transformers)).
На базе такой архитектуры, когда есть только многоголовое внимание, были придуманы специальные алгоритмы, которые тоже могут анализировать взаимосвязи слов в текстах, взаимосвязи текстов друг с другом – как это делает ELMo, только более хитро. Во-первых, это более крутая и сложная сеть. Во-вторых, мы решаем одновременно две задачи, а не одну, как в случае с ELMo – языковое моделирование, прогнозирование. Мы пытаемся восстановить скрытые слова в тексте и восстановить связи между текстами. То есть, допустим: «Программист Вася любит пиво. Каждый вечер он ходит в бар». Два текста связаны между собой. «Программист Вася любит пиво. Журавли осенью улетают на юг» – это два несвязанных текста. Опять-таки, эту информацию можно извлечь из неразмеченных текстов, обучить BERT и получить очень крутые результаты.
Об этом в ноябре прошлого года была опубликована статья «Attention Is All You Need», которую очень я очень рекомендую прочитать. На данный момент это является самым крутым результатом в области анализа текстов для решения разных задач: для классификации текста (распознавание тональности, намерений пользователя); для вопросно-ответных систем; для распознавания именованных сущностей и так далее. Современные диалоговые системы используют BERT, предобученные контекстные эмбеддинги (ELMo или BERT) для того, чтобы понять, что хочет пользователь. Но модуль управления диалогом по-прежнему часто проектируется на основе правил, потому что конкретный диалог может быть очень зависим от предмета или даже от задачи.
Источник