Как «Яндекс» создавал «Алису»

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

Как «Яндекс» создавал «Алису»

Кратко

  • 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 сценариев, в которых помощник отвечает редакторскими репликами. Для каждого из таких сценариев заложено от двух до семи ответов, которые система выбирает случайным образом. «Этого достаточно, чтобы сформировать личность, но недостаточно, чтобы потрепаться обо всём на свете», — говорит Субботин.

Как «Яндекс» создавал «Алису»

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

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

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

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

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

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

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

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

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

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

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

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

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

Как «Яндекс» создавал «Алису»

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

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

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

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

Судя по последнему скрину, наконец-то появился настоящий российский быдло-ассистент )

33

"Когда у пользователя появляется возможность задать вопрос голосом, он начинает говорить по-человечески. Вместо «Лада калина 2007 карданный вал дёшево купить» спрашивает: «Где мне купить карданный вал на "Ладу Калину" 2007 года»? Не выдумывает поисковый запрос, не формулирует его, как он привык это делать, а просто спрашивает."
Всё Ок, только у "Лады Калины" нет карданного вала в привычном понимании т.к. это переднеприводный автомобиль. :)
Если уж Алиса решила превзойти пока еще глупенькую Siri, она не должна зачитывать ответ из поисковой выдачи. Ей придётся постичь своим нейросетевым умом все премудрости отечественно автопрома и ответить: "На вашем автомобиле нет карданного вала. Стучит что-то другое. Вот вам телефон хорошего сервиса - ХХХ-ХХ-ХХ"

19

В голосовании за имя просто не было варианта «Леночка».

15

Почему-то первой была ассоциация, что имя выбрали из-за персонажа Алисы Селезнёвой.

13

Логичней было бы назвать Вика по персонажу из Лабиринта отражений.

2

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

9