image
Самая главная формула успеха — знание, как обращаться с людьми. Теодор Рузвельт


В прошлой статье попытался рассказать про основы аналитики ценообразования. Теперь давайте поговорим о более интересных вещах.


Вы когда-нибудь задумывались о том, почему вы покупаете определенные продукты в магазинах, как выбираете среди множества аналогов? Скорее всего, четкого ответа под все возможные походы в магазин дать не получится, многие из них спонтанны. Но общая идея очевидна – при походе в магазин вы пытаетесь закрыть имеющуюся потребность (в еде, гаджетах, развлечениях, блэкджеке). В данной статье на примере продуктовых ритейлеров расскажу об имеющемся опыте, как используя некоторые базовые логические предположения и анализ сообществ в графах, можно определить, как именно покупатели выбирают товар.


Введение


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


image


Данные кейсы построены на известном в узких кругах подходом, который называется Market Basket Analysis (MBA) или анализ ассоциативных правил. Основная идея подхода — построить набор правил вида “когда покупают X, обычно покупают и Y” и использовать их в дальнейших процессах (персональные рекомендации, выкладка и т.п.). Правила позволяют определить товары комплементы, которые дополняют друг друга. Данный подход довольно популярен ввиду простоты реализации и хорошей интерпретируемости результатов. Основные проблемы заключаются в том, что не всегда понятно, как применять полученные правила и как, кроме комплементов, определить товары заменители-субституты. Попробуем немного улучшить данный подход: сгруппировать товары в зависимости от потребностей покупателей и понять, как покупатель принимает решение о покупке.


Усложняем MBA, ищем товары заменители


Давайте немного усложним подход MBA и рассмотрим дополнительно информацию по картам лояльности, которые есть у многих российских ритейлеров (для онлайна можно использовать ID клиента). Проведем MBA не на уровне чековых данных, а на уровне карточек (т.е. вместо ID чека будем использовать ID карты/ID клиента). В результате мы получим пары товаров, которые связаны друг с другом на уровне клиента, т.е. если клиент купил товар X, то он также покупает товар Y и ключевое здесь, что товар Y может быть куплен во время другого похода в магазин.


Давайте подумаем, как можно определить товары заменители. Сделаем логичное предположение, что человек не часто покупает товары заменители в одном чеке (вы же редко покупаете стиральный порошок 3 и 5 кг одновременно). Это самое важное предположение во всем анализе, которое хорошо работает для продуктового ритейла/хоз.товаров и с небольшими корректировками для остальных видов ритейлеров. Из этого предположения можно сделать вывод, что если пара товаров часто покупается клиентами, но при этом редко встречается в одном чеке, то с большой уверенностью можно сказать, что это товары заменители. Утверждение довольно сильное и требует предварительного качественного анализа связей – необходимо убрать статистически незначимые связи, убрать “бананы” и пр. Для оставшихся связей можно ввести метрику W, которая отражает, насколько чаще товары покупаются в рамках одной карты лояльности, чем в одном чеке.


В результате у нас образовались пары товаров вида “товары X и Y редко берут в одном чеке, но часто берут одни и те же люди” с некоторой мерой связи W. Чем эта мера связи больше, тем больше товары можно считать заменителями.


Был MBA, стал SNA


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


image


Из графа явно видны “сообщества” товаров, сильно связанные друг с другом. Давайте применим алгоритмы поиска сообществ в графах (social network analysis, SNA) и посмотрим на результат. Для примера использован алгоритм Лувейна. В результате должны получится группы товаров-заменителей. Посмотрим на пример результата:


  • DANONE АКТИВИА вишня 2,9% 150г
  • DANONE АКТИВИА клубника 2.4% 150г
  • DANONE АКТИВИА черника 2,9% 150г
  • DANONE АКТИВИА мюсли 2.4% 150г
  • DANONE АКТИВИА отруби и злаки 2,9% 150г

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


  • Крем Люкс для лица для сухой кожи
  • Крем Янтарь для лица для сухой и нормальной кожи
  • Невская косметика крем для лица морковный для сухой и чувствительной кожи
  • Невская косметика крем для лица огуречный для жирной и комбинированной кожи
  • Невская косметика крем для лица оливковый для сухой и нормальной кожи
  • Невская косметика крем для лица женьшеневый вокруг глаз

А теперь иерархия


Алгоритм Лувейна позволяет строить иерархии сообществ. В упрощенном виде – давайте построим сообщества разных размеров, развернем их в дерево (дерево принятие решений покупателя, customer decision tree) и посмотрим на пример результата:


image


Ура! Полученное дерево отлично трактуется с точки зрения бизнес логики и интуиции – человек определился, что хочет сгущенку, потом выбрал между банкой и пакетом, затем выбрал цену, по которой готов купить товар. Теперь мы понимаем по каким характеристиками человек закрывает потребность в сгущенке – вид упаковки и ценовой сегмент. В данном конкретном примере нет привязанности к бренду и прочих вещей, которые часто любят приписывать к товару.


Дерево красивое, а что дальше


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


  • в идеале необходимо, чтобы каждую потребность закрывал хотя бы один товар. Т.е. в каждом магазине сети должны присутствовать товары, закрывающие потребности покупателей. Т.е. вместо 20 железных банок сгущенки лучше иметь 10 железных банок и 10 пакетов.
  • в рамках одной потребности товары наиболее сильно каннибализируют друг друга. Т.е. теперь мы ограничены набором товаров, в рамках которых можно рассчитывать кросс-эффекты для ценообразования и прогнозирования спроса.
  • данное дерево помогает при выкладке товаров на полку (или порядок товаров на сайте)
  • в персональных рекомендациях дополняет классический MBA для формирования предложений cross-sale

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


Надеюсь было интересно! Оптимизируйте процессы, кластеризуйте графы, оптимизируйте хранение данных (ведь Garbage In – Garbage Out) и получайте классные результаты.

Комментарии (27)


  1. Aingis
    20.12.2018 11:53

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

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

    Правильно будет говорить про сгущённое цельное молоко с сахаром.


    1. nidaylokn
      20.12.2018 12:31

      Покупатель получает ровно столько, сколько он готов заплатить. Не очень понимаю вашу границу между «продавать можно» и «продавать нельзя». Крафтовое пиво, которое под ГОСТ не подходит, и поэтому называется «пивным напитком» можно или нельзя? А соевое молоко? А выпечку для диабетиков с аспартамом вместо сахара?

      Вот если бы на банке «сгущенки» было написано «молого сгущеное цельное с сахаром», а по факту состав был бы примерно как описанный вами, то да. Но ведь производитель не скрывает состав продукта.


      1. hdfan2
        20.12.2018 13:48

        Могли бы хотя бы сделать как с сыром (сыром можно называть только продукт из молока, а с растительным жиром — только «сырный продукт»). Так и тут, могли бы заставить писать «сгущёнка» только на настоящей сгущёнке, а на херне с пальмой — «молокосодержащий сгущённый продукт». Запрещать, конечно, излишне — достаточно правильно маркировать.


      1. Aingis
        20.12.2018 16:16

        Я скорее говорю, что продавать нельзя с точки зрения норм этики и морали. Фальсификат, который покупают в основном по ошибке. По сути это злоупотребление доверием, и даже есть соответствующая статья в УК, но доказать это злоупотребление сложно. Хотя даже дизайн упаковок сделан намеренно похожим на настоящее сгущённое молоко, которое делалось «по ГОСТу». Да, и, прямо скажем, есть куча более опасных преступлений, требующих внимания.

        То, что вы перечислили, подходит под определение фальсификата? Обманывает покупателей? Вот вам и ответ.


    1. bro-dev0
      20.12.2018 22:23

      Не могу нагуглить, а вареная сгущенка как должна правильно называться.


    1. roscomtheend
      21.12.2018 13:42

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


  1. bopoh13
    20.12.2018 12:38
    +1

    Моя аналитика потребителя: цену * 1000 / вес продукта. Затем смотрю состав, пробую, если нравится — добавляю штрих-код в рекомендуемый список покупок + сохраняю цену и дату покупки.


    1. ximik666
      20.12.2018 15:25
      +1

      Если не секрет, куда сохраняете? Приложение?


  1. Yastreb1332
    20.12.2018 13:43
    +3

    вся эта аналитика разбивается о список покупок у меня в руках.


    1. Dreamastiy Автор
      20.12.2018 14:18

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

      А подход из статьи помогает определить на какие параметры товаров в среднем ориентируется покупатель и какие потребности эти товары закрывают.


      1. Yastreb1332
        20.12.2018 14:28

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


        1. Dreamastiy Автор
          20.12.2018 14:40

          Массовые скидки — это отдельная головная боль для ритейлеров. На текущий момент доля покупок по массовым промо в России огромна. Вот здесь кратко описана ситуация: Промоакции достигли почти 2/3 продаж ритейла. Каждая компания решает эту задачу как может. Возможно Ашан нашел свой путь :)


          1. Yastreb1332
            20.12.2018 14:57

            да все эти промоакции из той же оперы что и скидки на Али, ограниченное время и до 70%. но после окончания скидок они опять продлеваются. короче это все мягко говоря обман недалеких людей.


            1. vKreker
              21.12.2018 01:30

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


              1. roscomtheend
                21.12.2018 13:50

                Иногда скидки позволяют выбрать — что готовить курицу или свинину, или какой суп (если есть). Хотя тут, скорее, речь о конечной цене — иногда со скидкой дороже, чем в другом магазине без.
                Или какое моющее средство из 2-3 примерно одинаковых (опять же соседнее без скидки может выйти дешевле, но именно одинаковых — есть те, кто сильно хуже, а есть те, кто не нравится по другим причнам, например, сильному запаху).


  1. Next_Gen
    20.12.2018 15:45

    Статья познавательная, интересная, в плане того в каких областях применять ML…

    Я вот на что обратил внимание…:
    "… Теперь мы понимаем по каким характеристиками человек закрывает потребность в сгущенке – вид упаковки и ценовой сегмент. Здесь нет привязанности к бренду и прочих вещей, которые часто любят приписывать к товару."

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


    1. Dreamastiy Автор
      20.12.2018 16:04

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

      Пример с маслом
      image


      1. Vitvitsky
        20.12.2018 16:14

        Как насчет полки, где в одном сегменте не менее 3 брендов?(упаковка, цена плюс-минус рядом)
        Как насчет класса покупателей, где определяющим фактором является цена?
        И поскольку промо занимает не менее 55% продаж в торговом обороте, то согласитесь, позицию которую вы не могли себе позволить вчера, а сегодня в акцию вы захотите купить(изменение ценового сегмента).


        1. Dreamastiy Автор
          20.12.2018 16:27

          Как насчет полки, где в одном сегменте не менее 3 брендов?(упаковка, цена плюс-минус рядом)

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

          Как насчет класса покупателей, где определяющим фактором является цена?

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

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


          1. Next_Gen
            20.12.2018 16:43

            А вот вам контрольный вопрос (тестовый для команды) :) Почему в пиве оно есть?


      1. Next_Gen
        20.12.2018 16:35

        :) Нет! Не "… привязанность к бренду может присутствовать", а она есть везде, но из полученных данных мы, в данном случае, не можем её интерпретировать…
        Если у вас есть сомнения по поводу того, существует влияние бренда или нет, то выставьте в торговый зал две палеты бутылок, одинаковых по объему, форме, цвету и цене… но на одних напишите Кока_Кола, а на других Ноунейм_Бренд… результат не заставит себя ждать…

        Пример с маслом не слишком наглядный, прокомментируйте, пожалуйста…

        Что касается опыта… какие позиции и сколько лет?


        1. Dreamastiy Автор
          20.12.2018 17:25

          Пример с Кока-Колой похож на пример с йогуртами Данон из статьи — для них бренд важная характеристика. Конечно такое поведение есть и в других категориях, но не везде. Данные показывают, что статистически значимая связь в рамках бренда есть не всегда. Если в вашем эксперименте поставить две банки сгущенки одинаково оформленные, одна под брендом "Глубокое", другая "Волоконовское" какую вы выберете?

          Пример с маслом не слишком наглядный, прокомментируйте, пожалуйста…

          По маслу — идем слева направо. Сначала товары объединились в рамках бренда(Экомилк/Тысяча озер), это группы в которых товары наиболее заменяемы и их метрика W наиболее велика. Далее товары объединились в большую группу — малой и большой массой (180г/450г) и далее в группу Масло.
          Что касается опыта… какие позиции и сколько лет?

          Приезжайте к нам в гости — познакомимся :)


          1. Next_Gen
            20.12.2018 19:22

            … статистически значимая связь в рамках бренда есть не всегда.
            это мне больше нравится…

            но… я какую мысль хочу донести до вас и из-за чего прицепился к влиянию бренда…

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

            Приезжайте к нам в гости — познакомимся :)

            С удовольствием! А слабо на собеседование пригласить? :)
            Коротко о себе:
            Маркетинг, трейд-маркетинг, прямые продажи — 10 лет
            Сейчас прохожу курс обучения по специальности «Разработчик ИИ»…


            1. Vitvitsky
              21.12.2018 09:43

              Позвольте пообщаться с вами в переписке :)

              Маркетинг, трейд-маркетинг, прямые продажи — 10 лет

              Уточню для начала: Ваш опыт со стороны производителя, но не ритейла?
              Статистические значения это не есть суть, это тень происходящего в глубинах сознания потребителя процесса принятия решения о покупке… и именно этот процесс значим для нас, но мы не всегда можем его интерпретировать, поскольку ограниченны в статистических данных, которые позволили бы нам его реконструировать и определить интересующие нас взаимосвязи… и в не зависимости от того насколько сильно влияние бренда на решение конкретного индивида, и есть ли данные для его определения, оно есть (влияние)…

              Здесь у меня родилось ощущение, что вы прямо хотите знать точные ответы на свои вопросы.
              Дмитрий из ритейла, у меня тоже есть опыт в ритейле(но не такой прокачанный в исследовательском плане). Но тем не менее, могу сказать, что математические модели в эксплуатации в ритейле дают точность весьма далёкую от желаемой(например от 100%).

              Далее, любые, самые прекрасные, разработки маркетологов от поставщиков могут разбиться о суровую реальность ритейла, когда в магазине должно быть X продукта высокого ценового сегмента, Y продукта среднего, Z низкого, в разных пропорциях, которые принесут максимальный результат и широкий охват покупателя, с ограничением полки магазина. И в связи с этим зачастую нет возможности экспериментировать с ассортиментом и искать эмоциональные переживания покупателя от конкретного бренда. При прочих равных условиях, если позиция товара или новая позиция(мы же об эмоциях говорим?) выглядит как позиция более высокого ценового сегмента, чем обычно выбирает покупатель, но по цене покупателя, то вот тут можно поговорить об эмоциях, ведь покупатель должен понять, что эта позиция стоит дороже того, что он обычно покупает.

              Модели о которых говорит Дмитрий, если я правильно понял)), помогает предсказать обычное среднее поведение покупателя, с прицелом на конкретизацию покупателя. А эмоции, они за рамками.


              1. Next_Gen
                21.12.2018 15:26

                Позвольте пообщаться с вами в переписке :)

                Нет.


  1. bro-dev0
    20.12.2018 22:32
    +1

    Давно не ходил в магазин, всё заказываю доставкой. Закупаюсь обычно так, открываю категорию сортирую по цене за килограмм и беру самую дешевую или самую дешевую кроме фирменного продукта(то что надо, каждый день и т.д.) и так прохожусь по категориям пока не наберу на стоимость бесплатной доставки, сейчас это 1900р.
    Для этого написал небольшой скрипт который срабатывает на странице категории, он открывает всю пагинацию чтобы было на 1 станице всё товары, считает за кг цену и сортирует, вот так выглядит.
    joxi.ru/D2P3PeEfpOoZ0m
    Еще писал себе скрипт который раз в день проверяет мясо и если есть не курица дешевле 200р/кг то шлет мне на почту уведомление, до сих пор работает но че-то не прижилось, я по факту сам каждый день открываю и вручную мониторю все равно.


  1. alexhott
    21.12.2018 11:26

    Я покупаю шею сырокопченую так:
    1 Сразу отбрасываю ".овно", которое раз купил и выбросил.
    2 Щупаю — должна быть твердая
    3 Читаю состав
    4 Если п. 3 удачно — выбираю кусочек потоньше и прослойки сала примерно 10%
    Если не нашел
    иду к заменителям — балык, суджук, пасторма и копаюсь там.

    Залейте в факторы еще состав продукта — ваши графы могут подкорректироваться.
    Даже если кто-то состав не читает, тона вкус большинство отличает нормальное от ненормального.