Блог

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


Рекомендательная система – онлайн-сервис, определяющий предпочтения и интересы пользователей на сайте и предлагающий им наиболее интересные и релевантные товары. Одним словом – мечта любого маркетолога. 


Почему мечта? Да всё просто. Давайте представим, что обычный среднестатистический интернет-маркетолог находится на шаг впереди по отношению к пользователю:  он знает, в каких сообществах он состоит, что репостит, что покупает. С рекомендательными системами он будет на два шага впереди:  знает наперёд, что нужно будет пользователю через месяц или два. 


Истоки [Netflix Prize]


Вся эта история с рекомендательными системами  началась где-то в 2005-2010 гг., когда компания Netflix попыталась совершить переворот в области рекомендаций. Что послужило его причиной? Можете не гадать – это банальная погоня за прибылью. Компания рассылала VHS-кассеты и DVD на дом, люди смотрели их и отдавали обратно. Все были довольны, кроме Netflix. Компания правдой и неправдой искала пути, которые помогли бы ей продавать больше в одни руки. И такой путь был найден – Netflix Prize.


В 2006 г. компания организовала конкурс Netflix Prize. Она выложила в открытый доступ 100-миллионную базу данных с оценками пользователей. От участников конкурса требовалось одно – угадать, какую оценку фильму поставит тот или иной пользователь. 

 
Качество предсказаний пользователей замеряли с помощью метрики RMSE (средне-квадратичное отклонение). К тому времени Netflix уже имела собственный алгоритм расчёта (качество 0.9514), однако для улучшения качества расчёта – нужно было увеличить этот показатель хотя бы на 10% - до 0.8563. Спустя три года команда-победитель всё же решила поставленную задачу. 


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


Выделим три основных подхода к созданию рекомендательных систем:


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


•    Контентные рекомендации


•    Коллаборативная фильтрация 


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


Они основаны на свойствах товаров. Алгоритм работы следующий – товары полностью сравниваются на основании их атрибутов, а после чего система задаёт их соответствие. Пример: рекомендательная система Similar4. 


Коллаборативная фильтрация


Поиск похожих пользователей – «рекомендации, основанные на пользователях» (user-based collaborative filtering), поиск похожих продуктов – это  «рекомендации, основанные на продуктах» (item-based collaborative filtering). Алгоритм в обоих случаях, думаю, понятен.


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


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


eCommerce


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


Типы фильтрации


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


1. Система присваивает вес каждому пользователю с учётом сходства его оценок и оценок активного пользователя.


2. Далее система выбирает нескольких пользователей с максимальным весом, т.е. очень похожих на эталон – активного пользователя.


3. Напоследок рекомендательная система подсчитывает оценку активного пользователя для неоценённых им предметов. В расчёт берутся весы и оценки соседей. 


«Моделирование». Данный подход основан на статистических моделях для оценок пользователей:


•    метод байесовских сетей


•    метод кластеризации


•    метод латентной семантической модели


•    сингулярное разложение


•    вероятностный латентно-семантический анализ


•    латентное размещение Дирихле


•    Марковскйй процесс принятия решений на основе моделей


Модели разрабатываются с использованием интеллектуального анализа данных, алгоритмов машинного обучения, чтобы найти закономерности на основе обучающих данных. Главный недостаток – дороговизна создания модели.


Проблемы рекомендательных систем с коллаборативной фильтрацией


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


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


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


Автор: Владимир Маслов, программист отдела перспективных разработок


Источники: Centrobit и Surfingbird


Возврат к списку