Охота на электроовец. Большая книга искусственного интеллекта
Шрифт:
Таким образом, в тесте Тьюринга проверяется не способность интеллектуального агента давать разумные ответы на бытовые вопросы, а его способность решать интеллектуальные задачи: «Какая последняя буква в слове „вечность“?», «Напиши имя лучшего друга крокодила Гены задом наперёд», «Отсортируй вот эти числа по убыванию: 1 1 2 3 5 8 13 21», «Назови синоним слова „воздушный“», «Сочини стишок с рифмой „розы — морозы“», «Реши анаграмму: аалтерк», «Скажи, на какой предмет это похоже: -O-O-» и так далее. На все эти и подобные им вопросы должен уметь отвечать универсальный ИИ, ведь ответы на них сможет дать практически любой человек, заинтересованный в том, чтобы помочь судье понять, кто из участников является человеком, а кто нет.
Надо заметить, что в обычном разговоре мы редко задаём другим (тем более незнакомым) людям подобные вопросы: мешают правила приличия, боязнь ненароком обидеть собеседника либо показаться дураком в его глазах. Эту уязвимость людей в обычном общении могут использовать мошенники, в том числе «высокотехнологичные», применяющие чат-боты в качестве инструментов
6.3.4.3 Прогресс диалоговых систем и применяемые подходы
Впрочем, безотносительно теста Тьюринга прогресс в области диалоговых систем в последнее десятилетие весьма впечатляет. Eugene Goostman, как и другие боты из числа победителей и призёров соревнований (Tutor, Mitsuku, Rose, Uberbot, Arckon, Colombina и т. д.), являются удивительными образцами искусства программирования, демонстрирующими как достижения современных технологий, так и незаурядные таланты их создателей. Лучшие системы на сегодняшний день способны в ходе пятиминутного диалога уверенно обвести вокруг пальца как минимум треть неподготовленных судей, что, вне всяких сомнений, является выдающимся результатом.
Разработкой разговорных агентов в нашей стране сегодня занято множество профессиональных коллективов. Благодаря их усилиям на свет появилось большое количество продвинутых платформ и библиотек для разработки систем для автоматизированных коммуникаций. Это и «Алиса» от Яндекса, и DeepPavlov — открытая библиотека для создания диалоговых систем, разработанная лабораторией нейронных систем и глубокого обучения МФТИ, и NLP-платформа Сбербанка, включающая сегодня робота-оператора от дочерней компании банка ООО «АБК», и диалоговые платформы от «Центра речевых технологий», mail.ru, Тинькофф Банка, Dasha.AI и других команд опытных исследователей и разработчиков.
В последние годы мы наблюдаем настоящий бум в области диалоговых систем. Роботы осуществляют всё большее количество голосовых коммуникаций с клиентами компаний, а технологические гиганты уверены в том, что голосовые помощники могут стать новым способом «переизобрести» интернет (предыдущими были поисковые системы и социальные сети, радикально изменившие широко распространённые практики использования ресурсов сети). Чат-бот может быть источником полезной информации, помощником в выполнении какой-нибудь задачи и даже собутыльником. Можно долго рассуждать о причинах нынешнего бума, я назову лишь наиболее, на мой взгляд, важные. Прогресс в области распознавания и синтеза речи позволил диалоговым системам освоить голосовой канал коммуникаций, и в то же время, благодаря развитию мессенджеров и социальных сетей значительно выросла популярность текстового канала. Люди стали активно использовать мобильные устройства коммуникации, что вкупе с ростом доступности доступа в интернет привело к тому, что сегодня они проводят онлайн гораздо больше времени, чем раньше. Всё это привело к росту числа онлайн-сервисов, начиная от площадок для онлайн-торговли, сервисов бронирования авиабилетов и гостиниц и заканчивая платформами госуслуг и дистанционной медицины. Развитие этих сервисов повысило спрос на соответствующие технологии автоматизации, в том числе автоматизации диалоговых взаимодействий. Не последнюю роль здесь сыграл и прогресс в области обработки естественного языка, позволивший разрабатывать системы, создание которых в прошлом было или просто невозможно, или связано с неприемлемыми издержками. При этом некоторые методы, применяемые в наши дни создателями диалоговых систем, были изобретены ещё во времена Элизы и Перри. Поэтому типичный чат-бот в наши дни чем-то напоминает монстра Франкенштейна — причудливый конгломерат коннекционистских и традиционных (GOFAI) методов, примотанных друг к другу программными аналогами синей изоленты. Он способен худо-бедно решать стоящие перед ним задачи, но не отличается особым изяществом архитектуры и грациозностью действий. Давайте разберём некоторые подходы и методы, которые применяются при создании диалоговых систем, и попробуем разобраться, какие принципиальные инновации появились в этой области в последние годы. В зависимости от способа получения реплик все диалоговые модели теоретически подразделяются на генеративные [generative] и основанные на поиске [retrieval-based].
Основанные на поиске модели используют набор предопределённых ответов и некоторую функцию (функцию поиска, retrieval function) для выбора подходящего ответа, основывающуюся на входной реплике и текущем контексте. Эта функция может быть как простой (например, подбирать ответ на вопрос при помощи набора правил), так и достаточно сложной (например, представлять собой ансамбль моделей-классификаторов на основе машинного обучения). В общем, модели на основе поиска не генерируют новый текст, они просто выбирают ответ из фиксированного набора.
Генеративные модели, как можно догадаться
В реальных системах строгое разделение на генеративные и основанные на поиске модели соблюдается редко. Например, модель может выбирать реплики из предопределённого набора, а затем модифицировать их, например заменяя некоторые слова (или подставляя слова в реплику-шаблон) или соединяя несколько реплик между собой (как выше в ответе «Жени Густмана»: «Что-то между 2 и 4. Может быть, три? :-))) Кстати, я до сих пор не знаю вашу специальность — или, может быть, я её пропустил?»). Иногда модель, основанную на поиске, используют в качестве своеобразного «цензора»: набор заготовленных правил позволяет предсказуемым образом отвечать на провокационные вопросы («Любишь ли ты Гитлера?» и т. д.), в то время как на неизвестные реплики реагирует генеративная модель, способная давать на «неопасные» вопросы более интересные и разнообразные ответы.
В зависимости от того, ограниченна тематика общения или нет, диалоговые модели подразделяются соответственно на модели с закрытой предметной областью [closed domain] или с открытой предметной областью [open domain]. В принципе, опыт Элизы, Перри или SHRDLU показал, что системы, основанные на поиске и использующие функции поиска на основе правил, способны вполне успешно вести разговоры в случаях, когда тематика общения ограниченна. Этот успех основан главным образом на усилиях редакторов, он зависит от их способности подготовить и отладить большую базу реплик и правил.
Вклад технологий глубокого обучения в развитие моделей, основанных на поиске, заключался в том, что функции поиска, основанные на векторных представлениях контекста, позволили снизить затраты на разработку механизмов, необходимых для поддержки вариативности запросов. Предположим, наша модель должна уметь отвечать на вопрос «Как пройти в библиотеку?». На этот вопрос у нас есть заготовленная реплика-ответ. Однако пользователь может сформулировать вопрос самыми разными способами: «Как попасть в библиотеку?», «Как мне пройти в библиотеку?», «В библиотеку как мне пройти?», «Подскажите, пожалуйста, где библиотека?» и так далее. Если функция поиска основана на правилах, редакторам придётся придумывать множество вариантов написания вопроса. Конечно, использование компактных способов описания возможной вариативности (например, регулярных выражений и словарей синонимов) может облегчить эту задачу, но всё же для достижения приемлемого по качеству результата придётся потратить много усилий, и трудно дать гарантию, что даже тщательно продуманная система правил не спасует, столкнувшись с очередной оригинальной формулировкой вопроса. Что ещё хуже, ответ нередко может зависеть не только от последней реплики пользователя, но ещё и от предыдущих реплик (как диалоговой системы, так и пользователя):
— Какая сейчас погода в Питере?
— Два градуса тепла, дождь.
— А в Москве?
Этот диалог демонстрирует лингвистическое явление, называемое эллипсисом. Эллипсис — это пропуск в тексте или речи элемента, который может быть восстановлен на основании контекста. Для разрешения эллипсисов и упоминавшихся нами ранее анафор диалоговая система должна принимать в расчёт предшествующие реплики сторон. Нередко для правильного ответа нужны какие-то факты, сообщённые собеседником по ходу диалога. Для случаев, когда мы имеем дело с хорошо стандартизированным набором фактов (например, для заказа, оформлением которого занимается чат-бот, необходимо установить список товаров, адрес и время доставки), в арсенале GOFAI существует немало остроумных методов. Например, метод «заполнения параметров» (slot filling, дословно звучит более наглядно — «заполнение пазов»; часто также используются названия «разметка семантических ролей» [semantic role labeling] и «поверхностный семантический разбор» [shallow semantic parsing]), разработанный уже упоминавшимися нами Роджером Шанком и Марвином Минским [2252] . Позже он получил развитие в работах известного компьютерного лингвиста Дэна Журафски, создавшего совместно со своим коллегой Дэниэлом Гилдеа первую систему для автоматической разметки семантических ролей [2253] , [2254] . Суть метода заполнения параметров заключается в том, что факты, сообщаемые собеседником в процессе общения, как бы заполняют существующие пропуски в структуре повествования, которая затем используется для выбора ответных реплик и совершения системой определённых действий.
2252
Nair R. B. (2004). Narrative Gravity: Conversation, Cognition, Culture. Routledge // https://books.google.ru/books?id=Vud_AgAAQBAJ
2253
Jurafsky D., Martin J. H. (2009). Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition // https://books.google.ru/books?id=fZmj5UNK8AQC
2254
Daniel G., Daniel J. (2000). Automatic labeling of semantic roles / Proceedings of the 38th Annual Meeting on Association for Computational Linguistics — ACL '00. Hong Kong: Association for Computational Linguistics, pp. 512—520 // https://doi.org/10.3115/1075218.1075283