![](https://habrastorage.org/getpro/habr/upload_files/e9f/7fb/7a1/e9f7fb7a121253d1ac651a9dd34f10e5.png)
Компания Retail Rocket более 10-ти лет занимается системами рекомендаций в сфере электронной коммерции. Всё это время мы сталкиваемся с неочевидными свойствами алгоритмов рекомендаций, без которых системы не будут решать свои задачи. Мы выделили и описали в статье такие свойства, как: эффективность, логичность, покрытие, специфичность, охват, актуальность и мультирегиональность. Если у вас есть система рекомендаций, и вы хотите оценить ее качество, либо вы ищете критерии для выбора или разработки системы рекомендаций, то эта статья будет вам полезна.
Это первая статья из цикла, в которой мы расскажем, какими свойствами должны обладать качественные рекомендации. Во второй статье мы рассмотрим, как на примере алгоритма «Сопутствующие товары» обеспечиваются необходимые свойства. В третьей и заключительной статье мы затронем другие, не менее важные алгоритмы рекомендаций.
Немного вводной информации
Все сталкивались с работой систем рекомендаций интернет-магазинов. Рекомендации успешно используются как небольшими компаниями, так и лидерами отрасли. Согласно отчету Mckinsey, Amazon получает 35% выручки с помощью систем рекомендации. Существуют подробные исследования ценности рекомендаций для бизнеса, например статья «Measuring the Business Value of Recommender Systems». Но наилучшим доказательством их ценности является повсеместное их использование — сложно найти интернет-магазин, который бы не использовал этот инструмент.
Системы рекомендаций должны учитывать проблемы, которые возникают в реальном мире. Только тогда маркетинг сможет использовать такие системы для достижения своих целей. Это можно назвать основным критерием качества любого маркетингового инструмента, в частности, системы рекомендаций.
Мы в Retail Rocket больше 10-ти лет предоставляем рекомендации рынку, более чем 1000 клиентам. И всё это время мы занимались исследованиями и улучшениями своей системы. Ещё в 2016 году мы делали доклад о процессе проверки гипотез на конференции recsys, которая и по настоящий день остается крупнейшей конференцией посвящённой рекомендациям. За это время мы накопили много опыта и экспертизы. В данной статье мы расскажем про сложности, которые скрываются в алгоритмах рекомендаций и не видны на первый взгляд.
В рамках этой статьи мы не будем затрагивать множество сложных технических вопросов, таких как хранение данных, поддержка аппаратного обеспечения, мониторинг, интеграция рекомендаций в интернет-магазин и многое другое.
![](https://habrastorage.org/getpro/habr/upload_files/7d2/b83/81c/7d2b8381caf2d350055ad7146d5eab80.png)
Какими свойствами должны обладать алгоритмы рекомендаций в условиях реального интернет-магазина
Сделать инструмент, который показывает товары на сайте магазина, кажется несложной задачей, но как только система рекомендаций появляется, возникает необходимость решения множества разнообразных проблем. Это напоминает цикл разработки любой программной системы — полное выполнение всех требований и поддержка требуют гораздо больших ресурсов, чем первоначальная разработка базового функционала. Более того, системы рекомендаций обладают и собственной спецификой из-за сложности решаемых задач и необходимости маркетинга качественно выполнять свою работу.
Мы сформулировали семь свойств, обеспечение которых необходимо для системы рекомендаций в условиях реального интернет-магазина.
Эффективность — рекомендации способствуют решению задачи покупателя
Рекомендации должны помогать покупателям магазина эффективно выполнять их задачи. В качестве примера таких задач можно назвать:
ознакомление с ассортиментом магазина,
поиск подходящего товара, рассмотрение альтернатив,
поиск дополняющих товаров.
Что, в свою очередь, обеспечивает:
принятие решения о покупке и совершение заказа,
поддержку контакта с покупателем после совершения заказа,
возврат клиента в магазин, регулярные заказы и лояльность.
![](https://habrastorage.org/getpro/habr/upload_files/da3/311/fec/da3311fece168a20fb1c720e99f0ea4d.png)
По внешнему виду рекомендаций можно понять их эффективность при решении задач покупателя. Например, однообразная товарная выдача не решает задачу знакомства с ассортиментом магазина. А если из рекомендаций удалены все ранее купленные товары, то алгоритмы не решают задачи покупателя по отношению к товарам регулярного спроса: при покупке корма для животных рекомендации не напомнят о наполнителе для туалета, а при покупке рыбы не предложат ранее купленные подходящие специи.
![](https://habrastorage.org/getpro/habr/upload_files/e2f/ca2/e23/e2fca2e23f85c28d39b3398cae8924e1.png)
Если покупателю удобно пользоваться интернет-магазином, то он с большей вероятностью совершит покупку и вернётся за следующей. Улучшение пользовательского опыта делает покупателя более лояльным магазину. Всё это ведёт к увеличению LTV — Lifetime value — показателю прибыли, которую получает бизнес за всё время работы с клиентом.
Крайне сложно количественно измерить влияние отдельных инструментов маркетинга на LTV, учитывая длительность отношений клиента с магазином. Поэтому для увеличения вероятности обнаружения влияния на LTV приходится использовать множество метрик. Мы рассказали о применении прокси-метрик для e-commerce в отдельном цикле статей.
Логичность — понятно, какую задачу покупателя решает алгоритм
Покупатель должен понимать, почему виджет с рекомендациями на сайте предлагает конкретные товары. Если рекомендации помогают найти дополняющие заказ товары, то в них должны быть не альтернативные, не популярные в магазине, а именно дополняющие заказ товары.
Для понимания назначения виджета важно выбрать правильный заголовок. Например, если виджет предназначен для показа сопутствующих товаров, то подойдёт заголовок «С этим товаром покупают», вместо неинформативного «Рекомендуем вам».
![](https://habrastorage.org/getpro/habr/upload_files/ec9/699/143/ec96991433a6db9adaf3ddfd9737a2ea.png)
Логичность делает работу рекомендаций более прозрачной, предсказуемой. Благодаря этому, покупатель будет доверять рекомендациям и магазину в целом. Правильное представление о работе блока рекомендаций помогает покупателю понимать, как с ним взаимодействовать для решения своих задач. С другой стороны, если покупатель раз за разом сталкивается с нелогичным поведением рекомендаций, то он может не только перестать со временем замечать рекомендации, но и утратить доверие к другим инструментам сайта и самому интернет-магазину.
Свойство логичности позволяет покупателям отличать разные инструменты рекомендаций друг от друга. Это помогает разместить более одного виджета на странице, показать больше товаров, усилить влияние рекомендаций и разнообразить взаимодействие с магазином. Покупатель может негативно отнестись к множеству виджетов рекомендаций без понятных целей на одной странице, но воспримет их как полезные инструменты, например, если один виджет поможет ему найти товар, за которым он пришёл, а другой покажет товары, дополняющие текущий.
Покрытие — предоставлены рекомендации к каждому товару, категории и т.д.
Система рекомендаций должна предоставлять рекомендации к каждому товару, категории, пользователю на главной и других страницах. Хорошее покрытие делает магазин более предсказуемым, не нарушает привычный пользовательский опыт и усиливает влияние рекомендаций.
Достаточного покрытия сложно добиться, если предоставлять рекомендации только к самым популярным товарам или не предоставлять рекомендации к новинкам. Крайне сложно получить полное покрытие при использовании ручного соответствия между категориями или товарами силами менеджеров магазина.
![](https://habrastorage.org/getpro/habr/upload_files/1f6/a58/32b/1f6a5832b717b08a0e34b346e08dc117.png)
Если для части товаров рекомендации отсутствуют или их недостаточно, то покупатели, которые привыкли к рекомендациям, будут вынуждены искать и использовать другие, пусть даже менее удобные инструменты. Использовать несколько инструментов тяжелее, чем один, поэтому покупатели могут отказаться от рекомендаций.
Специфичность — рекомендации учитывают контексты страницы, товара и пользователя
Система должна предлагать разные рекомендации в зависимости от текущего контекста. Контекстом может быть тип страницы, товар, на странице которого размещены рекомендации, или пользователь, которому они показываются.
В разных контекстах решаются разные задачи. Для решения каждой задачи необходимо применять подходящие, специфичные текущему контексту инструменты. Инструмент, который не решает текущую задачу покупателя, только отвлекает внимание. Так, на странице карточки товара, может решаться задача поиска интересующего товара, а значит, необходимо показать альтернативные, а не популярные товары, которые решают другую задачу — ознакомление с ассортиментом магазина.
Необходимо максимально точно учитывать контекст. В частности, использовать персонализацию, не только на главной странице интернет-магазина. Если покупатель находится на странице категории, важно показать наиболее интересные для него товары этой категории. Если покупатель находится в карточке товара, лучше показать товары с атрибутами, которые он предпочитает. Например, показывать товары подходящих размеров.
![](https://habrastorage.org/getpro/habr/upload_files/935/4ae/22b/9354ae22bb29a3d14f855b9287d00a8e.png)
Охват — рекомендации показывают как можно большую часть ассортимента интернет-магазина
Система должна рекомендовать как можно больше различных товаров магазина. Свойство является важным для e-commerce, поскольку для них характерен широкий ассортимент товаров и эффект «длинного хвоста» — когда большая часть товаров обладает низким спросом, но в совокупности составляет значимую часть выручки.
![](https://habrastorage.org/getpro/habr/upload_files/e62/ae2/556/e62ae25567a9bdd5e08c080b55f7bc26.png)
Для обеспечения свойства охвата часто необходимо обеспечить свойство специфичности — если необходимо показать как можно больше разных товаров, то можно показывать различные товары в зависимости от контекста. Но специфичность не обязательно означает охват и наоборот. Нюансы разберем в разделе про совместное обеспечение свойств.
![](https://habrastorage.org/getpro/habr/upload_files/bdc/3e8/b9e/bdc3e8b9e71af305f8ec420189177004.png)
Для магазина важно хорошее знакомство покупателя с его ассортиментом. Даже если он не купил товар, но знает о его наличии в магазине, когда этот товар понадобится, даже через значительное время, покупатель может вернуться в магазин и купить его.
![](https://habrastorage.org/getpro/habr/upload_files/b9b/1a3/63d/b9b1a363d79aa072814eb57cdcc2fed5.png)
Пользу знакомства с ассортиментом мы затронули в нашем исследовании, где обнаружили положительное влияние среднего числа просмотренных покупателем карточек товаров на LTV.
Актуальность — учитывается изменение товарной базы и поведения покупателей со временем
Поведение покупателей и товарная база магазина меняются со временем. Рекомендации должны правильно учитывать эти изменения и обновляться достаточно часто. Идеально — в реальном времени.
Если товар появился в базе магазина, то он в скором времени должен начать использоваться рекомендациями. А если товар перестал быть доступным в магазине, то его должны как можно быстрее перестать показывать покупателям.
Рекомендации должны учитывать изменение спроса на один и тот же доступный товар в разные моменты времени. Например, товары для гриля будут активно покупаться в дачный сезон, а товары для езды на лыжах — зимой. Старая модель телефона может стать менее актуальной после выпуска новой модели. Изменение спроса не учитывается, если алгоритм рекомендаций использует только атрибуты товаров и не учитывает поведение покупателей.
![](https://habrastorage.org/getpro/habr/upload_files/539/bd4/0e4/539bd40e446ef72bcba3805e978d1e5d.png)
Для покупателей, наличие в рекомендациях товаров, которые они не могут купить, приводит к нарушению ожиданий от данного инструмента. Это может привести к потере доверия как к рекомендациям, так и к любому другому инструменту магазина. Показ неактуальных товаров приводит к похожему эффекту.
Обеспечения свойства актуальности на практике сложно добиться при помощи ручного управления рекомендациями. Данное свойство необходимо поддерживать постоянно, что потребует много человеческих усилий.
Мультирегиональность — учитывается доступность товаров и актуальность их атрибутов в зависимости от региона
Доступность, цена и другие атрибуты товаров интернет-магазина могут отличаться в зависимости от региона, склада и торговой точки. Существуют магазины с тысячами складов, атрибуты товаров в которых отличаются. Для каждого склада могут быть свои рекомендации за счёт различного поведения покупателей и различных атрибутов товаров, в первую очередь доступности. Системе рекомендаций необходимо правильно учитывать эти атрибуты в зависимости от региона покупателя.
При том товарная база магазина может содержать большое количество товаров, и у каждого товара на каждом складе могут быть свои атрибуты. А для каждого склада могут быть свои рекомендации за счёт различного поведения покупателей и различных атрибутов товаров, в первую очередь доступности.
![](https://habrastorage.org/getpro/habr/upload_files/eec/b2c/a1f/eecb2ca1f47948e7172e3822a9f46cfa.png)
В случае показа неправильной цены возникает проблема несоответствия цены товара и надписи на ценнике. В случае наличия в выдаче недоступного в регионе покупателя товара также нарушается свойство актуальности.
Совместное обеспечение множества свойств
Обеспечить отдельное свойство рекомендательной системы не так сложно. Проблемы начинаются при попытке обеспечить работу множества свойств одновременно — необходимость обеспечения каждого последующего свойства может усложнить реализацию остальных свойств и, как следствие, системы в целом. Если алгоритм рекомендаций помогает дополнять покупку и использует только информацию о заказах товаров, которые часто покупаются вместе, то он будет логичным, эффективным и специфичным.
![](https://habrastorage.org/getpro/habr/upload_files/401/597/fa1/401597fa1accd3ab4ebc7b39e5c8bd5a.png)
Но для обеспечения свойства покрытия необходимо показывать рекомендации к новым и не очень популярным товарам, для которых нет достаточной статистики. Для обеспечения свойства охвата необходимо показывать в рекомендациях не только популярные товары. Поэтому приходится искать более сложные решения. С другой стороны, можно решить проблему покрытия и охвата, показывая случайные товары. Но тогда рекомендации теряют свойства логичности, эффективности и специфичности.
![](https://habrastorage.org/getpro/habr/upload_files/1cc/612/29a/1cc61229a4091b907dcd329683801199.png)
Если часто показывать в рекомендациях одни и те же товары, пусть даже они популярны и их покупают повсеместно, то можно добиться полного покрытия. Для продуктов питания такими товарами могут быть бананы, яйца, вода, овощи. В детских товарах — подгузники и детское питание. Для некоторых алгоритмов показ такой небольшой группы универсальных товаров позволяет добиться высокой эффективности. При этом не обеспечиваются свойства специфичность и охват.
![](https://habrastorage.org/getpro/habr/upload_files/8ca/0b8/29b/8ca0b829b95791aed1f8d2feff1f228a.png)
В алгоритмах, которые используют данные о поведении пользователей, свойство актуальности можно достичь с помощью истории за небольшой период времени. Например, для расчёта популярных товаров можно использовать только последний месяц, но в этом случае сложно обеспечить свойство покрытия и логичности.
Совместная работа таких свойств как мультирегиональность, покрытие и специфичность тоже сложная задача. Существуют магазины с множеством складов, где для каждого склада необходимо предоставить подходящие рекомендации к каждому товару с учетом атрибутов товара для соответствующего склада. Число различных вариантов рекомендаций в таком случае достигает произведения количества складов на количество товаров магазина. Это требует больших вложений в работу с данными, эффективность алгоритмов и инфраструктуры. К дальнейшему усложнению приводит необходимость обеспечения свойства актуальности. Товарная база очень часто меняется и необходимо постоянно рассчитывать и обновлять рекомендации. Для обеспечения свойства специфичности для персональных рекомендаций необходимо их обновлять в реальном времени, поскольку контекст текущего пользователя меняется при каждом действии.
![](https://habrastorage.org/getpro/habr/upload_files/e65/d99/cc4/e65d99cc44cef6f6599d206147f8d056.png)
Примеры выше показывают, что организовать совместное обеспечения даже двух свойств уже нетривиальная задача. И то, что в начале работы над системой рекомендаций может быть незаметным или казаться неважным, позже может стать непреодолимым препятствием.
Как проверить качество системы рекомендаций
Мы предлагаем ряд простых проверок на нарушение свойств рекомендаций:
Эффективность нужно оценивать по отношению к тем задачам, которые выполняют пользователи на сайте. Например, задача «знакомство с ассортиментом» не выполняется, если виджет с популярными товарами показывает только группу схожих товаров, которая не даёт представления о всём ассортименте магазина.
Логичность означает, что можно посетить страницы магазина и понять, какую задачу пользователя решает каждый виджет рекомендаций. Например, виджет в карточке товара может помогать дополнить заказ с текущим товаром или найти более подходящую альтернативу. Товары в рекомендациях должны соответствовать решаемой задаче пользователя. Если рекомендации дополняют заказ, можно представить как пользователи приходят в магазин купить товары из виджета совместно с текущим товаром.
Покрытие не обеспечивается, если нет рекомендаций к новым товарам. Такие товары часто можно найти в блоке на главной странице или отсортировав страницу категории по новым товарам.
Специфичность не обеспечивается, если для разных товаров, даже схожих, предоставляются одинаковые рекомендации. Как правило, достаточно просмотреть рекомендации для нескольких товаров из одной категории.
Охват не будет обеспечиваться, если в рекомендациях магазина используются только популярные товары. Менее популярные, но подходящие товары также заслуживают внимания и могут составлять существенную часть выручки. Просмотр рекомендаций к популярным товарам одной категории как правило позволяет быстро оценить охват.
Поддержку мультирегиональности можно проверить, если сменить регион и посмотреть, отображаются ли в рекомендациях товары, доступные только в этом регионе, и что их цены соответствуют ценам этого региона.
Заключение
Система рекомендаций используется для выполнений задач маркетинга и неочевидным образом связана с множеством аспектов функционирования интернет-магазина. Для этого система рекомендаций должна обладать свойствами, без которых она не будет пригодна к практическому применению. Необходимость обеспечения этих свойств делает реализацию системы рекомендаций сложной задачей.
В следующей статье мы опишем компоненты, которые позволяют обеспечить необходимые свойства качественной системы рекомендаций, на примере алгоритма сопутствующих товаров