=Paper= {{Paper |id=None |storemode=property |title=Архитектура рекомендательной системы, работающей на основе неявных пользовательских оценок (Architecture of recommender system with implicit user feedback) |pdfUrl=https://ceur-ws.org/Vol-803/paper8.pdf |volume=Vol-803 |dblpUrl=https://dblp.org/rec/conf/rcdl/FedorovskyL11 }} ==Архитектура рекомендательной системы, работающей на основе неявных пользовательских оценок (Architecture of recommender system with implicit user feedback) == https://ceur-ws.org/Vol-803/paper8.pdf
  Архитектура рекомендательной системы, работающей
      на основе неявных пользовательских оценок

                               © А.Н. Федоровский, В.К. Логачева
                                          Mail.Ru
                       fedorovsky@corp.mail.ru, v.logacheva@corp.mail.ru


                  Аннотация                               американском рынке проката         DVD. Компания
                                                          предоставила участникам данные о 100 млн.
   Рекомендательные системы – сравнительно                рейтингов,      проставленных      480    тысячами
   новый класс ПО, в чью задачу входит                    пользователей 18 тысячам фильмов в течение 6 лет.
   изучение вкусов пользователя путем                     Участник, показавший результаты на 10% лучше,
   анализа его действий и оценок. В работе                чем их собственный движок рекомендаций, получал
   описано построение такой системы. Упор                 миллион долларов. И набор данных, и приз в
   сделан на скорость работы, устойчивость                десятки раз превышали аналоги. В итоге методы
   результатов,    работу    с   неявными                 построения рекомендательных систем начали бурно
   пользовательскими    оценками   (implicit              развиваться, но задача оказалась сложной –
   datasets) и с разными наборами данных.                 несмотря на ажиотаж и жесточайшую конкуренцию,
   Детально расписана методика работы и                   на выполнение условий у участников ушло три
   оптимизируемые меры качества.                          года.
                                                              Среди подходов выделяются три:
1. Введение                                                   1) Content-based [10] – строятся профили
                                                          пользователей и объектов на основе анализа
   Рекомендательная система позволяет человеку            текстовой метаинформации объектов. Затем, с
обозначить свои вкусы и возвращает результаты,
                                                          помощью некой меры близости, часто –
любопытные для него, базируясь на оценках других          коэффициента Пирсона, определяются объекты,
пользователей и своих предположениях.                     близкие к профилю пользователя. К сожалению,
   В отличие от поисковых систем, для получения
                                                          несмотря на богатое наследие Information Retrieval,
от системы ответа не требуется четкого задания            этот метод пока не удалось заставить работать
запроса. Вместо этого пользователю предлагается           эффективно. Например, в работе [6] строится
оценить некоторые объекты из коллекции, и на
                                                          система рекомендации интересных твитов в Twitter
основании этих его оценок и сравнения их с                и явно видно, что вклад в качество системы от
оценками предыдущих пользователей строятся                content-based компоненты сильно ниже, чем от
предположения     о    вкусах    пользователя    и        коллаборативной фильтрации (CF), к которой
возвращаются наиболее близкие к ним результаты,           принадлежат два следующих подхода:
формируя для него персонализированную выдачу.
                                                              2) Neighbourhood-based (NB) [8,12]            –
   В качестве набора оцениваемых объектов могут,
                                                          подходящими объектами для пользователя
к примеру, выступать: каталог ссылок на веб-сайты,
                                                          считаются объекты, высоко оцениваемые его
лента новостей, товары в электронном магазине,
                                                          «соседями», т.е. такими пользователями          , у
коллекция книг в библиотеке и т.п.
                                                          которых оценки хорошо скоррелированы с .
   В сферу применения подобных систем входят и
                                                              3) Model-based, matrix factorization (MF)
ситуации, когда пользователь не ищет информацию
                                                          [8,12,13] – предполагается, что оценка пользователя
по конкретному ключевому слову, а, к примеру,
                                                          определяется не очень большим числом (K=50-200)
хочет получить список современных статей,
                                                          скрытых факторов (например, фильм американский
похожих по тематике на те, которые он
                                                          или азиатский; блокбастер или арт-хаус; старый или
просматривал до этого.
                                                          современный и т.п). И задача здесь состоит в том,
   Рекомендательными системами занимаются с
                                                          чтобы найти такие факторы, при выборе которых
начала 90-х годов [1,5], однако серьезнейшим
                                                          эта приближенная модель будет лучше всего
толчком к развитию этой темы явился конкурс
                                                          приближать реальные пользовательские рейтинги.
Netflix Prize [2], организованный в 2006 г.
                                                          Для этого часто используется сингулярное
компанией Netflix, одним из лидеров на
                                                          разложение      матриц    [8]    или    итеративное
                                                          градиентное приближение [4,12,13]. Один их таких
Труды 13й Всероссийской научной конференции               алгоритмов будет подробно рассмотрен ниже.
«Электронные библиотеки: перспективные методы и               Считается, что MF лучше справляется с
технологии, электронные коллекции» - RCDL’2011,           нахождением закономерностей в рамках коллекции
Воронеж, Россия, 2011.




                                                     53
в целом, и, будучи примененным в одиночку, дает                                з                л
более высокое качество, чем NB. Тем не менее,                                  з                л
последний метод лучше находит локализованные
особенности. К тому же, эти два метода хорошо
                                                          Также, перед запуском минимизации, для
сочетаются: [8,12].
                                                       уменьшения разброса оценок, возникающего из-за
                                                       того, что какие-то объекты лучше других и, значит,
2. Постановка задачи                                   всеми оцениваются выше, есть смысл вычесть
   Выбрать и реализовать алгоритм, который бы          индивидуальные смещения рейтингов для каждого
   • легко масштабировался до значительно              пользователя и объекта:
      большего, чем Netflix, размера
   • работал быстро                                       1) Из    всех   элементов       матрицы
                                                                                           ∑
   • адаптировался бы к разным наборам данных                 вычитаем среднее     сред     |       |
   • работал бы как с явными рейтингами                   2) Из каждой строки             матрицы
      (оценки), так и с неявными (просмотры)                                                ∑
   • позволял бы на лету добавлять новые                      вычитаем среднее     сред     |           |
      рейтинги, пользователей, объекты.                   3) Из каждого столбца           матрицы
   В качестве базы для старта был выбран подход                                            ∑
                                                              вычитаем среднее     сред
MF, а конкретно алгоритм BRISMF, полностью                                                  |       |
описанный в [13].
                                                          В исходном описании BRISMF величины
2.1.   Идея BRISMF                                     смещений были такими же настраиваемыми
                                                       параметрами, как и элементы P и Q. При реализации
   Пусть даны пользователи 1 … и объекты 1 … .         такого варианта была замечена неустойчивость в
Построим частично определенную разреженную             величинах смещений, а, поскольку они влияют на
матрицу рейтингов                   , где    –         поведение системы в целом сильнее, чем
оценка пользователем    объекта . Нужно найти          индивидуальные компоненты векторов профилей,
такое разложение                                       было решено вместо настраиваемых смещений
                              ,                        использовать в точности среднюю оценку. Было
                                                       также отмечено незначительное повышение
   где               –    матрица   профилей           качества работы системы – RMSE при прочих
пользователей,    сопоставляющая     каждому           равных уменьшился на 0.0002. Кроме того, средние
пользователю вектор-строку        ,        –           оценки полезны сами по себе, так как сред
матрица профилей объектов, сопоставляющая                сред   сред можно рассматривать как начальное
каждому объекту вектор-столбец        , а  –           приближение для рекомендаций.
выбранное число скрытых признаков; чтобы
минимизировать ошибку                                  3. Неявные данные
                              ̂                           Массив данных Netflix, имея беспрецедентный
                                                       размер, содержал явные рейтинги (explicit dataset),
                          |        |
                                                       собрать которые от пользователей иногда
                                                       представляется затруднительным. Часто удобнее и
   Поскольку                                           быстрее собрать не осознанную оценку объектов от
                                                       пользователя, а проанализировать лог его действий,
                                                       оценивая, к примеру, просмотр страницы с
               ̂                   ,                   описанием объекта как неявную положительную
                                                       оценку этого объекта. Отсутствие просмотра в этом
    RMSE как функция от   ,   минимизируется           случае говорит об отсутствии интереса и может
методом градиентного спуска. Это сводится к            считаться отрицательной оценкой. Такой набор
коррекции векторов , для каждого рейтинга              данных называется неявным (implicit dataset).
  :                                                       В случае явных рейтингов и положительные, и
                                                       отрицательные         оценки         пользователей
                               з                       сконцентрированы в малой части матрицы
                                                       рейтингов, она сильно разрежена. Если же каждое
                              з
                                                       отсутствие просмотра страницы объекта считать за
                                                       отрицательную оценку, то придется обрабатывать
   где        ̂         вектор ошибки, а з             не малую часть матрицы рейтингов, а всю ее -
параметры скорости обучения.                           кардинально возрастает сложность задачи. И,
   Для контроля переобучения нужно добавить            вдобавок, не разделяются объекты, действительно
регуляризационные параметры л:                         неинтересные пользователю и те, которые он просто
                                                       еще не просматривал.




                                                  54
   Для работы с неявными данными были                       страницах, так и, при желании, с сервера проекта,
разработаны специальные разновидности явных                 пользующегося      услугами      рекомендательной
алгоритмов. Например, IALS1 [11] – более быстрая            системы.    Такой    подход    позволяет   начать
версия IALS [7] или сэмплинг из непросмотренных             использование рекомендательной системы на новом
данных с бэггингом [9].                                     проекте с минимальными усилиями, сравнимыми с
   Их слабая сторона заключается в скорости                 установкой на проект счетчика.
работы – IALS1, быстрейший из них, работает в                  Архитектурная     схема     модулей    проекта
десятки раз медленнее RISMF. Поэтому было                   представлена на рисунке 1. Здесь сплошные стрелки
решено    сформировать синтетические       явные            обозначают получение данных, а пунктирные –
рейтинги на основании логов различных действий              запросы рекомендаций.
пользователя:


                                                                                    Action page
   где    – количество i-х действий, совершенных               User action (AJAX/JSON)
пользователем с объектом,      – вес действия, а   –
функции с насыщением. Например, для коллекции                                         Frontend
приложений из социальной сети мы рассматривали
следующие      действия:    установка,     удаление,
использование, платежи, нажатие на кнопку
«нравится», а также явные оценки пользователей.                                       Action
   К таким наборам искусственных оценок уже                                         Log/Storage
можно применить тот же алгоритм BRISMF, что и в
случае явного набора данных.                                               daily                      online
   На некоторых наборах данных матрица оценок
                                                                                         enough
получалась сильно разреженной (плотность 0.01%-                      Rate storage         rates     Online newbies’
0.1% против 1.16% у Netflix). В таких случаях, для                                                       rates
                                                               daily update
выявления более плотного набора данных,                       weekly full MF
производился отбор пользователей и объектов с
большим числом оценок. Если же подавляющее                           Factor storage
большинство оценок пользователей одинаково,                                                         Online newbies’
например, при наличии в наборе данных только                                                            factors
одного вида действий, которое, к тому же, обычно
выполняется пользователем лишь единожды                               LSH storage                              enough rates
(таковы, например, добавление веб-страницы в
список избранных, установление дружбы между                                                            Frontend
пользователями      и    т.п.),     может     помочь
«естественная» кластеризация объектов. Характер                                     Recommendation request
ее зависит от предметной области: если объекты –
ссылки на страницы сайтов, их можно                                                                  Request page
сгруппировать по сайтам, если музыкальные
композиции – по авторам, новости – по сюжетам. За
счет некоторого огрубления точности происходит                    Рис. 1. Модули рекомендательной системы.
многократный рост числа нетривиальных значений
оценок, что позволит лучше обучиться и, в итоге,               Информация      о    действии,     совершенном
поднять качество работы системы.                            пользователем, попадает на фронтенд-сервер
                                                            рекомендательной системы, а оттуда – в модуль
4. Архитектура системы                                      хранилища     действий     (Action     Log/Storage),
                                                            совмещающий,      как     видно    из     названия,
   В качестве входных данных система получает               неупорядоченный лог действий и агрегирующее
информацию       о     действиях,    совершенных            хранилище.
пользователем, или об оценках, выставленных им                 Время от времени, когда накапливается
объектам из набора данных. Поскольку данные                 достаточно много новых действий, для тех пар
предполагается как получать, так и использовать на          пользователь-объект, к которым они относились, на
веб-проектах, основной внешний интерфейс был                основе лога новых и предыдущих действий
реализован поверх протокола HTTP, по которому в             вычисляются явные оценки и сохраняются в
формате JSON передаются как действия и оценки               хранилище оценок (Rate storage). Это касается
пользователя, так и запросы рекомендаций для него.          только тех пользователей, которые уже есть в
Эти запросы могут быть совершены как с помощью              системе, работа с новыми пользователями будет
AJAX из Javascript-кода, размещаемого на                    описана ниже.




                                                       55
    Для      старых       пользователей      также        попадание в результирующую выдачу за счет
перерассчитываются       вектора     профилей    в        некоторого снижения качества.
пространстве скрытых признаков и сохраняются в
Factor storage. Профили объектов при этом не              5. Фильтрация и сортировка объектов
изменяются. Достаточно редко идет полный
пересчет матриц профилей пользователей и                     В первом варианте формирования выдачи
объектов. Для полного расчета используется только         рекомендации для пользователя мы перебирали все
ядро оценок – выборка из пользователей и объектов,        объекты в базе, находя те из них, вектора которых
имеющих достаточно большое число оценок и                 близки к вектору пользователя в пространстве
образующих достаточно плотную матрицу. На                 скрытых признаков. Был рассмотрен вариант
основании полученных факторов строятся профили            сортировки по предсказанной для пользователя
для менее активных пользователей и менее                  оценке с учетом смещений оценок для
популярных объектов.                                      пользователя, объекта и всей коллекции
    Подобную схему используют и модули Online
newbies’ rates и Online newbies’ factors,
организующие расчет оценок и профилей на лету
для новых пользователей и объектов, а также для              Однако, как было замечено, при такой
старых пользователей, только что внесших в                сортировке     рекомендации      перенасыщаются
систему свои новые действия и оценки. Их профили          объектами с высокой средней оценкой, а выдача
рассчитываются на основе хранящихся в Factor              теряет как в персонализации, так и в качестве.
storage достаточно стабильных профилей объектов.          Поэтому, для поднятия веса объектам, характерным
Наличие этих двух модулей позволяет выдавать              именно для этого пользователя, была испробована
рекомендации для пользователей с учетом их                сортировка просто по скалярному произведению
последних оценок без задержки на перерасчет               профилей
матриц профилей P и Q.
    Оценки новых пользователей по достижении
ими достаточно большого количества совершенных
действий сохраняются в Rate storage.                         Эти методы описаны в разделе с результатами
    Запрос рекомендаций сначала порождает запрос          как Full-Bias и Full-SP. Стоит заметить, что полный
профиля пользователя в Online newbies’ factors, а,        перебор объектов является достаточно медленным
при его отсутствии там, в Factor storage.                 при большом их количестве в системе.
Рекомендации для пользователей, совершивших                  Далее, был использован метод случайных
пренебрежимо мало действий (к примеру, меньше             проекций из семейства LSH (locality-sensitive
10), системой не возвращаются – их профили пока           hashing random projection) [3] для группировки
что     построены    недостаточно      хорошо    и        пользователей и объектов, близких в пространстве
рекомендации им лучше строить без учета CF.               скрытых признаков. Идея метода в следующем: в
Например,      если    важна     удовлетворенность        пространстве скрытых признаков         , в котором
пользователя во время холодного старта, можно             расположены вектора профилей пользователей и
возвращать самые популярные или самые                     объектов, возьмем семейство гиперплоскостей
высокооцениваемые объекты. Или же, с другой                  …     . Построим m-битную хеш-функцию над
стороны, для ускорения обучения есть смысл                векторами из этого пространства:
показывать объекты, наиболее характерные для
конкретных        факторов       или      наиболее                            …    :            ·
противоречивые – с максимальным разбросом
оценок пользователей.                                             определяет, с какой стороны от i-й
    Для формирования рекомендаций при запросе             гиперплоскости находится вектор . Таким образом,
пользователя в идеальном случае нужно перебрать           семейство     …     задает разбиение    на сектора,
все объекты в системе, отсортировать их                   а        задает m-битную нумерацию этих секторов
определенным образом и выбрать несколько                  пространства. Эта хеш-функция используется для
лучших. В следующем разделе будут описаны как             предварительной фильтрации объектов: при
методы     сортировки     и   ограничения    числа        формировании выдачи рекомендации сортируются
просматриваемых объектов, так и необязательный,           только объекты, вектора профилей которых попали
но важный для скорости работы системы модуль              в тот же сектор пространства, что и вектор профиля
пространственной кластеризации объектов и                 пользователя, то есть которые имеют то же
пользователей, в качестве которого в нашей системе        значение         . Этот метод с сортировками,
выступает LSH storage. Его задача – сгруппировать         аналогичными предыдущему методу, описан в
вектора, находящиеся рядом в пространстве                 разделе с результатами как LSH1-Bias и LSH1-SP.
скрытых признаков. Это позволяет в случае                    Плоскости были выбраны случайными: вектора
большого числа объектов (10        10 и больше)           их нормалей имели многомерное нормальное
резко снизить время отбора объектов-кандидатов на         распределение. В результате существовал шанс, что
                                                          сектор пространства         , содержащий вектор




                                                     56
профиля пользователя, окажется слишком мал и                 При малом разбросе добавляются несколько
будет содержать слишком мало объектов, чтобы из              контрольных запусков в каждой последующей
них можно было сформировать качественную                     точке. Многократный запуск алгоритма возможен в
выдачу. Также вектор профиля пользователя мог                первую очередь благодаря высокой скорости его
располагаться неудачно, например, близко к                   работы.
границе сектора. В этом случае часть объектов,                  Для дополнительного контроля переобучения,
близких к нему, оказывалась принадлежащей                    помимо регуляризации в самом алгоритме и
другим секторам и также не могла оказаться в                 выделенного validation set, повторные запуски с
выдаче. Для решения этих проблем было решено                 теми же параметрами проводятся на разных сэмплах
использовать набор из s m-битных хеш-функций                 из него.
       …       , каждая из которых была построена               Также в оптимизируемой мере неявно
по своему случайному набору гиперплоскостей, а               учитывается скорость схождения алгоритма, так как
для сортировки в рекомендательной выдаче                     на этом этапе алгоритм запускается только
отбирались только объекты, совпадающие с                     фиксированное число итераций и поэтому
профилем пользователя по значению хотя бы одной              медленная сходимость ухудшает качество.
из этих хеш-функций. Качество по сравнению с                    Проверив сходимость при разном числе
одной функцией значительно улучшилось. В                     признаков K мы также получили, что оптимальные
разделе результатов эта модификация метода с 4               значения параметров мало изменяются при
хеш-функциями обозначена как LSH4-Bias и LSH4-               5,10,20,50.     Это      позволяет      запускать
SP.                                                          предварительную оптимизацию параметров с
    Также был использован метод предварительной              малым K и использовать оптимальные параметры
фильтрации объектов на основе информации о                   как начальную точку для оптимизации с большими
соседях: для выдачи сортировались только те                  значениями K. Это быстрее, чем оптимизировать
объекты, которые оценивались выше среднего                   параметры сразу с рабочим значением K.
пользователями, близкими к данному. Близость
считалась по совпадению хеша LSH. В разделе                  7. Мера качества
результатов он присутствует как UB-Bias и UB-SP.
                                                                RMSE как мера оценки качества работы систем
6. Оптимизация параметров                                    рекомендаций весьма популярна, возможно, из-за
                                                             популярности конкурса Netflix Prize, в котором
    BRISMF        обладает     рядом    настраиваемых        оптимизировалась именно она. Безусловно, она
параметров. В реализации системы присутствовало              хороша для проверки системы в целом. Но система
6 (з , з , л , л , амплитуды начальных значений P и          рекомендаций возвращает пользователю в выдаче
Q). При выборе плохих параметров алгоритм может              лишь несколько объектов, сочтенных наиболее
начать сходиться медленно или неустойчиво.                   подходящими и пользователь визуально оценивает
Поскольку целью было разработать систему, не                 качество работы системы именно по ним. В то же
требующую долгого предварительного тюнинга под               время, вклад всех объектов в RMSE одинаков.
конкретный набор данных, к системе была                      Имеет смысл сделать упор на оптимизацию
добавлена автоматическая настройка параметров.               местоположения в результатах объектов с
    Это       задача      многомерной      глобальной        наивысшей оценкой. Для этой цели используются, к
оптимизации, где оптимизируемая функция –                    примеру, меры Top-K из [8] или ARP из [11]. Мы
                     з ,з ,л ,л ,     ,     .                используем меру, похожую на ARP:
    Начальные значения P и Q – случайны, поэтому                Если t объектов из тестового сета получили
система даже в одной точке ведет себя нестабильно.           наивысшую реальную оценку пользователя , но
В результате от градиентных методов пришлось                 при этом стоят в отсортированном списке
отказаться – значение градиента оказывалось                  результатов для пользователя на позициях 1
слишком зашумленным. Метод покоординатного                   屨     …      , а всего результатов при этом T, то
спуска был выбран из-за своей наглядности и                  мерой считаем
показал довольно хорошие результаты. Также был                                       ∑
                                                                                1
опробован метод имитации отжига, но разницы в
качестве       отмечено     не    было.   Интересным            то есть нормированную сумму разниц в
направлением для будущих исследований может                  позициях     между     реальным     и    идеальным
стать замена покоординатного спуск на метод                  результатом. А мера на всей коллекции усредняется
Нелдера-Мида.                                                по всем пользователям.
    В каждой точке (с конкретным набором                        Слагаемые суммы в числителе, очевидно, всегда
параметров) алгоритм запускается сходиться                   положительны и достигают нуля только в случае
несколько раз. В результате виден разброс                    идеальной выдачи. В самом деле, если i-й по счету в
результатов,          который       учитывается     в        выдаче объект из высоко оцененных пользователем
оптимизируемой мере качества – цель не просто в              стоит на i-й позиции, то все объекты с первого по i-
снижении RMSE всеми силами, а в компромиссе                  й оценены пользователем наивысшей оценкой, а,
между малой ошибкой и стабильностью результата.              значит, выдача с первого по i-й объект идеальна.




                                                        57
Как следствие, выдача идеальна (все t объектов,               В приведенной таблице показаны меры качества
получивших наивысшую оценку пользователя,                  и время работы для коллекции DenseNetflix. RMSE
стоят на первых t местах) тогда и только тогда,            значительно выше, чем при расчете по полному
когда все слагаемые суммы в числителе равны                набору данных Netflix, это объясняется большей
нулю, а, значит, и сама мера  1 0. Аналогично,             плотностью матрицы.
в случае идеально плохой выдачи (все t объектов,
получивших наивысшую оценку пользователя,                       DenseNetflix    RMSE        ARP1      Время(с)
стоят на последних t местах) i-й по счету такой                 K=5             0.8782      0.2784      7.1
объект стоит на позиции                 , каждое
                                                                K=10            0.8527      0.2479      11.2
слагаемое суммы в числителе равно            , а
                                                                K=20            0.8390      0.2298      18.6
значение меры       1 1.
                                                                K=50            0.8232      0.2156      35.8
   Эта мера напоминает ARP, с тем отличием, что
ARP, по крайней мере, как она описана в [11], на                K=100           0.8211      0.2109      69.3
идеальной выдаче имеет значение не равное нулю, а
зависящее от размера рассматриваемой выдачи, что              Ниже сравниваются алгоритмы сортировки и
достаточно неудобно.                                       предварительного отбора объектов на массиве
                                                           данных MailRuApps. Видно, что на этом наборе во
                                                           всех случаях лучше работает сортировка без учета
8.   Наборы данных и результаты                            смещения оценок. Также можно заметить, что LSH4
   Для     контроля     успешности      реализации         работает с качеством, близким к полному перебору
алгоритмов была использована RMSE на полном                объектов, но при этом быстрее. Тем не менее,
наборе Netflix, характеристики которого описаны в          объектов в этой коллекции немного и скорость
начале статьи. С использованием K=50 скрытых               работы полного перебора еще достаточно велика.
признаков      и     повторным      перестроением
пользовательских профилей (см. 3.5 в [13]) было                   MailRuApps       ARP1         Время(мс)
получено значение RMSE = 0.8998, расчет идет 12                   Full-Bias        0.1671
минут в один поток. Наиболее близкая реализация                                                      34
                                                                  Full-SP          0.1352
алгоритма, для сравнения – BRISMF#1U из [13], на
                                                                  LSH1-Bias        0.1896
нем достигнуто RMSE = 0.9072, но между ними есть                                                     4
                                                                  LSH1-SP          0.1529
существенные      отличия.    Во-первых,     вместо
фиксированного, как в BRISMF#1U, числа эпох при                   LSH4-Bias        0.1756
                                                                                                     11
расчете была использована техника early stopping, в               LSH4-SP          0.1412
том числе и на этапе перерасчета матрицы P. Во-                   UB-Bias          0.1783
                                                                                                     28
вторых, использованы средние оценки вместо                        UB-SP            0.1407
настраиваемых      смещений.    В-третьих,     была
проведена оптимизация параметров модели. И,                   На масштабе коллекции MailRuMusic       уже
наконец, отличается число скрытых факторов – 50            заметна существенная разница в скорости работы
против 40. Впрочем, оптимизация RMSE не входила            между полным перебором и LSH.
в задачу, основное внимание было уделено
формированию качественной пользовательской                        MailRuMusic      ARP1         Время(мс)
выдачи, то есть точному выбору нескольких лучших                  Full-SP          0.4512         2318
объектов, а основной мерой для оптимизации была                   LSH1-SP          0.6874           9
выбрана ARP1.
   Для сравнительных тестов были использованы                     LSH4-SP          0.4908          32
два набора данных. Первый – DenseNetflix, часть                   UB-SP            0.4683         1789
набора Netflix, подматрица с плотностью 4.4%,
содержащая 2.5 млн. оценок, 1024 объектов и 56000             Увеличение числа плоскостей в LSH приведет к
пользователей, сформированная путем фильтрации             уменьшению размера сектора, а, значит, и среднего
объектов и пользователей с низким числом оценок.           числа объектов в одном секторе. Это ускорит
Второй     –     MailRuApps,    набор    действий,         работу LSH, но снизит качество. Таким образом,
совершенных пользователями с приложениями в                число плоскостей подбирается как баланс между
социальной сети. В выделенном плотном ядре                 качеством и скоростью работы.
содержатся около 22 млн. оценок, составленных из
400 млн. действий, выполненных 545 тыс.                    9.     Выводы
пользователей над 3300 приложений.                            В результате, взяв в виде базы алгоритм
   Также для сравнения скорости работы                     BRISMF, мы получили систему, которая, помимо
алгоритмов      использовался     набор     данных         решения задачи MF, оптимизирует настраиваемые
MailRuMusic, содержащий 155 млн. неявных                   параметры алгоритма, причем учитывает при
оценок, 2.46 млн. пользователей и 295 тыс.                 оптимизации, помимо качества, стабильность
объектов.                                                  результатов и скорость сходимости. Кроме того,
                                                           был разработан механизм конвертации неявных




                                                      58
данных в явные оценки, что значительно расширяет                     International Conference on Data Mining,
спектр алгоритмов, применяемых для анализа                           pp. 502-511
наборов неявных данных. Система показала                         [10]Pazzani M.J. and Billsus D.          Content-based
высокую скорость работы: на полном наборе                            recommendation systems. In The Adaptive Web,
данных Netflix c     50 уходит около 12 минут при                    pages 325–341. Springer Verlag, 2007.
работе в один поток.                                             [11]Pilászy I., Zibriczky D., Tikk D.: Fast ALS-based
   Также было исследовано применение метода                          Matrix Factorization for Explicit and Implicit
случайных     проекций     LSH    для   ускорения                    Feedback Datasets Categories and Subject
формирования выдачи рекомендаций. Метод                              Descriptors In: RecSys '10 Proceedings of the
показал хорошие результаты работы и может быть                       fourth ACM conference on Recommender systems
рекомендован к использованию, особенно при                           (2010)
работе с большим количеством объектов.                           [12]Takács G., Pilászy I., Németh B., Tikk D.: Major
   Архитектура       системы     позволяет    как                    components of the Gravity recommendation
пересчитывать вектора профилей пользователей и                       system. In: ACM SIGKDD Explorations
объектов, обеспечивая при этом постоянную                            Newsletter - Special issue on visual analytics.
работоспособность,      так    и      формировать                    Volume 9 Issue 2, December 2007
рекомендации для новых пользователей на лету, без                [13]Takács G., Pilászy I., Németh B., Tikk D.: Scalable
полного пересчета матриц профилей.                                   Collaborative Filtering Approaches for Large
                                                                     Recommender Systems. In: The Journal of Machine
Литература                                                           Learning Research Volume 10, 12/1/2009

[1] Adomavicius G., Tuzhilin A.: Toward the next                 Architecture of Recommender System with
    generation of recommender systems: A survey of
    the state-of-the-artand possible extensions. IEEE                     Implicit User Feedback
    Transactions of Knowledge and Data Engineering                          © A.N. Fedorovsky, V.K. Logacheva
    17(6), pp. 734-739 (2005)
[2] Bennett J., Lanning S. The Netflix Prize. In Proc. of            Recommender systems are the brand new type of
    KDD Cup Workshop at SIGKDD-07, 13th                          service which aim is to distinguish user tastes based on
    ACMInt. Conf. on Knowledge Discovery and                     her explicit ratings of objects or other actions with them
    DataMining, pages 3–6, San Jose, California, USA,            which can be considered as implicit ratings. This paper
    2007.                                                        describes constructing of such system. The main
[3] Datar M., Immorlica N., Indyk P., Mirrokni V.:               features considered besides performance include
    Locality-sensitive hashing scheme based on p-                working speed, results stability and operating with
    stable distributions. In: Proceeding SCG '04                 sufficiently large implicit datasets. System architecture,
    Proceedings of the twentieth annual symposium on             used methods and quality measures are given in details.
    Computational geometry, 2004. ISBN:1-58113-
    885-7
[4] Funk S.: Netflix Update: Try This At Home.
    http://sifter.org/~simon/journal/20061211.html,
    2006.
[5] Goldberg D., Nichols D., Oki B.M., Terry D.:
    Using collaborative filtering to weave an
    information tapestry. In: Communications of the
    ACM - Special issue on information filtering
    Volume 35 Issue 12, Dec. 1992
[6] Hannon J., Bennett M., Smyth B.: Recommending
    Twitter Users to Follow Using Content and
    Collaborative Filtering Approaches. In: RecSys '10
    Proceedings of the fourth ACM conference on
    Recommender systems (2010)
[7] Hu Y., Koren Y., Volinsky C.: Collaborative
    filtering for implicit feedback datasets. In ICDM-
    08, 8th IEEE Int. Conf. on Data Mining, pages
    263–272, Pisa, Italy, 2008.
[8] Koren Y., Ave P., Park F.: Factorization Meets the
    Neighborhood: a Multifaceted Collaborative
    Filtering Model. In: KDD '08 Proceeding of the
    14th ACM SIGKDD international conference on
    Knowledge discovery and data mining (2008)
[9] Pan R., Zhou Y., Cao B. et al. One-Class
    Collaborative Filtering. In: 2008 Eighth IEEE




                                                            59