![](https://habrastorage.org/webt/2b/0r/-w/2b0r-woz3eoexvtvgsaosn6hbps.png)
Рекомендательные системы уже давно неотъемлемая часть большинства современных веб-сервисов. Скорее всего, заходя на какой-либо развлекательный (и не только) сайт, вы не раз задавались вопросом, почему именно этот контент или этот товар предлагается вам.
В Иви давно заметили, что недостаточно просто рекомендовать что-то пользователю, важно объяснять свои действия. Если пользователю покажут незнакомый контент, то он будет воспринимать это как нечто неинтересное.
Поэтому хочется, чтобы пользователь понимал:
- Насколько ему могут быть интересны наши рекомендации.
- Зачем мы ему это показываем.
Меня зовут Андрей Макаров, я разработчик рекомендательной системы онлайн-кинотеатра Иви. В этой статье я расскажу, зачем мы объясняем рекомендации на нашем сервисе, что для этого уже сделали и что только планируем.
Предыстория
Построение рекомендаций — сложный процесс. Даже внутри моей команды, которая их разрабатывает, не всегда есть четкое понимание, почему главная страница пользователя состоит из того контента, который на ней представлен. Возможно, он туда попал как следствие бага. Возможно, всё работает правильно, но это не точно.
Что уж говорить про другие команды и сотрудников Иви, которые имеют совсем скромное представление о работе рекомендательных алгоритмов. А я еще даже не дошел до конечных пользователей, для которых это всё делается.
Поэтому мы начали объяснять, почему строим те или иные рекомендации сначала внутри компании, а потом уже за ее пределами.
Здесь я расскажу про объяснение рекомендаций для нашего конечного пользователя.
Цель объяснения — помочь понять насколько, почему и чем контент может быть интересен конкретному человеку.
Объяснение подборок
Мы начали объяснение с более видимой для пользователя части — подборок. Попробовали ответить на вопрос: “Почему пользователю показывается данная подборка?”.
Подборки
Главная страница в Иви состоит из горизонтальных строчек. Мы называем их блоками (где-то их называют галереями). Среди этих блоков есть блоки-подборки.
Подборка – это неделимая сущность, в которой фильмы объединены по общим свойствам. Сами подборки фиксированы и формируются редакцией Иви, но их набор, порядок вывода и содержимое выводится персонально для каждого пользователя на основе просмотров, оценок и онбординга пользователя (то есть тех фильмов, которые были отмечены, как понравившиеся при знакомстве с сервисом).
Наша цель — сделать подборки понятными пользователю, то есть объяснить их состав, и как они построены.
Где-то это объяснение статичное, то есть под названием подборки пишется, что рекомендации “чем больше смотрите, тем лучше рекомендации”, “основаны на ваших предпочтения” и т.д.
![](https://habrastorage.org/webt/lv/x6/j9/lvx6j9xrkz1kk4pgiapsnhlgicy.png)
А есть подборки, которые объясняются через то, какие фильмы пользователь посмотрел или положительно оценил.
Рассмотрим на примере абстрактных пользователей Алисы и Боба.
Алиса больше смотрела мотивационные фильмы, поэтому в ее подборке подавляющую часть занимают фильмы про самореализацию:
![](https://habrastorage.org/webt/9m/3g/ru/9m3gruutpu-pn1ngvp1iul05y48.png)
Боб предпочитает триллеры и детективы, его подборка выглядит так:
![](https://habrastorage.org/webt/hx/kd/oz/hxkdoz3zsgmif8xlz7fqtr9lgv0.png)
Для каждого пользователя получаются персональные рекомендации, из которых потом нарезаются подборки. Чем больше релевантного контента в подборке, тем больше вес этой подборки в рекомендациях пользователя, и тем с большей вероятностью мы ее покажем.
Далее в соответствии с релевантностью подборок собирается главная страница:
![](https://habrastorage.org/webt/su/nc/xe/suncxefcjnrdz9nnudvwmffwetu.png)
Расчет релевантности
Для каждой подборки можно найти фильмы, на основе которых она была собрана. Мы берем наш каталог и сортируем контент в нем по убыванию релевантности. Поскольку релевантность для фильма считается на основе того контента, который пользователь посмотрел или оценил для каждого тайтла мы можем оценить вклад уже просмотренного или оцененного фильма.
В качестве инструмента для определения релевантности контента пользователю, мы используем коллаборативную фильтрацию, а именно алгоритм ALS (про этот алгоритм более подробно рассказывалось здесь).
Для проверки нашей гипотезы запустили а/б-тест, в котором сравнили две группы: с объяснением и без него. В результате эксперимента группа с объяснениями выиграла.
Объяснение контента
Дальше мы попробовали объяснять непосредственно сам контент внутри подборок.
Вам подходит
Сначала решили ответить на количественный вопрос: “Насколько пользователю должно понравиться то, что мы рекомендуем”. Для этого мы начали рассчитывать процент релевантности контента пользователю и дали ему название “Вам подходит”.
Этот показатель можно рассматривать как замену обычной оценке, так как это тот же рейтинг, основанный на предпочтениях пользователей, только в профиль персонализированный и переведенный в другую единицу измерения.
Результат решили выводить в процентах, так как это наиболее привычная шкала для пользователя.
Выглядит это так:
![](https://habrastorage.org/webt/ay/to/ff/aytoffmw_3uzppxk8k3422p4da4.png)
Выводим процент релевантности вместе с остальными свойствами контента.
Перед внедрением данного функционала было решено проверить, насколько он понравится пользователю. Для этого было проведено несколько а/б-тестов.
Сначала мы добавили “Вам подходит” на карточку контента:
![](https://habrastorage.org/webt/q8/hg/80/q8hg80vqhxbil1htfodlkkvpzxq.png)
Там он уверенно показал себя. Тестовая группа победила по большинству метрик.
Дальше мы добавили его в Центральный Промо Блок:
![](https://habrastorage.org/webt/2e/eg/sa/2eegsaqk6s1j_tx8d9zqaujloco.png)
Здесь результаты эксперимента оказались близкими к карточке контента.
По данному функционалу был проведен опрос, который показал, что “Вам подходит” хорошо помогает пользователям при выборе контента для просмотра:
![](https://habrastorage.org/webt/tl/hm/76/tlhm76-5wvfjjvdkjp5wodshb34.png)
Объяснение контента
![](https://habrastorage.org/webt/cl/pm/ql/clpmqlkhdm0_2y87nvr-p9mkqrw.png)
Этот функционал также раскатили а/б-тестом на Web, где он победил:
- по конверсии в просмотр
- по конверсии в подписку.
В данный момент запущены тесты на SmartTV и iOS.
![](https://habrastorage.org/webt/ez/tk/rk/eztkrkinn9jr0_bzw3gcgvi3jnu.png)
Персонализация свойств
Следующее, что мы хотим попробовать запустить — это персонализация свойств.
Свойства — это описательные характеристики контента, например, “Основан на реальных событиях. Тяжелый, трагичный.”.
Мы хотим выводить персонализированную информацию о контенте, чтобы пользователь получал более широкое и детальное представление о том, что ему должно в нем понравиться.
Выводы
На данный момент Иви — единственный российский онлайн-кинотеатр, который успешно внедрил объяснение рекомендаций. Наш опыт показывает, что для пользователя это имеет немаловажное значение. Мы продолжим и дальше проверять гипотезы и улучшать объяснения на сервисе, так как пользователь должен доверять рекомендательной системе. А для этого она должна быть максимально понятной и прозрачной, чему и способствует объяснение рекомендаций.