Анализ алгоритмов обучения коллаборативных рекомендательных систем
5
Для компенсирования эффекта переобучения добавляется пара-
метр регуляризации. Иными словами, накладывается штраф за слиш-
ком большие значения обучаемых переменных. Например, можно
просто добавить в функцию ошибки сумму квадратов всех факторов
и предикторов. В результате функция ошибки выглядит как
( )
(
)
(
)
2
* * *
, ,
,
,
2
2
2
2
, ,
arg min
μ
λ
,
T
b p g
i a
i
a
a i
i a
i i
a a
a
i
b q p
r
b b q p
b
b q
p
=
∑ − − − −
+
+ ∑ + ∑ + +
(2)
где
λ
— параметр регуляризации.
Если взять у функции ошибки в формуле (2) частные производ-
ные по каждой из оптимизируемых переменных, получим простые
правила для градиентного (стохастического) спуска:
(
)
(
)
(
)
(
)
,
,
,
,
,
,
,
,
,
,
,
,
γ
λ ,
γ
λ ,
γ
λ ,
λ
i
i
i a
i
a
a
i a
a
a j
a j
i a i j
a j
i j
i j
i a i j
i j
b b e b
b b e b
q q
e p q
p p e p p
= + −
= + −
= +
−
= =
−
для всех
j
, где
e
i, a
=
r
i, a
–
ṙ
i, a
— ошибка на данном тестовом примере,
а
γ
— скорость обучения. Эта модель называется SVD++.
Рассмотрим пример использования описанного выше алгоритма
для следующего случая:
• количество пользователей
i
= 50;
• количество категорий предпочтения (товар, категории статей,
жанр литературы и т.д.)
a
= 10;
• степень сингулярного разложения
j
= 2;
• матрица рейтингов создается с помощью генератора случайных
чисел, которые могут принимать следующие значения:
▫ 0 — категория предпочтений не просматривалась;
▫ 1 — категория предпочтений просматривалась, но не вызвала
ответной реакции пользователя;
▫ 2 — категория предпочтений просматривалась и вызвала ответ-
ную реакцию пользователя.
В результате выполнения алгоритма получаются следующие ре-
зультаты для всех пользователей по всем категориям:
• вектор базовых предикатов пользователей (
b
i
);
• вектор базовых предикатов категорий (
b
a
);
• матрица векторов факторов категорий (
q
a, j
);
• матрица векторов факторов пользователей (
p
i, j
);
• средний рейтинг по базе
(μ)
.