使用randomized_svd进行推荐

时间:2016-05-18 05:02:51

标签: python matlab pandas scikit-learn sparse-matrix

我正在撰写文章:Maksims N. Volkovs和​​Guang Wei Yu paper link在推荐系统中进行二元反馈的有效潜在模型。

通过使用来自协同过滤方法的邻居相似性信息,使用基于模型的方法,SVD来产生推荐。

所以基本上是作者而不是像在SVD中那样分解用户评级矩阵R(M users * N songs)以进行推荐,而是分解用户歌曲预测矩阵S(M users * N songs)或稀疏矩阵S(M users * top-k predicted songs)。 / p>

因此我们得到了,

Ur,$r,Vr = sklearn.utils.extmath.randomized_svd(', n_components  = 1000)

其中r = SVD rank = n_components.

我们确实使用UrVr生成预测:

S(u, v) =  Ur(u, :) * Vr(v, :).T

其中u = user, v = item v , T = transpose

我使用协同过滤方法生成S(M*top-k)矩阵,并将其输入randomized_svd

但是通过上述方法生成的预测不会产生准确性(truncated mAP@500,我正在使用的性能指标,mAP = 0.01),而作者为相同的千万百分之一的歌曲挑战数据产生了0.14的良好mAP { {3}}

要求阅读论文并说出错误是很多,但如果有人事先了解并且可以帮助我,那就太棒了。

如果这是一个错误的论坛,请问这样的Q,请建议我另一个。

0 个答案:

没有答案