Изменения

Перейти к: навигация, поиск

Рекомендательные системы

790 байт добавлено, 23:02, 18 декабря 2020
Алгоритм SVD
<tex> R_{n \times m} = U_{n \times n} \times \Sigma_{n \times m} \times V^T_{m \times m} </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>.
Помимо предсказания оценок, алгоритм позволяет выявлять скрытые признаки объектов и интересы пользователей.
Например, может так получиться, что на первой координате вектора у каждого пользователя будет стоять число, показывающее, похож ли пользователь больше на мальчика или на девочку, на второй координате — число, отражающее примерный возраст пользователя. У фильма же первая координата будет показывать, интересен ли он больше мальчикам или девочкам, а вторая — какой возрастной группе пользователей он интересен.
Однако есть и свои данный алгоритм имеет следующие проблемы: 
*<tex> R </tex> матрица оценок полностью не известна, поэтому просто взять SVD разложение не получится;
*SVD разложение не единственное, поэтому даже если какое-то разложение будет найдено, нет гарантии, что первая координата в нем будет соответствовать некоторым выбранным характеристикам пользователя.
442
правки

Навигация