Нейросеть и блинчики: как фуд-сервис BeFit автоматизировал подбор блюд и ждет рост дохода на 30%
Клиенты часто бывают привередливы: кто-то просит убрать из своего блюда лук, так как не переносит этот ингредиент, для кого-то лук жизненно необходим. Казалось бы, всем не угодишь, но у нас получилось — и все благодаря нейросетям. Основатель BeFit Михаил Немцан рассказывает о технологии.
Негатив только на пользу
Два года назад пользователи начали все чаще жаловаться в поддержку на меню. Просили изменить состав супов, каш, начинку блинов. Было много запросов на вегетарианские блюда или рацион без молочных продуктов.
Знаю коллег, которые в такой ситуации нанимают орду диетологов — те, в свою очередь, выверяют меню под каждого человека. Но мы поняли, что у нас так не сработает: потратим все деньги. Поэтому нашли другой выход из проблемы.
Сначала решили собирать меню по запросам. К примеру, сделали рацион для вегетарианцев — это заняло недели, мы адаптировали все процессы, в том числе производство. Но запросы росли, и найти «золотую середину» было почти невозможно, потому что:
- у всех индивидуальные предпочтения в еде;
- у пользователя может быть аллергия на продукт или индивидуальная непереносимость.
Необходимо было сделать рацион более узким и, в то же время, автоматизировать процесс, чтобы не создавать сотню разных вариантов — у нас просто не хватило бы на это ресурсов.
Поэтому мы придумали конструктор. Массовое производство работает как конвейер: ему нужно сделать 100 блинчиков, 150 фрикаделек, и все. Но когда ты ставишь задачу сделать 100 блинов и еще один — из гречневой муки, весь механизм ломается. Важно было это учесть.
В ноябре 2019 года начали писать код конструктора и в марте 2020-го уже внедрили первую версию. Перед этим все новогодние праздники мы оптимизировали производство: переделали сборочный и заготовочный цеха, вдвое увеличили камеры. И с сентября начали активно пользоваться.
Конструктор работает по методу исключения:
- у нас есть множество блюд;
- пользователь выбирает «лишний» ингредиент;
- приложение находит и убирает все блюда, включающие в себя этот ингредиент;
- предлагает вместо них альтернативы.
То есть мы заменяем не ингредиент в блюде, а сами блюда. Не нравится вам миндальное печенье, тогда не морочим голову и просто меняем его на омлет с томатом и зеленью. На платформе у каждого блюда указан подробный состав, поэтому их легко фильтровать. Так мы не перегружаем производство и помогаем клиентам с выбором.
Нейросеть, которая подбирает индивидуальное меню
Над конструктором есть второй слой технологий — нейросети: они помогают генерировать персональное меню для пользователей. Работает это так: алгоритм учитывает, от каких блюд клиент отказывается, и проверяет отзывы на платформе. Далее анализирует более 800 блюд по всей платформе, учитывая:
- запросы клиента;
- повторяемость заказов;
- время суток (не должно быть каши на ужин);
- себестоимость блюд;
- калорийность;
- количество белков, жиров и углеводов;
- сочетаемость ингредиентов.
Система обрабатывает множество данных и «думает», прежде чем предложить релевантное меню. Даже если клиент исключит почти все ингредиенты, из которых мы готовим, алгоритм все равно постарается подобрать разнообразные блюда. Для людей с ограничениями в питании это настоящее спасение.
Также стоимость блюд оценивается в обе стороны: к примеру, не предлагаем «спартанское» меню, то есть максимально дешевое. Потому что оно будет плохо продаваться.
Как это работает технически
Основная сложность была в разработке. Из-за того, что в системе так много параметров, возникает «комбинаторный взрыв» — когда алгоритм не справляется с огромным массивом данных.
К примеру, всего у нас есть 850 вариантов блюд, только часть из них нужно уместить в 35 свободных слотов в приложении. То есть алгоритм не может абсолютно точно решить, что именно нужно предложить пользователю — нужны «неточные» системы вроде нейросетей. Наш алгоритм работает на двух уровнях:
- Первый генерирует возможные варианты — используется как метод ветвей и границ. Мы рассматриваем все генерации, отсекаем лишнее и оставляем только подходящие.
- Далее алгоритм самостоятельно изучает отзывы клиентов на платформе, оценивает динамику, сам оптимизирует и придумывает новое меню.
Когда мы подстроили техническую часть и перенесли ее на производство, LTV увеличился на 30%.
Выросла ли нагрузка на производство
Тут чистая статистика: поварам не нужно менять ингредиенты в составе, меняется только количество блюд. И производство знает, сколько и чего нужно приготовить на завтра. Если каждый пользователь будет говорить, что нужно убрать из блюда, спустя 20 заказов все процессы посыпятся и бизнес закроется.
В BeFit для поваров увеличилось SKU — количество позиций блюд. Потому что одно дело готовить, когда есть постоянное меню, а другое — по алгоритму, который каждый день предлагает приготовить новое блюдо из 850 позиций.
Производству, конечно, стало сложнее на каждом этапе. Усложняется и сборка: ведь нужно собрать персональные пакеты с уникальным набором еды, а не фиксированные комплекты, как прежде. Сейчас таких «сложных» заказов около 60%.
Дальше — больше: нейросеть, которая готовит блюда
Пищевое производство вроде нашего сильно отличается от ресторана — там для каждого блюда есть повар и свои заготовки. Так заведение может быстро продавать блюда.
У нас же блюдо собирают как машину. Вот есть компоненты: гарнир, нарезка, мясо. Берем блюдо, разбираем его на полуфабрикаты. Полуфабрикаты разбиваем по цехам, цеха готовят. Есть повара, которые из этих полуфабрикатов собирают блюда. Это конвейерная модель.
Появилась мысль: а что, если мы своей нейросети, которая оценивает клиентский опыт, будем «скармливать» все сочетания полуфабрикатов и соусов? Тогда мы сможем генерировать новые блюда.
Если до этого мы упростили задачи диетолога — алгоритм за час подбирает персональное меню, то теперь можно делегировать проблемы технолога. Сейчас такой специалист помогает подобрать блюдо определенной калорийности под конкретное направление — например, высокая калорийность с гречневой крупой и мясным соусом. И технолог сидит, думает.
А нейросеть может сама перебрать все варианты соуса, гарнира, основного белка, способы приготовления. Проанализировать все отзывы и предложить технологу 20 вариантов, а человек уже сам выберет наиболее интересные.
При этом мы не заменяем машиной реальных сотрудников — только автоматизируем рутинные процессы. Потому что все сгенерированное нейросетями все-таки нужно проверять человеку.
Кстати, вы можете проверить наш сервис самостоятельно уже сегодня — с промокодом BEFITVC и скидкой 12% на первый заказ.
Очень крутые идеи. Желаю успехов в дальнейшей разработке!
Спасибо Вам!
>LTV увеличился на 30%. Пожалуйста, расскажите, как считали, это важный момент.
LTV считаем при помощи когортного анализа внутри нашей ERP-системы. Мы взяли когорты до внедрения подбора и после внедрения и посмотрели их на горизонте разных периодов (1 мес, 2 мес, год). Затем покрутили их в разрезе разных программ и сценариев использования (похудение, не готовить, спорт и.т.д). В среднем после внедрения индивидуальных рационов LTV одного клиента вырос на 30%
Вы сами это ели?
Звучит реально круто! Респект!
Приятно, что оценили: спасибо!