ОБРАЗОВАНИЕ
КОЛЛАБОРАТИВНАЯ ФИЛЬТРАЦИЯ КАК МЕТОД УЧЁТА ИНТЕРЕСОВ ПОЛЬЗОВАТЕЛЕЙ В РЕКЛАМЕ ПРОДУКЦИИ
Цылова Е.Г., Экгауз Е.Я.
Статья посвящена проблеме рекомендации товаров и услуг потенциальным потребителям на основе методов коллаборативной фильтрации
CUSTOMER'S DEMAND ESTIMATION WITH THE USE OF COLLABORATIVE FILTRATION. CASE OF ADVERTISEMENT INDUSTRY
E.G. Tsilova, E.J. Ekgaus
Current paper studies problem of goods and services recommendation to the potential customers, made as a result of prediction of the Collaborative filtration methods.
Проблема рекомендации товаров и услуг потенциальным потребителям или покупателям (пользователям) в современном мире выходит на первый план. Она состоит в том, чтобы позволить каждому пользователю выбирать среди огромного количества продуктов те, которые ему больше подходят и соответствуют его индивидуальным вкусам и предпочтениям. Обычно для формирования рекомендаций используют списки популярных продуктов, представляющие собой прогноз того, что с высокой степенью вероятности понравится пользователю (контентная составляющая) [1]. В настоящее время такие рекомендации заменяются тар-гетированными (целевыми) предложениями: пользователям предлагают не просто популярные продукты, а те, которые должны понравиться именно им [2]. Для составления таких рекомендаций используются методы коллаборативной фильтрации, заключающиеся в предсказании, насколько понравится пользователю новый продукт, и основывающиеся на оценках автоматически сформированного круга людей, близких по вкусовым предпочтениям [3, с. 11] - социальная составляющая [1].
Коллаборативная фильтрация - один из методов, использующий известные предпочтения (оценки) одной группы пользователей для прогнозирования неизвестных предпочтений другой группы пользователей. Основное допущение этого метода состоит в том, что пользователи, одинаково оценивающие какие-либо предметы в прошлом, склонны давать похожие оценки другим предметам и в будущем [4], при этом рассматриваются два вида оценок продуктов, выставляемых пользователями и отражающих их мнение о рассматриваемых продуктах: явные оценки, характеризующие явное удовлетворение пользователями предлагаемым продуктом (например, оценка по пятибалльной шкале), и неявные (косвенные) оценки, показывающие степень заинтересованности пользователей этими продуктами (например, количество просмотров некоторого фильма) [1].
Конечной целью этого метода является как можно более точное предсказание оценки, которую поставил бы конкретный пользователь ранее неоцененным продуктам.
Е.Г. Цылова, Е.Я. Экгауз
Для осмысленной рекомендации пользователю нового товара или услуги определяется группа пользователей с близкими вкусовыми предпочтениями [5]: для рекомендации некоторому пользователю какого-либо продукта выбираются из большого списка продуктов те, которые нравятся другим пользователям, похожим на него по своим оценкам [2]. Например, если Коля и Петя любят пиццу и греческий салат, а Петя при этом любит еще и кока-колу, то имеет смысл предложить кока-колу и Коле (рисунок 1) [5].
Рис. 1. Принцип коллаборативной фильтрации
Для использования метода коллабора-тивной фильтрации важно ввести численную меру, характеризующую степень близости («похожести») пользователей.
В качестве такой меры можно использовать различные коэффициенты корреляции между продуктами или пользователями. Эти коэффициенты рассчитываются на основе оценок продуктов, выставленных пользователями [6].
Пусть имеется список из м продуктов. Оценки, выставленные этим продуктам отдельно взятым пользователем, представляют собой вектор в м -мерном пространстве продуктов. Для сравнения таких векторов существуют известные методы, среди которых можно выделить следующие:
• Коэффициент корреляции Пирсона;
• Коэффициент корреляции Спирмена;
• Евклидово расстояние;
• Манхэттенское расстояние;
• Косинусная мера;
• Коэффициент корреляции Танимото.
Рассмотрим эти методы.
Допустим, что у нас есть данные по просмотрам и оценкам фильмов двумя пользователями х и у : Xх2,...,хп} и у(,У2,...,Ут) ,где п,т - количества оценок, поставленных первым и вторым пользователем соответственно. Пусть N -количество одинаковых фильмов (пересечение множеств фильмов, посмотренных первым и вторым пользователями). Будем считать, что пара оценок (хг., у ) - это оценки, выставленные пользователями одному и тому же фильму.
Коэффициент корреляции Пирсона. Коэффициент корреляции Пирсона измеряет силу линейной корреляционной связи количественных признаков, то есть это число из промежутка [-1,1], которое показывает тенденцию двух множеств чисел, идущих попарно, быть схожими - образовывать почти линейную зависимость между числами первого и второго множества: х. « Ву{ + А . Если зависимость линейная, то коэффициент корреляции равен 1, если зависимость обратная, то -1, если нет зависимости, то 0 [4].
Коэффициент корреляции Пирсона вычисляется по формуле (1) [4]:
К =
N
Е( -х )■( -у)
1 =1
N О N _
Е( - х )Е(-у)2
1=1
N N N
N -Е х.у -Е х -Е у.
1=1
1
N л2¥ N
N-Ех-|Ех I N■Еу-IЕу
I 1=1 11=1 у Л 1=1 11=1
2
.(((X - X), (у - у))
X-X ■ у-у
(1)
В этом выражении
1 N 1 N
X =1У хг У = - У у
где
N
- средние ё2 (X, У) = Шх, - у )2 - У||2
арифметические выборок х и у соответственно.
Использование коэффициента корреляции в качестве меры связи оправданно лишь тогда, когда совместное распределение пары признаков нормально или почти нормально.
Коэффициент корреляции Спирмена. Коэффициент корреляции Спирмена определяют как коэффициент корреляции между ранжированными переменными. Наименее предпочитаемому фильму выставляется оценка 1, следующему 2 и т. д. [4]
Коэффициент корреляции Спирмена вычисляется по формуле (2) [7]:
К = 1 -
вё2
N((2 -1)
(2)
евклидово расстояние между векторами X и У.
Коэффициент к принимает значения из промежутка [0,1). Чем меньше расстояние ё2 (X, У), тем больше коэффициент к, то есть вкусы пользователей более схожи
[4].
Манхэттенское расстояние. Как и в случае Евклидова расстояния, пользователи выступают в роли точек в многомерном пространстве с координатами-оценками, и реализация метода заключается в нахождении «расстояния» между пользователями, однако, в качестве меры близости векторов X и у берется сумма модулей длин проекций отрезка между точками на оси координат.
Коэффициент рассчитывается по формуле (4) [8]:
где ё2 - сумма квадратов разностей рангов, а N - число парных наблюдений.
При использовании коэффициента ранговой корреляции условно оценивают тесноту связи между признаками, считая значения коэффициента по модулю, меньшие 0,3, показателями слабой тесноты связи; значения от 0,3 до 0,7 - показателями умеренной тесноты связи, а значения, большие 0,7 - показателями высокой тесноты связи.
Евклидово расстояние. Реализация этого метода заключается в нахождении «расстояния» между пользователями. Пользователи в этом случае выступают в роли точек в многомерном пространстве с координатами-оценками. Учитываются только оценки, выставленные фильмам, просмотренным обоими пользователями [4].
Коэффициент рассчитывается по формуле (3) [4]:
К = 1/(1 + ё2) (3)
К = 1/(1 + )
N
где ё (X, У) = У|хг - у\ = ||X - У|^
(4)
г =1
Коэффициент к принимает значения из промежутка [0,1) . Чем меньше расстояние (X, У) , тем больше коэффициент к, то есть вкусы пользователей более схожи [8].
В рекомендательных сервисах наиболее часто используется Косинусная мера и Коэффициент корреляции Танимото [2].
Косинусная мера. Рассмотрим угол, образованный двумя векторами предпочтений пользователей X х2,..., х^ и У (у1, у2,..., у^) , исходящими из точки О (0,0,...,0) .В качестве оценки близости этих векторов рассматривается косинус угла между этими векторами. В самом деле, двух пользователей разумно считать похожими, если угол между их векторами предпочтений мал (рисунок 2) [5].
г =1
Цылова Е.Г., Экгауз Е.Я.
Рис. 2. Косинусная мера
На основе геометрического смысла скалярного произведения двух векторов, косинус угла между векторами предпочтений вычисляется по формуле (5) [4].
N
Е Х'У'
K =■
i=1
N
Е x2-Е У
i^YL 11X1 -IY
(5)
i=1
i=1
Рис. 3. Суть коэффициента корреляции Танимото
Рассмотрим систему, состоящую из к пользователей и 5 продуктов. Пусть некоторые пользователи оценили какие-то продукты по шкале от -5 до 5. На основе этих оценок строится к х 5 -мерная матрица оценок (рисунок 4):
Предметы
-1 < K = cos A < 1 Если к = 1 АЛ = 0°, то пользователи похожи. Если к =-1 АЛ = 180°, то вкусы пользователей противоположны. Если K = 0 АЛ = 90° — зависимость между предпочтениями этих двух пользователей не просматривается.
Косинусная мера близости может быть применена только тогда, когда оценки выставляются по симметричной шкале (например, из промежутка от -5 до 5).
Коэффициент корреляции Танимото. В случае булевых значений оценок пользователей (понравилось - не понравилось) меру схожести пользователей удобно вычислять на основе коэффициента корреляции Танимото.
Коэффициент корреляции Танимото — это отношение количества фильмов j , оцененных одновременно обоими пользователями, к общему количеству фильмов a , оцененных хотя бы одним пользователем [4]:
K = J / A (6)
Суть коэффициента корреляции Танимо-то можно проиллюстрировать на кругах Эйлера (рисунок 3) [5], где этот коэффициент является отношением меры пересечения множеств предпочтений пользователей к мере их объединения.
I 2 _ . ж . г s
1 3 4 2 5
£ 2 d 3 ■ ■ 1
1 1 -1 1
2« г* 5 3 2
ё : 4 4
к 3 5
Рис. 4. Матрица оценок
Рассмотрим пользователя а, о котором известно, как он оценил некоторые из этих продуктов 5, кроме продукта I (рисунок 5): I 2 ... I ... Б
4 -3 7 5
Рис. 5. Вектор оценок пользователя
Наша задача — предсказать оценку этим пользователем продукта I. Имеет смысл рассматривать оценки только пользователя а и тех пользователей, которыми продукт I уже оценен.
Реализация алгоритма коллаборативной фильтрации заключается в следующем [2].
1. Для каждого из пользователей, оценивших продукт I, определяется, насколько его интересы схожи с интересами пользователя а, для этого вычисляется выбранная мера близости (например, косинусная) в отношении рассматриваемого пользователя.
2. Выбирается множество и из Ь пользователей, вкусы которых наиболее близки вкусам пользователя а. Для каждого из выбранных пользователей выставленные оценки умножаются на вычисленную на первом шаге величину меры близости, таким образом, оценки более «похожих» пользователей будут сильнее влиять на итоговую позицию.
3. Подсчитывается сумма масштабированных на втором шаге оценок; эта сумма делится на сумму модулей мер близости выбранных пользователей. Таким образом, оценка представляет собой среднюю взвешенную оценку по всем пользователям из множества и. Благодаря использованию весов, вклад в предсказание оценки тем больше, чем ближе пользователь и к пользователю а.
Рассмотрим шаги алгоритма более подробно [2].
Первый шаг. Каждому пользователю в матрице соответствует одна строка, поэтому вычисляется близость векторов-строк пользователей, оценивших продукт -, и вектора-строки а. Например, в случае косинусной меры, оценка близости будет иметь вид:
^г • г
и, 1 а, ]
ят(и, а) = ■
1=1
V
У г1 -У г'.
/—I и ,1 а ,1
1=1 1=1
(7)
включают первых ь пользователей, наиболее близких к пользователю а. Затем для всех пользователей из множества и выставленные ими оценки продукта - умножаются на их меру близости: ги - • 81т(и,а).
Третий шаг. Вычисляется оценка, которую поставил бы пользователь а продукту -:
У ги,г • ™т(и, а)
Ра,г =
иеи
У |^/т(и, а)|
(8)
Здесь ги 1 — оценка продукта ] пользователем и (значение элемента матрицы оценок в и -ой строке, ] -ом столбце); га^ -оценка продукта ] пользователем а (значение 1 -го элемента вектора оценок а).
Если пользователь не дал оценку для какого-то продукта, соответствующее значение элемента ги,у или га ]. равно 0.
Второй шаг. Выбирается ь наиболее похожих на а пользователей. Есть несколько вариантов выбора числа ь , чаще всего выбирается некоторая целая константа. Все пользователи сортируются по убыванию меры близости хт(и, а). В множество и
Описанный алгоритм позволяет предсказать оценки для продуктов, которые текущий пользователь еще не оценил. Чтобы составить список рекомендуемых продуктов для данного пользователя, нужно предсказать оценки для всех неоцененных им продуктов и выбрать те продукты, у которых предсказанная оценка максимальна.
Заметим, что при использовании приведенного алгоритма тематика оцениваемых предметов должна быть достаточно близкой, иначе построенная оценка может не иметь никакого отношения к реальному предмету. Предварительно у пользователя можно спросить, какие предметы его интересуют. Допустим, пользователь посмотрел фильм, выставил ему общую оценку и указал жанр фильма и актеров, которые в нем играли (дополнительно можно указать год выпуска фильма). В этом случае пользователю можно предложить фильмы, которые ему нравятся больше всего по жанру, причем первыми в списке могут быть фильмы, более близкие к годам оцененных им фильмов, так как в них априорно больше актёеров из фильмов, которым пользователь дал хорошую оценку.
Мы описали один из простейших вариантов метода коллаборативной фильтрации на основе косинусной меры сходства. Важно понимать, что существуют и другие подходы к реализации идеи этого метода, другие варианты выбора меры близости оценок продуктов
Цылова Е.Г., Экгауз Е.Я
ЛИТЕРАТУРА
1. Лебедев А. Коллаборативная фильтрация: как считать рекомендации? // Российские интернет-технологии 2008 [Электронный ресурс]. Режим доступа: http:// www.slideshare.net/profyclub/ss-1759196.
2. Коллаборативная фильтрация [Электронный ресурс]. Режим доступа: http:// habrahabr.ru/post/150399/.
3. Дзюба А.А. Подходы к рекомендации треков в социальных сетях // Список-2012: Материалы Всероссийской научной конференции по проблемам информатики. 25-27 апреля 2012 г., Санкт-Петербург. СПб.: ВВМ, 2012. 520 с. [Электронный ресурс]. Режим доступа: http://spisok.math.spbu.ru/txt/SPISOK-2012.pdf.
4. Apache Mahout. Метрики для определения схожести пользователей [Электронный ресурс]. Режим доступа: http://habrahabr.ru/post/188350/.
5. Daniel Bartl. Background of Collaborative Filtering with Mahout [Электронный ресурс] // Режим доступа: http://architects.dzone.com/articles/ background-collaborative.
6. Макарь В.А. Коллаборативная фильтрация в информационных системах [Электронный ресурс] Научно-издательский центр «Социосфера». Режим доступа: http:/sociosphera.com/ publication/conference/2012/160kollaborativnaya_filtraciya_v_informacionnyh_sistemah/.
7. Коэффициент ранговой корреляции Спирмена [Электронный ресурс]. Режим доступа: http://www.infamed.com/stat/s05.html.
8. Taxicab geometry [Электронный ресурс]. Режим доступа: http://en.wikipedia.org/wiki/ Taxicab_geometry.