推荐系统----SVD分解法

奇异值分解的B站视频:

https://www.bilibili.com/video/BV1mx411E74T?p=4&spm_id_from=pageDriver

SVD分解就是:

  • 先对要分解的矩阵进行:  转置相乘, 另一个方向转置相乘 (因为两种形式得到的对角化矩阵都会用得到UV)
  • 然后:  对角化, 将对角矩阵拆开, 中间乘以另一个方向的用以对角化的矩阵
  • 最后: 取一半得到SVD分解

 

 

SVD做推荐系统:

(SVD做推荐系统真的只看这个就足够了----B站优质视频: https://www.bilibili.com/video/BV1Zz4y197qJ?from=search&seid=17040727517204755290)

一个用户(列)和电影(行)的矩阵:

奇异值分解的公式与原理:

  • 将原来的矩阵分解为:  左奇异矩阵, 奇异值矩阵, 右奇异矩阵

奇异值分解得到具体的奇异值(最大的两个)以及左奇异矩阵对应的列, 右奇异矩阵对应的行:

  • 即, 分别获得电影和用户 两维的特征空间
  • 即, 可以分别计算用户之间 和 电影之间 的相似度

获得"电影之间的相似度矩阵", 结合"用户电影评分矩阵", 预测用户给某个电影的打分:

  • 计算分子: 要计算电影的相似度行*用户的一列
  • 计算分母: 要预测电影的一行的相似度相加

显式反馈评价指标??:

  • MAE: 误差之和除以个数
  • RMAE: MAE开方

(某个实现)

电影推荐(推荐相似度高的):

  • 可以看到先推荐0.99,  然后0.98​​​​​​​

 

おすすめ

転載: blog.csdn.net/weiwei935707936/article/details/114291692