Анализ алгоритмов обучения коллаборативных рекомендательных систем - page 7

Анализ алгоритмов обучения коллаборативных рекомендательных систем
7
5. Если число соседей достаточно, возвращаем список соседей. В
противном случае, извлекаем
v
из
С
, обходим вершины (клиентов)
поиском в ширину. Схожесть клиента проверяется по критерию Пир-
сона (3), если она либо выше, чем нижнее пороговое значение
δ
h
, ли-
бо ниже, чем верхний порог
δ
l
, то
v
= клиент. Перейти к шагу 4.
На шаге 5 алгоритм завершает свою работу, если число найден-
ных клиентов при поиске в ширину, больше какого-то фиксирован-
ного значения. Эта величина может быть определена путем различ-
ных экспериментов. Клиент
t
в список возвращаемых соседей не вхо-
дит. Формула расчета прогноза:
( )
( )
(
)
(
)
,
,
,
,
,
,
k a k k i
k i
a i
a l
k a k
w r A r
P A r
w
=
+
,
(4)
где
P
a, i
— предсказание оценки;
w
a, k
— мера близости между пользо-
вателями
a
и
k
;
( )
,
a l
A r
,
( )
,
k i
A r
— средняя оценка пользователей
a
и
k
соответственно.
Применим данный алгоритм к матрице рейтингов, которая ис-
пользовалась, в вышеописанном алгоритме SVD++. После выполне-
ния алгоритма с учетом суммирования по формуле (1) получаем век-
тор предпочтений для первого пользователя по каждой категории:
[0.4047971890674755, 1.3933094711397889, 1.0862712235070604,
0.6473405846451133,
1.263503813085462,
0.741462334544462,
0.7584886141058054, 1.0364811015987234, 1.3698910207764898,
1.2984546475296193].
Как видно из приведенных выше результатов, отсутствуют рей-
тинги с отрицательными значениями, что свидетельствует о более
высокой точности алгоритма RNSA по сравнению c SVD++.
Сравнение алгоритмов.
Исходя из полученных результатов, мож-
но сделать следующие выводы о работе алгоритмов SVD++ и RNSA:
по количеству исходных данных
― в случае небольшого коли-
чества данных для обучения алгоритм SVD++ иногда выдает отрица-
тельные результаты из-за накопленных ошибок в процессе обучения.
При использовании алгоритма RNSA даже в случае использования
небольших наборов данных для обучения получаются удовлетвори-
тельные результаты;
по времени работы
― время работы алгоритма SVD++ равно
9.225069444444445·10
–6
секунд, время работы алгоритма RNSA со-
ставляет 3.525664351851852·10
–5
секунд. Очевидно, что алгоритм
SVD++ быстрее RNSA. При этом RNSA рассчитывается для каждого
пользователя в отдельности, а SVD++ дает результат сразу по всем
имеющимся пользователям;
1,2,3,4,5,6 8
Powered by FlippingBook