推荐系统:矩阵分解与邻域的融合模型 (2)

这里的插入权重\(\theta_{ij}^u\)不是一个个单独计算的,而是依赖于许多邻项的交叉,这是一个统计数,而不是学习得到的。(By globally solving a suitable optimization problem, this simultaneous interpolation accounts for the many interactions between neighbors leading to improved accuracy.)

详见:Scalable Collaborative Filtering with Jointly Derived Neighborhood Interpolation Weights

1.3 隐语义模型(Latent factor models)

如果说前面的基于邻域的模型是统计方法,那么隐语义模型就是机器学习方法了,它有一个学习过程。例子很多,SVD,NMF,pLSA,以至于神经网络都可以算作隐语义模型。

对于基于SVD的隐语义模型具体介绍可见:从SVD到推荐系统。

这里说一点:对于推荐系统来说,评分矩阵是稀疏的。然而传统的SVD分解并没有告诉我们矩阵不完整的情况。对此,可以选择将稀疏的矩阵进行填充,使之变的dense后进行分解学习。但是,这无疑产生了很多无意义的数据和额外计算。而且,数据可能变得畸形。所以,对此,我们可以只选择有数据的评分进行分解,即:

\(min\sum_{(u,i)\in \mathcal{k}}(r_{ui}-\mu - b_i - b_u - \mathbf{q}_i^T\mathbf{p}_u)^2 + \lambda_{3} (\lVert p_u \rVert^2 + \lVert q_i \rVert^2 + b_u^2 + b_i^2)\tag{5}\)

以上为最小化损失函数,\(\mathcal{k}\)为用户u所有评分过的集合。

解决(5)式,一个简单的梯度下降就可以!

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsxsfp.html