Главная страница

Лекция 1.6. 1 Прикладные задачи 2


Скачать 67.48 Kb.
Название1 Прикладные задачи 2
Дата17.03.2023
Размер67.48 Kb.
Формат файлаpdf
Имя файлаЛекция 1.6.pdf
ТипЗадача
#996400

1 1.6. Прикладные задачи 2.
Автоматизация деловых процессов при помощи разговорного интерфейса и чат-ботов
Приступим к изучению второй прикладной задачи, которая необходима для наших практических целей: разговорные интерфейсы и чат-боты.
Обработка естественного языка — это набор методов, которые позволяют искусственной интеллектуальной системе «понимать» речь человека. Это очень сложная задача, которая в полной мере не решена до сих пор. Необходимость ее решения провозгласил английский ученый
Алан Тьюринг, который, как вы должны помнить, предложил процедуру для определения того, обладает ли компьютерная система интеллектом.
Что происходит, когда мы слышим или читаем какую-либо фразу? Для простоты разбора ситуации давайте предположим, что эта фраза — прямая просьба с глаголом в повелительном наклонении.
Например: «Подай стакан воды». Что здесь происходит? Мы воспринимаем услышанное или написанное, потом понимаем смысл этой просьбы, а потом исполняем ее или отказываемся исполнять, говоря об этом, или даже просто игнорируя попросившего полностью.
Этот процесс можно разбить на три стадии:
• восприятие,
• понимание,
• реагирование.
Та же самая схема работает и для искусственной интеллектуальной системы, которая должна воспринимать команды или вообще разговор на естественном языке.
Я уверен, что все вы знаете и даже уже так или иначе сталкивались с чат-ботами. Чат-бот — это программа, которая общается с пользователем в мессенджере на естественном или формальном языке. Чат-бот предназначен или для решения какой-то специальной узкой задачи, или же может представлять собой «виртуального собеседника» общего плана. Именно на последних обычно и проводится тест Тьюринга, о котором мы размышляли некоторое время назад. А в качестве примеров я могу привести такие разработки, как ELIZA, SHRDLU, PARRY, Jabberwocky, A.L.I.C.E.,
SiRi,
Alexa и Cortana. Такие чат-боты как CleverBot и Женя Густман даже выигрывали премию
Лебнера на прохождение теста Тьюринга.
Поговорим о двух задачах чат-ботов:
• Чат-бот реализует естественно-языковой интерфейс к некоторой информационной системе. Первая задача: выполнять какую-либо узкую функцию, например, исполнение поисковых запросов и выдача результатов. Другой вариант узкой задачи: поддержка беседы в чатах (и именно отсюда пришло название «чат-бот») на IRC или ещё где-либо в подобном месте. Либо на тех же чат-площадках выполнение каких-либо рутинных задач, типа поиска сигнатуры функции в чатах для программистов.
• Вторая задача заключается в возможности понимания естественного языка, выполнение на основе этого запросов пользователя и поддержания общей беседы. Наиболее

2 известным классом чат-ботов, решающих эту задачу, являются виртуальные помощники, которые всё никак не вытеснят секретарей и ассистентов.
Каким образом чат-бот реализует свои функции? Чат-бот — это естественно-языковой интерфейс к какой-либо информационной системе. То есть сам по себе чат-бот — это не универсальный отчуждаемый программный модуль, но всего лишь часть некоторой большей системы, которая используется для взаимодействия с пользователем на естественном языке. Такое взаимодействие может происходить в нескольких каналах передачи информации — при помощи распознавания речи и при помощи анализа вводимых пользователем фраз и команд с клавиатуры. Впрочем, первый способ тоже в конечном итоге приводит к анализу записанного текста, поскольку на первом этапе принятые микрофоном звуковые волны преобразуются в текст.
После того как чат-бот получает от пользователя запрос на естественном языке, он выполняет три последовательных действия:
• Первое — входная фраза анализируется и преобразуется в так называемый внутренний язык представления смысла.
На этом языке формально записывается последовательность действий, которые система должна выполнить для получения результата, который требуется пользователю.
• Второе — выполнение последовательности шагов.
• Третье — преобразование полученного результата в его описание на естественном языке для вывода пользователю.
Среди перечисленных действий анализ фразы на естественном языке и перевод запроса на внутренний язык представляет собой самую сложную задачу, которая окончательно не решена до сих пор. Естественный язык — очень сложная штука, и анализ всех нюансов, умолчаний, неполноты, двусмысленности и неопределённости представляет собой задачу космической сложности. Собственно, чего ждать от программы, если иногда естественный интеллект человека с ней не справляется? Попробуйте проанализировать фразу «Он попрекал их семью грехами». Для анализа и перевода было придумано много методов, которые имеет смысл перечислить и кратко охарактеризовать. Мы не будем углубляться в детали каждого метода, поскольку изучение самой технологии обработки естественного языка требует нескольких курсов.
Самым простым и самым неточным является статистический метод, основанный на применение формулы Байеса к последовательностям символов. Символом здесь называется не привычная нам «буква», а любой объект, который можно рассматривать по отдельности и в контексте. То есть это может быть звук, буква, буквосочетание, слог, слово, фраза и даже текст. Чем примитивнее символ, тем проще для него собрать статистику, но тем бессмысленнее получаются результаты.
Использовать этот метод можно, и наиболее известным способом его использования являются цепи Маркова.
Следующий метод, который теоретически является самым точным, но его сложность очень высока — это формальный метод, то есть он основывается на формальных грамматиках, и можно сказать, что это апофеоз нисходящей парадигмы. В рамках этого метода язык описывается при помощи формальной грамматики, которая и лежит в основе анализа. Формальная грамматика представляет собой набор правил для анализа и порождения строк, допустимых в языке. Простые языки состоят из нескольких правил, а для сложных естественных языков полных формальных грамматик не составлено. К тому же, для естественных языков есть нюанс — наличие контекста. И хотя существуют контекстно-зависимые грамматики, их применение на практике оказывается очень затруднительным. Тем не менее, этот подход развивается, и долгое время, к примеру,

3 автоматические переводчики с одного языка на другой использовали именно такой подход, хотя в них также применялись и элементы статистического подхода.
Еще один метод, который появился совсем недавно, заключается в использовании нейронных сетей. Поначалу это было удивительно, но нейронные сети специальной архитектуры умеют справляться со многими неприятными особенностями естественного языка. Что происходит внутри них при обучении, не очень понятно, как обычно с нейронными сетями, но снаружи естественно- языковые единицы представляются векторами в некотором языковом пространстве. И к лингвистическим единицам можно применять векторную математику. Особенность нейросетевого подхода заключается в том, что если анализирующую нейросеть специальным образом как бы перевернуть, то получится синтезирующая нейросеть, и если их соединить друг с другом, то фактически получается некая система, которая может дать адекватный ответ на запрос, которого не было в обучающей выборке. Проблемой является то, что чем больше корпус текстов, которые необходимо обрабатывать, тем больше нужно обучать нейросеть на разнообразных примерах. Тем не менее, подход продолжает активно развиваться, и по сообщениям той же компании Google их переводчик теперь работает на нейросетях после того, как обучился на огромном массиве документов ООН, которые изначально переводятся на множество языков.
Четвертая технология — это что-то среднее между формальными грамматиками и нейронными сетями. Называется он — семантическая свертка. Суть этой технологии в том, что вся информация из входных текстов специальным образом преобразуется в очень длинные битовые векторы с малым количеством единиц в них. Каждая единица кодирует определенный семантический аспект слова или фразы. Далее на основе этих векторов формируется семантическая карта входного текста и по семантической карте уже можно выбрать вариант реакции системы. Эта технология хороша тем, что по сравнению со статистическим подходом и нейронными сетями требует намного меньше вычислительных ресурсов.
Одна из главных проблем для чат-ботов сегодня — это понимание контекста и удержание памяти.
Впрочем, и для того, и для другого есть вполне определённые инженерные подходы. Например, контекст можно удерживать в памяти, а память может быть основана на хранении постоянно актуализируемого словаря пар вида (идентификатор, значение). Когда чат-бот сталкивается с необходимостью взять что-то из памяти или использовать контекст, он осуществляет поиск в этом словаре. Например, там могут храниться данные пользователя — его имя, дата рождения, активность в социальных сетях и так далее.
Кратко рассмотрим несколько примеров чат-ботов. Всем известны языковые помощники, которые сегодня предоставляются многими. Например, компания Яндекс представила помощника Алису.
Все такие помощники позиционируются как чат-боты общего плана и выполняют, в основном, поисковые функции. Можно найти билеты в кино. Можно забронировать гостиницу. Они постоянно обучаются, но все равно остаются немного туповатыми. При общении с ними нужно набирать текст, как будто бы вы общаетесь с человеком в чате, либо можно говорить голосом, и текст будет распознаваться автоматически. Попробуйте поиграться с каким-нибудь из них. Проверьте то, как они обрабатывают контекст, для чего задайте какой-нибудь вопрос, а в следующей фразе сошлитесь на что-либо в этом вопросе при помощи местоимения. Результаты обычно самые плачевные.


написать администратору сайта