Как сортировать товары в категории?
4По цене? Во возрастанию или убыванию? По популярности? А что такое "популярность"? Новинки сверху? Скидки сверху? По маржинальности? Персонализированно? Это как вообще?
Когда маркетолог магазина разобрался с кучей остальных проблем и наслушался на конференциях псевдопрактических докладов о персонализации на сайте, он начинает задумываться о том, как же вывести товары в категориях так, чтобы из этого получилось что-то хорошее. В eCommerce "хорошее" — это заработать больше денег. А вот как это сделать — уже зависит от особенностей самого магазина.
Сейчас популярны такие виды сортировки товаров в категории:
- по популярности;
- новинки сверху;
- по цене вверх или вниз.
Намного реже встречается сортировка по релевантности, она же персонализация. Реже — потому что никто не знает, как ее сделать правильно.
Фактически базовая сортировка товара считается по такой формуле:
W = (K1 * Popularity + K2 * Trending + K3 * Seasonality + K4 * Personalization + K5 * Price + K6 * Profit + K7 * PriceSensitivity + K8 * BrandSensitivity * IN(PreferredBrand) + K9 * DiscountSensitivity + K10 * NoveltySensitivity * isNew) / 10
Внимательный читатель задаст логичный вопрос: "Ээээ, че?".
Я объясню все по порядку.
Первое: что такое W? Это число, разное для каждого товара, по которому мы будем сортировать товары. Представьте, что вы решили сортировать их по цене. Цена — это число, и вы можете сортировать товары по возрастанию или убыванию.
Теперь представьте, что вам нужно сортировать товары не по цене, а по какому-то другому числу. В логике ничего не меняется: у каждого товара есть числовая характеристика W, по которой можно сортировать. Как правило, в порядке убывания: чем больше число, тем больше товар подходит для покупателя и магазина, а значит, товары с большим W должны быть выше на странице.
Второе: W для каждого считается по формуле. Выше я привел почти полную формулу, которая используется в REES46 (кое-что опустил, чтобы вы смогли дочитать хотя бы до этого места).
Третье: в формуле есть коэффициенты K0,..K9. Эти коэффициенты влияют на важность каждого компонента формулы. С их помощью вы можете управлять тем, насколько каждый компонент влияет на выдачу товаров. Например, если вы продаете бытовую технику, и вам в принципе не важна сезонность товаров, сделайте K3 равным 0 и все – сезонность не влияет сортировку. Если вы хотите больше продавать высокомаржинальных товаров, сделайте K6 самым большим значением и товары, дающие вам максимальную прибыль, будут чаще появляться в начале товарной выдачи. И так далее. Коэффициенты — это дробные числа от 0,0 до 1,0, Например: 0,3374
Четвертое: показатели. Они также должны быть между 0 до 1.
Лирическое отступление про слово "смапить" (от английского слова "map", то есть "карта"). Чтобы наша формула работала, нужно "смапить" числовые показатели так, чтобы каждому значению соответствовало число от 0 до 1, пропорциональное разнице между этими числами. Например, у нас есть три товара, один из них продавался 4 раза, второй 2 раза, третий 1 раз. Если смапить эти числа на шкале от 0 до 1, то число 4 (как самое большое) будет единицей, число 2 будет соответствовать 0,5, число 1 будет соответствовать 0,25.
Теперь подробнее о показателях:
Popularity (популярность) — количество продаж каждого товара за последние 3 месяца.
Trending (трендовость) — как популярность, только за период 2 недели.
Seasonality (сезонность) — соответствие товаров текущему сезону. Имеет значение 0, если не соответствует сезону, 1 — если соответствует. Например, если сейчас декабрь, то купальник имеет значение показателя 0, а шуба — 1. В июле наоборот.
Personalization (персонализация) — значение, которое выдает черный ящик машинного обучения (коллаборативная фильтрация, reinforcement learning, deep learning и вот это от все) каждому товару применительно к текущему пользователю. Сами вы этого не сделаете.
Price (цена товара) — смапленная цена товара по отношению ко всей выдаче. У товара с максимальной ценой значение показателя равноо 1. Все остальные товары имеют значение между 0 и 1.
Profit (потенциальная прибыль ритейлера) — маржа, которую получит ритейлер от продажи товара. От 0 до 1.
PriceSensitivity (отношение покупателя к цене в данной категории) — единица, если товар находится в ценовом сегменте, удобном для покупателя. И уменьшается по мере роста или снижения цены.
BrandSensitivity (отношение покупателя к бренду) — 1, если товар любимого бренда покупателя, 0,5 — если отношение к бренду нейтрально, и 0, если у покупателя неприязнь к бренду.
DiscountSensitivity (отношение покупателя к скидкам) — единица, если покупатель любит скидки, и товар со скидкой; либо покупатель не любит скидки, и товар без скидки. Ноль в обратном случае.
NoveltySensitivity (отношение к новинкам) — единица, если товар новинка, и покупатель любит новинки; либо товар не новинка, и покупатель не любит новинки. Ноль в обратных случаях.
Если вы дочитали до этого места, вы целеустремленный человек. Поздравляю. Осталось совсем немного.
Все, что осталось, это понять, как работать с формулой при различных целях.
А цели у нас бывают:
- заработать больше денег на марже;
- продать больше новинок;
- слить товары со склада со скидкой;
- что-то еще.
Регулируя значения коэффициентов K1…K9, вы повышаете значимость этих параметров и влияете на конечную сортировку результатов.
Несколько примеров, какие показатели стоит использовать для разных целей:
Цель |
K1 |
K2 |
K3 |
K4 |
K5 |
K6 |
K7 |
K8 |
K9 |
K10 |
Заработать больше денег на марже |
0,3 |
0,7 |
1 |
0,7 |
0,2 |
1 |
0,5 |
1 |
0,3 |
0,3 |
Продать больше новинок |
0,3 |
0,7 |
1 |
0,7 |
0,2 |
0,5 |
0,3 |
0 |
0 |
1 |
Слить товары со склада со скидкой |
0,3 |
0,7 |
1 |
0,7 |
0,2 |
1 |
0 |
0 |
1 |
0 |
Понимаю, что до этого места дочитали единицы. Зато вот вам бонус: табличка Google Spreadsheets, в которой есть несколько товаров, рассчитанные показатели, несколько заготовок в разных листах таблиц, возможность менять показатели коэффициентов и характеристик покупателя и посмотреть, как будет выглядеть товарная выдача в категории для разных покупателей при разных целях ритейлера. Примечание: таблица в режиме чтения, чтобы вносить изменения, просто сделайте себе копию документа.
Можете отдать эту таблицу вашим программистам и они реализуют лучшую сортировку ваших товарных категорий в мире.
P. S. Если каких-то показателей у вас нет, просто убирайте их из формулы, и ничего не сломается.
Seasonality K3
Personalization K4
PriceSensitivity K7
BrandSensitivity K8
По вашей таблице в google, эти поля можем просто убирать, и получим сортировки. Но есть один момент, в котором до конца не могу разобраться.
В вашем случае играют значения, исключительно продажи товара. Т.е в таком случае условно каждый товар, не имеет конкуренции, например если ты продаешь свистульки ручной работы, и ни кто этим не занимается.
Но если у тебя высоконкурентный интернет-магазин, и твои товары действительно посещают, НО не покупают, по причине высокой цены, то в таком случае, такие товары, будут исходно опускаться в низ. Можно ли как то доработать эту модель, в том числе с показателями просмотров (ViewsProduct), добавления товара в корзину (AddToCart). Как эти коэффициенты сопоставить, и можно ли сопостовлять, коэффициентам где конверсия в заказ.
Можете помочь в данном вопросе, должен ли на выдачу влиять показатель добавления товара в корзину, как стоит сопоставить кол-во просмотров, кол-ву заказов?