/svd-recommendation

使用svd分解进行矩阵还原做推荐

Primary LanguagePython

使用svd分解进行矩阵还原做推荐

使用数据集:

1.movielens数据集
2.高斯随机生成两个矩阵,相乘得到低秩矩阵

测试方法:

取矩阵中的一个值,若预测值与真实值误差小于error=0.05认为还原成功。取多个值计算命中率hiting rate。

算法

SVD

SVD使用以下方式做矩阵分解:

SVD

LHS是预测打分。损失函数计算真实打分和预测打分的L2损失之和。参数更新时,梯度向最小化目标函数的方向下降。

SVD++

SVD++算法和SVD是相似的,但包含了用户的隐式反馈
SVD++

其中用户隐式反馈是用户隐式反馈。
在SVD++中,可以使用dual参数来决定是否包含项目的隐式反馈。公式可以被重新写做: dual SVD++

其中项目隐式反馈表示项目隐式反馈。