Д.Е. Королева, М.В. Филиппов
4
В диагональной матрице
D
, которая стоит в середине сингуляр-
ного
разложения,
элементы
упорядочены
по
размеру:
σ
1
≥
σ
2
≥ … ≥
σ
k
, так что обнулить последние элементы — значит,
обнулить наименьшие элементы. А
f
подбирается, исходя из размера
сингулярных значений матрицы, т. е. тех самых диагональных эле-
ментов матрицы
D
: желательно отбрасывать как можно больше са-
мых малых по значению элементов.
В случае рекомендательных систем получается, что мы представ-
ляем каждого пользователя вектором из
f
факторов
U
i
, а каждый про-
дукт — вектором из
f
факторов
V
j
. Далее, чтобы предсказать рейтинг
пользователя
i
товару
j
, берем их скалярное произведение
T
i j
i
j
U V U V
=
.
Перед нами стоит задача: по известным оценкам известных про-
дуктов предсказать, насколько хорошо будет оценен новым пользо-
вателем каждый продукт.
Введем так называемые базовые предикторы
b
i, a
, которые склады-
ваются из базовых предикторов отдельных пользователей
b
i
, и отдель-
ных продуктов
b
a
, а также просто общего среднего рейтинга по базе
μ
:
,
μ
i a
i
a
b
b b
= + +
,
где
μ
— средний рейтинг по базе;
b
i
— средний рейтинг каждого
i
пользователя;
b
a
— средний рейтинг каждого
а
продукта.
Для определения только базовых предикторов необходимо найти
такие
μ
,
b
i
,
b
a
, для которых
b
i, a
лучше всего приближают имеющиеся
рейтинги. Затем можно будет добавить собственно факторы. По-
скольку теперь, когда сделана поправка на базовые предикторы,
остатки будут сравнимы между собой, вполне возможно будет полу-
чить разумные значения для факторов:
T
,
μ
i a
i
a
a i
r
b b v u
= + + +
&
,
(1)
где
v
a
— вектор факторов, представляющий продукт
a
;
u
i
— вектор
факторов, представляющий пользователя
i
.
Теперь можно вернуться к исходной задаче и сформулировать ее
точно: нужно найти наилучшие предикторы, которые приближают
величину
ṙ
i,a
.
Лучшими будут те предикторы, которые дают минимальную
ошибку, определяемую следующим образом:
(
)
( )
(
)
( )
(
)
2
2
,
,
,
,
,
μ, , , ,
μ
.
T
i
a a i
i a i a
i a
i
a
a i
i a D
i a D
L b b v u
r r
r
b b v u
∈
∈
= ∑
− = ∑
− − − −
&
Функцию
L
(
μ
,
b
i
,
b
a
,
v
a
,
u
i
) минимизируем градиентным спуском:
берем частные производные по каждому аргументу и двигаемся в
сторону, обратную направлению этих частных производных.