В этой лекции впервые рассматриваются технологические решения, на основе которых работает Алиса — голосовой помощник Яндекса. Руководитель группы разработки диалоговых систем Борис Янгель рассказывает, как его команда учит Алису понимать желания пользователя, находить ответы на самые неожиданные вопросы и при этом вести себя прилично. — Я расскажу, что внутри у Алисы. Алиса большая, в ней много компонент, поэтому я немного поверхностно пробегусь. Алиса — голосовой помощник, запущенный Яндексом 10 октября 2017 года. Она есть в приложении Яндекса на iOS и Android, а также в мобильном браузере и в виде отдельного приложения под Windows. Там можно решать свои задачи, находить информацию в формате диалога, общаясь с ней текстом или голосом. И есть киллер-фича, которая сделала Алису довольно известной в рунете. Мы пользуемся не только заранее известными сценариями. Иногда, когда мы не знаем, что делать, мы используем всю мощь deep learning, чтобы сгенерировать ответ от имени Алисы. Это получается довольно забавно и позволило нам оседлать поезд хайпа. Как выглядит Алиса высокоуровнево? Пользователь говорит: «Алиса, какую ожидать завтра погоду?» Первым делом мы его речь стримим в сервер распознавания, он превращает ее в текст, и этот текст затем попадает в сервис, разработкой которого занимается моя команда, в такую сущность, как классификатор интентов. Это машиннообученная штука, задача которой — определить, чего же пользователь хотел сказать своей фразой. В этом примере классификатор интентов мог сказать: окей, наверное, пользователю нужна погода. Затем для каждого интента есть специальная модель, которая называется семантический теггер. Задача модели — выделить полезные крупицы информации в том, что сказал пользователь. Теггер для погоды мог бы сказать, что завтра — это дата, на которую пользователю нужна погода. И все эти результаты разбора мы превращаем в некоторое структурированное представление, которое называется фреймом. В нем будет написано, что это интент погода, что погода нужна на +1 день от текущего дня, а где — неизвестно. Вся эта информация попадает в модуль dialog manager, который, помимо этого, знает текущий контекст диалога, знает, что происходило до этого момента. Ему на вход поступают результаты разбора реплики, и он должен принять решение, что с ними сделать. Например, он может сходить в API, узнать погоду на завтра в Москве, потому что геолокация пользователя — Москва, хоть он ее и не указал. И сказать — сгенерируйте текст, который описывает погоду, затем его отправить на модуль синтеза речи, который с пользователем поговорит прекрасным голосом Алисы. Dialog Manager. Здесь нет никакого машинного обучения, никакого reinforcement learning, там только конфиги, скрипты и правила. Это работает предсказуемо, и понятно, как это поменять, если нужно. Если менеджер приходит и говорит, поменяйте, то мы можем это сделать в короткие сроки. В основе концепции Dialog Manager лежит концепция, известная тем, кто занимается диалоговыми системами, как form-filling. Идея в том, что пользователь своими репликами как бы заполняет некую виртуальную форму, и когда он в ней заполнит все обязательные поля, его потребность можно удовлетворить. Движок event-driven: каждый раз, когда пользователь что-то делает, происходят какие-то события, на которые можно подписываться, писать их обработчики на Python и таким образом конструировать логику диалога. Когда нужно в сценариях сгенерировать фразу — например, мы знаем, что пользователь говорит про погоду и нужно ответить про погоду, — у нас есть мощный язык шаблонов, который позволяет нам эти фразы писать. Вот так это выглядит. Это надстройка над питонячьим шаблонизатором Jinja2, в которую добавили всякие лингвистические средства, например возможности склонять слова или согласовывать числительные и существительные, чтобы можно было легко когерентный текст писать, рандомизировать кусочки текста, чтобы увеличивать вариативность речи Алисы. В классификаторе интентов мы успели попробовать множество разных моделей, начиная от логистической регрессии и заканчивая градиентным бустингом, рекуррентными сетями. В итоге остановились на классификаторе, который основан на ближайших соседях, потому что он обладает кучей хороших свойств, которых у других моделей нет. Например, вам часто надо иметь дело с интентами, для которых у вас есть буквально несколько примеров. Просто учить обычные классификаторы мультиклассовые в таком режиме невозможно. Например, у вас оказывается, что во всех примерах, которых всего пять, была частица «а» или «как», которой не было в других примерах, и классификатор находит самое простое решение. Он решает, что если встречается слово «как», то это точно этот интент. Но это не то, чего вы хотите. Вы хотите семантической близости того, что сказал пользователь, к фразам, которые лежат в трейне для этого интента. В итоге мы предобучаем метрику на большой датасете, которая говорит о том, насколько семантически близки две фразы, и потом уже пользуемся этой метрикой, ищем ближайших соседей в нашем трейнсете. Еще хорошее качество этой модели, что ее можно быстро обновлять. У вас появились новые фразы, вы хотите посмотреть, как изменится поведение Алисы. Все, что нужно, это добавить их множество потенциальных примеров для классификатора ближайших соседей, вам не нужно переподбирать всю модель. Допустим, для нашей рекуррентной модели это занимало несколько часов. Не очень удобно ждать несколько часов, когда вы что-то меняете, чтобы увидеть результат. Семантический теггер. Мы пробовали conditional random fields и рекуррентные сети. Сети, конечно, работают намного лучше, это ни для кого не секрет. У нас там нет уникальных архитектур, обычные двунаправленные LSTM с attention, плюс-минус state-of-the-art для задачи тегирования. Все так делают и мы так делаем. Единственное, мы активно пользуемся N-best гипотез, мы не генерируем только самую вероятную гипотезу, потому что иногда нам нужна не самая вероятная. Например, мы перевзвешиваем зачастую гипотезы в зависимости от текущего состояния диалога в dialog manager. Если мы знаем, что на предыдущем шаге мы задали вопрос про что-то, и есть гипотеза, где теггер что-то нашел и гипотеза, где не нашел, то наверное, при прочих равных первое более вероятно. Такие трюки нам позволяют немного улучшить качество. А еще машиннообученный теггер иногда ошибается, и не совсем точно в самой правдоподобной гипотезе находят значение слотов. В этом случае мы ищем в N-best гипотезу, которая лучше согласуется с тем, что мы знаем о типах слотов, это позволяет тоже еще немного качество заработать. Еще в диалогах есть такое явление Анафора. Это когда вы с помощью местоимения ссылаетесь на какой-то объект, который был раньше в диалоге. Скажем, говорите «высота Эвереста», и потом «в какой стране он находится». Мы анафоры умеем разрешать. Для этого у нас две системы. Одна general-purpose система, которая может работать на любых репликах. Она работает поверх синтаксического разбора всех пользовательских репликах. Если мы видим местоимение в его текущей реплике, мы ищем known phrases в том, что он сказал раньше, считаем для каждой из них скорость, смотрим, можно ли ее подставить вместо этого местоимения, и выбираем лучшую, если можем. А еще у нас есть система разрешения анафор, основанная на form filling, она работает примерно так: если в предыдущем интенте в форме был геообъект, и в текущем есть слот для геообъекта, и он не заполнен, и еще мы в текущий интент попали по фразе с местоимением «туда», то наверное, можно предыдущий геообъект импортировать из формы и подставить сюда. Это простая эвристика, но производит неплохое впечатление и круто работает. В части интентов работает одна система, а в части обе. Мы смотрим, где работает, где не работает, гибко это настраиваем. Есть эллипсис. Это когда в диалоге вы опускаете какие-то слова, потому что они подразумеваются из контекста. Например, вы можете сказать «расскажи погоду», а потом «а на выходных?», имея в виду «расскажи погоду на выходных», но вы хотите повторять эти слова, потому что это ни к чему. С эллипсисами мы тоже умеем работать примерно следующим образом. Эллиптические фразы или фразы-уточнения — это отдельные интенты. Если есть интент get_weather, для которого в трейне фразы типа «расскажи погоду», «какая сегодня погода», то у него будет парный интент get_weather_ellipsis, в котором всевозможные уточнения погоды: «а на завтра», «а на выходные», «а что там в Сочи» и так далее. И эти эллиптические интенты в классификаторе интентов на равных конкурируют со своими родителями. Если вы скажете «а в Москве?», классификатор интентов, например, скажет, что с вероятностью 0,5 это уточнение в интенте погода, и с вероятностью 0,5 уточнение в интенте поиска организаций, например. И затем диалоговый движок перевзвешивается scores, которые назначил классификатор интентов, который назначил их с учетом текущего диалога, потому что он, например, знает, что до этого шел разговор о погоде, и вряд ли это было уточнение про поиск организаций, скорее это про погоду. Такой подход позволяет обучаться и определять эллипсисы без контекста. Вы можете просто откуда-то набрать примеров эллиптических фраз без того, что было раньше. Это довольно удобно, когда вы делаете новые интенты, которых нет в логах вашего сервиса. Можно или фантазировать, или чего-то придумывать, или пытаться на краудсорсинговой платформе собрать длинные диалоги. А можно легко насинтезировать для первой итерации таких эллиптических фраз, они будут как-то работать, и потом уже собирать логи. Вот жемчужина нашей коллекции, мы называем ее болталкой. Это та самая нейросеть, которая в любой непонятной ситуации чего-то от имени Алисы отвечает и позволяет вести с ней зачастую странные и часто забавные диалоги. Болталка — на самом деле fallback. В Алисе это работает так, что если классификатор интентов не может уверенно определить, чего хочет пользователь, то другой бинарный классификатор сперва пытается решить — может, это поисковый запрос и мы найдем что-то полезное в поиске и туда отправим? Если классификатор говорит, что нет, это не поисковый запрос, а просто болтовня, то срабатывает fallback на болталку. Болталка — система, которая получает текущий контекст диалога, и ее задача — сгенерировать максимально уместный ответ. Причем сценарные диалоги тоже могут являться частью контекста: если вы говорили про погоду, а потом сказали что-то непонятное, сработает болталка. Это позволяет нам делать вот такие штуки. Вы спросили про погоду, а потом болталка ее как-то прокомментировала. Когда работает, выглядит очень круто. Болталка — DSSM-подобная нейронная сеть, где есть две башни энкодера. Один энкодер кодирует текущий контекст диалога, другой — ответ-кандидат. У вас получается два embedding-вектора для ответа и контекста, и сеть обучается так, чтобы косинусное расстояние между ними было тем больше, чем уместнее данный ответ в контексте и чем неуместнее. В литературе эта идея давно известна. Почему у нас вроде неплохо все работает — кажется, что чуть лучше, чем в статьях? Никакой серебряной пули нет. Нет техники, которая позволит внезапно сделать классно разговаривающую нейронную сеть. Нам удалось достичь неплохого качества, потому что мы в качестве понемножку выиграли везде. Мы долго подбирали архитектуры этих башен-энкодеров, чтобы они лучше всего работали. Очень важно правильно подобрать схему сэмплирования отрицательных примеров в обучении. Когда вы обучаетесь на диалоговых корпусах, у вас есть только положительные примеры, которые когда-то кем-то были сказаны в таком контексте. А отрицательных нет — их нужно как-то генерировать из этого корпуса. Там есть много разных техник, и одни работают лучше, чем другие. Важно, как вы выбираете ответ из топа кандидатов. Можно выбирать наиболее вероятный ответ, предлагаемый моделью, но это не всегда лучшее, что можно сделать, потому что при обучении модель учитывала не все характеристики хорошего ответа, которые существуют с продуктовой точки зрения. Ещё очень важно, какими дата-сетами вы пользуетесь, как их фильтруете. Чтобы по крупицам собрать из этого всего качество, надо уметь измерять все, что вы делаете. И тут наша гордость состоит в том, что все аспекты качества системы мы умеем мерить на нашей краудсорсинговой платформе по кнопке. Когда у нас появляется новый алгоритм генерации результатов, мы в несколько кликов можем сгенерировать ответ новой модели на специальном тестовом корпусе. И — померить все аспекты качества полученной модели в Толоке. Основная метрика, которой мы пользуемся, — логическая уместность ответов в контексте. Не надо говорить чушь, которая никак с этим контекстом не связана. Есть ряд дополнительных метрик, которые мы стараемся оптимизировать. Это когда Алиса к пользователю на «ты» обращается, говорит о себе в мужском роде и произносит всякие дерзости, гадости и глупости. Высокоуровнево я рассказал все, что хотел. Спасибо.

Разработчики голосового ассистента — об особенностях российской аудитории, преимуществах перед конкурентами и перспективах технологии.

В закладки

Кратко

  • 10 октября 2017 года «Яндекс» официально представил своего голосового ассистента «Алиса».
  • В основе «Алисы» — нейронные сети, которые распознают речь, интерпретируют её , составляют ответы и синтезируют голос помощника. «Алиса» обучается на огромных массивах текстов, чтобы общаться с пользователем на свободные темы.
  • Есть и «редакторские» реплики, написанные командой для ответов на популярные вопросы.
  • Одна из главных сложностей в разработке такой системы: понять, что будет интересовать пользователей, и как они будут об этом спрашивать. Кто-то спрашивает у поисковика «где я», кто-то — «какая моя геолокация».
  • Основные отличия «Алисы» от конкурентов (к примеру, Siri) — интеграция с собственной поисковой системой компании и наличие нейронной сети, с помощью которой помощник самостоятельно генерирует новые реплики.

Почему «Яндекс» взялся за разработку голосового ассистента

К 2017 году своих голосовых помощников представили крупнейшие мировые ИТ-компании: на англоязычном рынке работает Siri от Apple, Assistant от Google, Alexa от Amazon, M от Facebook, Cortana от Microsoft. На азиатском — Duer от Baidu и Bixby от Samsung.

Весной 2017 года тестирование собственного голосового помощника запустил российский «Яндекс». Ассистент по имени Алиса встроен в поисковое приложение компании. Пользователь может решить свою задачу в форме диалога с ассистентом — вместо ввода запроса в поисковую строку. 10 октября 2017 года компания объявила об официальном запуске сервиса — помощник появился в стабильной версии поискового приложения для Android и iOS, а также в бета-версии «Голосового помощника» для Windows.

За создание «Алисы» компания принялась в конце 2016 года. Сервис начали разрабатывать потому, что вся индустрия движется в этом направлении: пользователь хочет и готов решать свои задачи в форме диалога с виртуальным помощником, готовы к этому и алгоритмы, — и можно переходить от голосового ввода к осмысленному диалогу.

Когда у пользователя появляется возможность задать вопрос голосом, он начинает говорить по-человечески. Вместо «Лада калина 2007 карданный вал дёшево купить» спрашивает: «Где мне купить карданный вал на «Ладу Калину» 2007 года»? Не выдумывает поисковый запрос, не формулирует его, как он привык это делать, а просто спрашивает.

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

Скажем, вы спросили «Алису»: «Какая завтра погода?» — она ответила вам: «+7 и ясно». Следующий вопрос может оказаться: «А на выходных?» Его легко понять человеку, но сложно машине — ведь в нём нет даже ключевого слова «погода». Диалоговый помощник умеет сопоставлять реплики и понимать, что вы всё ещё говорите о погоде.

Значит, когда мы от простого голосового ввода переходим к диалогу, то делаем это, чтобы дать пользователям возможность говорить так, как они привыкли — вот и всё.

По словам разработчиков, пользователи «Яндекса» уже умеют обращаться к сервисам компании голосом — команда «Слушай, Яндекс» работает и в «Поиске», и в «Навигаторе», и в других приложениях. Так что привыкать к новому интерфейсу им не придётся.

Илья Субботин, руководитель продукта «Алиса»

С пользовательской точки зрения, говорит команда проекта, с появлением «Алисы» меняется несколько вещей. Помимо диалогового интерфейса, помощник обрёл личность — «Алиса» проявляет эмоции, умеет шутить и «не терпит унизительного обращения в свой адрес». К ней теперь можно обращаться по имени: «Слушай, Алиса».

С технологической — за работу помощника теперь отвечает многослойная нейросеть, которая учится на массивах текстов, понимает смысл запроса и самостоятельно синтезирует речь.

Как работает «Алиса»

«Алиса» встроена в поисковое приложение «Яндекса». Общаться с ассистентом можно как голосом, так и вводя запросы с клавиатуры. При возможности «Алиса» отвечает на заданный вопрос прямо в диалоговом интерфейсе, в других случаях — показывает поисковую выдачу по запросу или нужное приложение.

Под капотом

В основе «Алисы» — нейронные сети: они распознают речь, анализируют её, определяют тематику диалога, выделяют полезную для поиска информацию, синтезируют ответы помощника.

Почти все вычисления, помимо голосовой активации (распознавания фразы «Слушай, Алиса»), проводятся в облаке. «Конечно, было бы интересно перенести часть вычислений на смартфон, чтобы «Алиса» иногда могла работать и без интернета, — говорит Илья Субботин. — Но вычислительная мощность смартфонов слишком низкая для таких задач».

Технологии машинного обучения дошли до уровня, когда пользователь может просто говорить с приложением и видеть, что то его понимает, — а синтезированный голос приобретает звучание, близкое к естественному.

При этом мировое научное и технологическое сообщество находится лишь в начале пути — алгоритмы будут совершенствоваться и дальше. Распознавание речи, синтез, определение тематики беседы — всё это должно работать ещё лучше.

Есть общие продуктовые метрики, по которым можно оценивать работу помощника, — удовлетворенность пользователя, частота использования приложения. Но есть и более сложные параметры, объясняет Субботин. Например, умение находиться в контексте беседы: помощник должен помнить, о чём его спросил пользователь, уметь верно интерпретировать дополнительные вопросы и давать релевантные ответы.

«От релевантности одного конкретного диалога в будущем можно будет переходить к персонализации и мультизадачности: в идеале, когда я собираюсь на работу, я смогу спросить, что надеть, «Алиса» посмотрит погоду, маршрут до офиса, решит, на чем лучше доехать, и исходя из этого посоветует мне, что надеть».

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

Акцент на поиске

Разработчики голосового помощника Siri от Apple намеренно наращивают количество диалоговых сценариев — чтобы не демонстрировать пользователю поисковую выдачу. Перед командой «Алисы» такой задачи не стоит, потому что «Алиса» — другой продукт.

Apple поступает так не от богатства выбора. Просто это не поисковая компания. Мы абсолютно другие. Для нас поиск на первом месте — это лучший продукт, который у нас есть.

Загадывать, как интегрированный с поиском помощник будет адаптирован для работы на других устройствах, пока рано, считает руководитель продукта «Алиса»: индустрия пока не выяснила, какие именно устройства окажутся востребованы у аудитории, а кроме того, такие устройства будут предполагать разные сценарии взаимодействия, под которые можно будет адаптировать систему.

«У пользователя в любом случае есть задача, которую он хочет решить — взаимодействуя с голосовой колонкой или, допустим, системой управления автомобилем. В случае с колонкой упор будет сделан, вероятно, на музыке или новостях — и у нас есть музыкальный и новостной сервисы. В автомобиле водителя интересуют карты. Вряд ли он будет спрашивать у машины: «пластиковые окна купить дёшево»».

Крупные технологические компании делают ставку на развитие экосистем «умных» устройств — и это расширяет возможности взаимодействия с помощником. Если для ответа на вопрос устройству без экрана понадобится показать поисковую выдачу или открыть приложение, помощник сможет запустить нужный сервис на другом — например, на смартфоне.

«Это лишь вопрос адаптации под устройство, — продолжает Субботин. Но, по-честному, мы пока ничего не знаем. Один из лидеров отрасли — Amazon, — до сих пор экспериментирует с форматами: у компании есть колонка Echo, мини-версия Echo Dot, варианты с камерой, с экраном».

Личность

Личность «Алисы», считают разработчики, — одно из её главных конкурентных преимуществ. Проекты, рассчитанные на англоязычную аудиторию, не пытаются создать сильную эмоциональную связь с пользователем, а наоборот, скорее от него отстраняются.

Чтобы дать ассистенту личность, команде нужно было определиться с полом, возрастом, именем и чертами характера персонажа, описать поведение и составить реплики, которые помощник будет использовать для диалога с пользователем — «редакторские» ответы.

Вместе с журналистом, писателем и бывшим руководителем группы маркетинга поиска «Яндекса» Владимиром Гуриевым разработчики описали характер персонажа и выбрали для него подходящие реплики.

Всего команда описала около 320 сценариев, в которых помощник отвечает редакторскими репликами. Для каждого из таких сценариев заложено от двух до семи ответов, которые система выбирает случайным образом. «Этого достаточно, чтобы сформировать личность, но недостаточно, чтобы потрепаться обо всём на свете», — говорит Субботин.

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

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

Как выбирали имя

Команда составила список имён, которые, как показалось сотрудникам, лучше всего подходили к выбранным чертам характера. К имени предъявлялись также технические требования: например, в нём не должно было быть буквы «р» — её не выговаривают маленькие дети.

Кроме того, имя не должно было входить в другие слова или фразы. В качестве одного из вариантов разработчики рассматривали имя Майя — но оно могло спровоцировать ошибки распознавания на фразах вроде «Девятое мая». Важно было также, чтобы имя не входило в список наиболее популярных женских имён в России — чтобы сократить количество ложных активаций. Алиса в такой список не входит, но для тех пользователей, у кого в семье есть Алиса, останется возможность активировать помощника командой «Слушай, Яндекс».

Определившись с вариантами, разработчики вместе с социологами и аналитиками «Яндекса» составили опрос для пользователей сервиса «Толока». В нём компания просила определить черты характера девушки по имени. «Пользователей нельзя спросить прямо, какое имя больше подходит ассистенту, и мы спросили хитро. Взяли нужные нам характеристики — и наоборот, совсем неподходящие, и стали спрашивать: если у девушки вот такое имя, то она скорее, например, добрая или агрессивная?».

С большим отрывом, говорит Субботин, в опросе победило имя «Алиса». «И никто за время тестирования ни разу не сказал нам, что это плохое имя».

Как «Алиса» обучалась во время тестирования

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

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

Перед запуском тестирования было важно определить наиболее вероятные сценарии взаимодействия: вопросы, которые пользователи будут задавать «Алисе», — а также понять, как именно они будут их задавать.

«Мы понимали, что людей волнует, к примеру, погода. Отлично, чтобы рассказать о погоде, надо на что-то среагировать — на какие-то пользовательские фразы», — рассказывает Субботин. Определившись с темой, разработчики описали самые простые сценарии: например, когда пользователь просто спрашивает: «Какая сейчас погода?». Затем добавили более сложные варианты: прогноз погоды на конкретное число, на несколько дней, на несколько дней в следующем месяце.

Ещё одна популярная тематика — определение местоположения. Изначально команда «Алисы» собрала несколько реплик, которыми пользователи могли бы активировать сценарий, но выяснилось, что зачастую люди задают вопросы совсем не так, как могли предположить разработчики. «Мы включили: «где я», «где я нахожусь», «какое моё местоположение», «какой у меня сейчас адрес». А пользователь спрашивает: «Подскажи, пожалуйста, где моя геолокация». Такое мы не могли предусмотреть».

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

Команда также занимается разработкой специальной диалоговой модели — внутри компании её называют «болталкой», — которая в будущем может взять на себя всё общение с пользователем на отвлечённые темы и обучаться новым репликам самостоятельно.

«Болталка» обучается на больших массивах текстов, в том числе диалогов. Порой, говорят создатели, они не могут предугадать ответы «Алисы» — настолько человечными они оказываются, — а иногда она может и нахамить собеседнику. Но разработчики отслеживают некорректные реплики и удаляют их из системы.

Скриншоты диалогов во время тестирования помощника

#будущее#Яндекс#Алиса

Голосовой ассистент Алиса был выпущен сравнительно недавно и уже завоевал популярность у российских владельцев мобильных устройств. Сейчас её помощью пользуются миллионы человек. Рассмотрим, что же умеет делать голосовой помощник от «Яндекс».

Что такое Алиса от «Яндекс»

Алиса — это голосовой ассистент, который способен управлять устройством, на которое установлен, выдавать ответы на поисковые запросы, прокладывать маршрут и выполнять ещё массу полезных и развлекательных функций. Помощник от «Яндекс» стал своеобразной альтернативой Siri (которая доступна только на устройствах под iOS или MacOS) и Cortana от Microsoft (которая сейчас уже заброшена своими создателями).

Алиса сразу же получила простой и узнаваемый логотип

Появилась Алиса на свет 10 октября 2017 года. Точнее, в этот день «Яндекс» провели её официальную презентацию. Бета-версия же стартовала в мае 2017 года. С того времени голосовая помощница претерпела множество изменений и обновлений, стала лучше распознавать речь и более «живо» общаться с пользователями.

Многие отмечают постоянное и интенсивное развитие Алисы как одно из её главных преимуществ.

Имя голосовому ассистенту выбирали путём массовых опросов. Поскольку помощника планировали распространять только в России, специалисты «Яндекс» проводили анкетирование соотечественников, чтобы выяснить, какое имя вызывает у людей наибольшую симпатию и при этом является не очень популярным. В итоге было решено назвать ассистента Алисой.

Из-за привязки голосового помощника к женскому имени разработчики лишились возможности добавить функцию переключения пола ассистента (как, например, у Siri). Алиса, конечно же, не сможет ответить вам мужским голосом.

Голос Алисе подарила Татьяна Шитова — официальный дублёр Скарлетт Йоханссон в России. Конечно, актриса озвучивала не каждую реплику. Речь голосового помощника по большей части синтезирована на основе голоса Татьяны.

Кроме того, Татьяна Шитова озвучивала Флёр Делакур — очаровательную француженку из серии фильмов о Гарри Поттере

Особенный акцент разработчики сделали на «личности» Алисы. Она иронична, любит шутить над собой, иногда жалуется на «одиночество в тесной коробке».

Как и другие голосовые помощники, Алиса абсолютно бесплатна. Единственное ограничение — необходимость подключения к интернету. Без сети Алиса разговаривать отказывается.

Как утверждает сама помощница, «без интернета она как без рук»

На каких устройствах можно использовать Алису

Алису можно использовать на ряде устройств:

  • смартфон или планшет (Android и iOS). Алиса устанавливается вместе с приложениями «Яндекс», «Яндекс.Браузер» и «Яндекс.Навигатор». Обратите внимание — если на вашем телефоне в качестве системного языка установлен не русский, то Алиса появится только в приложении «Яндекс». В браузере и навигаторе её не будет;
  • компьютер и ноутбук под управлением Windows. Алиса устанавливается вместе с «Яндекс.Браузером». Для MacOS и Linux разработчики выпустили браузер без Алисы;
  • «Яндекс.Станция». Это домашняя мультимедиа-платформа с голосовым управлением (через Алису, конечно же). Умная колонка поступила в продажу летом 2018 года;

    «Яндекс.Станция» умеет выполнять самые разные поручения — от показа фильмов до установки таймера

  • Irbis A. Это умный домашний помощник, который способен выполнять массу функций: засекать время, включать музыку, ставить будильник, а также отвечать на голосовые поисковые запросы — всё при помощи Алисы;

    Irbis A представляет собой более дешёвый аналог «Яндекс.Станции»

  • Elari KidPhone 3G. Это часы-телефон, созданные специально для детей. Алиса интегрирована в них вместе с системой.

    Производитель обещает, что с умными часами ребёнок всегда будет на связи, а родители смогут следить на смартфоне за его перемещениями

Как работает Алиса

Алиса — первый голосовой помощник, использующий в своей работе нейронные сети и глубокое обучение (Deep Learning). Это позволяет ей воспринимать не только заготовленные команды, но и более произвольную речь, а также самостоятельно обучаться.

Немного о нейросетях

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

Глубокое обучение — это маленький подраздел нейросетей, который подразумевает многоступенчатую обработку данных (отсюда и термин «глубокое»)

Главное преимущество нейросети — самообучаемость. Каждый ответ Алисы можно оценить («палец вверх» или «палец вниз»). Таким образом пользователь указывает программе, правильным ли был ответ на команду. Собранные данные обрабатываются и выводятся в новые алгоритмы распознавания речи и реакции на запросы. Чем больше разных людей общается с Алисой, тем лучше, точнее и правильнее становятся её ответы на самые разнообразные запросы.

Иногда результаты глубокого обучения поражают даже самих разработчиков. Например, известен случай, когда Алиса в ответ на просьбу пользователя найти кафе поблизости ответила: «Сам на карте поищи». И даже «Яндекс.Карты» не открыла. Такое хамское поведение объясняется тем, что голосовой помощник услышал подобное выражение от какого-то из своих собеседников. Это случилось ещё на этапе закрытого тестирования. Сейчас разработчики старательно модерируют все изменения в поведении голосового ассистента, чтобы сделать её «личность» более дружелюбной и оградить от хамства и мата.

Алгоритм работы Алисы

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

  1. Устройство слышит специальную команду, например, «Привет, Алиса», либо реагирует на нажатие кнопки. Это сигнал для программы, который говорит о том, что пришло время слушать и распознавать речь. Кстати, распознавание производится через написанный «Яндексом» алгоритм SpeechKit.
  2. Дальнейшие слова пользователя тщательно фиксируются устройством и начинается распознавание речи.
  3. Из голосового сообщения, преобразованного в текст, помощник вычленяет так называемые именованные объекты. Это своеобразные маркеры, которые указывают Алисе, что именно мы от неё хотим. Например, если во фразе присутствовало слово «погода», то помощник понимает, что нужно выдать прогноз погоды. Город и дата в таком запросе тоже будут именованными объектами. Таким образом, запросы «какая погода завтра в Питере», «что завтра с погодой в Петербурге» и «покажи завтрашнюю погоду в Санкт-Петербурге» будут расцениваться помощником как одинаковые, ведь в каждом присутствует один и тот же набор маркеров.
  4. Далее Алиса действует по уже заготовленному скрипту. Каждый именованный объект определяет действие или условие, согласно которому помощник выдаст ответ.

Важное преимущество Алисы — умение работать в контексте. Она помнит предыдущие реплики и способна вести диалог. Так общение с ней становится более «живым» и естественным, привычным для человека. Мы можем опускать некоторые слова, упомянутые в предыдущей реплике (это явление называется эллипсис), заменять существительные на местоимения (а это — кореференция).

К примеру, если спросить у помощника, где находится Эльбрус, а после ответа задать вопрос о его высоте, не упоминая при этом название горы, Алиса укажет правильный ответ.

Без понимания контекста Алиса не поняла бы вторую реплику

Аналогичным образом Алиса поймёт нас, если мы вначале спросим прогноз на сегодня, а затем на завтра — уже без упоминания слова «погода».

Благодаря этому умению Алиса выглядит как живой собеседник

Конечно, это работает далеко не всегда. Алиса зачастую реагирует на новую реплику как на поисковой запрос. Вести с ней долгие философские разговоры не получится.

«Яндекс.Диалоги»

«Яндекс.Диалоги» — это новый сервис от российской компании, который основан на голосовом ассистенте. Он позволяет сторонним разработчикам добавлять в Алису скрипты диалогов с пользователем. Первой, кто попробовал это нововведение, стала пиццерия «Папа Джонс». Сейчас на «Яндекс.Диалогах» работают десятки крупных компаний, среди которых Сбербанк, McDonald’s, Reebok, HeadHunter и другие.

Сторонние разработчики могут самостоятельно добавлять новые функции для Алисы, чтобы сделать свой сервис более удобным для пользователей

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

Что это даёт рядовому пользователю? Возможность пользоваться сервисами и услугами при помощи голосового помощника. Через Алису можно заказывать пиццу, узнавать состояние своего счёта в банке, находить вакансию и выбирать одежду. Для того, чтобы использовать диалог, нужно сказать «Запусти навык» и выбрать интересующую компанию. Например: «Алиса, запусти навык «Сбербанк». Эта функция действует на ПК и в приложении «Яндекс».

В «Яндекс.Диалогах» вас разу оповестят о функциях и возможностях навыка

Ознакомиться со списком навыков голосовой помощницы можно в приложении «Яндекс». Выйдите в основное меню Алисы и коснитесь серого значка в правом верхнем углу.

На этой странице вы можете посмотреть, что умеет Алиса и с какими сервисами она уже интегрирована

Что умеет Алиса?

Набор умений голосового помощника зависит от платформы и устройства, на которое она была установлена.

На смартфоне

В приложении «Яндекс» для мобильных устройств голосовой помощник может:

  • подсказать погоду на любой день в любом городе. Она использует прогнозы от «Яндекс.Погода».

    У Алисы можно спросить прогноз на любой ближайший день в любом городе России

    Если не указывать дату и место, то Алиса выдаст сегодняшний прогноз, а местоположение определит по вашей геолокации;

    Конечно же, определение местоположения работает, только если у вас на устройстве включена геолокация

  • включать музыку. При этом помощник использует сервис «Яндекс.Музыка». В бесплатном варианте он проигрывает песни в среднем качестве и добавляет аудиорекламу;

    Жаль, что Алису нельзя интегрировать с другими музыкальными сервисами, например, Youtube Music или Apple Music

  • определять ваше местоположение. Если вы заблудились и не можете найти ни одного опознавательного знака на соседних домах, просто спросите Алису: «Где я?». Помощник быстро подскажет точный адрес;

    Эта функция без включённой геолокации работать не будет

  • создавать список дел. Задачи, которые вы надиктуете Алисе, попадут в облачный сервис «Яндекса». К сожалению, создавать с помощью голосового помощника заметки или списки не удастся — только дела;
  • угадывать песни. Эта функция — встроенная версия Shazam, которая поможет распознать играющую музыку. После запроса помощник начинает слушать окружение и пытаться распознать мелодию. Если же Алиса не смогла понять, что играет, она выдаёт ироничный ответ;

    Если включить эту функцию в тишине, то голосовой помощник быстро сдаётся

  • прокладывать маршруты. При этом помощник использует «Яндекс.Карты». Алиса пока не умеет запоминать любимые местоположения (например, дом и работу). Она способна прокладывать маршруты по адресам или по названиям мест. Например, можно попросить её провести вас до ТРЦ «Галерея» или до Парка Победы — в этом случае точный адрес ей не нужен. При запросе Алиса прокладывает маршрут как на личном, так и на общественном транспорте;

    Алиса сразу указывает, сколько времени займёт дорога — с учётом пробок

  • рассказать о пробках. Ситуацию на дорогах Алиса также узнаёт из сервиса «Яндекс»;

    Алиса сразу же демонстрирует карту, где цветом отмечена степень загруженности дорог

  • рассказывать анекдоты, сказки и шутить. Основное отличие Алисы от других голосовых ассистентов — более «живое» общение. У Алисы есть в запасе много анекдотов. А для сказок она запускает отдельный сценарий, где можно послушать истории не только в её исполнении, но и в записи от российских звёзд эстрады;

    Чтобы запустить сказку, достаточно сказать помощнице: «Алиса, расскажи сказку»

  • советовать фильмы. Правда, подбор кинолент от Алисы не всегда понятен — то она рекомендует Хичкока, то низкосортные комедии. Вкус у неё, скажем так, специфический;

    Алисе можно сказать, что вы уже видели это кино — тогда она посоветует другое

  • считать. У Алисы есть встроенный калькулятор, поэтому ей можно задавать простые арифметические примеры. Правда, она не всегда хорошо распознаёт словесное их выражение и отправляет на поиски в «Яндекс»;

    С простейшими арифметическими операциями Алиса справляется отлично, а вот с решением примеров, где больше одного действия, иногда проваливается

  • искать информацию в интернете. Если ваш запрос не распознался голосовым помощником как команда, то Алиса переадресует вас в «Яндекс».

Писать сообщения или звонить Алиса пока не умеет. Как утверждает сама голосовая помощница, она может только вызвать экстренную службу.

«Яндекс.Навигатор»

Если у вас на смартфоне установлен только «Яндекс.Навигатор», то функционал Алисы сосредотачивается вокруг дорожной жизни:

  • маршрут. Главная функция навигатора хорошо интегрирована с Алисой. Построение маршрута выглядит так же, как и в основном приложении «Яндекс», но без упоминания общественного транспорта;
  • пробки. Алиса подскажет, где сейчас затруднено движение. А если вы уже попали в пробку, то можно спросить у помощника, сколько ещё придётся простоять;
  • штрафы. Алиса хорошо знает, какие штрафы предусмотрены за нарушение ПДД;
  • регион. Если вам интересно, из какого региона владелец того или иного автомобиля, можно просто спросить это у Алисы. Она лаконично назовёт город или область;
  • погода. Информация о погоде, выдаваемая в навигаторе, несколько более сжата, чем в главном приложении «Яндекс». Алиса оставляет только самые основные сведения.

Алиса на ПК

На компьютере Алиса умеет делать всё то же, что и на телефоне, а также:

  • включать программы, например, открывать «Яндекс.Браузер» или Steam;

    У Алисы пока туго с пониманием английских названий программ, но те, что написаны на русском, она открывает исправно

  • открывать сайты. Можно попросить Алису открыть «Википедию» или официальный сайт разработчика какой-нибудь игры. Помощник открывает сайты только в «Яндекс.Браузере» независимо от того, какой браузер у вас стоит по умолчанию;

    Алису можно попросить открыть любой сайт по его названию, но продиктовать ей адрес не получится — она не распознаёт такую речь

  • управлять компьютером. Алису можно попросить выключить или перезагрузить ПК. К сожалению, функция отложенного выключения пока не работает — помощник не умеет отключать питание через заданный промежуток времени;

    При просьбе отключить компьютер Алиса запускает таймер на 9 секунд, в течение которого пользователь может отменить своё решение

  • находить файлы. Алису можно попросить найти файл по его названию — его можно сразу же открыть.

    Если в запросе не указать слово «файл», то Алиса может ринуться в поиски в интернете

Чтобы активировать Алису на ПК под Windows, достаточно скачать и установить «Яндекс.Браузер» — помощница появится на панели задач сама.

Сразу после установки «Яндекс.Браузера» иконка Алисы появится рядом с меню «Пуск»

Домашние станции

Алиса интегрирована в домашние мультимедийные станции: «Яндекс.Станцию» и Irbis A. Там она может:

  • включать музыку. Поиск аудио ведётся, как обычно, в «Яндекс.Музыке»;
  • устанавливать будильник и таймер;
  • отвечать на поисковые запросы. Например, можно спросить у Алисы, как долго нужно запекать курицу, а затем поставить таймер на это время;
  • рассказывать сказки, истории и анекдоты;
  • включать фильмы и управлять громкостью. Для этого необходимо подключить её к телевизору с помощью HDMI.

Тайные умения голосового помощника

Разработчики добавили в Алису множество скрытых функций, запустить которые можно точной голосовой формулировкой. Работают они в мобильном приложении «Яндекс» и на ПК. Рассмотрим некоторые из них:

  • «Алиса, расскажи секреты российских блогеров». Услышав эту фразу, Алиса запускает сценарий, в котором можно расспросить её о тайнах и секретах самых популярных видео-блогеров. Она также упоминает, что не может отличить блогера от рэпера;

    Блогеры наверняка самостоятельно рассказывают Алисе свои секреты

  • «Алиса, подбрось монетку!» Если под рукой нет монетки (только карточки да электронный кошелёк), то можно попросить Алису подбросить её. Вы услышите звон подброшенной монеты, а голосовой ассистент выдаст результат;

    С помощью Алисы можно принимать важные решения

  • «Алиса, давай поболтаем». Эта голосовая команда выключит у помощника выполнение команд и скриптов и оставит только функцию собеседника. Алиса будет шутить, иронизировать, жаловаться, сочувствовать пользователю. При этом она помнит предыдущие реплики — диалог получается довольно живым;
  • «Алиса, давай поиграем». У голосового помощника от «Яндекс» в запасе есть несколько интерактивных игр. Самые интересные — «Что было раньше» и «Угадай песню», но Алиса также умеет играть в города, «Верю — не верю», «Угадай актёра». Чтобы запустить сценарий, нужно произнести кодовое «Алиса, давай поиграем в» и назвать игру;

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

  • предсказания. Они относятся к категории игр, поэтому для запуска нужно сказать кодовую фразу «Алиса, давай поиграем». Можно сыграть в «Шар судьбы» или «Гадание»;

    Сама голосовая помощница скептически относится к гаданиям

  • «Алиса, произнеси тост». Растерялись на застолье? Попросите Алису произнести тост за вас. У голосовой помощницы есть в запасе несколько остроумных и торжественных реплик.

    Если попросить Алису произнести тост в преддверии государственного праздника, то она сама поймёт, на какую тему стоит говорить

Алиса — один из крупнейших проектов «Яндекса», которая объединяет в себе важные разработки: распознавание речи, понимание сложных семантических конструкций, работа в контексте, «живой» синтезированный голос. Остаётся надеяться, что она продолжит развиваться и научится ещё массе полезных и занятных вещей.

ОСТАВЬТЕ ОТВЕТ

Please enter your name here
Please enter your comment!