Разработка математической модели и программного обеспечения для рекомендательной системы в области киноиндустрии
С экспоненциальным ростом цифровой среды все чаще появляется необходимость в рекомендательных системах, которые бы помогали человеку на основании его интересов, предпочтений и вкусов выбрать наиболее близкие ему объекты.
Целью данной работы является разработка математический модели и программного обеспечения для контекстных рекомендаций продуктов киноиндустрии на основе оценок пользователей.
Исходные данные – пользователи 1…N и объекты 1…M. Построена матрица рейтингов \(R \in \mathbb{R}^{NxM}=(r_{i, a})\), где \((r_{i, a})\), – оценка пользователем \(i\) объекта \(a\). Соответственно, в данной работе необходимо решить следующую задачу – спрогнозировать оценку или предпочтение, которое пользователь отдаст предмету.
Предлагается использовать SVD (Singular Value Decomposition) разложение матриц для оценок пользователей, чтобы, во-первых, существенно снизить размерность векторного пространства. Во-вторых, отбросить малые искажения, предоставляя высококачественные рекомендации.
Метод заключается в следующем: необходимо разложить матрицу \(A \in M({n, m})\) в произведение матриц меньшего ранга.
\(A = UDV^{T}\)(1)
где матрицы \(U \in M(n, d)\) и \(V \in M(m, d)\) состоят из столбцов, являющихся собственными векторами при ненулевых собственных значениях матриц \(AA^T\) и \(A^TA\) соответственно и \(U^TU=V^TV=I\), а \(D\in M(d,d)\),
\(D = \begin{pmatrix} a_1 & 0 & 0\\ 0 & ... & 0\\ 0 & 0 & a_d \end{pmatrix}\) – диагональная матрица с положительными диагональными элементами, отсортированными в порядке убывания.
Диагональные элементы матрицы D представляют собой собственные значения, соответствующие ненулевым собственным векторам \(AA^T\) и \(A^TA\) (столбцам U и V). Столбцы матрицы U представляют собой, ортонормальный базис пространства столбцов матрицы A, а столбцы матрицы V – ортонормальный базис пространства строк матрицы A. Важным свойством SVD-разложения является тот факт, что \(A_k=U_kD_kV_{k}^T\) будет являться лучшей аппроксимацией матрицы A относительно нормы Фробениуса среди всех матриц с рангом k, т.е.
\(\left \| A-A_k \right \|\leq \left \| A-A^{'} \right \|\)
\(\forall A^{'}\in M(n,m)\)
\(rank(A^{'})=k\)
Применительно к задаче коллаборативной фильтрации, SVD можно использовать в таком порядке:
1. Построить разложение (1);
2. Зафиксировать некоторое число скрытых факторов k.
3. Получить лучшую k-ранговую аппроксимацию матрицы A и спрогнозировать рейтинг пользователя u товару i, вычисляя их скалярное произведение:
\(\hat{r_{u,i}}=r_i*r_u=r_{i}^{T}*r_u\)