442
правки
Изменения
→Алгоритм SVD
==Алгоритм SVD==
Попробуем воспользоваться [[Сингулярное разложение | сингулярным разложением(SVD)]] для задачи рекомендации.
Разложим матрицу оценок <tex> R </tex> с использованием сингулярного разложения:
<tex> R'_{n \times m} = U'_{n \times d} \times \Sigma '_{d \times d} \times V'^T_{d \times m} </tex>.
Из свойств сингулярного разложения мы знаем, что матрица <tex> R'_{n \times m} </tex> является наилучшим низкоранговым приближением с точки зрения средне-квадратичного отклонения.
[[Файл:3.png|400px|thumb|right|SVD для рекомендательных систем.]]
Чтобы предсказать оценку пользователя <tex> U </tex> для объекта <tex> I </tex>, берём некоторый вектор <tex> p_u </tex> для данного пользователя и вектор данного объекта <tex> q_i </tex>. Получаем необходимое предсказание: <tex> \hat{r}_{ui} = \langle p_u,q_i \rangle </tex>.