为了克服协同过滤算法的稀疏性问题和传统相似度计算方法过度依赖共同评分的问题,本文引入巴氏系数改进修正余弦相似度,进而提出基于巴氏系数的协同过滤算法(CFBC)。改进的算法考虑了项目全局评分信息和局部评分信息,克服了对于共同评分项的依赖。为了证明CFBC算法的有效性,我们基于已有的相似度计算方法实现了协同过滤算法,实验结果表明CFBC算法提高了推荐的准确性。 In order to solve the problems of Collaborative Filtering in terms of sparsely and the traditional similarity calculation method which relys on co-rated ratings too much, we utilize Bhattacharyya coefficient to improve the adjusted-cosine method. In this paper, we propose a Collaborative Fil-tering Algorithm based on Bhattacharyya Coefficient (CFBC). The proposed algorithm has considered both the global ratings and the local ratings,and overcomes the dependence of co-rated items. To prove the efficiency of CFBC, this paper has compared the neighborhood based on CFs using state-of-the-art similarity measures with the proposed algorithm based on CF in terms of performance. As a result, the CFBC has improved the accuracy of recommendation.
姜少鑫,陈彩,梁毅
北京工业大学计算机学院,北京
收稿日期:2017年5月13日;录用日期:2017年5月28日;发布日期:2017年5月31日
为了克服协同过滤算法的稀疏性问题和传统相似度计算方法过度依赖共同评分的问题,本文引入巴氏系数改进修正余弦相似度,进而提出基于巴氏系数的协同过滤算法(CFBC)。改进的算法考虑了项目全局评分信息和局部评分信息,克服了对于共同评分项的依赖。为了证明CFBC算法的有效性,我们基于已有的相似度计算方法实现了协同过滤算法,实验结果表明CFBC算法提高了推荐的准确性。
关键词 :协同过滤算法,修正余弦相似度,巴氏系数,稀疏性问题
Copyright © 2017 by authors and Hans Publishers Inc.
This work is licensed under the Creative Commons Attribution International License (CC BY).
http://creativecommons.org/licenses/by/4.0/
推荐系统 [
由前面的讨论可以看出传统的相似性计算方法并不适用于稀疏用户–项目评分的场景,因为它们都依赖共同评分项。在此,我们提出一个基于巴氏系数的协同过滤算法(Collaborative Filtering Based on Bhattacharyya Coefficient, CFBC),该算法通过巴氏系数来度量项目间的相似度,巴氏系数通过计算项目的全局评分信息从而克服对共同评分项的依赖问题。CFBC算法有效缓解传统相似度在用户–项目评分数据非常稀疏场景下推荐质量低的问题。
推荐系统中,用户–项目评分矩阵 [
其中:
1) 皮尔森相关系数(Pearson’s Correlation, PC)
皮尔森相关系数经常使用在基于用户的协同过滤算法中。PC能够度量两个用户或项目的线性相关性。皮尔森相关系数取值范围[−1,+1],值+1表示两个用户相关性最高,而−1表示两个用户相关性最低。同样,它也可以度量两个项目间的相似度。用户
其中:
2) PIP相似度(Proximity-Impact-Popularity, PIP)
PIP相似度综合了接近度、影响度和流行度三个因子来确定最终相似度。计算公式如下:
其中:
所有等式中
3) MJD相似度
MJD按某种比例来组合相关的共同评分项目、不相关共同评分项目的均方差值,用评分数值信息来代替评分的分布。计算公式如下:
其中:
4) JMSD相似度
JMSD相似度既考虑了共同评分的占比又考虑了评分绝对值,计算公式如下:
其中:
余弦相似度未考虑到用户评分量纲问题 [
其中:
巴氏系数 [
其中,
下面我们举个例子,
而从评分向量中我们可以看出没有一个用户同时评价过项目
协同过滤算法中的关键步骤是根据相似度来确定目标用户的近邻。而传统的相似度计算公式,在共同平分项很少甚至没有共同评分项时很难取得令人满意的结果。在此,本文通过结合巴氏系数提出的相似度计算方法不仅考虑了项目的局部评分信息,还考虑了项目的全局评分信息,这样在共同评分项较少甚至没有共同评分项时,仍能有效计算出两个用户的相似度,进而提高协同过滤算法准确性。
传统的相似度计算方法依赖共同评分项目,在共同评分项目很少甚至没有的时候往往产生很差的效果。本文通过结合巴氏系数,在计算一对用户相似度时既考虑他们的局部评分信息,又考虑了非共同评分项目,两者结合起来确定最终的相似度。
其中,
根据本文提出的相似度计算方法得到目标用户的近邻,下一步是得到Top-N推荐列表。通过相关文献了解到,推荐列表的排序大多是基于评分产生的,在此,本文通过下式来预测评分:
其中:
通过前面的讨论,我们了解到,尽管许多文献提出了各种不同的相似度计算方法,但这些相似度计算方法都在一定程度上依赖共同评分项。本文通过结合巴氏系数和修正余弦相似度提出了基于巴氏系数的相似度计算方法,在为某个目标用户推荐项目时,我们采用公式(8)来搜索目标用户的k-近邻,然后在根据公式(9)计算邻居的对目标用户没有评价过的项目预测评分,并按评分由高到低排序,将前N个项目推荐给目标用户。算法流程见表1。
为了验证CFBC算法的有效性,我们用基于4种不同相似度计算方法实现的协同过滤推荐算法对比本文算法,算法以及采用的相似度公式见表2。
本文的实验环境见表3。
研究推荐技术的各个组织及人员在推荐系统中一般使用的评价指标是预测准确度。预测准确度一般用来评价目标项目评分的预测精度。有两个比较流行的评价指标:平均绝对误差(
基于巴氏系数的协同过滤算法 |
---|
输入:用户-项目评分矩阵R,目标用户U,目标项目I 输出:目标用户 |
表1. 基于巴氏系数的协同过滤算法
算法名 | 相似度公式 |
---|---|
CFPIP | PIP |
CFJMSD | JMSD |
CFPC | PC |
CFMJD | MJD |
表2. 相似度及其对应算法
CPU | Intel(R) Xeon(R) CPU E5-1607 v2 |
---|---|
内存 | 8G |
硬盘 | 1T |
操作系统 | CentOs操作系统 |
开发语言 | Python |
表3. 实验环境
1) 平均绝对偏差
推荐系统中最简单但也是最常用的一种性能评价标准,它通过比较系统中所有用户的预测评分值与实际评分值之间的偏差来衡量预测的准确程度。
其中,
2) 均方根误差
均方根误差对一组测量中的特大或特小误差非常敏感,所以,均方根误差能够很好地反映出测量的精密度,反映了测量数据偏离真实值的程度,
其中,
在实验中我们使用的MovieLens数据集,为了方便大家理解,我们首先简单介绍下这个数据集。该数据集包含了6040个用户、3706部电影、评分数据条数40,955,评分最小值为1,最大值为5。在这6040个用户中只有275个用户有1个共同评分项,只有6个用户有2个共同评分项,由此可见,我们选取的数据集非常稀疏。
图1和图2显示了在实验数据集上不同的协同过滤算法时的MAE和RMSE值在不同的k-近邻时的变化,这两个值反映了算法评分预测值与实际评分的接近程度。从图中1和图2可以看出,CFPIP、CFJMSD、CFPC和CFMJD算法的MAE值和RMSE值都要远大于CFBC算法的。由图1可以看出在共同评分很少时,本文的CFBC算法的MAE值小于0.75,而其他算法的值在0.82以上。由图2可以看出CFBC算法的RMSE值随着k-近邻数在0.97到1之间变化,而其他算法的值在1.07以上。综合各个算法的MAE值和RMSE值可以看出本文的算法在共同评分项较少(实验数据中只有275个用户有1个共同评分项,只有6个用户有2个共同评分项)的情形下仍能较为准确预测评分值,本文算法在克服了对共同评分项的依赖。
图1. k近邻的MAE值对比
图2. k近邻RMSE值对比
本文提出了基于巴氏系数的协同过滤算法,通过利用项目的全部评分信息摆脱了相似度计算对共同评分项的依赖。对比实验结果表明CFBC算法在几乎没有共同评分项时,仍能做出较为准确的评分预测,进而有效提高了推荐准确度。由于推荐系统数据量庞大,今后考虑结合聚类算法提高CFBC算法的扩展性。
姜少鑫,陈 彩,梁 毅. 基于巴氏系数的协同过滤算法Collaborative Filtering Algorithm Based Bhattacharyya Coefficient[J]. 计算机科学与应用, 2017, 07(05): 473-480. http://dx.doi.org/10.12677/CSA.2017.75058