Нейросеть и блинчики: как фуд-сервис BeFit автоматизировал подбор блюд и ждет рост дохода на 30%

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

Негатив только на пользу

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

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

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

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

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

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

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

Конструктор работает по методу исключения:

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

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

Нейросеть, которая подбирает индивидуальное меню

Над конструктором есть второй слой технологий — нейросети: они помогают генерировать персональное меню для пользователей. Работает это так: алгоритм учитывает, от каких блюд клиент отказывается, и проверяет отзывы на платформе. Далее анализирует более 800 блюд по всей платформе, учитывая:

  • запросы клиента;
  • повторяемость заказов;
  • время суток (не должно быть каши на ужин);
  • себестоимость блюд;
  • калорийность;
  • количество белков, жиров и углеводов;
  • сочетаемость ингредиентов.

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

Также стоимость блюд оценивается в обе стороны: к примеру, не предлагаем «спартанское» меню, то есть максимально дешевое. Потому что оно будет плохо продаваться.

Как это работает технически

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

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

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

Когда мы подстроили техническую часть и перенесли ее на производство, LTV увеличился на 30%.

Выросла ли нагрузка на производство

Тут чистая статистика: поварам не нужно менять ингредиенты в составе, меняется только количество блюд. И производство знает, сколько и чего нужно приготовить на завтра. Если каждый пользователь будет говорить, что нужно убрать из блюда, спустя 20 заказов все процессы посыпятся и бизнес закроется.

В BeFit для поваров увеличилось SKU — количество позиций блюд. Потому что одно дело готовить, когда есть постоянное меню, а другое — по алгоритму, который каждый день предлагает приготовить новое блюдо из 850 позиций.

Производству, конечно, стало сложнее на каждом этапе. Усложняется и сборка: ведь нужно собрать персональные пакеты с уникальным набором еды, а не фиксированные комплекты, как прежде. Сейчас таких «сложных» заказов около 60%.

Дальше — больше: нейросеть, которая готовит блюда

Пищевое производство вроде нашего сильно отличается от ресторана — там для каждого блюда есть повар и свои заготовки. Так заведение может быстро продавать блюда.

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

Появилась мысль: а что, если мы своей нейросети, которая оценивает клиентский опыт, будем «скармливать» все сочетания полуфабрикатов и соусов? Тогда мы сможем генерировать новые блюда.

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

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

При этом мы не заменяем машиной реальных сотрудников — только автоматизируем рутинные процессы. Потому что все сгенерированное нейросетями все-таки нужно проверять человеку.

Кстати, вы можете проверить наш сервис самостоятельно уже сегодня — с промокодом BEFITVC и скидкой 12% на первый заказ.

0
13 комментариев
Написать комментарий...
Vasilii Ganishev

Очень крутые идеи. Желаю успехов в дальнейшей разработке!

Ответить
Развернуть ветку
Михаил Немцан
Автор

Спасибо Вам!

Ответить
Развернуть ветку
Иван Петров
>LTV увеличился на 30%.

Пожалуйста, расскажите, как считали, это важный момент.

Ответить
Развернуть ветку
Михаил Немцан
Автор

LTV считаем при помощи когортного анализа внутри нашей ERP-системы. Мы взяли когорты до внедрения подбора и после внедрения и посмотрели их на горизонте разных периодов (1 мес, 2 мес, год). Затем покрутили их в разрезе разных программ и сценариев использования (похудение, не готовить, спорт и.т.д). В среднем после внедрения индивидуальных рационов LTV одного клиента вырос на 30%

Ответить
Развернуть ветку
Антон Фтешт

Вы сами это ели?

Ответить
Развернуть ветку
Oleg Dubovitskiy

Звучит реально круто! Респект!

Ответить
Развернуть ветку
Михаил Немцан
Автор

Приятно, что оценили: спасибо!

Ответить
Развернуть ветку
RK

божечки
как я рад что родился в 21 веке

Ответить
Развернуть ветку
Александр Прилипко

Кето не планируете?

Ответить
Развернуть ветку
Михаил Немцан
Автор

Пока нет, есть ряд исследований, который показал опасность кето для здоровья на длинной дистанции. Поэтому мы не хотим рисковать.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Serf

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

Ответить
Развернуть ветку
10 комментариев
Раскрывать всегда