I'm reading the SVD++ Netflix Recommender Systems paper because I want to be able to properly assess this approach to building a recommender system.
How should I choose the initial values of $q_i$ and $p_u$ in the SGD equation below (and why is the proposed initialization technique expected to yield a faster convergence rate)?
- $e_{ui}$ is the associated prediction error
- $q_i^T\cdot p_u$ yields a rating prediction from user $u$ to item $i$
- $r_{ui}$ is a known user to item ranking from user $u$ to item $i$
- $p_u$ is user $u$'s latent factors vector
- $q_i$ is item $i$'s latent factors vector
- $\gamma$ is the learning rate constant
- $\lambda$ is also a constant value
$$ e_{ui} := r_{ui} - q^T_i\cdot p_u $$ $$ q_i \leftarrow q_i + \gamma\cdot(e_{ui}\cdot p_u - \lambda\cdot q_i) $$ $$ p_u \leftarrow p_u + \gamma\cdot(e_{ui}\cdot q_i - \lambda\cdot p_u) $$
The above calculations are run iteratively until convergence upon a minimized $e_{ui}$ value.