За последние несколько лет интерфейсы естественных языков подверглись значительным изменениям в связи с развитием технологий. Большое распространение, в частности, получили голосовые помощники, особенно в тех случаях, когда проще сказать, чем написать или использовать какой-то сложный пользовательский интерфейс.
Это особенно актуально для IoT, где устройства зачастую не имеют сенсорных экранов, и речь является естественным средством коммуникации. Поскольку язык для людей является привычным средством общения (в отличие от новых приложений и устройств, пользоваться которыми надо учиться), мы надеемся, что наша технология найдет более широкое распространение среди всех возрастных групп.
Создание умного помощника с искусственным интеллектом (ИИ) – все еще сложная задача. Ряд компаний решают эту проблему с помощью разработок, распознающих естественный язык, дополняя которыми свои продукцию разработчики наделяют ее способностью распознавать естественный язык.
В этой статье мы представляем результаты сравнительного тестирования, проведенного как среди крупных поставщиков, так и стартапов: Amazon’s Alexa, Google’s Api.ai, Microsoft’s Luis, Apple’s SiriKit, IBM’s Watson, Facebook’s Wit, и Snips (мы работаем в Snips).
Способность работать offline может стать настоящим прорывом для использования, например, в автомобилях с сетевыми возможностями, где подсоединение к Интернету не может быть гарантировано. Конфиденциальность тоже имеет немаловажное значение для потребителей, особенно в таких сферах, как здравоохранение и банковское дело, когда отправка данных в облако не всегда приемлемо. Некоторые системы имеют встроенные модели для конкретных областей применения, в то время как другие позволяют пользователям сделать это самим.
Ниже представлена таблица сравнения существующих решений по каждому из аспектов:
Решение на устройстве | Внутренний серверный хостинг | Сторонний серверный хостинг | Конфиденциальный режим на стороннем сервере? | |
---|---|---|---|---|
Alexa | Нет | Нет | Да | Нет |
Api | Нет | Нет | Да | Нет |
Luis | Нет | Нет | Да | Нет |
Siri | Нет | Нет | Да | Нет |
Snips | Да | Да | Нет | Нет данных |
Watson | Нет | Нет | Да | Нет |
Чтобы гарантировать конфиденциальность по дизайну, наше решение, созданное на Snips, может функционировать на устройстве в автономном режиме без сервера. Snips не предлагает хостинговые сервисы и поэтому не видит данные пользователя. В таком случае модели обучаются без пользовательских данных, что приводит к естественному вопросу относительно компромисса между конфиденциальностью и работой ИИ.
Наш сопоставительный анализ основан на наборе из 328 запросов, созданном бизнес-командой Snips и хранимом в секрете от специалистов по обработке и анализу данных на протяжении всего процесса разработки решения. Набор данных, а также исходные показатели работы и результаты тестирования выложены в открытом доступе на github.
Встроенные интенции сравниваются с аналогичными доменами всех поставщиков. Поставщики, не предлагающие встроенных интенций, не были включены в данный анализ. Показатели работы этих сервисов зависят от усилий, предпринимаемых разработчиками при обучении их пользовательским интенциям, что делает сравнение методологически более сложным. В итоге мы протестировали следующие сервисы: Snips (10 интенций), Google Api.ai (6 интенций), Amazon Alexa (2 интенции), Microsoft Luis (3 интенции) и Apple Siri (1 интенция).
Понимание запросов, сделанных на естественном языке
Все коммерчески доступные сервисы понимания естественного языка (NLU) в настоящее время работают аналогичным образом:
- Запрос на естественном языке отправляется на сервис (например: “где ближайшее суши”)
- Интенция определена (например: “поиск места”)
- Выделены конкретные параметры (например: тип=суши, место=42.78,2.38)
- Структурированное описание пользовательского запроса отправляется назад.
Каждый из этих шагов вызывает неопределенность и требует обучения различным моделям.
Шаг 1: Определение пользовательских интенций (намерений)
Поскольку каждый провайдер имеет свой собственный способ описания интенций (именуемый онтология), мы сначала должны были построить базовый уровень, создав совместную онтологию для всех сервисов. Были определены различные домены, и аналогичные интенции были сгруппированы вместе для оценки качества их эффективности.
Количественные данные, которые мы предоставляем, - это доля правильно классифицированных запросов для каждой интенции с ее 95% доверительного интервала. Последнее позволяет сделать более надежные выводы при учете того, что размер набора данных тестирования ограничен.
Эти результаты показывают, что классификация интенций остается сложной проблемой, с которой конкурирующие решения справляются различным образом. Louis значительно превосходит конкурирующие решения. Api.ai, и Snips, как правило, дают неразличимые результаты, помимо поиска мест и запроса о проезде (request ride), по которым показатели для Api.ai значительно ниже, чем для конкурентов. Alexa, Siri и Snips систематически показывают наилучшие результаты среди решений по интенциям, по которым были протестированы.
Шаг 2: Идентификация параметров запроса
Сводные показатели
Второй шаг процесса понимания естественного языка состоит в выделении параметров, относящихся к опознанной интенции, что именуется процессом «заполнения слота» (“slot filling”).
Так при заказе такси это будут следующие параметры: место посадки, место высадки и количество пассажиров. Но опять каждый сервис определяет собственную систему интенций, и каждая интенция идет со своим конкретным набором параметров (слотов).
На приведенном ниже графике точки представляют собой совокупную точность и количество повторных обращений всех слотов для данной интенции. Повторное обращение (Recall) представляет долю извлеченных релевантных слотов (precision) учитывает долю извлеченных слотов, которые являются релевантными.
Фильтр по домену:
ВСЕ ДОМЕНЫ
МЕСТА
ЗАКАЗ
ТРАНЗИТ
ПОГОДА
Наведите курсор на любой из кружков интенции
SNIPS API SIRI LUIS ALEXA 0%25%50%75%100%
Повторное обращение, (Recall)
100%75%50%25%0%
Precision (точность)
catches most slots (захватывает большинство слотов)
misses most slots (пропускает большинство слотов)
predictions mostly right (прогноз в основном правильный)
predictions mostly wrong (прогноз в основном ошибочный)
Эти результаты показывают, что все решения ведут себя аналогичным образом в плане точности. Для всех решений средняя точность на интенцию колеблется между 50% и 90%. Последнее свидетельствует о том, что все решения могут быть улучшены и в то же время подвержены риску неправильной интерпретации пользовательского запроса.
В плане повторных обращений (recall) имеются существенные различия между разными решениями. Luis снова значительно отстает от других решений: повторное обращение на интенцию в среднем ниже 14%. Данные для api.ai значительно разнятся и колеблются между 0% (поиск такси) и 80% (запрос погоды). Наиболее высокий уровень повторных обращений у Alexa (42% and 82%), Siri (61%), и Snips (между 57% и 97%).
Фильтр запросов по доменам и интенциям
Домен:
ВСЕ ДОМЕНЫ
МЕСТА
РЕЗЕРВИРОВАНИЯ
ТРАНЗИТ
ПОГОДА
Интенция :
Все интенции
Сообщить о текущем местонахождении
Сравнить места
Сообщить подробности о месте
Найти место
Заказать ресторан
Запросить поездку ???Request Ride
Как доехать
Сообщить о времени прибытия
Получить данные о движении транспорта
Узнать погоду
Просмотр запросов
Сообщить о моем настоящем местонахождении друзьям, с которыми встречаюсьПредыдущее Следующее
Визуализация прогноза
SNIPSПРЕДСКАЗАННАЯ ИНТЕНЦИЯ:
Запрос: Сообщить о моем местонахождении
СЛОТ ВАЖНОСТЬ
Контакт Друзья
Ограничения и ключевые положения
Трудная задача
Сравнительный анализ показывает, что на сегодняшний день нет идеального решения. Точнее, нет решения, которое не искажало бы пользовательские запросы, и нет решения, которое понимало бы каждый запрос.
В отличие от других областей искусственного интеллекта машины еще не достигли уровня поведения человека в вопросах понимания естественного языка. Наш анализ показывает, сколь важны подобные тесты, и что между доступными для разработчиков решениями имеются существенные различия.
Как говорится, нельзя оптимизировать то, что невозможно измерить. По крайней мере, теперь мы знаем, что некоторым решениям не хватает надежности, когда дело доходит до разнообразия вариантов запросов, в то время как все они только выиграют при улучшении заполнения слотов.
Приятным сюрпризом (для нас!) стало то, что наша разработка, Snips, выглядит очень достойно по сравнению с другими и дает сопоставимые результаты с Alexa или Siri автономном запуске на устройстве, т.е. без доступа к огромной базе данных для обучения, имеющегося у других. К счастью, становится понятным, что ИИ способен работать в условиях конфиденциальности и что это должно стать нормой.
Все еще многое нужно сделать
Данные, используемые для этого анализа, открыты для широкого доступа на Github, созданного для охвата большого разнообразия случаев, формулировок и уровней сложности, чтобы сделать количественные показатели как можно более репрезентативными. Тем не менее, выбор проводится вручную и произвольно, поэтому мы делаем исходные данные общедоступными. Кроме того, обработка результатов не всегда может быть автоматизирована, что значительно увеличивает объем работы. Это также объясняет, почему наш набор тестируемых данных имеет ограниченный размер: каждый раз, когда это имело смысл, мы добавляли соответствующие 95% доверительные интервалы
Любой вклад в расширение набора запросов для сопоставительного анализа, безусловно, приветствуется и будет способствовать обеспечению большей прозрачности в области понимания естественного языка.
Не стесняйтесь обращаться к нам, если у вас есть какие-либо вопросы / комментарии.
Комментарии
(0) Добавить комментарий