Книга: Вычислительное мышление: Метод решения сложных задач
Назад: Как создать «разум» для робота
Дальше: Понимает ли вас виртуальный собеседник?

Создаем своего виртуального собеседника

Поговорим о чат-ботах
Способность говорить — один из фундаментальных признаков человека, поэтому, чтобы понять, как применить вычислительное мышление к ИИ, можно начать с посещения психотерапевта. Но в нашем случае в роли психотерапевта выступит компьютерная программа под названием «Элиза», которую в середине 1960-х гг. написал Джозеф Вейценбаум в Массачусетском технологическом институте. Это был первый виртуальный собеседник, созданный, чтобы вести обычную беседу с человеком. Люди разговаривали с «Элизой», полагая, что общаются с настоящим психотерапевтом. Вейценбаум назвал ее в честь Элизы Дулитл — цветочницы-кокни из пьесы «Пигмалион», которую учат разговаривать как люди из высшего общества, это была своего рода шутка для посвященных. Программа одной из первых прошла тест Тьюринга — одно из самых известных и авторитетных испытаний для ИИ — на умение вести беседу.
Человек ли я?
Тест Тьюринга основан на следующем положении: если мы не видим разницы между навыками ИИ и человека, в данном случае это навык поддерживать разговор, — это значит, что ИИ прошел тест и должен считаться таким же разумным, как человек. Разработал этот тест математик, криптограф и информатик Алан Тьюринг, который, предположительно, позаимствовал идею из викторианской салонной игры. По правилам этой игры из комнаты выходят мужчина и женщина, а остальные придумывают для них вопросы. Вопросы записывают на карточках и передают их вышедшей паре. Те пишут ответы и передают их обратно. Играющие зачитывают ответы вслух и пытаются догадаться, кто автор. Сложность в том, что мужчине разрешается лгать, а женщина обязана говорить правду (викторианцы, предположительно, считали, что женщинам не пристало врать, мужчинам же…). Если мужчине удастся убедить играющих, что он женщина, то он побеждает. В противном случае выигрывает женщина.
Тьюринг осознал, что надо сделать нечто похожее с компьютером. Он предложил поместить в одну комнату не мужчину и женщину, а машину и человека и дать им похожее задание — выяснить, кто из них машина, просто задавая вопросы. Как и мужчине в салонной игре, компьютеру разрешается как угодно вас обманывать. Тьюринг утверждал, что если после долгого разговора невозможно заметить разницу, то надо признать, что машина обладает таким же интеллектом, как и человек.
Вейценбаум решил, что беседа с «Элизой» должна имитировать диалог с психотерапевтом, потому что в такой ситуации допускается нечеткость формулировок и смена тем и таким образом повышается вероятность обмана.
Моделируем разговор
В сущности, «Элиза» была простой вычислительной моделью работы психотерапевта и в более общем смысле — диалогов между людьми. Сначала, чтобы узнать конкретные слова и фразы во введенном тексте, ей надо было проводить сопоставление с образцом. Потом она использовала эти подсказки, чтобы выбрать из списка шаблонных исходящих фраз или правил действия, имеющие смысл в этом контексте. Например, если вы упоминали во входящей фразе мать, «Элиза» опознавала это слово и могла выдать фразу «Расскажите больше о вашем раннем детстве».
Таким образом, перед создателем робота стоит задача создать библиотеку условных конструкций «ЕСЛИ x, ТО , заменяя x и y подходящими естественными фразами, имеющими отношение к ситуации. В целом за этими правилами стоит та же идея, которую мы выдвинули для решения логических головоломок, однако в данном случае решается задача убедительно провести беседу с человеком. Если получится ее решить, то возникнет иллюзия понимания. «Элиза» показала, что этого на удивление легко добиться с помощью простой программы, особенно в том, что касается коротких разговоров. Основные элементы «Элизы» до сих пор присутствуют во многих виртуальных собеседниках.
Тем не менее можно ли считать компьютер, прошедший тест Тьюринга, таким же разумным, как человек, — вопрос спорный. Вернемся к салонной игре. Даже если мужчина убедил всех, что он женщина, это не значит, что он действительно женщина — просто он хорошо притворяется. Подобным образом, если компьютер проходит тест Тьюринга, значит, он хорошо изображает разумность. Однако, создавая модели, которые становятся все более убедительными, мы можем проверить и лучше понять структуру человеческого общения, а также лучше узнать, что мы подразумеваем под разумностью.
Создаем виртуального собеседника
Вы можете сделать собственного виртуального собеседника — и даже без компьютера. Понадобятся только чистые карточки, ручка, ну и надо подумать немного. Во-первых, решите, на какую тему пойдет беседа. Это может быть все что угодно, но в первый раз лучше сосредоточиться на хорошо известных вам вопросах — например, на любимом виде спорта или телесериале, потому что вам легко представить осмысленный разговор на эту тему. Послушайте настоящие диалоги о выбранном вопросе и отметьте, что говорят люди. Затем вам понадобится подключить алгоритмическое мышление. Нужно будет придумать набор ключевых слов, которые робот должен узнать в разговоре, а также отклики на них. Потребуется алгоритм беседы. Например, ваш чат-бот без ума от футбола и его собеседник упоминает «штрафной» (ключевое слово). На это робот отвечает: «О! Бэкхем отлично бил штрафные. Вы не пробовали навесить как Бэкхем?» Возможно, вам придут в голову идеи получше, и сложится более естественный диалог. Задавать вопросы, как «Элиза», — хорошая мысль, потому что в этом случае собеседник делает основную работу. Чтобы разговор был реалистичным, нужно найти много ключевых слов и соответствующих реакций. Вероятно, вам будет легче, если разговор пойдет на узкую тему — по крайней мере поначалу. Например, об одной футбольной команде, а не о футболе вообще. Еще потребуются нейтральные фразы, которые вы будете использовать, если не удается провести сопоставление с образцом, — помните, что алгоритмическое мышление подразумевает составление инструкций для всех возможных вариантов! Однако такие реакции не должны повторяться, поэтому нужен целый набор нейтральных фраз.
На карточках из первой группы напишите ключевые слова, которые виртуальный собеседник будет искать в разговоре. Это наш вводимый текст. Пронумеруйте карточки. Теперь расположите их в алфавитном порядке и соедините скрепкой. Например, первые карточки на футбольную тему могут быть такими, как на рис. 42, хотя вам, конечно, понадобится значительно больше ключевых слов.

 

 

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

 

 

Если разложить карточки в таком порядке, чат-боту будет легче работать. Как только поступит вводимый текст, вы просмотрите ключевые слова, разложенные по алфавиту, сразу найдете соответствующее число и возьмете нужную карточку с выводимым текстом. Так вы создали легкое в использовании представление для правил вашего чат-бота.
Эти правила необходимо оценить. Когда закончите, дайте карточки другу, и пусть он сыграет роль компьютера, на котором запущена программа-бот. Поговорите с ним. Друг должен следовать указаниям на картах и вести обычную беседу. Убедителен ли ваш чат-бот? Смог бы он одурачить вас? Попросите еще одного друга поговорить с ним и ответить на эти вопросы. А теперь попробуйте провести беседу в текстовой форме и не признавайтесь, что участник эксперимента беседует с роботом!
Попросите друзей оценить вашего чат-бота — например, по шкале от 0 до 5. Каковы его слабые и сильные стороны? Что нужно улучшить? Что выдало робота? Отзывы помогут понять, какие карточки с ответами нужно заменить и что добавить.
Ответ на такие вопросы — это еще один пример оценки пользователем. Как мы уже говорили, программисты всегда оценивают, насколько успешно их программы справляются с поставленной целью. Оценка — важная часть вычислительного мышления. Возьмите идеи, полученные в ходе оценки пользователей, и усовершенствуйте устройство чат-бота и ваши фразы. Повысятся ли оценки при повторном тестировании? Если нет, то почему? Если вы умеете программировать, то, получив некоторый опыт в составлении убедительных диалогов с чат-ботом, напишите соответствующую программу.
Сегодня создатели виртуальных собеседников не склонны имитировать психотерапевтов. Их роботы пытаются, например, изображать молодых иностранцев, которые объясняют, почему в программе произошел сбой, или собирают как можно больше настоящих реплик, чтобы брать из них образцы для сопоставления. Часто виртуальных собеседников создают не программисты, а люди, у которых хорошо получается создавать убедительные персонажи. Они используют специальные обобщенные программы для создания чат-ботов, которые наполняют разговорными элементами. Если у вас хорошо получается создавать такие персонажи, попробуйте заняться этим профессионально и населять ими виртуальные миры.
Следует ли опасаться ботов?
Чат-боты появились как эксперимент в программировании и психологии. Сейчас это — приложения, которые находят самое разное практическое применение. Например, персонажи, с которыми можно встречаться в виртуальных мирах, игрушки, которые хотят быть вашими друзьями, замена человеку в контакт-центрах и даже личные ассистенты, такие как дворецкий Джарвис у супергероя Железного человека.
Однако у чат-ботов есть и темная сторона. Порой они имитируют людей по гораздо менее достойным причинам. Рост социальных медиа привел к тому, что присутствие чат-ботов ощущается по всему миру. Эксперименты показали, что в соцсетях роботов часто признают за людей и они собирают тысячи подписчиков. Бывали даже случаи, когда политические активисты использовали чат-ботов, чтобы повлиять на политические взгляды людей с внешним эффектом естественного изменения общественного мнения. Это явление получило название «астротерфинг». Но если с помощью роботов удается изменить политические убеждения, значит, можно повлиять и на результаты выборов. Такие явления подрывают демократию. И это лишь одна из многих юридических и этических проблем, связанных с законным использованием ИИ и роботов, которые до сих пор не исследованы. Особенно важны процессы, развивающиеся в интернете. Мы склонны думать, что интернет населен людьми, но опрос 2014 г. показал, что около 60% трафика в нем создают роботы.
Интересно, что бы сказала об этом «Элиза»?
Назад: Как создать «разум» для робота
Дальше: Понимает ли вас виртуальный собеседник?