Рекомендательные системы как способ привлечения аудитории сайта. Исследование набора данных MovieLens с целью решения задачи коллаборативной фильтрации
Recommendation systems as a way to attract the site's audience. Exploring the MovieLens dataset to solve the collaborative filtering problem
Терешенко Андрей Алексеевич
Магистрант 2 курса
ФГАОУ ВО «Северный (Арктический) федеральный университет имени М.В. Ломоносова»
Россия, Архангельск e-mail: andrey.tereshenko2017@mail.ru
Tereshenko Andrey Alekseevich
Master's student 2 term Northern (Arctic) Federal University Russia, Arkhangelsk e-mail: andrey.tereshenko2017@mail.ru
Аннотация.
В рамках работы изучается влияние рекомендательных систем на поведенческие метрики сайтов. Исследуется возможность внедрения коллаборативной фильтрации в сайты содержащие образовательный и развлекательный контенты.В статье показано исследование набора данных MovieLens с целью решения задачи коллаборативной фильтрации. В ходе работы будет рассмотрено два типа коллаборативных систем, будет приведено несколько примеров работы систем и далее будет проведено сравнение результатов.
Annotation.
As part of the work, the influence of recommendation systems on the behavioral metrics of sites is studied. The possibility of implementing collaborative filtering in sites containing educational and entertainment content is being investigated.The article shows the study of the MovieLens dataset in order to solve the problem of collaborative filtering. In the course of the work, two types of collaborative systems will be considered, several examples of the operation of the systems will be given, and then a comparison of the results will be carried out.
Ключевые слова: Машинное обучение, кино, коллаборативная фильтрация, рекомендация.
Key words: Machine learning, cinema, collaborative filtering, recommendation.
Рекомендательные системы относительно новый инструмент, пришедший в различные области из маркетинга. Первые достаточно крупные рекомендательные системы разрабатывались в рамках разработки контекстной рекламы и, хотя и служили отличным от изучаемых систем целям, всё же имели схожий принцип.
Изучая статистку, посвящённую рассматриваемой проблеме, достаточно сложно обнаружить полностью релевантные данные, т.к. осознано процессом изучения влияния рекомендательных систем на показатели развлекательных ресурсов в сети Интернет никто не занимался.
Есть схожие цифры, конверсии продаж в системах онлайн-ритейлеров. Там подобные системы позволяют увеличить чисто сделок (продаж) на 8-16%. И здесь можно говорить об эффективности подобного рода систем, однако, такая сфера всё же далеко от изучаемой нами.
Впрочем, к этому вопросу мы вернёмся чуть позднее.
Целью работы является создание коллаборативной системы, основанной на предмете рекомендации, Item-Based collaborative filtering recommender system. В качестве альтернативы, будет показано, как работает коллаборативная система, основанная на пользователях, User-Based collaborative filtering recommender system. Будет решена задача коллаборативной фильтрации, а также проведено сравнение результатов работы этих систем.
Рекомендательная система — комплекс алгоритмов, программ и сервисов, задача которого предсказать, что может заинтересовать того или иного пользователя. В основе работы лежит информация о профиле человека и иные данные.
Применение данных систем актуально и важно, поскольку в современном мире все так или иначе пользуются онлайн-кинотеатрами, интернет-магазинами, сервисами для прослушивания музыки. Выполненные в рамках исследования наработки могут использоваться в новых разрабатываемых онлайн-сервисах, а также помогут усовершенствовать существующие сервисы. Как итог, принесут большую пользу обществу, сделают рекомендации более комфортными для пользователя.
В ходе написания работы использовался набор данных MovieLens-20M. Это — коллекция из нескольких миллионов оценок, которые пользователи выставили фильмам. Этот набор данных собрала и поддерживает исследовательская группа GroupLens из Университета Миннесоты. Он увидел свет в 2003 году. MovieLens широко используется в сфере машинного обучения, он часто применяется для проведения стандартных тестов в научных публикациях.
В этом датасете, в частности, содержатся названия фильмов (файл movies.csv) и оценки, которые фильмам ставили зрители (файл rating.csv). Для создания проекта нужны только эти два файла. Информация в этим файлах записана в формате .csv или comma-separated values, это значит, что значения одной строки просто разделены запятыми.
Файл movies.csv содержит в себе информацию о фильмах, а также их жанрах и годе выпуска, рисунок 1. MovieId - id фильма, title - название фильма, genres - жанр фильма.
movield,title,genres
1,Toy Story (1995),Adventure| Animation | Children | Comedy | Fantasy
2,Jumanji (1995),Adventure|Children | Fantasy
3,Grumpier Old Men (1995),Comedy | Romance
4,Waiting to Exhale (1995),Comedy | Drama | Romance
5,Father of the Bride Part II (1995),Comedy
6,Heat (1995),Action | Crime |Thriller 7,Sabrina (1995),Comedy | Romance
8,Tom and Huck (1995),Adventure|Children 9,Sudden Death (1995),Action
10,GoldenEye (1995),Action | Adventure|Thriller
11,"American President, The (1995)",Comedy | Drama | Romance
12,Dracula: Dead and Loving It (1995),Comedy | Horror
13,Balto (1995),Adventure | Animation | Children
14,Nixon (1995),Drama
Рисунок 1. Названия фильмов Файл ratings.csv, содержит оценки, которые пользователи ставили фильмам, рисунок 2.
Рисунок 2. Рейтинг фильмов
Как можно заметить, userld - id пользователя, который ставил оценку, movield - id фильма, rating -рейтинг фильма.
Для обучения модели Item-based collaborative filtering recommendation необходимо использовать алгоритм k-ближайших соседей. Для решения задачи необходимо измерить расстояние между объектами, с помощью класса машинного обучения без учителя NearestNeighbors.
Параметры:
- metric = 'cosine' - косинусное сходство
- algorithm = 'brute' - поиск решения методом полного перебора
- n_neighbors = 20 - по двадцати соседям ведется поиск решения
- n_jobs = -1 - вычисления ведутся на всех ядрах процессора
После обучения необходимо добавить количество рекомендаций, число может быть любым, в примере и в трёх последующих берётся число 10. Также берём фильм, на основе которого будут составляться рекомендации. После этого необходимо найти нужный фильм в заголовках датафрейма, рисунок 3.
movield title
3488 3578 Gladiator (2000)
4099 4192 Demetrius and the Gladiators (1954)
7664 8132 Gladiator (1992)
23067 108862 New Gladiators (I guerrieri dell'anno 2072) (1...
23745 111126 Gladiators, The (Gladiatorerna) (1969)
26967 121575 The Magnificent Gladiator (1964)
29428 127861 The Last Gladiators (2011)
31490 133011 The Last Gladiator (1964)
34609 140411 Gladiators 7 (1962)
36946 145783 The Seven Magnificent Gladiators (1983)
37916 148118 The Invincible Gladiator (1961)
Рисунок 3. Поиск фильма
Далее необходимо найти индекс фильма в матрице предпочтений. После этого с помощью метода kneighbors() находим индексы ближайших соседей фильма и расстояния до них.
В итоге мы получаем два массива: индексов фильмов и расстояний до них. Преобразовываем эти массивы в списки, создаём кортежи. Далее ищем соответствие в фильмах. Для этого обратимся к датафрейму movies. Как итог получаем список и преобразовываем его в датафрейм. Результат на рисунке 4.
Title Distance
1 X-Men (2000) 0.404387
2 Memento (2000) 0.399787
3 Sixth Sense, The (1999) 0.398653
4 Ocean's Eleven (2001) 0.390068
5 Lord of the Rings: The Return of the King, The.., 0.369598
6 Fight Club (1999) 0.365996
7 Saving Private Ryan (1998) 0.355598
8 Lord of the Rings: The Fellowship of the Ring,.., 0.343737
9 Lord of the Rings: The Two Towers, The (2002) 0.340787
10 Matrix, The (1999) 0.325542
Рисунок 4. Рекомендации к фильму «Гладиатор»
Коллаборативная система на основе пользователей (User-based collaborative filtering recommendation) находит близких по предпочтениям пользователей и рекомендуют одному из них то, что уже попробовал другой. Это один из видов коллаборативной фильтрации, который менее популярен. Далее будет показан и рассмотрен алгоритм этой системы, а также проведено сравнение с Item-based системой, так как в основе лежат одни и те же алгоритмы. Для решения задач будет использоваться тот же набор данных, ничего менять не нужно, нужно лишь немного видоизменить матрицу.
Далее, используя косинусное сходство, пишется функция для поиска пользователей, наиболее похожих на рассматриваемого пользователя. В качестве примера подбирается userId 3 -ёх наиболее похожих пользователей, а также пользователь с userId 500, рассматриваемый в качестве текущего пользователя.
Далее создаём функцию для вынесения рекомендации. Запускаем и получаем рекомендацию пяти лучших фильмов, представленных на рисунке 5.
315 318 Shawshank Redemption, The (1994)
12559 58559 Dark Knight, The (2008)
Рисунок 5. Рекомендации
Таким образом, пользователю рекомендуется 5 фильмов, на основе интересов и того, что смотрели и оценивали предыдущие три пользователя.
Item-Based system даёт корректные и очень точные рекомендации. Например, если человек посмотрит мультфильм, то ему будут рекомендоваться мультфильмы и детские фильмы, похожие и чаще с хорошей
оценкой. Такая же ситуация с фильмами ужасов. На основе примеров могу предположить, что ещё влияет и сам фильм, потому что фильмы ужасов очень специфичный жанр и очень специфичное кино. Как правило их смотрят фанаты жанра.
Далее рассмотрим первый пример, с фильмом «Гладиатор». Рекомендуются, как, казалось бы, не только подобного плана фильмы. Но и такие как матрица или шестое чувство, которые, казалось бы, не должны рекомендоваться. Такие же моменты есть в рекомендации по фильму «Плохие парни».
Но как уже отмечалось ранее, учитываются предпочтения всех пользователей. И из этого можно сделать вывод, что мои представления о фильмах и рекомендациях к ним, скорее всего не являются верными.
User-Based более сложная и менее популярная рекомендательная система. Её сложно реализовывать за счёт того, что не все пользователи оценивают фильмы. Многие пользователи просто не ставят оценок. Для более точной рекомендации нужен большой набор данных и большое количество пользователей, которые постоянно ставят оценки и что-то смотрят. Если пользователь новый и еще не ставил никаких оценок, то будет сложно подобрать рекомендации. Судя по примерам, очень часто пользователю рекомендуются только самые популярные фильмы. Лишь изредка показывается локальная и интересная рекомендация.
Таким образом, более точные рекомендации показываются у Item-Based system. Она более проста в исполнении, даёт более точные рекомендации. Она уже использовалась на многих сайтах например на таких как Amazon, сейчас используется на сайте last.fm. Если в User-Based системе появятся новые пользователи и фильмы, то придётся производить перерасчёт расстояния, в этом случае, Item-Based система более удобна, чем User-Based система, поскольку новые фильмы появляются реже, чем пользователи.
Возвращаясь к вопросу эффективности внедрения рекомендательных систем в структуру развлекательных и образовательных сайтов в сети Интернет можно воспользоваться данными, публикуемыми крупными онлайн кинотеатрами. А конкретно информацию об эффективности рекомендательной системы Cinematch, разработанной и используемой в стриминговом сервисе «Netflix». В 2021 году эта система эволюционировала в отдельную функцию «Play Something» - рекомендательный сервис на основе нейросети.
По данным на начало 2022 года 37% пользователей стримингового сервиса «Netflix» пользуются рекомендательной системой хотя бы раз в неделю. Причём процент отказов по избранным фильмам достаточно мал (примерно 12%). Это может говорить о чрезвычайной эффективности рекомендательных систем для увеличения аудитории и её последующего удержания.
Список используемой литературы:
1 Рекомендательные системы [Электронный ресурс], режим доступа: https://vc.ru/marketing/152926-rekomendatelnye-sistemy-kak-pomoch-polzovatelyu-nayti-to-chto-emu-nuzhno, свободный (дата обращения: 26.03.2022). - Загл. с экрана.
2 Что такое рекомендательные системы [Электронный ресурс], режим доступа:https://skiUbox.ru/media/code/chto_takoe_rekomendatelnye_sistemy_i_kak_oni_rabotayut/, свободный (дата обращения: 26.03.2022). - Загл. с экрана.
3 Как работают рекомендательные системы [Электронный ресурс], режим доступа: https://neurohive.io/ru/osnovy-data-science/rekomendatelnye-sistemy-modeli-i-ocenka/, свободный (дата обращения: 26.03.22). - Загл. с экрана.