УДК: 004.02, 004.051, 004.415.2 MSC2010: 68Т99
РАЗРАБОТКА ГИБРИДНОЙ СИСТЕМЫ РЕКОМЕНДАЦИЙ © М. Г. Козлова, М. С. Германчук
КРЫМСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ ИМ. В. И. ВЕРНАДСКОГО ФИЗИКО-ТЕХНИЧЕСКИЙ ИНСТИТУТ
просп. Академика Вернадского, 4, Симферополь, 295007, Российская Федерация e-mail: kozlovamg@cfuv.ru, germanchukms@cfuv.ru
The development of a hybrid recommendation system.
Kozlova M. G., Germanchuk M. S.
Abstract. Recommender systems are programs for finding objects that respond to user's interests. Most often, recommender systems are used in Internet networks for commercial purposes. To attract users to the website, the recommender system is adapted to their tastes and preferences. "Intelligence-of recommendations allows users to find information that interests the them. Based on the type of objects, the audience coverage, the method of obtaining information about objects and users, as well as the required accuracy and completeness of the recommendations, methods and algorithms on which the system of recommendations is based are selected. The most common methods include statistical methods, collaborative filtering techniques, content filtering methods, contextual methods and hybrid methods. Each of these methods has its advantages and disadvantages. Some of the problems that are involved with developing recommender systems are difficult to solve within a single method, so hybrid recommender systems are of interest. The optimal combination of methods allows to develop the most effective system of recommendations. For example, combining collaborative filtering and content filtering takes advantage of these methods individually. Content filtering compares the content of objects with the interests of the user, but does not take into account the quality of these objects. In collaborative filtering recommendations are made depending on the ratings of users ratings (estimates). Therefore, the user will not be offered objects with a low rating. Also, collaborative filtering gives the user atypical objects that are not included in the list of interests of the user, but could please him. Thus, the problem of limiting the range of interests of the user is solved. The content filtering method, in turn, solves the problem of new objects. If the object has not been rated by any user yet, it will not be included in any list of collaborative filtering recommendations. However, if you add an object to the database and specify some information about it in the form of text (or if the object itself is text), content filtering will be able to identify the most similar objects and recommend it to users who chose such objects. The purpose of the work: to identify the main problems of recommender systems and methods of their solution; to develop a hybrid system of recommendations, using as the basic methods of collaborative filtering
and content filtering; using metrics of accuracy and completeness, to determine the most effective method of composition methods.
Keywords : hybrid recommender system, collaborative filtering techniques, content filtering method, accuracy and completeness criteria
Введение
Системы рекомендаций (СР) — это программы для поиска объектов, которые отвечают интересам пользователя. В частности, в СР прогнозируются оценки, которые с наибольшей вероятностью данный пользователь поставит определенному объекту.
Чаще всего СР используются в Интернет-сетях для коммерческих целей. Для привлечения пользователя на веб-сайт система рекомендаций адаптируется под его вкусы и предпочтения. «Интеллектуальность» выдачи рекомендаций позволяет находить информацию, которая интересует пользователя.
Исходя из типа объектов, охвата аудитории, способа получения информации об объектах и пользователях, а также требуемой точности и полноты рекомендаций, выбираются методы и алгоритмы, на основе которых строится СР. К наиболее распространенным методам относят: статистические методы, метод коллаборативной фильтрации (КФ), методы фильтрации по содержимому (ФС), контекстные методы, гибридные и др.
Каждый из перечисленных методов имеет свои преимущества и недостатки. Некоторые проблемы, связанные с разработкой СР, трудно решить, используя один метод, поэтому интерес представляют гибридные СР. Оптимальное комбинирование методов позволяет разработать наиболее эффективную СР. Например, в объединении КФ и ФС реализуются преимущества, присущие данным методам по отдельности. В методе ФС сравнивается содержание объектов с интересами пользователя, но не учитывается качество этих объектов. В КФ вырабатываются рекомендации в зависимости от рейтинга оценок, поставленных пользователями. Следовательно, пользователю не будут предлагаться объекты с низким рейтингом. Также КФ выдает пользователю нетипичные объекты, которые не входят в список интересов пользователя, но могли бы ему понравиться. Таким образом, решается проблема ограничения круга интересов пользователя.
Метод ФС, в свою очередь, позволяет решить проблему новых объектов. Если объект еще не оценил никто из пользователей, то он не попадет ни в один список рекомендаций КФ. Но если при добавлении объекта в базу данных указывать о нем какую-то информацию в виде текста (или если этот объект сам является текстовым),
то ФС сможет определить наиболее похожие на него объекты и рекомендовать его пользователям, которые выбирали подобные объекты.
Цель работы: выделить основные проблемы СР и методы их решения; разработать гибридную СР, используя в качестве базовых методы коллаборативной фильтрации и фильтрации по содержимому; используя метрики точности и полноты, определить наиболее эффективный способ композиции методов.
1. ОБЗОР РЕЗУЛЬТАТОВ ПО РАЗРАБОТКЕ СИСТЕМ
РЕКОМЕНДАЦИЙ
Отметим, что уже более 25 лет ведутся исследования по разработке и усовершенствованию СР. Чтобы сделать их наиболее точными и быстрыми, используются различные методы и алгоритмы; без изучения СР в настоящее время не обходится ни один курс машинного обучения. Одними из первых учитывать предпочтения пользователей стали разработчики цифрового видеомагнитофона TiVo, автоматически записывающего интересные для пользователя передачи. В основу системы рекомендаций был предложен так называемый метод коллаборативной фильтрации, который учитывал сходство предпочтений пользователей. Если на различных устройствах TiVo различные пользователи выбирали, как правило, для просмотра одни и те же программы, а потом один пользователь начинал регулярно смотреть какую-либо новую передачу, то эту передачу рекомендовали и другим пользователям. Сбор данных для выработки рекомендаций достигался с помощью учета, какие кнопки и в какое время нажимал пользователь. Данные отправлялись на центральный сервер, где и подсчитывались результаты [1].
В разработку СР огромный вклад внесла компания проката DVD дисков Netflix. Компания активно занималась усовершенствованием коллаборативной фильтрации, устраивая открытые соревнования на лучший алгоритм выдачи рекомендаций [2].
Со временем стало очевидно, что для качественной рекомендации недостаточно одной лишь коллаборативной фильтрации. Поэтому многие ведущие компании перешли к методам, использующим содержимое объектов или их качественное описание. Например, при рекомендации фильма учитывался не только его рейтинг среди других пользователей, но и жанр, режиссер, год выхода, страна-производитель и т. д.
Следующим шагом для развития систем рекомендаций стало открытие, что для пользователя имеет значение не только фильтрация по предпочтениям пользователей со схожими вкусами, но и собственное сиюминутное настроение и окружение. То есть СР должна учитывать контекст, в котором вырабатывается рекомендация.
Это совершенно новый подход, учитывающий поведение пользователя и являющийся наиболее интерактивным.
Исследования по теме СР, классификацию, подробное описание алгоритмов можно найти в работах [3-6]. Углубленный анализ алгоритмов коллаборативной фильтрации содержится в работах [7, 8, 10]. Об оценке эффективности систем рекомендаций изложено в статье [9]. Из отечественных авторов вклад в изучение систем рекомендаций внесли К. В. Воронцов, Ю. С. Нефедова, Е. А. Кольчугина [11-13]. О современных направлениях в разработке систем рекомендаций можно найти информацию на портале Хабрахабр.
Метод коллаборативной фильтрации основывается на оценках количества просмотров, при этом содержимое объектов и профиль пользователя не влияют на результат. Для того, чтобы предложить пользователю список рекомендаций, КФ определяет его «соседей» по интересам и использует их оценки для других объектов. Таким образом, идея КФ заключается в том, что пользователи, которым прежде нравились одинаковые объекты, в будущем также будут одинаково оценивать другие объекты. Благодаря этому предположению СР может с высокой вероятностью определять, какую оценку пользователь поставит некоторому объекту [14]. Преимущества метода: для каждого пользователя вырабатываются индивидуальные рекомендации; учитывается качество объектов; для работы метода необходимы только данные об оценках пользователей. Недостатки метода: невозможно выдать рекомендацию новым пользователям и рекомендовать новые объекты; проблема масштабируемости и разреженности данных.
Рассмотрим memory-based алгоритм, основанный на сходстве пользователей [3, 14, 15]. Пусть и =(«1, и2,...,ип) — множество всех пользователей, 0=(о 1, о2,..., от) — множество всех объектов. Отношение пользователя и € и к объектам можно определить в виде вектора оценок Ги=(ги1 ,ги2,...,гип), который представляет собой точку в пространстве Мп, где М — множество оценок, допустимых в используемой шкале. Пусть Я — матрица оценок всех пользователей для всех объектов:
2. МЕТОД КОЛЛАБОРАТИВНОИ ФИЛЬТРАЦИИ
Я
Г21 Г 22 ... Г 2т
Строки матрицы — векторы оценок пользователей из множества и, столбцы
оценки объектам из множества О. Каждый элемент матрицы т^- (г = 1,п,] = 1, т), представляет собой оценку пользователя щ объекта о5-.
Чтобы найти приближенную оценку т^, которую пользователь щ поставит объекту о5-, необходимо выполнить следующие операции:
1. Найти множество пользователей Uj, уже оценивших объект о5-. Для каждого пользователя из множества и определить насколько его оценки совпадают с оценками пользователя щ. В работе используется косинусная мера схожести:
• / \ / \ ГПк Г Щ ) г , , ч
згт(щ,ик) = сов(тщ ,тик) = ^-^^-гр = ^ _ = € [0,1], (1)
1ги Ц2ЦТик ^^/г™ т2 / Г™ т2 II 412\\ к1 12 у 2^5 = 1 '^2^=1
Альтернативой мере схожести (1) являются расстояние Хемминга, расстояние Евклида, коэффициент корреляции Пирсона, коэффициент Жаккара и другие.
2. Из множества и выбрать наиболее похожих на щ пользователей.
3. Определить оценку , используя оценки выбранных пользователей, которые они поставили объекту 05. Обычно используют оценку:
j ' Ui
Eugu,im (ru - ru) • simjuj,u)
¿u6U.im lsim(ui,u)l 1
(2)
где т^ - средняя оценка пользователя щ (соответственно ти — средняя оценка пользователя и).
Для составления рекомендации необходимо найти оценки для всех объектов, которые пользователь еще не оценил. Затем нужно вывести объекты с максимальными прогнозируемыми оценками.
3. МЕТОД ФИЛЬТРАЦИИ ПО СОДЕРЖИМОМУ
Методы фильтрации по содержимому основываются на сравнении объектов по их содержимому (или описанию) с интересами пользователя. Если пользователь высоко оценил какой-либо объект, то он скорее всего заинтересуется и другими схожими по содержанию объектами. Преимущества методов: каждому пользователю выдаются индивидуальные рекомендации, учитываются интересы пользователя, возможность распределять объекты по тематикам. Недостатки методов: сложность работы с нетекстовыми объектами; не учитывается качество объектов; со временем устанавливаются некоторые «границы интересов» пользователя и рекомендуется только та информация, которая попадает в эту базу предпочтений [16].
Методы, основанные на содержимом, подходят для рекомендации текстовых документов и объектов, описанных с помощью текста (например, можно использовать
аннотации, рецензии, комментарии, теги). Отличительной особенностью является то, что полученные рекомендации всегда учитывают интересы пользователя.
Основная идея фильтрации по содержимому: определить профиль пользователя и найти объекты, которые ему соответствуют. Если профиль пользователя и содержание объектов - это множества ключевых слов, то их близость определяется с помощью коэффициентов сходства двух множеств (коэффициент Жаккара, коэффициент Дайса и др.). Пусть КШ1 и КШ2 - два множества ключевых слов. Тогда коэффициент Жаккара примет вид:
\КШлП КШ2\
= ^^цКЩ, (3)
4. СПОСОБЫ КОМБИНИРОВАНИЯ В СИСТЕМАХ
РЕКОМЕНДАЦИИ
Следуя [14], выделим следующие способы совместного использования методов.
1. Монолитная структура комбинации методов. В СР с монолитной структурой несколько методов обработки данных объединяются в один модуль. Методы неразрывно связаны между собой и выдают один общий список рекомендаций.
2. Параллельная структура комбинации методов. В таких СР данные о пользователях и объектах поступают отдельно в каждый модуль. Разные методы разрабатывают рекомендации независимо друг от друга.
3. Конвейерная структура комбинации методов. Конвейерная организация СР предполагает последовательную обработку данных различными методами и алгоритмами. Результат работы каждого метода используется в вычислениях следующих по очереди методов.
Способ комбинирования методов выбирается для каждого набора методов отдельно в зависимости от их типа и задач СР.
Для разрабатываемой гибридной СР была выбрана параллельная структура комбинации методов. Архитектура системы схематично изображена на рис. 1.
Каждым методом, независимо друг от друга, вычисляются рекомендации для заданного пользователя. Метод КФ получает на вход массив оценок Я и высчитывает для заданного пользователя приближенные оценки объектов, которые еще не были оценены. Результатом работы первого метода является упорядоченный по убыванию массив рекомендаций , включающий в себя название объектов и их оценки.
Для метода ФС на вход подается массив оценок данного пользователя и массив ключевых слов К^. Результатом работы второго метода является массив рекомендаций , где объекты расположены в порядке убывания полезности для пользователя.
Рис. 1. Архитектура СР
Далее элементы полученных массивов и поступают в блок вычисления общих рекомендаций. Окончательный список рекомендаций составляется одним из следующих способов:
• возвращаются все полученные рекомендации (объединение списков рекомендаций);
• возвращаются объекты, попавшие в оба списка рекомендаций (пересечение списков рекомендаций);
• среди рекомендаций выбираются объекты с наивысшей средней оценкой по всем модулям;
• для каждого метода устанавливается свое пороговое значение, отсеивающее объекты с низким рейтингом.
Таким образом, СР основывается не только на сходстве пользователей, но и на интересах конкретного пользователя. В список рекомендаций попадают объекты с высоким прогнозируемым рейтингом, близкие по содержимому к интересам пользователя, неожиданные рекомендации и новые объекты, которые еще никто не оценил.
5. ТЕСТИРОВАНИЕ
5.1. Критерии точности и полноты системы рекомендаций
Данный способ оценивания эффективности СР используется в тех случаях, когда нужно оценить разницу между реальными группами объектов и группами, образованными СР [17]. В таких системах под группами обычно подразумеваются два набора объектов: Р — положительные (полезные) и N — отрицательные (бесполезные). Следовательно, можно выделить четыре типа исходов (ошибок или их отсутствия) для рекомендации г некоторого объекта obj, которые представлены в табл. 1.
Сравнивая величины Ьр, Ьи, ¡р, ¡и можно получить различные показатели эффективности для СР:
Таблица 1. Результаты прогнозирования
obj £ P obj £ N
robj £ P Верно положительные (tp) Ложно положительные (fp)
robj £ N Ложно отрицательные (fn) Верно отрицательные (tn)
• точность (precision): P = (tp+fp) ,P £ [0; 1];
• полнота (recall): R = (tp+fn),R £ [0; 1].
Точность показывает, сколько в списке рекомендаций действительно полезных объектов по отношению ко всему списку рекомендаций. Полнота же отражает, все ли действительно полезные объекты пошли в список рекомендаций. Практика показывает, что критерии точности и полноты противоречивы. Как правило, при увеличении точности полнота понижается, и наоборот. Однозначно определить качество работы системы невозможно по той причине, что тестовая выборка не содержит оценок для всех объектов. Поэтому судить о её эффективности можно только отследив, попали ли объекты из тестовой выборки в список рекомендованных объектов.
Для тестирования были использованы базы данных веб-сайта MovieLens, собранные GroupLensResearch. Объектами в СР выступают кинофильмы, ключевыми словами объектов - жанры и «тэги» к фильмам, а шкала оценивания равна от 1 до 5. База данных содержит 100 000 оценок от 943 пользователей для 1682 фильмов. Данные были разделены на обучающую (80 000 оценок) и тестовую (20 000 оценок) выборки. Прежде чем давать оценку точности и полноты всей гибридной системы рекомендаций, следует отдельно оценить методы, которые в нее входят: метод кол-лаборативной фильтрации и метод фильтрации по содержимому.
5.2. Оценка эффективности метода КФ
При использовании метода КФ на вход передается массив оценок и имя (id) пользователя. Процедура КФ рассчитывает для пользователя прогнозируемые оценки объектов, которые еще не оценены. При вычислении оценок используются оценки k ближайших соседей по интересам пользователя. Результатом работы этого метода является упорядоченный по убыванию список рекомендаций, включающий в себя название объектов и их прогнозируемые оценки. В массив рекомендаций входят только те объекты, оценки которых выше или равны параметру rmin (минимальной положительной оценке).
Эффективность данного метода зависит от количества оценок и пользователей в базе данных, а также от количества ближайших соседей пользователя k и минимальной положительной оценки rmin. На рис. 2 изображена зависимость точности
и полноты КФ от параметров к (зеленым цветом - круги) и ттги (синим цветом ромбы).
Рис. 2. Зависимость точности и полноты метода КФ от параметров (к; гтгп)
Полученные оценки точности Р=0.77 и полноты Л=0.42 показали, что наилучший результат получен при к=30 и ттги=4. Если понизить ттги=3, то значительно падает точность рекомендаций Р=0.64, а полнота наоборот становится в два раза выше Л=0.81. Остальные наборы параметров приводят либо к крайне низкой точности, либо система выдает слишком мало рекомендованных объектов, что следует из низкого значения полноты.
5.3. Оценка эффективности метода ФС
В методе ФС на вход подается массив оценок пользователя и массив ключевых слов КШ. Результатом работы данного метода является список рекомендаций , где объекты расположены в порядке убывания полезности для пользователя. В список рекомендаций попадают только те объекты, чья близость к интересам пользователя превышает заданный порог 5 € [0,1], умноженный на максимально близкое расстояние, полученное для данного пользователя. Также на результат влияет параметр ттги, по которому находится список ключевых слов пользователя. Если пользователь оценил объект выше, чем ттги, то ключевые слова объекта заносятся в интересы пользователя.
На рис. 3 синим цветом (точками в форме ромбов) отображена зависимость точности и полноты от значения 5 при ттги=3, зеленым цветом (круги) при ттги=4 и красным цветом (квадраты) при ттги=5.
Рис. 3. Зависимость точности и полноты метода ФС от параметров (8; гтгп)
Полученные оценки Р=0.87, Л=0.1 показали, что самой высокой точности (при ненулевой полноте) ФС достигает при значениях 5=0.7; тшги=5. Также приемлемый результат Р=0.78, Л=0.23 получен при 5=0.5; тшги=5. Время выполнения алгоритма метода ФС зависит от количества ключевых слов у пользователя и объектов.
5.4. Оценка эффективности гибридной СР
Так как КФ и ФС должны дополнять друг друга, то изначально была выбрана параллельная организация алгоритмов. В список рекомендаций попадают объекты с высоким прогнозируемым рейтингом, объекты, которые близки по содержимому к интересам пользователя, неожиданные рекомендации и новые объекты, которые еще никто не оценил. Оценки точности и полноты для получения общего списка рекомендаций путем объединения результатов КФ и ФС отображены на рис. 4 зелеными точками в форме кругов. Лучший результат относительно точности Р=0.78, Л=0.34 получен при к=30, тшги()=5, гшт()=4.5, 5=0.4; относительно полноты Р=0.74, Я=0.52.
Если же находить рекомендации как пересечение списков КФ и ФС, то значительно возрастает точность рекомендаций, а полнота наоборот уменьшается. Например, при различных параметрах 5; гшъи() получены показатели (рис. 4 — синие ромбы): Р=0.88, Я=0.09; Р=0.84, Я=0.15; Р=0.82, Я=0.2.
Полученные оценки означают, что гибридная СР выдает достаточно точные рекомендации и хорошо отфильтровывает «бесполезные» объекты. Однако, под фильтр
Рис. 4. Зависимость точности и полноты СР от параметров (8; гтгп()) и способа организации методов
попадает и большое число интересных пользователю объектов, на что указывает низкое значение полноты СР.
Дальнейшая оптимизация гибридной СР произведена, исходя из предположения: если при составлении списков рекомендаций КФ и ФС удалить из списка КФ объекты, которые далеки от интересов пользователя (по ФС), а из списка ФС удалить объекты с низким рейтингом (по КФ), то в результате должен получиться более «чистый» общий список рекомендаций. При этом, если КФ и ФС не могут дать ответ по какому-либо объекту (если он новый или абсолютно нет схожих ключевых слов с пользователем), то объект не удаляется из списка.
Полученные результаты для данного способа объединения методов превышают остальные и по точности, и по полноте (рис. 4 — красные квадраты). Первое число на графике — rmin(), второе — порог rmin() для модуля ФС, третье — порог 5 для модуля КФ. Значение 5 на всех примерах равно 0.4, k=30.
Недостатком данного способа организации методов является самая низкая скорость выдачи рекомендаций для пользователя.
6. ТЕСТИРОВАНИЕ
При разработке и тестировании гибридной СР выявлена следующая проблема: чем больше объектов и пользователей в системе, тем больше времени занимает процесс выдачи рекомендаций. К тому же, пользователи не могут оценить все объекты в системе, поэтому матрица оценок всегда является очень разреженной (содержит
огромное количество пустых значений). Оба этих фактора отрицательно сказываются на качестве рекомендаций и эффективности СР.
6.1. Масштабируемость
Одним из способов повысить масштабируемость СР является применение алгоритмов кластеризации. С её помощью множество пользователей/объектов делятся на кластеры. Тогда необходимо лишь запоминать свойства, присущие каждому кластеру (в виде вектора оценок), и проверять, насколько близок пользователь к каждому из них.
Алгоритмы кластеризации позволяют выявить структуру данных, найти сходство между элементами (объектами, пользователями) посредством вычисления их расстояния от других элементов в пространстве признаков (например, профиль пользователя, просмотренные фильмы). Если элементы «близки» друг к другу, то их можно объединить в один кластер [11].
Существует множество алгоритмов кластеризации. Одним из самых популярных является алгоритм к-средних (к-швЕдв), который разделяет элементы на к кластеров. Первоначально элементы распределяются по этим кластерам в произвольном порядке. Затем для каждого кластера вычисляется центр масс (или просто центр) как функция его элементов. После этого проверяется расстояние каждого элемента кластера от центра этого кластера. Если по результатам этой проверки элемент оказывается ближе к другому кластеру, то он перемещается в этот кластер. После проверки всех расстояний для всех элементов центры кластеров вычисляются заново. При достижении устойчивого состояния (в процессе очередной итерации элементы не перемещались) набор считается кластеризованным надлежащим образом и алгоритм останавливается.
Алгоритм к-средних [11]:
10 сформировать начальное приближение центров всех кластеров у € У: ^у — наиболее удалённые друг от друга объекты выборки;
20 повторять
30 отнести каждый объект к ближайшему центру (аналог Е-шага):
у := arg minр(хг; ßy);
yeY
40 вычислить новое положение центров (аналог M-шага):
ßyi :
50 пока yi не перестанут изменяться.
В качестве начального приближения рекомендуется выделить k наиболее удалённых точек выборки: первые две точки выделяются по максимуму всех попарных расстояний; каждая следующая точка выбирается так, чтобы расстояние от неё до ближайшей уже выделенной было максимально.
Существует множество других разновидностей кластеризации, в том числе теория адаптивного резонанса (Adaptive Resonance Theory), нечеткая кластеризация методом C-средних (Fuzzy C-means), вероятностная кластеризация с помощью EM-алгоритма (Expectation-Maximization) и т. д.
6.2. Использование пакета Surprise (Python3)
В пакет Surprise включено множество алгоритмов, выборок данных для разработки СР и проверки её эффективности. Для построения простейшей СР достаточно указать [18]:
from surprise import KNNWithMeans
from surprise import Dataset
from surprise import evaluate, print_perf
# Загружаем выборку movielens-100k,
# и делим её на 3 части для cross-validation. data = Dataset.load_builtin('ml-100k') data.split(n_folds=3)
# Используем алгоритм коллаборативной фильтрации KNNWithMeans algo = KNNWithMeans()
# Находим оценки эффективности.
perf = evaluate(algo, data, measures=['RMSE', 'MAE'])
print_perf(perf)
В результате получим:
Fold 1 Fold 2 Fold 3 Mean RMSE 0.9574 0.9506 0.9587 0.9556 MAE 0.7536 0.7491 0.7562 0.7530
Метод split() автоматически делит выборку movielens-100k на три части, а функция evaluate() запускает процедуру cross-validation() и считает точность СР по заданных мерам (в данном случае RMSE и MAE).
В таблице 2 перечислены алгоритмы прогнозирования оценок, реализованные в пакете Surprise.
Таблица 2. Алгоритмы прогнозирования оценок
random pred.NormalPredictor Алгоритм, возвращающий случайную оценку, основанную на нормальном распределении
knns.KNNBasic Алгоритм коллаборативной фильтрации
knns.KNNWithMeans Алгоритм коллаборативной фильтрации с учетом средних оценок пользователей
knns.KNNBaseline Алгоритм коллаборативной фильтрации с учетом базового рейтинга
matrix factorization.SVD Алгоритм 8УБ (8УБ++)
matrix factorization.SVDpp Усложненный алгоритм 8УБ++, в котором учитываются неявные оценки
matrix factorization.NMF Алгоритм коллаборативной фильтрации, основанный на факторизации неотрицательных матриц
slope one.SlopeOne Простой, но точный алгоритм коллаборативной фильтрации
co clustering.CoClustering Алгоритм коллаборативной фильтрации, основанный на кластеризации
Для определения точности каждого из алгоритмов воспользуемся классом GridSearch пакета Surprise. С его помощью можно проверить точность алгоритма на различных комбинациях значений параметров и найти лучшую. Подробную информацию об этом классе можно найти в документации пакета Surprise [18].
Для отображения результатов была использована библиотека ggplot2 языка R, предназначенная для построения двумерных графиков и диаграмм [19].
6.3. Алгоритм CoClustering (основанный на алгоритме коллаборатив-ной фильтрации и методе кластеризации k-средних)
Данный алгоритм является реализацией алгоритма, описанного в [19]. Пользователям и объектам назначаются некоторые кластеры Cu, Ci и некоторые со-кластеры Cui. Оценка rui задается как:
rui = Cui + (^u — Cu) + Oi — Ci)j
где Cui — средняя оценка со-кластера Cui, Cu — средняя оценка кластера Cu, а Ci — средняя оценка ^-го кластера. Если информации о пользователе нет, то оценка равна rui=^. Если неизвестна информация об объекте, то оценка равна rui=^u. Если нет ни информации о пользователе, ни об объекте, то оценка равна rui=^.
Кластеры назначаются, используя метод, основанный на методе k-средних.
Параметры алгоритма:
• n_cltr_u(int) - число кластеров пользователей;
• n_cltr_i(int) - число кластеров объектов;
• n_epochs(int) - число итераций оптимизации.
Проверим точность данного метода с помощью оценки RMSE (среднеквадратичная ошибка — Root Mean Square Error). При проверке использована выборка movielens-100k. На рис. 5 изображены результаты тестирования в виде трех графиков (на первом графике параметр n_epoch равен 5, на втором — 10, на третьем — 20. На горизонтальной оси отображены значения параметра n_cltr_u, на вертикальной — n_cltr_i. На пересечении n_cltr_u и n_cltr_i находятся значения критерия точности RMSE. Чем меньше диаметр круга и чем он темнее, тем лучше показатель.
Рис. 5. Точность алгоритма CoClustering по RMSE
Таким образом, наилучшим набором параметром на данной выборке является: n_cltr_u = 5, n_cltr_i = 2, n_epoch = 20. RMSE = 0.9621.
6.4. Разреженность данных
Кроме Memory-based алгоритмов КФ, основанных на анализе имеющихся оценок и создающих рекомендации с помощью статистических методов, существуют также Model-based алгоритмы, в основе которых лежит анализ модели данных, основанной на оценках пользователей. Такая модель представляет собой некоторое описание предпочтений пользователя, сходства товаров и различные закономерности. Чтобы выдать рекомендации, система проходит два этапа: обучение модели и вычисление рекомендаций на основе полученной модели. Этот метод позволяет системе быстро
получать рекомендации в реальном времени, т. к. основные вычислительные затраты происходят в момент обучения модели в отложенном режиме. Такие алгоритмы могут быть основаны на вероятностном подходе, кластерном анализе, анализе скрытых факторов, сингулярном разложении и др. Далее рассмотрим метод сингулярного разложения (БУБ).
Алгоритм БУЮ [20]. Как правило матрица оценок Я в СР является сильно разреженной. Для работы с такими матрицами удобно пользоваться методом сингулярного разложения, с помощью которого можно понизить размерность матрицы: Я=иБУТ, где Я — матрица большого размера N х М, но малого ранга /, ее можно разложить в произведение матрицы N х / и матрицы / х М, тем самым резко сократив число параметров с N х М до ^ + М) х /.
Алгоритм БУБ дает оптимальное приближение, если в матрице Б просто оставить ровно / первых диагональных элементов, а остальные обнулить:
X = иБУТ = и
0
0 0"2
0 0
0 0
0"к /
УТ и
0"1
0 0
0
00
ч 0 00
00
0
0
0 0
У
Т
В диагональной матрице Б, которая стоит в середине сингулярного разложения, элементы упорядочены: а1 > а2 > ■ ■ ■ > ак, поэтому обнулить последние элементы означает обнулить наименьшие элементы. А / подбирается, исходя из значений сингулярных элементов матрицы (диагональных элементов матрицы Б), при этом желательно отбрасывать как можно больше самых малых по значению элементов. В случае СР каждый пользователь представляется вектором из / факторов и, а каждый объект — вектором из / факторов Уj. Далее, чтобы предсказать рейтинг пользователя г объекту j, берем их скалярное произведение иТ Уj.
Матрица предпочтений пользователя сильно разрежена, поэтому определить пользователей значительно похожих на целевого пользователя очень сложно. В ряде работ используется замена нулевых значений средними рейтингами или наиболее вероятными значениями, выделение принципиальных элементов [23, 24]. М. Ргуог показал, что использование только множества принципиальных элементов снижает размерность матрицы и делает вычисление более эффективным [24]. Предлагалось воспользоваться методом ФС для замены нулевых элементов ненулевыми, которые определяются как среднее арифметическое рейтингов элементов, подобных целевым
по тематике и оцененных пользователями или как средние рейтингов элементов, похожих на элементы по тематике и определенных на всем множестве профилей [25].
Введем так называемые базовые предикторы Ьга, которые складываются из базовых предикторов отдельных пользователей Ьг, и отдельных объектов Ьа, а также просто общего среднего рейтинга по базе
Ьга = V + Ьг + Ьа,
где V — средний рейтинг по базе; Ьг — средний рейтинг каждого г пользователя; Ьа -средний рейтинг каждого объекта а.
Для определения только базовых предикторов необходимо найти такие V, Ьг, Ьа, для которых Ьга лучше всего приближают имеющиеся рейтинги. Затем можно будет добавить собственно факторы, представляющие продукты и пользователей. Поскольку теперь, когда сделана поправка на базовые предикторы, остатки будут сравнимы между собой, можно получить значения для факторов:
Г га = V + Ьг + Ьа + у^ иг,
где уа — вектор факторов, представляющий продукт а; иг — вектор факторов, представляющий пользователя г.
Чтобы исходную задачу сформулировать более точно, нужно найти наилучшие предикторы, которые приближают величину гга. Лучшими будут те предикторы, которые дают минимальную ошибку, определяемую следующим образом:
Ь^,Ьг,Ьа,Уа,иг) = ^ (Гга - Гга)2 = ^ ^га - (V + Ьг + Ьа + У^щ)) 2. (г,а)еП (г,а)ёП
Функцию Ь^,Ьг,Ьа,уа,иг) минимизируем градиентным спуском. Для компенсирования эффекта переобучения добавляется параметр регуляризации. Иными словами, накладывается штраф за слишком большие значения обучаемых переменных. Например, можно просто добавить в функцию ошибки сумму квадратов всех факторов и предикторов. В результате функция ошибки выглядит как
b,q,r = arg min^ (па - (u + bi + ba + vJщ))2 + a I ^ b2 + ^ b2a + \\va\\2 + ||щ ||2 I
(i,a) \ i a /
где а — параметр регуляризации.
Для каждой из оптимизируемых переменных, получим простые правила для градиентного (стохастического) спуска:
Ьг ^ Ьг + 7(ега - Ьг),
ba ^ ba + Y(eia — ba), Vaj ^ Vaj + Y (eiaUij — Vaj), uij ^ uij + Y(eiauij uij)
для всех j, где eia = ria — ria — ошибка на данном тестовом примере, а y — скорость обучения. Эта модель называется SVD++.
В пакете Surprise реализовано два вида алгоритма SVD++: обычный и усложненный. В усложненном алгоритме учитываются неявные оценки. Прогнозируемая оценка rai вычисляется по формуле:
где yj означает новый набор факторов, который фиксирует неявные оценки. Неявные оценки описывают тот факт, что пользователь и^ оценил объект j независимо от величины оценки.
Среди параметров алгоритма присутствуют:
• п_£а^оге — число факторов (100);
• п_вросЬБ — число итераций процедуры градиентного спуска;
• тй_шеап — математическое ожидание нормального распределения для факторов при инициализации (0);
• iпit_std_dev — дисперсия нормального распределения (0.1);
• 1г_а11 — скорость обучения алгоритма;
• reg_а11 — параметр регуляризации.
Проверим точность алгоритмов БУБ() и БУБрр() с помощью оценки ЯМБЕ, изменяя параметры n_epochs, 1г_а11 и reg_a11 (рис. 6, 7). На первом графике параметр п_еросЬ равен 5, на втором — 10, на третьем — 20. На горизонтальной оси отображены значения параметра 1г_а11, на вертикальной — reg_a11. На пересечении 1г_а11 и reg_a11 находятся значения критерия точности ЯМБЕ. Чем меньше диаметр круга и чем он темнее, тем лучше показатель.
Таким образом, наилучшим набором параметров на данной выборке для алгоритма БУБ() является:
• n_epochs = 20, lr_all= 0.008, reg_all = 0.1. RMSE = 0.9429.
Для алгоритма SVDpp() наилучшим набором параметров является:
• n_epochs = 20, lr_all= 0.005, reg_all = 0.02. RMSE =0.9347.
Рис. 6. Точность алгоритма SVD() по оценке RMSE
Рис. 7. Точность алгоритма SVDpp() по оценке RMSE
Для сравнения: точность по ЯМБЕ реализованного в модуле КФ составляла 0.959, что говорит о том, что метод БУБ более точно представляет данные. При этом главное его преимущество — выигрыш во времени.
ЗАКЛЮЧЕНИЕ
Для разработки гибридной СР были использованы два метода: КФ и ФС. Метод КФ, при наличии достаточного количества информации в базе данных, позволяет с высокой точностью определить, какую оценку пользователь поставит некоторому объекту, исходя из схожести его интересов с интересами других пользователей. Метод ФС позволяет определить наиболее предпочтительное содержание объектов для пользователя и выбирает ближайшие к нему объекты. Идея объединить данные методы в одну СР возникла из их различия по алгоритмам, преимуществам, а также спискам рекомендаций, которые они формируют. При этом устраняется значительная часть недостатков, присущая обоим методам.
В разработке выбраны и использованы доступные программные продукты. Проанализирована гибридная СР, предоставляющая пользователям индивидуальные рекомендации, исходя из их оценок и содержания объектов. Из полученных оценок точности и полноты для разных наборов параметров можно сделать вывод, что СР способна выдавать достаточно точные рекомендации (от 80 %), если не требуется получить полный список полезных объектов. Если необходимо получить наиболее полные рекомендации, то показатель точности падает до 65-75 %. Значения параметров, приводящие к максимальным результатам: k=30, rmin()=4, rmin()=5, 5 £ [0.4; 0.5]. Наивысшая точность получена при пересечении КФ и ФС, наивысшая полнота — при объединении. Способ объединения списков рекомендаций ФС и КФ с ограничениями позволяет повысить оба показателя.
СР выдает достаточно качественные рекомендации, если требуется получить объекты, которые с большой вероятностью понравятся пользователю, и минимум «бесполезных» объектов. Для получения всех «полезных» объектов в СР необходимо внедрять дополнительные алгоритмы и методы, т.к. в процессе фильтрации отбрасывается множество объектов, которые могут заинтересовать пользователя.
Так как в настоящее время количество данных в Интернете очень быстро возрастает, то современные СР должны быть масштабируемыми, т. е. справляться с увеличением нагрузки при добавлении новой информации. Чтобы увеличить скорость выдачи рекомендаций большая часть вычислений должна происходить в фоновом режиме (заранее). Одним из способов снизить количество вычислений, является кластеризация пользователей и объектов, а также использование метода сингулярного разложения для построения модели.
В дальнейшем планируется ввести использование параллельного вычисления и работы с большими данными.
СПИСОК ЛИТЕРАТУРЫ
1. Пройдл, А. История систем рекомендаций // Теле-Спутник. — 2015, № 3. — C. 48-50.
PROIDL, A. (2015) History of recommender systems. Tele-Sputnik. 3. Pp. 48-50.
2. Шалаев, С. Эволюция рекомендательных сервисов [Электронный ресурс]. — Режим доступа:
http://firrma.ru/data/articles/5006/?view_comments=yes
SHALAEV, S. (2015) Evolution of recommender services. [Online] Available from: http://firrma.ru/data/articles/5006/?view_comments=yes.
3. MELVILLE, P. Recommender Systems [Электронный ресурс] / P. MELVILL, V. SINDHWANI // Encyclopedia of Machine Learning. - Chapter No: 00338. -22-4-2010. — Режим доступа:
http://www.prem-melville.com
4. ADOMAVICIUS, G. Toward the next generation of recommender systems: A survey of the state-of-the-art and possible extensions / G. ADOMAVICIUS, A. TUZHILIN // IEEE Transactions on Knowledge and Data Engineering. — 2005, 17(6). — C. 734-749.
5. SU, X. A survey of collaborative filtering techniques [Электронный ресурс] / X. SU, T. KHOSHGOFTAAR // Advances in Artificial Intelligence. - 2009. - P. 1-20. -Режим доступа:
https: / / www.hindawi.com/journals / aai/2009/421425 /
6. RICCI, F. Recommender Systems Handbook / F. RICCI, L. ROKACH, B. SHAPIRA. — New York: Springer Science+Business Media, 2015. — 842 c.
7. BREESE, J. S. Empirical Analysis of Predictive Algorithms for Collaborative Filtering / J. S. BREESE, D. HECKERMAN, C. KADIE // Appears in Proceedings of the Fourteenth Conference on Uncertainty in Artificial Intelligence. — Madison, Wisconsin, 1998. - C. 43-52.
8. HERLOCKER, J. L. An Algorithmic Framework for Performing Collaborative Filtering / J. Herlocker, J. KONSTAN, A. BORCHERS, J. RIEDL // Proceedings of the 22nd annual international ACM SIGIR conference on Research and development in information retrieval. - New York: ACM, 1999. - C. 230-237.
9. HERLOCKER, J. L. Evaluating collaborative filtering recommender systems / J. L. Herlocker, J. A. KONSTAN, L. G. TERVEEN, J. T. RIEDL // ACM Transactions on Information Systems. — 2004, 22(1). — C. 5-53.
10. SARWAR, B. Item-Based Collaborative Filtering Recommendation Algorithms / B. SARWAR, G. KARYPIS, J. KONSTAN, J. RIEDL // Proceedings of the 10th international conference on World Wide Web. — New York: ACM, 2001. — C. 285-295.
11. Воронцов, К. В. Математические методы обучения по прецедентам (теория обучения машин) [Электронный ресурс] / К. В. Воронцов. — Режим доступа: http: / / www.machinelearning.ru / wiki / images/6/6d /Voron-ML- 1.pdf
VORONTSOV, K. (2005) Mathematical methods of teaching by precedents (Machine Learning Theory). [Online] Available from:
http: / / www.machinelearning.ru / wiki / images/6/6d /Voron-ML- 1.pdf.
12. Нефедова, Ю. С. Архитектура гибридной рекомендательной системы GEFEST (Generation-Expansion-Filtering-Sorting-Truncation) / Ю. С. Нефедова // Системы и средства информатики. — 2012, 22(2). — C. 176-196.
NEFEDOVA, U. S. (2012) Hybrid recommender system architecture GEFEST (Generation-Expansion-Filtering-Sorting-Truncation). Systems and means of Informatics. 22(2). Pp. 176-196.
13. Кольчугина, Е. А. Метод коллаборативной фильтрации для масштабируемых рекомендательных систем [Электронный ресурс] / Е. А. Кольчугина, В. А. Ма-карь // Современные научные исследования и инновации. — 2012. — № 6. — Режим доступа:
http://web.snauka.ru/issues/2012/06/14316
KOLCHUGINA, E. A., MAKAR, V. A. (2012) The Method of Collaborative Filtering for Scalable Recommender Systems. [Online] Available from: http://web.snauka.ru/issues/2012/06/14316.
14. Constructing a Hybrid Recommender System / V. Y. Ignat'ev, D. V. Lemtyuzhnikova, D. I. Rul', I. L. Ryabov // Journal of Computer and Systems Sciences International. — 2018. — Vol. 57, No. 6. — P. 921-926. — DOI 10.1134/S1064230718060060.
15. LIU L. Summary of recommendation system development. / L. LIU //J. Phys.: Conf. Ser., — 2019, 1187, 052044. — DOI 10.1088/1742-6596/1187/5/052044
16. WEI W. Recommendation systems overview (Building recommendation systems with TensorFlow). — 2021. [Online] Available from: https: //www.youtube.com/watch?v=BthUPVwA59s.
17. Амелькин, С. А. Оценка эффективности рекомендательных систем [Электронный ресурс] / С. А. Амелькин // Труды 14-й Всероссийской научной конференции «Электронные библиотеки: перспективные методы и технологии, электронные коллекции» - RCDL-2012, Переяславль-Залесский. — 2012. — Режим доступа: http: / / ceur-ws.org/Vol-934/ paper44.pdf
AMELKIN, S. A. (2012) Evaluating the Effectiveness of Recommender systems.
[Online] Available from:
http: / / ceur-ws.org/Vol-934/ paper44.pdf.
18. Getting Started // Surprise [Электронный ресурс]. — Режим доступа: http: / / surprise.readthedocs.io/en/stable / getting _ started.html
19. Ggplot Documentation // Create Elegant Data Visualisations Using the Grammar of Graphics [Электронный ресурс]. — Режим доступа:
https: / / www.rdocumentation.org/packages / ggplot2 / versions/3.0.0
20. GEORGE, T. A scalable collaborative filtering framework based on co-clustering [Электронный ресурс] / T. GEORGE, S. MERUGU. — Режим доступа:
http://citeseerx.ist.psu.edu/ viewdoc/download?doi=10.1.1.113.6458&rep=rep1&type=pdf
21. Королева, Д. Е. Анализ алгоритмов обучения коллаборативных рекомендательных систем [Электронный ресурс] / Д. Е. Королева, М. В. Филиппов // Инженерный журнал: наука и инновации. — 2013. — № 6. — Режим доступа: http:// engj ournal. ru / catalog / it /hidden/816.html
KOROLEVA, D. E., Philippov, M. V. (2013) Analysis of Learning Algorithms for Collaborative Recommender Systems. [Online] Available from: http:// engj ournal. ru / catalog / it /hidden/816.html.
22. Шумейко, Е. А. Разработка и оценка эффективности гибридной системы рекомендаций / Е. А. Шумейко, М. Г. Козлова // МАТЕМАТИКА, ИНФОРМАТИКА, КОМПЬЮТЕРНЫЕ НАУКИ, МОДЕЛИРОВАНИЕ, ОБРАЗОВАНИЕ. Сборник научных трудов научно-практической конференции МИКМО-2017 и Таврической научной конференции студентов и молодых специалистов по математике и информатике. Таврическая академия (СП) ФГАОУ ВО «КФУ им. В. И. Вернадского»; Под ред. В.А. Лукьяненко. — 2017, 1. — C. 178-185.
SHUMEYKO, E. A., KOZLOVA, M. G. (2017) Development and evaluation of hybrid recommender system. MATHEMATICS, COMPUTER SCIENCE, COMPUTER SCIENCE, MODELING, EDUCATION. 1. Pp. 178-185.
23. BILLSUS, D. (Learning collaborative information filters) D. BILLSUS, M. PAZZANI. Fifteenth International Conference on Machine Learning. — Madison, USA. (1998). Pp. 46-54.
24. PRYOR, M. (The effects of singular value decomposition on collaborative filtering) M. PRYOR. Dartmonth College CS Technical Report. PCS-TR 98-338. (1998). Pp. .
25. MELVILLE, P. (Content-boosted collaborative filtering for improved recommendations) P. MELVILLE, R. MOONEY, R. NAGARAJAN. 18th National Conference on Artificial Intelligence (AAAI). (2002). Pp. 187-192.