7 января 2019

Как компьютерное зрение победит очереди и пустые полки в супермаркетах — Валерий Бабушкин, X5 Retail Group

Валерий Бабушкин руководит управлением развития данных в X5 Retail Group, которое применяет технологии машинного обучения и компьютерного зрения в супермаркетах корпорации. Бабушкин входит в сотню лучших специалистов по data science в мире и помогает ритейлеру делать ставку на персонализацию предложения для покупателей и предсказывание появление очередей в «Перекрестках», «Пятерочках» и «Каруселях» по всей России. После AI Conference в Москве он рассказал «Хайтеку» об использовании чеков покупателей для представления клиента в виде вектора, зарплатах специалистов в его области и том, как можно с помощью Coursera и книг работать с машинным обучением на высоком уровне.

«Несложно вырасти на 20%, если вы открыли в полтора раза больше магазинов»

— В своем выступлении вы рассказали, что выручка у X5 Retail Group достигла 1,286 трлн рублей в 2017 году, а сокращение расходов даже на маленькую долю приводит к огромной прибыли. Как X5 расширяется?

— Оборот у Х5 еще будет расти. В целом рынок стремится к консолидации в ритейле. На текущий момент у нас три лидирующих ритейлера занимают примерно 20% рынка, и мы видим по странам развитого капитализма, что эта доля будет около 70–75%.

Каждый день в среднем Х5 открывает по шесть новых магазинов. Пока мы с вами общаемся, Х5 открывает новый магазин (смеется). Действительно, дела идут неплохо, в отличие от некоторых других игроков рынка. Если смотреть открытые данные, у одного из них при росте площадей на 12% оборот увеличился всего на 84%. Несложно посчитать: они начинают работать в минус. Есть такой показатель, LFL — Like for like, сравнение одних и тех же магазинов год в год. У Х5 по нему хоть и небольшой, но плюс. То есть несложно вырасти на 20%, если вы открыли в полтора раза больше магазинов, но это отрицательный рост по факту. Если вы растете за счет того, что и старые магазины работают лучше, и новые открываются, то это довольно позитивно.

— Как вы считаете, какая доля заслуги вашей команды в этом?

— Пока не очень большая, потому что команда сформирована не так давно. Давайте будем откровенны, рост X5 в 2017 году вряд ли обусловлен тем, что мы применяем анализ данных, с помощью команды, созданной в 2018 году.

Руководитель нашей дирекции — Антон Мироненков, человек, который принимал участие в создании компании Х5. Он занимался слиянием «Перекрестка» и «Пятерочки», после чего и появилась Х5. 

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

Антон Мироненков, руководитель дирекции больших данных X5

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

Вся информация в чеке — если вы купили водку, то вам больше 18 лет

— Если я приду в «Перекресток» и сделаю покупку, что из всего этого возьмете вы для анализа?

— Чек. Ваши товары довольно хорошо характеризую вас. Если покупаете памперсы, наверное, у вас есть маленький ребенок. Если водку, то вам больше 18 лет. Человек может купить чипсы, и это будет с определенной вероятностью подросток 16 лет. А если купили дневник, то либо вы, либо у вас в семье есть ребенок от семи до 17 лет. Это уже немало информации.

Представьте: вы приходите в магазин, смотрите на какие-то товары и понимаете, что магазин дорогой, дешевый или средней ценовой категории. В «Пятерочке» от 4 до 8 тыс. уникальных товаров. Вряд ли вы ходите с блокнотом и записываете цены на все множество товаров, а потом смотрите средние цены на товары по городу и делаете вывод. Достаточно посмотреть на пять-десять товаров. А тем, на какие товары вы смотрите, мы тоже занимаемся.

Товары, на которые люди смотрят, тоже меняются со временем. Простой пример: 20 лет назад не было никаких товаров, связанных с мобильной связью. Сейчас вы можете, не во всех магазинах, но купить сим-карту. 20 лет назад в России вообще были времена чуть пожестче, чем сейчас, и потребление было совершенно другим.

— Как происходит составление профилей клиентов для предложения им скидок?

— Есть два продукта: профиль клиента и лояльность. Профиль клиента — это такая задача, когда у вас нет какой-то разметки и используются разные подходы. Мы используем различные подходы к кластеризации — начиная от стандартных статистик, просчитать какие-то зет-скоры, робастные отклонения от медианы, и заканчивая Word2vec, наложенным на чеки, и «переводом» человека в вид вектора усредненного через TF-IDF по Word2vec.


Зет-скоры, Z-score — статистическая оценка, которая выражает расстояние (измеряемое как среднеквадратическое отклонение) данного уровня от среднего значения по набору данных. В частности, Z-оценка является выходным показателем кредитоспособности компании и степени риска ее банкротства.

Робастные отклонения, от англ. robust, «надежный» — устойчивость оценок по отношению к выбросам в данных. Считаются относительно медианы.

Word2vec — инструмент, позволяющий представлять слова в виде векторов.

TF-IDF — термин в статистике, обозначающий степень важности слова в корпусе текстов.


Если у вас есть какая-то модель, которая делает персональное предложение, то давайте считать, что кластеризация удачная, если после добавления признаков качество моделей улучшается. Тут можно посчитать и экономический эффект, и какую-то метрику.

— В какой доле магазинов используются ваши разработки?

— Во всех. Персонализированную скидку мы протестировали на полумиллионе пользователей, чтобы понять ее эффект во всех 14 тыс. магазинов Х5. Мы собираем интерактивную отчетность со всех этих магазинов. У нас есть продукт промо, который присутствует во всех магазинах. У нас есть матрица ассортимента, у нас есть предсказание спроса. Они следят, чтобы в магазине, во-первых, была курица и, во-вторых, курица не стухла.

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

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

Мы будем это тестировать его примерно в 150 магазинах, и скорее всего, в Москве. Во-первых, мы сами в Москве, а, во-вторых, здесь трафик больше. Тогда станет понятно, как сделать лучше пользовательский опыт и какая от этого польза Х5.

«Мне очень не нравится слово “дата-сайентист”»

— Вы расширяете свое управление?

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

— Вы говорили, что у вас 32 человека работают, сколько еще будете набирать?

— Еще где-то 20–30. У нас будут использоваться теперь компьютерное зрение и речевые технологии в рамках моего управления. Будут два новых отдела, то есть это еще плюс десять человек, по-моему, еще 10–15 согласовано на следующий год. Есть так называемые проектные ставки. Мы ожидаем, что это плюс 30–36, где-то за 60 человек. Это конкретно те люди, которые занимаются анализом данных и машинным обучением.

— Кого приглашаете на работу?

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

Ищу людей, которые умеют программировать на Python, знают теорию вероятности и математическую статистику, если мне нужно моделирование, то требуются навыки машинного обучения. Но самое главное — это способность человека мыслить и анализировать. Я все больше прихожу к мысли, что аналитическое мышление и критическое — это то, чему очень сложно научить. Если к 20–25 годам уже есть какое-то мировоззрение, оно вряд ли изменится.

— Вы это поняли в Х5?

— Не то, чтобы именно Х5 к этому меня привел. Я же тоже смотрю на людей, общаюсь, вижу, как они работают. Как известно, лучшее собеседование — это испытательный срок. И вы в какой-то момент видите, что это просто не для этого человека. То есть вроде и мехмат окончил, вроде не дурак, но не его. Нет правильного настроя, не так видит вещи. Это было еще в книжке у Даниэля Канемана «Thinking, Fast and Slow», где он описывал, что соответствует критическому мышлению. Это в том числе пессимистичный взгляд на мир, и это больше врожденное качество, чем приобретенное, к сожалению или к счастью.

— Если приходит аналитик, и после испытательного срока вы понимаете, что он подходит, на что человек может рассчитывать?

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

Если брать средние по рынку зарплаты, джуниор получает где-то на 120–150 тыс. рублей до налогов в месяц, мидл — до 250 тыс. Сеньоры порядка 400 тыс. рублей. Верхняя планка: я лично держал оффер в руках на ведущего разработчика, это было больше 600 тыс. рублей.

«Data science — действительно какая-то “вишенка на тортике”»

— Как вы начали заниматься машинным обучением?

— В университете вообще не было машинного обучения. Потому что я окончил вуз в 2012 году, примерно тогда же произошел очередной подъем вещей, связанных с ним. Не успел. Закончил два университета, последний — это Университет прикладных наук в Карлсруэ, магистратура по мехатронике. До этого учился в Московском институте химического машиностроения, сейчас это называется Московский политех. Машинным обучением я ни там, ни там не занимался.

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

— Как вы этому самообучились?

— Есть старая поговорка, что на Coursera есть два серьезных курса, даже полтора. Это курс Хинтона про машинное обучение и нейронные сети (курс более не доступен на Coursera, но его можно посмотреть на YouTube — «Хайтек») и курс Дафны Коллер про вероятностные неографические модели.

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

Но Coursera — это не единственное средство. Я читаю очень много книг. Сейчас закончил, кстати, книжку Брэдли Эфрона по статистике (американский статистик, лауреат Национальной медали почета США — высшей государственной награды для американских ученых — «Хайтек»). До этого — книгу Йена Годфеллоу (американский специалист по машинному обучению, работает в Google Brain — «Хайтек») по глубокому обучению. Это непрерывный процесс обучения. Coursera — лишь один из ресурсов, Kaggle (онлайн-сообщество специалистов по компьютерным наукам, где регулярно проводятся соревнования — «Хайтек») — это другой, но главное — чтение, чтение, чтение и проверка. Если вы прочитали и не поняли, это плохо. Если вы поняли, как это работает, то можете что угодно сделать.

Это как с таблицей умножения. Представьте, что человек таблицу умножения не понимает, но выучил наизусть. Его спрашивают: «Шесть на шесть?» — «36». — «Семь на восемь?» — «56». — «Ну хорошо, последний вопрос, 10 на 11?» — Человек говорит: «Я не знаю, в таблице умножения этого не было». Ну и все. Вот с такими людьми я часто встречаюсь. 10 на 11 гораздо проще посчитать, но этого же нет в таблице, надо понимать принцип. Если вы понимаете принципы, дальше все гораздо легче.

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

— Расскажите о вашем курсе по data science в ВШЭ.

— Это бесплатный курс, он в рамках стандартной программы, на нем рассказываю базовые простые вещи, которые для многих людей — откровение. Например, какие есть метрики, зачем они вообще существуют, как друг от друга отличаются, в каких случаях какая нужна, как проверить вашу идею, что такое A/B-тест. Это то, что я для себя вывел, что важно знать людям и что им действительно нужно в работе.

— Каким вы видите будущее ритейла через пять-десять лет?

— Если мы про продуктовый ритейл говорим, то формат гипермаркетов будет отмирать. Это видно сейчас по Штатам, как там отмирают большие торговые центры, и в России, кстати, тоже. Раньше какой был паттерн потребления? Мы приходим в торговый центр, в кино, в ресторанный дворик, еще что-нибудь купим. Сейчас приходим домой, ivi, Okko, Netflix, Яндекс.Еда, Delivery Club, доставка из ресторана, шопинг онлайн. Надо идти в сторону персонализации.

— Что это будет значить для потребителя?

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

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

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