Разработка интеллектуального голосового ассистента и исследование обучающей способности алгоритмов распознавания естественного языка::Журнал СА 12.2017
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Наука и технологии
Подписка
Где купить
Авторам
Рекламодателям
Архив номеров
Контакты
   

  Опросы
  Статьи

Электронный документооборот  

5 способов повысить безопасность электронной подписи

Область применения технологий электронной подписи с каждым годом расширяется. Все больше задач

 Читать далее...

Рынок труда  

Системные администраторы по-прежнему востребованы и незаменимы

Системные администраторы, практически, есть везде. Порой их не видно и не слышно,

 Читать далее...

Учебные центры  

Карьерные мечты нужно воплощать! А мы поможем

Школа Bell Integrator открывает свои двери для всех, кто хочет освоить перспективную

 Читать далее...

Гость номера  

Дмитрий Галов: «Нельзя сказать, что люди становятся доверчивее, скорее эволюционирует ландшафт киберугроз»

Использование мобильных устройств растет. А вместе с ними быстро растет количество мобильных

 Читать далее...

Прошу слова  

Твердая рука в бархатной перчатке: принципы soft skills

Лауреат Нобелевской премии, специалист по рынку труда, профессор Лондонской школы экономики Кристофер

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 9956
Комментарии: 0
Потоковая обработка данных

 Читать далее...

19.03.2018г.
Просмотров: 8164
Комментарии: 0
Релевантный поиск с использованием Elasticsearch и Solr

 Читать далее...

19.03.2018г.
Просмотров: 8264
Комментарии: 0
Конкурентное программирование на SCALA

 Читать далее...

19.03.2018г.
Просмотров: 5233
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 5920
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

Друзья сайта  

 Разработка интеллектуального голосового ассистента и исследование обучающей способности алгоритмов распознавания естественного языка

Архив номеров / 2017 / Выпуск №12 (181) / Разработка интеллектуального голосового ассистента и исследование обучающей способности алгоритмов распознавания естественного языка

Рубрика: Наука и технологии

Без фото ПОЛЯКОВ Е.В., аспирант факультета МИЭМ НИУ ВШЭ, Москва, epolyakov@hse.ru

Без фото МАЖАНОВ М.C., бакалавр факультета МИЭМ НИУ ВШЭ, Москва, msmazhanov@edu.hse.ru

Без фото КАЧАЛОВА М.В., University of Mannheim, mkachalo@mail.uni-mannheim.de

Без фото ПОЛЯКОВ С.В., НИУ МАИ s.polyakov@mail.ru

Разработка интеллектуального голосового ассистента
и исследование обучающей способности алгоритмов распознавания естественного языка

Развитие когнитивных технологий способствуют эффективному внедрению искусственного интеллекта в повседневную жизнь человека. Появляются новые интерфейсы взаимодействия устройств с человеком. Понимание естественного языка – одно из самых перспективных направлений развития искусственного интеллекта. Голосовые ассистенты – яркий пример таких систем, они могут быть интегрированы во множество других интеллектуальных систем и повышать удобство взаимодействия человека и компьютера. В данной работе описываются основные недостатки голосовых ассистентов, принципы функционирования и возможные пути развития данной технологии. Описывается разработка автономного голосового ассистента

Введение

Понимание естественного языка пользователя – задача с почти полувековой историей. И сейчас, с появлением и повсеместным распространением интернета вещей [1-5] и машинного обучения, это направление вновь становится популярным. Теперь не пользователь учится общаться с компьютером, а, наоборот, компьютер самостоятельно изучает привычки человека, его шаблоны поведения, действия и становится настоящим персональным ассистентом.

Крупные ИТ-корпорации продвигают эту технологию вперед, создавая собственных голосовых ассистентов. К самым популярным относятся: Google Assistant от Google, Siri от Apple, Amazon Echo (Alexa) от Amazon, Cortana от Microsoft и, недавно вышедшая и популярная, «Алиса» от «Яндекса». Интеллектуальные помощники постоянно модернизируются, улучшаются алгоритмы распознавания и обработки речи, что позволило им уверенно занять мобильные платформы.

Технологии, используемые в системах интеллектуальных голосовых ассистентов

Каждый из перечисленных выше голосовых ассистентов обладает собственными уникальными чертами, отличающимся функционалом и «характером». Все это является результатом того, что каждая компания-разработчик использует свои специфичные подходы к разработке и разные алгоритмы. У различных систем может отличаться качество распознавания для разных языков – например, Яндекс позиционирует себя как лучшую систему распознавания русской речи, другие системы могут четко и без дополнительных объяснений выполнять определенные задачи. Но, к сожалению, универсального решения для выполнения абсолютно любой задачи на данном этапе развития этой технологии пока нет [6-8, 11].

Общий принцип построения голосовых ассистентов остается одинаковым, несмотря на все описанные факторы. На рис. 1 показаны технологии, которые применяются для создания интеллектуальных систем взаимодействия с человеком наего естественном языке.

Рисунок 1. Технологии построения интеллектуальных систем взаимодействия с человеком на его естественном языке

Рисунок 1. Технологии построения интеллектуальных систем взаимодействия с человеком на его естественном языке

К основным технологиям можно отнести следующие:

  • активация по голосу (Voice Activation),
  • автоматическое распознавание речи (Automatic Speech Recognition),
  • синтез речи (Text-To-Speech),
  • голосовая биометрия (Voice Biometrics), т.е. распознавание пола или возраста говорящего, например женщины, мужчины, детей и т.д., а также диалоговый менеджер (Dialog Manager),
  • понимание естественного языка (Natural Language Understanding),
  • распознавание именованных сущностей (Named Entity Recognition) [8-10, 12].

Принцип работы голосового ассистента на примере «Алисы» от компании «Яндекс»

Рассмотрим, как принципиально устроены голосовые ассистенты на примере «Алисы» от компании «Яндекс».

Так как «Алиса» является интеллектуальным помощником для смартфонов и персональных компьютеров, то она позволяет решать общие задачи пользователей, такие как поиск информации в интернете, поиск мест на карте, прокладывание маршрутов, сообщение прогноза погоды, может поддерживать разговор, развлекать пользователя и т.д. Для этого «Алиса» использует облачные средства компании «Яндекс», к которым она обращается через API посредствам сети Интернет. Схема работы представлена на рис. 2.

Рисунок 2. Принцип работы голосового ассистента «Алиса»

Рисунок 2. Принцип работы голосового ассистента «Алиса»

На первом этапе происходит активация, например, произношением ключевой фразы. Ассистент постоянно прослушивает окружающие звуки, анализирует наличие ключевой фразы и, если она будет распознана, переходит в активный режим.

Дальше пользователь произносит текст, который может объяснить помощнику, что пользователь хочет сделать. Система распознавания (Automatic Speech Recognition) превращает текст в N-лучших гипотез того, что сказал пользователь. Затем система распознавания естественного языка (Natural Language Understanding) превращает текст в N-лучших вариантов понимания фразы пользователя, далее диалоговый движок интерпретирует и классифицирует эти фразы иопределяет, что необходимо сделать на основе полученной информации. Например, обратиться в различные сервисы для получения информации.

После получения необходимых данных система производит процесс возвращения информации пользователю, т.е. система генерации естественного языка (Natural Language Generation) генерирует текст для ответа пользователю, далее система генерации голоса (Text-To-Speech) на основе обученных моделей генерирует звуковую информацию, которая и объявляется пользователю в качестве ответной реакции. Кроме ответа, может также происходить любое действие намобильном телефоне или компьютере, например запуск приложения или поиска информации в поисковой системе.

Одной из важных с точки зрения функционала частей голосового ассистента является диалоговый менеджер. Существуют простые сценарии, на которые можно сразу извлечь из NLU модели и воспроизвести через NLG. И более сложные сценарии, которые основываются на понятии формы. Принципиально форма повторяет форму обычного пользовательского интерфейса (UI), где существуют обязательные поля для заполнения и необязательные (см. рис. 3a). В таких сценариях используется подход Form Filling, т.е. в контексте диалога форма заполняется необходимыми ответами, причем эти ответы могут заполняться как пользователем, так и самой системой на основе информации, которую она сможет получить у пользователя (см. рис. 3б.). То есть процесс заполнения тоже интеллектуальный, и сама система часть полей может заполнить сама. После заполнения форма отправляется на обработку, где может приниматься решение о точном ответе на запрос пользователя или же переключение на нейронный диалог.

Рисунок 3. Заполнение формы (Form Filling) диалоговым менеджером

Рисунок 3. Заполнение формы (Form Filling) диалоговым менеджером

К основным проблемам, с которыми сталкиваются разработчики таких систем, можно отнести:

  • проблемы классификации сценариев,
  • выделение смысловых объектов (необходимость связываться, например, с геобазами данных и уточнять названия объектов, обращение к другим API),
  • поддержание контекста,
  • проблемы эллипсисов,
  • кореференции.

Недостатки существующих голосовых ассистентов и актуальность развития сферы

Несмотря на то что такие ассистенты существуют уже достаточно долгое время, они так и не получили широкого распространения из-за существования ряда ограничений и сфер, где они не могут быть применены. К основным недостаткам можно отнести: ориентированность на решения общих задач, зависимость от интернета и облачных сервисов, сложность или в большинстве случаев невозможность интеграции со сторонними сервисами, незащищенность персональных данных.

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

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

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

Метод создания интеллектуального голосового ассистента для специфических задач взаимодействия

Для работы с распознаванием голоса целесообразно использовать существующие системы. Например, проект PocketSphinx. В разрабатываемой системе именно он и был выбран в качестве основного средства распознавания голоса.

PocketSphinx – это инструментарий для автоматического распознавания голоса [14], который неплохо работает на различных маломощных встраиваемых системах, таких как Raspberry Pi, а также является кроссплатформенным, что иявляется причиной выбора данного фреймворка [13].

Для генерации голоса был выбран наиболее используемый движок Festival, который работает на операционных системах Linux и имеет достаточно неплохие характеристики генерации голоса.

Постановка задачи машинного обучения для интеллектуального анализа намерений

Так как в нашем случае выходными характеристиками может быть набор различных классов (т.е. N-лучших гипотез намерений пользователя), то задача будет представлять собой задачу мультиклассовой классификации, где в одном ответе могут содержаться метки из разных классов. Например, в качестве ответа может вернуться «on;light;bathroom», где каждая часть ответа принадлежит одному из нескольких классов.

Генерация данных

Сбор необходимых данных – самый важный процесс, который позволит наиболее точно прогнозировать результаты. На рис. 4 изображен процесс подготовки данных для обучения.

Рисунок 4. Процесс подготовки данных для обучения

Рисунок 4. Процесс подготовки данных для обучения

В нашей работе мы создавали специализированную систему для управления умным домом. Учитывая это, приводимые примеры наборов данных будут соответствовать обучению модели именно для таких систем. Для любых других задач принцип останется неизменным, изменяться лишь наборы данных.

Таблица синонимов

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

Рисунок 5. Таблица синонимов

Рисунок 5. Таблица синонимов

После определения синонимов определяется список ответов, которые необходимо прогнозировать на основе входных данных. Прогнозируемые ответы могут быть в любом удобном виде для обработки в приложении. Пример списка ответов приведен на рис. 6.

Рисунок 6. Словарь ответов

Рисунок 6. Словарь ответов

Следующий этап – построение словаря, из которого создается обучающая выборка. Так как большая часть алгоритмов машинного обучения оперирует числовыми данными, мы должны сопоставить в соответствие каждому слову в словаре определенное уникальное в пределах словаря число. Целесообразно также будет уменьшить размер словаря с помощью стемминга [15]. На больших объемах данных и различных вариантах произношения этот метод позволяет на порядок сократить количество различных слов. Это в итоге приводит к уменьшению данных и повысит качество распознавания. Список ответов также необходимо пометить уникальными числовыми идентификаторами.

Исследование обучающей выборки

Для того чтобы определиться, какие алгоритмы машинного обучения целесообразно использовать в данной задаче, посмотрим на распределение данных в полученной обучающей выборке (см. рис. 7).

Рисунок 7. Матрица распределения данных в обучающей выборке

Рисунок 7. Матрица распределения данных в обучающей выборке

Из полученного изображения видно, что данные имеют нормальное распределение. Для простоты эксперимента не будем проводить анализ данных на предмет выбросов. Попробуем решить задачу распознавания алгоритмами, например, такими как: деревья решений, случайный лес, нейронные сети и адаптивный градиентный бустинг деревьев решений.

Используем данные алгоритмы для обучения модели и посмотрим на качество результатов.

Оценка обучающей способности алгоритмов

Для обучения мы использовали наиболее популярную библиотеку машинного обучения Scikit-Learn для языка программирования Python.

Так как многие алгоритмы классификации не поддерживают мультиклассовую классификацию в чистом виде, для обучения одной выборки и нескольких ответов мы будем использовать один классификатор. Таким образом, для n-бинарных ответов мы будем использовать n-классификаторов. В Scikit-Learn это решается с использованием объекта MultiOutputClassifier

Кросс-валидация

В данной выборке было использовано около 450 тренировочных данных. В случае с маленьким набором данных целесообразно проводить Leave-one-out cross-validation, когда выборка разбивается на столько частей, сколько экспериментов было проведено, и вся выборка, кроме одного, используется для обучения, а один – для валидации. Это довольно затратная операция по времени и ресурсам, но она позволяет наиболее точно оценить модель на маленьких объемах данных, иособенно когда нет возможности отделить 30% тестовой выборки.

Результаты эксперимента можно увидеть на рис. 8-14.

Рисунок 8. Алгоритм «деревья решений». Исследуемый параметр max_depth Рисунок 9. Алгоритм «деревья решений». Исследуемый параметр max_features
Рисунок 8. Алгоритм «деревья решений». Исследуемый параметр max_depth Рисунок 9. Алгоритм «деревья решений». Исследуемый параметр max_features
Рисунок 10. Алгоритм «случайный лес». Исследуемый параметр n_estimators width=  
Рисунок 10. Алгоритм «случайный лес». Исследуемый параметр n_estimators  
Рисунок 11. Алгоритм «нейронные сети». Исследуемый параметр alpha Рисунок 12. Алгоритм «нейронные сети». Исследуемый параметр hidden_layer_sizes
Рисунок 11. Алгоритм «нейронные сети». Исследуемый параметр alpha Рисунок 12. Алгоритм «нейронные сети». Исследуемый параметр hidden_layer_sizes
Рисунок 13. Алгоритм «градиентный бустинг деревьев решений». Исследуемый параметр n_estimators Рисунок 14. Алгоритм «градиентный бустинг деревьев решений». Исследуемый параметр learning_rate
Рисунок 13. Алгоритм «градиентный бустинг деревьев решений». Исследуемый параметр n_estimators Рисунок 14. Алгоритм «градиентный бустинг деревьев решений». Исследуемый параметр learning_rate

Резюмируя, можно сделать вывод, что наилучшие результаты обучения на небольшом объеме данных показал алгоритм «градиентный бустинг деревьев решений» с 95% правильных ответов на кросс-валидации с параметрами n_estimators=10, learning_rate=1. Немного хуже смог обучиться алгоритм «нейронные сети» с правильностью 94%, и наиболее низкое качество у метода «случайный лес» с правильностью 92%.

Заключение

В ходе работы было выполнено исследование, приведены основные принципы работы актуальных голосовых ассистентов, выявлены их главные недостатки и предложены пути их исправления.

В рамках работы был разработан автономный голосовой помощник, проведена тренировка и оценка способности обучения алгоритмов распознавания намерений. По итогам тестов лучший результат показал алгоритм распознавания намерений «градиентный бустинг деревьев решений», который получил точность 95% на представленном наборе данных в 450 выборок.

Исследование показало, что современные интеллектуальные помощники могут обходиться без использования облачных вычислений. Кроме того, это позволит применять их в сферах, где не всегда есть доступ к облачным сервисам, например в таких сферах, как здравоохранение, охрана и системы с повышенным уровнем конфиденциальности, использование в районах, удаленных от вышек связи, и т.д.

Статья подготовлена в ходе проведения исследования (№ проекта 17-05-0017) в рамках программы «Научный фонд Национального исследовательского университета “Высшая школа экономики” (НИУ ВШЭ)» в 2017 году и в рамках государственной поддержки ведущих университетов Российской Федерации «5-100».

  1. Поляков Е.В. Исследование методов машинного обучения для анализа и принятия решений на основе данных интернета вещей // В кн.: Межвузовская научно-техническая конференция студентов, аспирантов и молодых специалистов им. Е.В. Арменского / Под общ. ред.: А.Н. Тихонов, С.А. Аксенов, У.В. Аристова, Л.С. Восков, А.А. Елизаров, М.В. Карасев, В.П. Кулагин, Ю.Л. Леохин, А.Б. Лось, И.С. Смирнов, Н.С. Титкова. – М.: МИЭМ НИУ ВШЭ, 2017. – С. 66-68.
  2. Восков Л.С. Социальные сети WEBа вещей // В кн.: XXI Международная студенческая школа-семинар «Новые информационные технологии». Тезисы докладов / Отв. ред.: А.Н. Тихонов, В.Н. Азаров, Ю.Л. Леохин, Н.С. Титкова, С.С. Фомин. – М.: МИЭМ НИУ ВШЭ, 2013. – С. 53-58.
  3. Восков Л.С. Интернет вещей // В кн.: Новые информационные технологии. Тезисы докладов XX международной студенческой конференции-школы-семинара / Науч. ред.: В.Н. Азаров, С.А. Митрофанов, Ю.Л. Леохин, Н.С. Титкова. – М.: МИЭМ, 2012. – С. 89-94.
  4. Ролич А.Ю., Мартюкова Е.С., Арзамасова А.И. Интернет вещей: актуальность, решения, проблематика // В кн.: Научно-техническая конференция студентов, аспирантов и молодых специалистов НИУ ВШЭ им. Е.В. Арменского. Материалы конференции / Под общ. ред.: А.Н. Тихонов, В.Н. Азаров, У.В. Аристова, М.В. Карасев, В.П. Кулагин, Ю.Л. Леохин, Б.Г. Львов, Н.С. Титкова, С.У. Увайсов. – М.: МИЭМ НИУ ВШЭ, 2015. – С. 140-142.
  5. Dvornikov A. et al. QoS Metrics Measurement in Long Range IoT Networks //Business Informatics (CBI), 2017 IEEE 19th Conference on. – IEEE, 2017. – Т. 2. – С. 15-20.
  6. Dempsey P. The teardown: Google Home personal assistant //Engineering & Technology. – 2017. – Т. 12. – № 3. – С. 80-81.
  7. Chung H. et al. Alexa, Can I Trust You? //Computer. – 2017. – Т. 50. – № 9. – С. 100-104.
  8. López G., Quesada L., Guerrero L. A. Alexa vs. Siri vs. Cortana vs. Google Assistant: A Comparison of Speech-Based Natural User Interfaces //International Conference on Applied Human Factors and Ergonomics. – Springer, Cham, 2017. – С. 241-250.
  9. Arriany A.A., Musbah M.S. Applying voice recognition technology for smart home networks //Engineering & MIS (ICEMIS), International Conference on. – IEEE, 2016. – С. 1-6.
  10. Caranica A. et al. Speech recognition results for voice-controlled assistive applications //Speech Technology and Human-Computer Dialogue (SpeD), 2017 International Conference on. – IEEE, 2017. – С. 1-8.
  11. Assefi M. et al. An experimental evaluation of apple siri and google speech recognition //Proccedings of the 2015 ISCA SEDE. – 2015.
  12. Natural Language Understanding Lecture 10: Introduction to Unsupervised Part-of-Speech Tagging // www.inf.ed.ac.uk URL: https://www.inf.ed.ac.uk/teaching/courses/nlu/lectures/nlu_l10_unsuptag1.pdf.
  13. Lovins, J.B. (1968). Development of a stemming algorithm. Mech. Translat. & Comp. Linguistics, 11, 22-31.

Ключевые слова: NLU, TTS, NER, ASR, IoT, голосовой помощник, машинное обучение.


Development of intellectual voice assistant using machine learning algorithms

Polyakov E.V., graduate of the faculty of MIEM HSE University, Moscow, epolyakov@hse.ru

Mazhanov M.S., bachelor of the faculty of MIEM HSE University, Moscow, msmazhanov@edu.hse.ru

Kachalova M.V., University of Mannheim, mkachalo@mail.uni-mannheim.de

Polyakov S.V., Moscow Aviation Institute, ns.polyakov@mail.ru

Abstract: The development of cognitive technologies contributes to the effective introduction of Artificial Intelligence into the everyday life of a person. New interfaces for device-human interaction appear. Understanding the natural language of human is one of the most promising areas of the development of Artificial Intelligence. Voice assistants are a striking example of such systems, they can be integrated into many other intelligent systems and improve the convenience of human-computer interaction. In this paper, the main shortcomings of voice assistants, the principles of functioning and possible ways of development of this technology are described. The development of an autonomous voice assistant is described.

Keywords: NLU, TTS, NER, ASR, Internet of Things, IoT, Voice Assistant, Smart Things, Machine Learning.


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru