推荐系统 - 基于SVD++的协同召回算法

说明

1.SVD++相对SVD做了进一步的改进,主要的改进点还是在于兴趣矩阵的计算上, 相对于之前的兴趣度计算方式,就入了更多的特征项 来作为更好的评估依据,其主要增加了增加了用户对商品行为的隐式反馈向量的计算get_Yi ,训练,更新;以及用户对商品的行为集合构建。

2.其相对SVD的调整主要在这里把兴趣公式改成下式,其相对SVD结构,加入了右边的形式,通过隐式参数形式讲用户的喜好体现在模型中,其中Iu是用户u评论过的物品的集合,yj为隐藏的评价了物品j的个人喜好偏置,也通过梯度下降算法优化。这里的-1/2是个可调节的参数,具体新加内容的计算过程可以参见代码中的 getY函数。

           

     代码实现: rating = self.avg + self.bi[iid] + self.bu[uid] + np.sum(self.qi[iid] * (self.pu[uid] + u_impl_prf)) 

 

代码

数据集下载地址: https://pan.baidu.com/s/1D4H4dMDdp-5P6B7mebAIVQ 提取码:0i46 

因为兴趣计算式比SVD更复杂,所以其计算时间是比较漫长的,但是效果要比SVD好得多。

# -*- encoding:utf-8 -*-
# author: wangle

import numpy as np
import random
import time
import pickle
'''
     
        可以参考知乎这里的说明,  https://zhuanlan.zhihu.com/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值