图计算框架解决矩阵分解
1.矩阵分解是推荐系统常用的手段,经常用来做用户偏好预测.在当下的推荐系统中,我们得到用户对于物品的评分矩阵往往是非常稀疏的,一个有m个用户,n个商品的网站,它所收集到的m*n用户评分矩阵R可能只有不到万分之一的数据非零.矩阵分解算法常用来构造出多个矩阵, 用这些矩阵相乘的结果R’来拟合原来的评分矩阵R,目标是使得到的矩阵R’在R的非零元素那些位置上的值尽量接近R中的元素,同时对于R中非零值进行补全.我们定义R和R’之间的距离,把它作为优化的目标,那么矩阵分解就变成了最优化问题,而这类最优化问题常用梯度下降的方法来求出一个局部最优解。最近我们就对于这个问题进行了一下预研,发现用分布式图计算框架来解决这类问题比较方便流畅,尤其是在矩阵非常稀疏的时候..
2.我们希望任何一个p_u, q_i的值都不能过大,这样容易出现过拟合的现象,所以我们给(1)加上一个正则化项,于是(1)式变为
其中分别是p_u,q_i 的二范数,之所以选择二范数是因为我们认为用户偏好,物品特性这些维度上的分值分布是符合正态分布的,这种情况下常使用二范数,即向量所有元素的平方和.(对于L0,L1,L2的深入探讨详见参考资料1).我们的目标就是找到矩阵P和矩阵Q,使得(2)的值最小.因为(2)是左边是个连续函数,所以极值出现在梯度为0的时候,所以我们可以通过求梯度的方法得到使得L最小的Q和P。
作者:火星十一郎
本文版权归作者火星十一郎所有,欢迎转载和商用,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.