一种面向用户兴趣调和相似度的协同过滤方法技术

技术编号:22444566 阅读:23 留言:0更新日期:2019-11-02 04:29
本发明专利技术涉及一种面向用户兴趣调和相似度的协同过滤方法,该方法包括:通过对原始评分矩阵进行分解,将基于时间的用户兴趣度权重函数引入到皮尔逊相似度函数中,与用户评价等级信任因子和用户评价偏差信任因子相结合得到用户兴趣调和相似度,利用原始评分矩阵和用户兴趣调和相似度获取推荐结果,并向用户推荐符合需求的项目。本发明专利技术提供的方法不仅在用户评分数据稀疏的情况下较传统的概率矩阵分解方法能够显著提高推荐精度,而且可以根据用户在不同时间段对感兴趣的物品进行推荐。

A collaborative filtering method for user interest and similarity

【技术实现步骤摘要】
一种面向用户兴趣调和相似度的协同过滤方法
本专利技术涉及数据挖掘的推荐领域,具体地,涉及一种面向用户兴趣调和相似度的协同过滤方法。
技术介绍
随着用户参与信息生产,网络信息规模呈爆炸式增长。海量信息为信息检索提供了可能的同时导致了信息过载。为了缓和上述矛盾,帮助用户在海量数据中准确快速找到其感兴趣的信息,推荐系统应运而生。协同过滤算法是推荐系统中常用的方法,为了解决推荐过程中的稀疏性问题,一般采用基于概率矩阵分解的协同过滤推荐技术,常见思路是首先计算用户似度,然后确定邻居集合,最后预测评分。随着推荐技术的发展,为了获得更高质量的推荐精度,开始出现了将社交网络的信任引入到推荐技术中。该技术的关键环节是相似度与社交网络中信任因子的融合。但是,该技术忽略了随着时间变化而用户的兴趣也在不断发生变化的问题,从而不能及时反应用户的兴趣变化、时效性不足,从而造成推荐精度不高的问题。因此,现有推荐技术还有待改进和发展。
技术实现思路
鉴于上述现有技术的不足,本专利技术提出了一种面向用户兴趣调和相似度的协同过滤方法,具体地,该方法包括以下步骤:(1)利用用户评分数据得到原始评分矩阵R并对其进行概率矩阵分解,得到近似评分矩阵;(2)遍历原始评分矩阵R和近似评分矩阵获得基于用户共同兴趣评分的皮尔逊相似度Simfill_t_peirson;(3)遍历原始评分矩阵R得到用户评价等级信任因子Ni;(4)遍历原始评分矩阵R得到用户评价偏差信任因子Di;(5)利用修正用户兴趣相似度simfill_t_pearson、用户评价等级信任因子Ni和用户评价偏差信任因子Di,计算出用户兴趣调和相似度simt;(6)利用原始评分矩阵和用户兴趣调和相似度矩阵计算推荐结果,形成推荐列表进行推荐。本专利技术提供的一种面向用户兴趣调和相似度的协同过滤方法,首先对原始评分矩阵进行概率矩阵分解得到近似评分矩阵,然后将基于时间的用户兴趣度权重函数引入到皮尔逊相似度函数中得到用户兴趣相似度,接着通过原始矩阵的信任关系得到用户评价等级信任因子和用户评价偏差信任因子,进一步利用修正用户兴趣相似度、用户评价等级信任因子和用户评价偏差信任因子,计算出用户兴趣调和相似度,最终形成推荐列表进行推荐。与传统的基于概率矩阵分解的协同过滤算法相比,不仅在推荐过程中利用到用户之间的信任关系,而且将用户基于时间的兴趣度函数加入到协同过滤算法中,能够做到根据用户在不同时间段更精确地推荐用户潜在感兴趣的物品。附图说明图1为一种面向用户兴趣调和相似度的协同过滤方法流程图。具体实施方式如图1所示为用户兴趣调和相似度的协同过滤方法,包括以下步骤:(1)利用用户评分数据得到原始评分矩阵R并对其进行概率矩阵分解,得到近似评分矩阵;(2)遍历原始评分矩阵R和近似评分矩阵获得基于用户共同兴趣评分的皮尔逊相似度Simfill_t_peirson;(3)遍历原始评分矩阵R得到用户评价等级信任因子Ni;(4)遍历原始评分矩阵R得到用户评价偏差信任因子Di;(5)利用修正用户兴趣相似度simfill_t_pearson、用户评价等级信任因子Ni和用户评价偏差信任因子Di,计算出用户兴趣调和相似度simt;(6)利用原始评分矩阵和用户兴趣调和相似度矩阵计算推荐结果,形成推荐列表进行推荐。各步骤的具体实施细节如下:在步骤(1)中,更具体来说,使用矩阵R表示消费者购买过物品的矩阵,评分矩阵R为i个用户对j个项目的评分,每行表示某一消费者的消费记录,每列表示不同消费者对该商品的评分;令近似评分矩阵=UTV,采用均值为0,方差为0.1的高斯分布进行初始化;其中U∈Rk和V∈Rk分别表示用户隐因子矩阵和项目隐因子矩阵,特征维度为k;步骤1.1:建立近似评分矩阵损失函数:其中,i表示用户,j表示项目;N表示用户i的数目,M表示项目j的数目;Rij为用户i对项目j的评分;U∈Rk和V∈Rk分别表示用户隐因子矩阵和项目隐因子矩阵,特征维度为k;Iij为用户i是否对项目j进行评分,如果评分为1,否则为0;Ui为k维用户隐因子矩阵中第i个用户的k维偏好向量,Vj表示k维项目隐因子矩阵中第j个项目的k维偏好向量;UiT为Ui的转置;λu和λv为正则化因子;步骤1.2:对于每个评分数据Rij,如果连续两次迭代后损失函数变化大于设定阈值0.001,采用随机梯度下降更新迭代对应Ui和Vj的训练参数:其中,n表示迭代次数,α表示学习因子;Uin和Vjn表示第n次迭代后分别对应的Ui和Vj向量,Uin+1和Vjn+1表示第n+1次迭代后分别对应的Ui和Vj向量,初始化U和V为0矩阵;每次迭代将当前迭代的Uin和Vjn减去偏导数和的乘积计算得出新的Uin+1和Vjn+1向量;直到迭代后损失函数变化小于阈值或者迭代次数n大于10000;步骤1.3:将最后一次迭代的结果作为最终的U和V,通过=UTV计算得出用户i对项目j近似评分矩阵。在步骤(2)中,更具体地包括:步骤2.1:利用原始评分矩阵R计算皮尔逊相似度simpearson:其中simpearson(i,b)表示皮尔逊相似度simpearson中不同用户i和用户b的相似度;P表示原始矩阵R中所有用户的集合,j表示项目;Ri,j表示用户i对项目j的评分值,Rb,j表示用户b对项目j的评分值;和分别表示用户i的评分均值和用户b的评分均值;步骤2.2:根据遗忘曲线定义指数衰减函数得到基于时间的用户兴趣权重函数:其中,wt表示基于时间的用户兴趣权重,ti,j表示用户i对项目j的评分时间,t0表示目标用户的采样时间,T表示整个数据集的时间跨度(结束时间-开始时间);步骤2.3:将步骤2.2基于时间的用户兴趣权重函数引入到步骤2.1的皮尔逊相似度simpearson计算公式中,计算得出改进皮尔逊相似度:其中,simpearson(i,b)表示不同用户i和用户b之间的皮尔逊相似度;步骤2.4:利用原始评分矩阵R计算用户i和用户b间需要填充的项目集合:其中Pi∪b表示用户i评分向量与用户b评分向量的并集,用户i和用户b在数据集中表示不同的用户,Pi和Pb表示用户i和用户b的评分向量;表示用户i或用户b评价过的项目集合中用户i没有评价的项目集合,表示用户b或用户i评价过的项目集合中用户b没有评价的项目集合;步骤2.5:利用填充后用户评分向量,计算用户i和用户b的共同兴趣评分的皮尔逊相似度simfill_t_peirson:其中,simfill_t_peirson(i,b)表示由填充后所计算出的用户i与用户b的皮尔逊相似度;Pi∪b表示用户i和用户b评分项目的并集,和分别表示面向填补后的用户i对项目j的评分和用户b对项目j的评分。在步骤(3)中,更具体来说,根据原始评分矩阵R计算用户评价等级信任因子Ni:其中,num(i)表示原始评分矩阵R中用户i评价过的项目数,表示原始评分矩阵R中所有用户评价过项目数的均值。在步骤(4)中,更具体来说,根据原始评分矩阵R计算用户评价偏差信任因子Di:其中,di,j表示用户i对项目j的评分偏差,如果偏差大于ε则为1,否则为0;ri,j表示原始评分矩阵R中用户i对项目j的评分值,表示用户i的评分均值;ε为偏差阈值,设为0.5;di表示用户i评价过的项目集合中所有di,j之和;Di本文档来自技高网...

【技术保护点】
1.一种面向用户兴趣调和相似度的协同过滤方法,其特征在于,该方法包括以下步骤:(1)利用用户评分数据得到原始评分矩阵R并对其进行概率矩阵分解,得到近似评分矩阵

【技术特征摘要】
1.一种面向用户兴趣调和相似度的协同过滤方法,其特征在于,该方法包括以下步骤:(1)利用用户评分数据得到原始评分矩阵R并对其进行概率矩阵分解,得到近似评分矩阵;(2)遍历原始评分矩阵R和近似评分矩阵获得基于用户共同兴趣评分的皮尔逊相似度Simfill_t_peirson;(3)遍历原始评分矩阵R得到用户评价等级信任因子Ni;(4)遍历原始评分矩阵R得到用户评价偏差信任因子Di;(5)利用修正用户兴趣相似度simfill_t_pearson、用户评价等级信任因子Ni和用户评价偏差信任因子Di,计算出用户兴趣调和相似度simt;(6)利用原始评分矩阵和用户兴趣调和相似度矩阵计算推荐结果,形成推荐列表进行推荐。2.根据权利要求1的一种面向用户兴趣调和相似度的协同过滤方法,其特征在于,所述步骤(1)具体包括:步骤1.1:建立近似评分矩阵损失函数:其中,i表示用户,j表示项目;N表示用户i的数目,M表示项目j的数目;Rij为用户i对项目j的评分;U∈Rk和V∈Rk分别表示用户隐因子矩阵和项目隐因子矩阵,特征维度为k;Iij为用户i是否对项目j进行评分,如果评分为1,否则为0;Ui为k维用户隐因子矩阵中第i个用户的k维偏好向量,Vj表示k维项目隐因子矩阵中第j个项目的k维偏好向量;UiT为Ui的转置;λu和λv为正则化因子;步骤1.2:对于每个评分数据Rij,如果连续两次迭代后损失函数变化大于设定阈值0.001,采用随机梯度下降更新迭代对应Ui和Vj的训练参数:其中,n表示迭代次数,α表示学习因子;Uin和Vjn表示第n次迭代后分别对应的Ui和Vj向量,Uin+1和Vjn+1表示第n+1次迭代后分别对应的Ui和Vj向量,初始化U和V为0矩阵;每次迭代将当前迭代的Uin和Vjn减去偏导数和的乘积计算得出新的Uin+1和Vjn+1向量;直到迭代后损失函数变化小于阈值或者迭代次数n大于10000;步骤1.3:将最后一次迭代的结果作为最终的U和V,通过=UTV计算得出用户i对项目j近似评分矩阵。3.根据权利要求1的一种面向用户兴趣调和相似度的协同过滤方法,其特征在于,所述步骤(2)具体包括:步骤2.1:利用原始评分矩阵R计算皮尔逊相似度simpearson:其中simpearson(i,b)表示皮尔逊相似度simpearson中不同用户i和用户b的相似度;P表示原始矩阵R中所有用户的集合,j表示项目;Ri,j表示用户i对项目j的评分值,Rb,j表示用户b对项目j的评分值;和分别表示用户i的评分均值和用户b的评分均值;步骤2.2:根据遗忘曲线定义指数衰减函数得到基于时间的用户兴趣权重函数:其中,wt表示基于时间的用户兴趣权重,ti,j表示用户i对项目j的评分时间,t0表示目标用户的采样时间,T表示整个数据集的时间跨度(结...

【专利技术属性】
技术研发人员:王建芳谷振鹏苗艳玲韩鹏飞张秋玲
申请(专利权)人:河南理工大学
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1