《结合类别分类偏好的协同过滤推荐算法》--论文阅读总结

摘要:该论文提出一种结合类别偏好的协同过滤推荐算法,在原有算法计算用户相似度的基础上,结合用户的类别偏好的相似度来近邻。

0 引言:

作者对现存文献提出的方法总结:

(1)提出利用有向网络图构建用户之间的信任关系,利用融合用户信任度的协同过滤算法。--林建辉

(2)将用户行为和物品标签与协同过滤相结合,更好解决物品冷启动问题。----李龙生

(3)将主题相似度引入相似度的计算中--李雪

作者总结:由于用户对类别的偏好会导致一定的喜好倾向,结合用户类别偏好的相似度计算比原来的的相似度更加接近真实情况。举个例:用户喜欢某品牌鞋子,正常这种牌子的鞋子会多于其牌子的鞋子,所以有相似类别喜好的用户的相似度也会比较高。

文章的创新点:本文提出一种结合类别偏好的协同过滤算法,通过计算用户对不同类别的偏好程度来得到用户之间的相似度,并结合原有的用户相似度来获得推荐结果。并且对热门产品进行惩罚,避免热门类别的影响。

1 传统的协同过滤推荐算法

传统协同过滤推荐算法

以基于用户的协同过滤为例:

步骤1:计算用户相似度;计算相似度常用的方法:余弦相似度、Pearson相关系数、Jaccard相似度
步骤2:更具步骤1中相似度计算方法得到用户相似度,进而得到用户的近邻集合,近邻集合的大小通常设置为K,k可以影响推荐效果。

《结合类别分类偏好的协同过滤推荐算法》--论文阅读总结_第1张图片

2 结合类别偏好的协同过滤

本文通过将协同过滤与用户的类别偏好相结合,来计算用户之间的综合相似度,进而从近邻用户得到推荐结果。

2.1 余弦相似度

协同过滤算法中利用余弦相似度来计算用户相似度。

余弦相似度计算公式:

N(u)、N(v)分别为用户u的和用户v有正反馈的项目集合。

2.2 类别偏好

用户对某一类的偏好一定程度上会影响用户对item的评论结果,可以通过F(u,t)来表示用户u对类别t的偏好程度。

 式中:Item(u)为用户有正反馈的item集合;I()为指示函数,用户判断项目i是否为类别t的项目。

式中:Tag2Item(t)表示类别t所包含的所有item集合

 这里还额外引入平滑项,避免出现分子为0的情况。

不同的用户有不同的类别偏好,通过计算用户的类别偏好,从而可以依据余弦相似度或其他相似度度量方法来得到用户之间的类别偏好维度上的相似度Simtag

2.3 综合相似度

在得到用户的类别偏好后,同样可以用余弦相似度来计算在类别偏好维度上的用户相似度simta。在原来的余弦相似度的基础上结合类别偏好的相似度,得到用户综合相似度Sim()

 式中:a为权重因子,用来平衡综合相似度中两种不同的用户相似度。

3 实验

3.1 测试数据集

本实验采用 Movielens-100k 数据集,其中80%为训练集,20%为测试集。

3.2 评估指标

精度(Precision)和召回率(Recall)

3.3 实验设计以及结果分析

在上文中式6中a的取值为0.8是通过实验得到的,此时推荐效果最佳。

上文中K 最近邻的个数k的关系

《结合类别分类偏好的协同过滤推荐算法》--论文阅读总结_第2张图片

《结合类别分类偏好的协同过滤推荐算法》--论文阅读总结_第3张图片

 通过图我们可以看到当 K在20 ~ 80 之间时,精度和召回率均表现较好,说明K值在这个范围内的推荐效果较好。

《结合类别分类偏好的协同过滤推荐算法》--论文阅读总结_第4张图片

通过实验我们得到,在相同k值的情况下,结合类别偏好的协同过滤与传统的协同过滤相比,在精度和召回率这两个指标上有明显提升。

你可能感兴趣的:(推荐算法,算法)