svd++

SVD++ refers to amatrix factorization model which makes use of implicit feedback information.In general, implicit feedback can refer to any kinds ofusers' history information that can help indicate users' preference.

Contents

 [hide

Model Formalization

The SVD++ model is formally described as following equation:

r_{ui} = \mu + b_u + b_i + \left(p_u + \frac{1}{\sqrt{|N(u)|}}\sum_{j\in N(u)} y_j \right)^T q_i,

where N(u) is the set of implicit information( the set of items user u rated ).

General Formalization for User Feedback Information

A more general form of utilizing implicit/explicit information as user factor can be described in following equation

r_{ui} = \mu + b_u + b_i + \left(p_u + \sum_{i\in Ufeed(u)} \alpha_i y_i \right)^T q_i.

Here Ufeed(u) is the set of user feedback information( e.g: the web pages the user clicked, the music on users' favorite list, the movies user watched, any kinds of information that can be used to describe the user). \alpha_i is afeature weight associateswith the user feedback information. With the most two common choices: (1)\frac{1}{\sqrt{|N(u)|}} for implicit feedback, (2)\frac{r_{uj} - b_u}{\sqrt{|R(u)|}} for explicit feedback.

Learning

SVD++ can be trained usingALS.

It is slow to train a SVD++-style model usingstochastic gradient descent due to the size of user feedback information, however, an efficient SGD training algorithm can be used.[1] describes efficient training with user feedback information in section 4

Literature

Implementations

posted on 2013-11-13 09:47  代码王子  阅读(354)  评论(0编辑  收藏  举报

导航