Перед 8 Марта некоторые мужчины, которые пользуются «Сбербанк Онлайн», получили от приложения такую рекомендацию: «Если вы не знаете, что подарить девушке, то скажите ей, что уже купили подарок, и попросите угадать какой, тогда она перечислит все то, что реально хочет получить». За этим советом — девять месяцев работы команды из 12 человек и инвестиции. Стоимость разработки конкретной функции неизвестна, но бюджет IT-дочки Сбербанка — компании «Сбертех» — составил 29,7 миллиарда рублей на 2017 год.

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

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

Фотографии

ИВАН Анисимов

Сервис «Советы»

Команда: 12 человек + эксперты предметных областей

Срок разработки: 9 месяцев

Дата запуска: февраль 2017 года

Целевая аудитория: 20 миллионов человек

Зачем Сбербанку agile и scrum

Год назад Герман Греф вернулся из Силиконовой долины и рассказал собравшимся в Сколково, что увидел там такое, отчего у него побежали мурашки. Председателя правления Сбербанка взволновало то, что правительство Норвегии изучает agile. «Когда я вернулся, то сказал: „Ребята, надо что-то со всем этим делать. Если мы дальше будем отставать, то это отставание будет уже, к сожалению, мало сопряжено с возможностью выжить в этом глобальном мире“», — говорил Греф. Agile — гибкая методология разработки, которая может быть применена к любому продукту — будь то мобильное приложение или управление государством. Она постановляет, что простота необходима, работающий продукт — основной показатель прогресса, а непосредственное общение — наиболее практичный способ обмена информацией. Еще одна гибкая методология — scrum. Ее принципы позволяют быстро создать работающий продукт, а потом обновлять его и при необходимости корректировать курс: работа ведется в небольших командах короткими двухнедельными циклами, в результате которых каждый раз появляется новая версия.

Департамент «Банк XXI» — подразделение, которое отвечает за разработку мобильного приложения «Сбербанк Онлайн», начало работать по agile в 2013 году, чтобы уменьшить time to market — время от рождения идеи до выхода продукта. «При подходе к созданию продукта по так называемой каскадной модели процесс разработки строился так: составлялось подробное ТЗ, потом дизайнер два месяца рисовал, разработчики кодили, и продукт получался, скажем, через год, — рассказывают в подразделении. — Но к тому времени все сдвинулось, компания поменялась, функции нужны другие. Продукт оказался не нужен». Теперь работа ведется по scrum: маленькие команды работают над идеей, которая сначала воплощается в прототипе, а потом сразу тестируется — и так снова и снова. В команде, которая занимается «Советами», работают 12 человек. За весь продукт отвечает product owner  — он ведет работу над сервисом, соблюдая баланс между интересами бизнеса и пользой для клиентов. Также он отвечает за backlog — список идей по конкретному проекту, который отсортирован по значимости. «Мы делим набор задач по приоритетам и всегда работаем над самыми важными. Этот список не прибит гвоздями. В этом и есть некоторая гибкость: можно получить обратную связь сразу и уйти в другую сторону, развивая тот же самый продукт», — говорит product owner «Советов» Сергей Комаров.

С ним работают бэкенд- и мобильные разработчики, дизайнеры и аналитики. В команде, занимающейся «Советами», есть две необычные специальности — data-аналитик, который работает с данными, выявляет зависимости и составляет алгоритмы, и data-инженеры, которые занимаются поддержкой инфраструктуры, где хранятся данные. Команде помогают специалисты предметной области — например, UX-тестировщики. Особенная роль в команде — scrum-мастер. Он отвечает за соблюдение всех процедур и устраняет блокеры — препятствия для эффективной работы команды.

Раньше Сергей Сизинцев работал в стартапе в «Сколково», который делал ПО для промышленных предприятий. В 2011 году узнал о scrum. «Я был поражен тем, что scrum решал те вопросы, которые приводили к провалу проекта. Обычно разработка ПО начинается с этапа аналитики — здесь нужно по максимуму заложить образ продукта. Затем идут проектирование, разработка, тестирование и внедрение. В итоге продукт получается далеким от цели пользователя. Scrum мини-итерациями от недели до месяца решает эту проблему: готовый продукт сразу показываешь, в итоге приходишь ближе к ожиданию пользователей и существенно быстрее», — говорит он. Сизинцеву так понравился scrum, что он решил  углубиться в изучение методологии и освоить новую профессию: теперь работает scrum-мастером в команде «Советов» Сбербанка.

Зачем церемониться

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

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

До того как прийти в Сбербанк, Петр Трихин проектировал микропроцессоры. Потом поменял занятие — из инженера превратился в программиста, потому что это «реально круто, интересно и платят хорошо». Теперь Трихин — android-разработчик в команде «Советов». «Scrum изменил мою работу: у меня появилось больше свободы и больше общения с людьми. Раньше как все происходило? Нам давали какую-то задачу, была четкая документация, мы брали и пилили код. Сейчас все сильно поменялось: можно общаться, задавать вопросы аналитикам, что-то менять, предлагать свое. Работать стало гораздо интереснее. Если нужно доработать какую-то фичу, мы собираемся всей толпой — аналитики, дизайнеры, разработчики — и начинаем обсуждать, что и как лучше сделать. После этого появляется четкий план, которому мы следуем в будущем», — говорит Петр.

Зачем нужны советы

Разработкой инструментов PFM (personal finance management) в Сбербанке занялись два года назад. После того как пользователи увидели в приложении, на что тратят деньги, и получили возможность ставить финансовые цели, например накопить на покупку машины, разработчики решили научить людей, «как это делать правильно». Так появилась идея умных советов. «Если раньше пользователь должен был войти в анализ расходов, увидеть разбитые по категориям траты и сделать выводы, то теперь мы сделали это за него: умный помощник сам анализирует его расходы и намечает дальнейшие шаги», — говорит product owner команды «Советов» Сергей Комаров. Его слова пока опережают реальный процесс.

PFM-сервисы есть у нескольких российских банков, но Сбербанк первым решил сделать своего помощника: год назад у Apple и Google были свои разработки, а результаты качественных исследований показали, что такой сервис найдет отклик у аудитории. «За появлением идеи следует ее детальное описание и пользовательские исследования — мы не примем ее, если нет доказательств, что пользователям это действительно нужно», — объясняет Комаров.

После того как идею одобрили и на проект выделили финансирование, сформировалась команда: некоторые люди пришли из других команд компании, а другие — на появившиеся вакансии. До Сбербанка у Сергея Комарова был свой стартап в области онлайн-кино и телевидения. Стартап не пошел, и, чтобы научиться выстраивать процессы, он пришел в Сбербанк. «Масштаб Сбербанка подкупал. Небольшая команда, наверное, и может запустить такой сервис, как „Советы“, но аудиторию в 20 миллионов человек будет набирать очень долго. Нам эта аудитория очень помогает. Мы быстро собираем обратную связь и быстро принимаем решения», — рассказывает он.

Чтобы не советовать пользователям везде по чуть-чуть, разработчики строят логические деревья, где каждая ветка — конкретная жизненная траектория пользователей, рассказывает Комаров. Пример такой ветки — путешествие, конкретная ситуация — клиент взял машину напрокат в Италии. В Сбербанке подсчитали, что за жизнь человек проживает 3 тысячи непохожих друг на друга ситуаций, и к каждой из них можно сделать совет. Начать решили с путешествий и финансовой грамотности. Так, пользователю, арендовавшему машину в другой стране, посоветуют заправляться на второстепенных трассах, потому что это на 7 % дешевле. А людям, которые недавно совершили крупную покупку недвижимости или оплатили образование, посоветуют оформить налоговый вычет.

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

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

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

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

Зачем нужен искусственный интеллект

Для персонализации умных советов используют методы машинного обучения — подраздела искусственного интеллекта, который изучает построение обучающихся алгоритмов. «Как тот или иной алгоритм может выявить, что пользователь собрался в путешествие? Он берет пользователей, которые точно ездили в путешествие (в какой-то момент они начали оплачивать покупки по карте в другой стране), смотрит, какие покупки они совершали до этого, выявляет шаблоны, потом наслаивает их на всю остальную аудиторию. Если другой пользователь ходит в те же самые торговые точки, например, чтобы купить плавательный костюм, крем для загара или что-то еще, системе становится понятно, что он тоже собирается в путешествие. Тогда мы можем начинать давать советы по подготовке к отпуску», — объясняет Сергей. Он отмечает, что с помощью таких алгоритмов можно выявить более неочевидные зависимости — например, банк знает: если пользователь совершил две транзакции в баре, то он с большой вероятностью совершит и третью. А вот между третьей и четвертой уже не такая сильная зависимость.

Модели, которые предсказывают поведение клиентов, разрабатывают другие подразделения Сбербанка — команда «Массовая персонализация» и блок «Риски». Специалисты уже научились выявлять некоторые паттерны, изменения финансового поведения пользователей за какой-то период. «После того как человек сделал крупное приобретение, система это фиксирует. И дальше, исходя из покупки (будь то автомобиль, ювелирное украшение, недвижимость), генерируются советы», — объясняет Дмитрий Берестнев (блок «Риски»). Советы нужны и тогда, когда крупной покупки еще не совершено, а человек только готовится купить, например автомобиль. На этот случай в Сбербанке разработали двухуровневую модель, проанализировав 30 миллиардов транзакций клиентов за три года. В первой части модель предсказывает, что человеку предстоит крупная покупка, во второй — определять, к какой категории она относится.

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

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

Зачем советовать очевидное

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

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

Через пять лет Сбербанк и вовсе сможет принимать 80 % всех решений с помощью искусственного интеллекта, обещает Греф. В том, что система собирает обезличенные траты и накопления пользователей, учится сравнивать их с другими, выделять общее и давать рекомендации, product owner Сергей Комаров не видит ничего того, что могло бы доставить дискомфорт пользователям: «Mногие сервисы используют данные о клиентах. Например, мобильные операторы знают, кому я звонил и где нахожусь. Хотя недавно я включил телевизор, зацепился за футбольный матч, а Facebook посоветовал рассказать об этом друзьям. Откуда он узнал? Я никому об этом не писал. В этот момент я подумал, что система знает про меня слишком много».


Где используются методы машинного обучения

Анатолий Орлов

руководитель лаборатории больших данных ФРИИ

Методы машинного обучения могут использоваться во всех продуктах, где человек принимает какие-то простые повторяемые решения и их можно автоматизировать (например, работу клерков). Бухгалтеров уже почти заменил 1С, диспетчеров такси — «Яндекс» и другие агрегаторы, надеюсь, до журналистов доберутся не скоро. Например, в портфеле ФРИИ есть компания Promobot, которая заменят роботами маркетинговый персонал (в конце 2016 года Сбербанк подписал договор на поставку Promobot. — Прим. ред). Существует ряд прогнозов, которые говорят о том, что благодаря технологиям многие люди будут заменены машинами, некоторые профессии исчезнут. Экономический эффект таких изменений оценивается в 2–5 триллиона долларов.

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

Есть широко известный кейс американского ретейла, компании Target, которая анализировала данные о покупках и высылала купоны со скидками на основе анализа. Однажды Target отправил клиенту подборку продуктов для беременной молодой девушки, что вызвало огромный скандал. Отец семейства уверял, что его дочь не беременна, но в итоге оказался не прав. По изменению модели потребления продуктов и look-a-like анализу Target узнал информацию раньше, чем сам покупатель.

Какие перспективы ждут сервисы на базе машинного обучения

Два самых популярных в мире алгоритма машинного обучения — это нейронные сети и gradient boosted trees. Первое на слуху у всех, второе — незаслуженно обделено прессой, хотя про него знают все программисты. У data scientists даже есть поговорка «When in Doubt, Use Xgboost».

Сбербанку нравятся те же алгоритмы, что и 90 % data scientists всего мира. То, что они делают, сложно назвать ярким и свежим продуктом. Сам алгоритм очень простой, но в масштабах такой компании, как Сбербанк, для него очень сложно собирать данные, героизм именно в этом. Не стоит думать, что в конкретно этой сфере (фича для интернет-банка) произойдет большой прорыв. Для предсказаний типа «из тех миллионов человек, что в 2015 и 2016 годах ездили в отпуск в августе, вероятность того, что они поедут и в 2017-м в августе равна 78 %» не нужен супералгоритм: это можно предположить, глядя на историю поездок. Все нейронные сети будут бороться за остальные 22 % точности. Кардинального же улучшения не произойдет.

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