本节以科学网为例,任意采集某一用户的好友信息、这些好友发表的博文的基本信息,以及对这些博文产生过“推荐”行为的用户的基本信息。在数据预处理阶段,本节对用户的信息进行匿名化处理。本节的实验环境为win8的64位操作系统,CPU处理器1.80GHz,内存(RAM)4.00GB。运用Python语言进行实验。
(1)数据集
本节利用网络爬虫工具采集科学网中部分用户和博文的信息。采集到的有效用户总数为2816人,博文总数为4631篇,共有24143条用户对博文的推荐记录。采集的用户基本信息为{用户名,博文量,访问量,活跃度,好友数},博文基本信息为{博文名,作者,发表时间,博文阅读量,评论数,推荐人数量,推荐人名称}。
(2)实验方法与检验标准
本节采用5折交叉验证法与标准的基于用户的协同过滤推荐方法对比来检验推荐的性能,即将数据集等分为5份,其中1份作为测试集,剩下的4份作为训练集,这样循环进行5次,根据所有用户的推荐效果来验证推荐算法的可靠性和有效性。本节在实验过程中选择使用近邻集中的前10位用户来进行推荐,同时将推荐项目的数量确定在前10项。以此确保在进行对比实验的过程中条件的一致性。
检验个性化推荐性能的标准有很多种,如平均绝对误差(Mean Absolute Difference,MAE)、均方根误差(Root Mean Square Error,RMSE)、准确率(Precision)和召回率(Recall)等。考虑到推荐的目的是将用户最有可能偏好的N篇博文主动推荐给用户,以供用户选择。准确率可以很好的衡量推荐的这种效果。由于用户偏好的多变性,以及偏好变化的非规律性,我们认为推荐方法达到筛选出用户可能偏好的项目的目的即可。所以,本节采用推荐准确率(Precision)来衡量算法的有效性。
将博文按照预测到的评分值进行排序,将排名前N的博文推荐给目标用户。本节选择N=10来进行实验。
(www.xing528.com)
其中,N(A∩B)表示根据算法进行推荐,同时也被用户接受的项目的数量;NA表示推荐算法所预测到的项目的个数。Pre越大说明推荐算法性能越好。
(3)实验结果与分析
本节将提出的基于声誉的协同过滤推荐方法(Reputation Based Collaborative Filtering Recommendation,Reputation_CF)与基于用户的协同过滤推荐方法(User Based Collaborative Filtering Recommendation,User_CF)进行对比,见图6-4。图中共有6组对比数据,前5组是通过5折交叉验证法分别进行的实验对比数据,第6组是将前5组实验的数据平均后所得的对推荐性能的比较。
图6-4 两种协同过滤推荐方法比较
(注:User_CF是基于用户的协同过滤推荐方法,Reputation_CF是基于声誉的协同过滤推荐方法。)
从图6-4可以看出,Reputation_CF明显优于User_CF。根据5组数据的平均结果显示,Reputation_CF在User_CF的基础上提升了24%的性能。同时两种方法在数据集上的表现良好,具有较好的稳定性。因此,实验证明在知识网络社区中,声誉在用户接受信息资源的过程中具有很重要的作用。本节提出的基于用户声誉的社会化协同过滤推荐方法在一定程度促进了协同过滤推荐方法的发展。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。