МЕТОД КОЛЛАБОРАТИВНОЙ ФИЛЬТРАЦИИ ДЛЯ РЕКОМЕНДАТЕЛЬНЫХ СЕРВИСОВ Смоленчук Т.В. Email: Smolenchuk676@scientifictext.ru
Смоленчук Татьяна Владимировна — магистрант, кафедра программного обеспечения информационных технологий, Белорусский государственный университет информатики и радиоэлектроники, г. Минск, Республика Беларусь
Аннотация: в современном мире все большую популярность получают стриминговые сервисы, использующие рекомендательные алгоритмы для подбора пользователям контента, который может быть им интересен, основываясь на интересах пользователя (оценки пользователя, просмотры или прослушивания). В работе приведен обзор метода коллаборативной фильтрации как одного из основных методов для рекомендательных сервисов. Рассмотрено определение метода, его реализация, альтернативные алгоритмы, улучшения и подходы, недостатки и достоинства метода.
Ключевые слова: алгоритм, стриминговый сервис, коллаборативная фильтрация, совместная фильтрация.
COLLABORATIVE FILTERING METHOD FOR RECOMMENDATION
SERVICES Smolenchuk T.V.
Smolenchuk Tatiana Vladimirovna—Master Student, DEPARTMENT OF INFORMATION TECHNOLOGY SOFTWARE, BELARUSIAN STATE UNIVERSITY OF INFORMATICS AND RADIOELECTRONICS, MINSK, REPUBLIC OF BELARUS
Abstract: in today's world, streaming services are becoming increasingly popular, using recommendation algorithms to select the content that users may be interested in, based on the interests of the user (user ratings, views or listening). The paper provides an overview of the collaborative filtering method as one of the main methods for recommendation services. The definition of the method, its implementation, alternative algorithms, improvements and approaches, disadvantages and advantages of the method are considered.
Keywords: algorithm, streaming service, collaborative filtering, collaborative filtering.
УДК 004.021
Системы рекомендаций позволяют пользователю выбрать среди всех доступных объектов именно те, которые будут ему интересны. Эти системы обрабатывают информацию о различных объектах, а также о том, какие объекты пользователи купили, посмотрели, послушали и т.д. Имея эти данные и основной метод, который будет рассмотрен в данной работе, можно быстро и качественно отфильтровать наиболее подходящие конкретному пользователю объекты.
Определение метода коллаборативной фильтрации
Коллаборативная фильтрация - это метод рекомендации, при котором анализируется только реакция пользователей на объекты: оценки, которые выставляют пользователи объектам. Оценки могут быть как явными (пользователь выставляет оценки объектам), так и неявными (например, количество просмотров одного ролика). Чем больше оценок собирается, тем точнее получатся рекомендации. Таким образом, пользователи помогают друг другу в фильтрации объектов, поэтому такой метод называется также совместной фильтрацией.
Описание алгоритма
Пусть в системе есть пользователи и объекты. Пусть некоторые пользователи оценили некоторые объекты. И пусть оценка - это натуральное число от 1 до 5. Тогда все оценки можно изобразить в виде матрицы (см. рис. 1).
Рис. 1. Матрица оценок
Пусть имеется пользователь а. Задача состоит в том, чтобы предсказать, какую оценку поставил бы пользователь а объекту г. Будем рассматривать только пользователя а и тех пользователей, которые оценили объект г. Алгоритм включает в себя 3 шага:
1. Для каждого пользователя и вычисляются, насколько его интересы совпадают с интересами пользователя а;
2. После этого выбирается множество пользователей, наиболее близких к а;
3. Предсказывается оценка на основе оценок объекта г "соседями"из предыдущего шага. Первый шаг. Каждому пользователю в матрице R соответствует одна строка. Поэтому
будет вычисляться близость векторов-строк пользователей. Существует множество способов подсчета близости векторов [6,7]. Один из самых простых - посчитать косинус между этими векторами:
глт
- / \ 2-^г=1 ГаЛ ' Ги>*
згт(щ а) = — (1)
V 2-а=1 Г(М ' V ¿-^г—1
Здесь sim(u,a) - мера близости (похожести) пользователей а и и, ги,г - значение матрицы R: и строка, г столбец, sim(u,a) принимает значения из отрезка [0,1]. Если пользователь не указал оценку для какого-то объекта, соответствующее значение матрицы равно 0.
Существует другая мера близости между векторами - коэффициент корреляции Пирсона:
- / ч - м ■ («V ~ ги)
зпщи.а) = — (2)
Здесь I - множество объектов, которые оценил как пользователь а, так и пользователь и. га и ги - это средние оценки пользователей а и и, соответственно.
В числителе подсчитывается произведение отклонений оценок двух пользователей от средних значений для одного объекта. Знаменатель необходим для того, чтобы данная величина принимала значения из отрезка [-1,1]. Чем сильнее совпадают интересы, тем ближе значение близости к 1. Если коэффициент корреляции Пирсона отрицателен, то интересы пользователей противоположные.
(1) и (2) - самые распространенные меры близости, используемые в данном алгоритме. Коэффициент корреляции Пирсона (2) будет оставаться высоким, если все оценки сравниваемых пользователей отличаются на постоянную величину (один пользователь оценивает более строго, другой - ставит более высокие оценки). Косинус (1) в этом случае выдаст меньшее значение. Но, если оценки двух пользователей отличаются пропорционально, то косинус (1) будет больше, корреляция (2) - меньше. В обоих случаях оценки пользователей похожи. Поэтому, какую из этих метрик использовать - зависит от конкретной задачи.
Второй шаг. Теперь нужно выбрать множество К наиболее похожих на а пользователей. Можно выбрать всех пользователей. Но так как пользователей с непохожими или несильно
пересекающимися интересами довольно много, то они будут отрицательно влиять на точность предсказания оценки для объекта i. Кроме того, количество пользователей влияет на объем вычислений на третьем шаге.
Одно из возможных решений - установить порог меры близости, вычисленной на первом шаге: (1), (2). Пользователи с мерой близости, превышающей порог, войдут во множество K. Остальные не будут входит в это множество. Но чаще всего выбирается целая константа k. Затем все пользователи сортируются по убыванию меры близости. И во множество K входят i пользователей, наиболее близких к a.
Третий шаг. Имея множество K близких пользователей вычисляется оценка, которую поставил бы пользователь a объекту i. Напомним, что рассматриваются только те пользователи, которые оценили объект Нужная оценка вычисляется по формуле:
_ _ + (''"»■ ~ х ") (3)
р„, - это предсказываемая оценка пользователя а для объекта За основу берется его средняя оценка ra, а затем прибавляется среднее отклонение оценки других пользователей из множества K для объекта i от их средней оценки. Чем ближе пользователь u к пользователю a (согласно мере близости sim(a,u), вычисленной на первом шаге), тем сильнее его вклад в предсказание оценки.
Таким образом, описанный алгоритм предсказывает оценки для объектов, которые текущий пользователь еще не оценил. Для того чтобы сделать рекомендацию для данного пользователя, достаточно предсказать оценки для всех неоцененных объектов и выбрать объекты с наибольшей предсказанной оценкой.
Альтернативные алгоритмы и улучшения
Описанный выше алгоритм основан на сравнения между собой пользователей. Он называется User-based Collaborative filtering. Существует также другой подход: вместо пользователей сравнивать объекты (Item-based Collaborative filtering). В этом случае алгоритм почти такой же, включает 3 шага:
1. Для каждого объекта j вычисляется, насколько он похож на объект i, для которого предсказывается оценка;
2. Выбирается множество объектов, наиболее близких к i;
3. Предсказывается оценка на основе оценок выбранных на втором шаге объектов пользователем a.
Сравнение объектов на первом шаге происходит, как и в ( 1 ) и (2 ):
/ \ Zjuef/v^u.i ~ Ti) ' V ti.j — rj)
stm(u, a) = " — - J J (4)
Здесь суммирование ведется по множеству и пользователей, оценивших объекты i и / г,- -средняя оценка объекта ,.
Второй шаг аналогичен второму шагу алгоритма, основанного на сравнении пользователей. Основное отличие в том, что К - множество близких к , объектов. На третьем шаге считается взвешенная средняя оценка похожих объектов, полученная пользователем а:
Ра Л =
EjeK^J * sim(i, j)
(5)
В алгоритме, основанном на сравнении объектов, использовалась более сложная формула (3). Это связано с тем, что средняя оценка объекта показывает, насколько хорошим является объект, а средняя оценка пользователя показывает, насколько строго пользователь оценивает объекты. Формула (3) вычисляет оценку с учетом того, что строгость оценки разных пользователей, вообще говоря, различна.
Алгоритм, основанный на сравнении объектов, имеет несколько преимуществ. Так как интересы пользователей часто меняются, а средняя оценка объекта остается постоянной, то при сравнении объектов достаточно посчитать меру близости каждого с каждым и сохранить в памяти. В частом обновлении этих данных нет необходимости. Меры близости можно посчитать, когда в системе нет активных пользователей.
В современных системах рекомендаций постоянно растет число пользователей и объектов, поэтому наступает момент, когда необходимо использовать распределенную архитектуру системы. При этом возникает проблема хранения данных. Для ее решения применяется
алгоритмы кластеризации для пользователей или объектов, используя меру близости между ними: (1), (2), (4). Разбиение пользователей или объектов на группы дает еще одно преимущество: так как в кластере находятся похожие объекты, то нужный объект достаточно на первом шаге сравнивать с объектами из своего кластера. Это значительно сокращает количество вычислений.
Описанные выше методы коллаборативной фильтрации называются методами, основанными на работе с памятью, так как необходимо хранить матрицу R. Есть и другая группа алгоритмов - методы, основанные на моделях. Идея заключается в том, что имея матрицу R можно построить модель, которая будет меньше по объему занимаемой памяти. Используя полученную модель, можно будет вычислять рекомендации. Примерами таких моделей являются Байесовский алгоритм [2], при котором исходная задача сводится к задаче классификации; Марковские модели [7], которые позволяют учитывать не только похожесть объектов, но и их ценность; а также другие модели [3]. Заключение
В данной работе был кратко изложен основной алгоритм, используемый в системах рекомендаций. Главным достоинством метода коллаборативной фильтрации является то, что он универсален и позволяет рекомендовать объекты, не имея никакого представления о том, что они собой представляют. Коллаборативная фильтрация использует данные обратной связи пользователя (оценки, отзывы). Однако, не всегда доступно необходимое количество оценок, поэтому существует проблема "холодного старта": система не знает, что рекомендовать новому пользователю и кому рекомендовать новый объект.
Список литературы / References
1. Melville Р., Sindhwani V. Recommender systems; Encyclopedia of Machine Learning, 2010.
2. Su X., Khoshgoftaar T.M. A Survey of Collaborative Filtering Techniques; Advances in Artificial Intelligence, 2009.
3. Воронцов К.В. Методы коллаборативной фильтрации и тематического моделирования, 2011. [PDF] [Электронный ресурс]. Режим доступа: http://www.machinelearning.rU/wiki/images/9/95/VoronMLCF.pdf/ (дата обращения: 19.11.2019).
4. Turdakov D. Recommender system based on usergenerated content; SYRCODIS, 2007
5. Jones W.P., Furnas G.W. Pictures of Relevance: A Geometric Analysis of Similarity Measures; Journal of the American society for information science. 38(6): 420-442, 1987. Стр. 420-442.
6. Choi S., Cha S., Tappert C.C. A Survey of Binary Similarity and Distance Measures; Journal of Systemics, Cybernetics and Informatics. Vol 8. № 1 2010. Стр. 43-48.
7. Shani G., Heckerman D., Brafman R.I. An MDP-Based Recommender System; Journal of Machine Learning Research 6, 2005. Стр. 1265-1295.