25 Янв 2022

Как работают системы рекомендаций

Системы рекомендаций

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

Прочитать позже или поделиться с друзьями

Что такое рекомендательная система

Андрей Ермошкин, коммерческий директор digital-агентства «Интериум»: «Давайте разберемся на обывательском уровне, что такое рекомендации. Представим, что мы — мальчик Андрей. У нас есть друг Коля. Наша дружба построена на общих интересах и увлечениях. Например, это интерес к автомобилям. 

Рассмотрим Колю как алгоритм рекомендаций. Он на постоянной основе и опираясь на знания об Андрее, его любви к авто, дает важные советы, которые существуют исключительно в облаке их интересов. Например, где почитать о новинках, рассказывает про опыт ремонта с папой в гараже, делится мечтами об обладании спортивного авто.

Это не исключает того, что ребята могут общаться на другие темы, но основной всегда будет авто.

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

Теперь перейдем к более научной информации. Многие из нас вряд ли представляют жизнь без роликов на YouTube или музыки в Spotify, без покупок в интернет-магазинах. Вся информация, которую мы получаем в онлайн-сервисах, построена на наших вкусах и интересах. 

Пример системы рекомендаций в Ozon

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

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

Турал Гурбанов, заместитель технического директора IVI по машинному обучению: «Рекомендательные системы — неотъемлемая часть современных социальных сетей, онлайн-кинотеатров и музыкальных сервисов. Анализируя поведение и интересы пользователей, эти системы пытаются помочь с принятием решения по самым сложным вопросам, связанным с использованием сервиса: «кого бы зафоллуить?», «что бы посмотреть?», «что бы послушать?». 

Качественные рекомендации делают пользователя счастливее и удерживают его на сервисе».

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

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

Классификация систем рекомендаций

Турал Гурбанов говорит, что существует три основных типа рекомендательных систем:

  • основанные на свойствах контента,
  • коллаборативные,
  • гибридные.

Системы, основанные на свойствах контента, больше ориентируются на явные и неявные отзывы одного конкретного пользователя. Они рекомендуют контент, свойства которого похожи на свойства контента, который вы высоко оценили или досмотрели до конца. Минус в том, что вам уже могут быть не нужны 10 комедий с Адамом Сендлером после того, как вы посмотрели одну. 

Пример системы рекомендаций «Кинопоиска»

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

«Самый интересный и сложный тип систем — гибридный или комбинированный, — говорит Андрей Ермошкин. — Как понятно из названия, он объединяет сразу несколько алгоритмов, которые собирают большую базу про человека или предмет. 

Эти системы зачастую самые засекреченные и какой-то конкретной инструкции по их производству нет. Все зависит от фантазии разработчиков. Например, у компании Netflix работает более 27 объединенных алгоритмов».

Еще один вид классификации предлагает Николай Михайловский, генеральный директор компании HTP: «Рекомендательные сервисы можно разделить по нескольких параметрам. 

  • Явная и неявная обратная связь. В некоторых случаях имеется явная оценка предмета пользователем, например, оценка книги после ее прочтения. В других случаях доступна только неявная информация, например, список просмотренных и заказанных товаров в интернет-магазине. 
  • Системы с длинным и коротким интересом. В некоторых случаях интерес пользователя к предмету долгосрочен. Таковы, например, предпочтения читателей и зрителей: они хотя и меняются, но очень медленно, в масштабе годов.
    В других случаях интерес краткосрочный. Таков интерес к большинству неповторных товаров в интернет-магазинах (покупка чайника: интерес к чайникам длится две недели и исчезает на много лет).
  • Системы с перевесом данных о контенте и поведении. В некоторых случаях контент (например, краткая аннотация книги) имеется для всех предметов и высокого качества. В таких случаях можно построить рекомендательную систему, основанную на контенте. В других случаях контента мало, он трудно интерпретируем (например, видео) или низкого качества, однако имеются данные о поведении пользователей».

Как работают рекомендательные системы

На примере соцсетей

Игорь Малинин, управляющий партнер рекламного холдинга The Business Pill:

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

Соответственно, если вы смотрите или лайкаете контент, связанный с определенной темой, то и показывать соцсети будут то, что потенциально может вам понравиться.

Более того, если вы начали писать какой-то пост, но при этом не стали публиковать его, а удалили, то машинный интеллект Facebook все равно запомнит и использует эту семантику для того, чтобы подобрать вам рекомендуемый контент.

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

Лента рекомендаций в «Яндекс Дзен»

Instagram и YouTube в этом смысле более «широкие площадки», потому что они выдают рекомендации по разным темам.

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

Кстати, ленту рекомендаций YouTube пользователь может настроить под себя.

И, конечно, для алгоритмов рекомендаций важно количество просмотров, лайков и комментариев. Причем полученных и органически, и с помощью платной рекламы».

На примере онлайн-кинотеатров

Турал Гурбанов: «Три кита любой системы рекомендаций — данные, модели машинного обучения, команда специалистов. 

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

Если впервые создаете профиль на IVI, то попадете на страничку с небольшой анкетой, где можете указать ваши предпочтения. Это упрощает работу системы с новыми пользователями и повышает вероятность того, что первые рекомендации попадут в яблочко.  

Страница рекомендаций IVI

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

Явные и неявные отзывы – топливо, на котором работают рекомендательные системы. Анализируя отзывы, система сначала выявляет и уточняет интересы пользователя, а затем может предложить, например, фильм «Мстители: война бесконечности» с пояснением: потому что недавно вы посмотрели «Доктор Стрендж».

IVI использует гибридную рекомендательную систему — основанную и на свойствах контента, и коллаборативную. Система учитывает явные и неявные отзывы о контенте, тем самым повышая полноту собираемых знаний и точность рекомендаций. Где именно задействовать ту или иную систему, зависит от бизнес-логики и особенностей сервиса.   

Например, фильмы из одной жанровой категории могут рекомендовать на основе свойств контента, а фильмы на главной странице — на коллаборативной основе. 

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

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

Но тренировки моделей машинного обучения занимают только 20% времени. Остальные 80% — это подготовка данных для обучения моделей, а также онлайн-проверка качества рекомендаций с помощью A/B-тестов.

Этим занимается команда. В IVI она состоит из 13 человек, среди которых:

разработчики, дата-аналитики, ML- и QA-инженеры, DevOps-инженер, тимлид, технический менеджер, продакт-оунер.

ML-инженеры получают от аналитиков вводные, с их помощью создают новые рекомендательные модели и внедряют в систему. Разработчики и DevOps-инженер решают инфраструктурные задачи и отвечают за то, чтобы система оптимально использовала время и ресурсы. QA-инженеры работают над тем, чтобы в системе было как можно меньше багов».

Для интернет-магазинов и в целом

Николай Михайловский: «Идеальная рекомендательная система для построения рекомендаций использует данные о текущем пользователе, о поведении всех пользователей в целом, о свойствах рекомендуемых продуктов, о контексте текущего интереса пользователя. 

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

А на этой картинке — подмножество В. Источник

Рекомендации, подбираемые вручную

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

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

Контентные рекомендательные системы

Рекомендательные системы, основанные исключительно на свойствах продуктов, называются контентными. Например, плагин WordPress «Yet Another Related Posts Plugin». 

В таких рекомендательных системах используется близость профилей предметов, например, товаров. Скажем, для двух товаров сравниваются соответствующие свойства (их цвет, категория, для мужчин он или для женщин). Если свойства совпадают, то ставим 0, если нет — 1. Суммируя такие оценки, получаем расстояние между товарами. 

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

Коллаборативная фильтрация товаров с оценками 

Методы коллаборативной фильтрации (Collaborative filtering) генерируют рекомендации на основе данных об оценках или использовании товаров (покупке продуктов, просмотре фильмов, прочтении статей) безотносительно к характеристикам конкретного товара.

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

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

Если у нас есть данные об оценке товаров различными пользователями, то мы получаем матрицу «пользователь – товар»: 

Какой товар порекомендовать, если пользователь сейчас смотрит Товар1? Ответ коллаборативной фильтрации: тот, который больше всего похож на Товар1 по оценкам пользователей. Это, конечно, упрощенная схема.

Коллаборативная фильтрация товаров для интернет-магазинов

В интернет-магазине посетители не всегда ставят оценки товарам. О том, насколько товар интересен посетителю, можно судить по неявной обратной связи: покупкам, просмотрам карточек товаров. 

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

В более сложном варианте в ячейке матрицы покупок будет стоять число таких товаров, купленных этим посетителем, или время, проведенное посетителем на карточке товара».

На примере каталога партнерских программ

Собственные системы рекомендаций есть и у различных каталогов. Разберем на примере каталога партнерских программ Admitad. Пользователю легко в ней разобраться: рекомендованные программы отмечены желтой звездочкой на фиолетовом фоне:

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

Самые многообещающие из таких программ — те, у которых самый высокий подтвержденный заработок — отмечают таким значком.

Всего для каждого веб-мастера выводится до десяти рекомендаций в каталоге. И естественно, в рекомендации попадают только те программы, к которым веб-мастер еще не подключился. 

Интересно, что рекомендации пересматриваются и обновляются каждый раз, когда веб-мастер подключается к новой программе.

Важно понимать: эти рекомендации строятся исключительно на работе алгоритмов: рекламодатели ничего не проплачивают, да и сама партнерская сеть никак не может на них повлиять.

Таким образом, рекомендации программ в каталоге — индивидуальные подсказки, которые помогут выбрать эффективную программу и освежить пул офферов.


Системы рекомендаций — важный и полезный функционал и для пользователей, и для владельцев сервисов, интернет-магазинов, каталогов. Теперь вы знаете, как они работают. А создать такую фичу и встроить на ваш сайт помогут разработчики и специальный софт (например, те же плагины WordPress).

Прочитать позже или поделиться с друзьями

0 комментариев

Написать комментарий