基于协同过滤算法的电视节目推荐的研究【字数:10993】
目录
摘 要 II
关键词 II
ABSTRACT III
KEY WORDS III
引言 1
1 材料与方法 2
1.1 协同过滤算法 2
1.2 Slope One算法 3
1.2.1 Slope One算法原理 4
1.2.2 Slope One算法步骤 4
1.2.3 Slope One改进算法 5
1.3 数据集预处理 5
2. 电视节目推荐方案设计 7
2.1 方案设计总体思路 7
2.2 方案总流程 8
2.2.1 设计用户电视节目评分矩阵 8
2.2.2 加权Slope One算法填充矩阵 8
2.2.3 计算用户相似度矩阵 9
2.2.4 确定相似度用户集 9
2.2.5 生成个性化推荐列表 9
2.3 方案评价指标 10
2.3.1 覆盖率 10
3 结果与分析 11
3.1 电视节目推荐方案实现 11
3.2 模型评价 13
3.3 结果分析 13
4 讨论 14
致谢 15
参考文献 16
附录A 协同过滤改进的Slope One算法完整代码 17
基于协同过滤算法的电视节目推荐的研究
摘 要
当前互联网技术飞速发展,伴随着是信息爆炸式增长。用户如何从超载的信息中选取自身感兴趣的信息是目前仍需解决的问题,个性化推荐便显得尤为重要。本文采用了基于用户的协同过滤改进的Slope One算法对某广电网络运营公司提供的三个月用户观看记录信息数据进行实施。本文主要针对原始推荐算法中存在的数据稀疏问题与冷启动问题进行模型改进。本文首先利用加权Slope One算法对用户—项目评分矩阵先进行预测,从而将用户—项目评分矩阵进行填充,矩阵稀疏度从95.79%降至58.95%,这解决了数据稀疏性的问题。之后,本文采用层次聚类算法确定所有用户最优的 *51今日免费论文网|www.51jrft.com +Q: *351916072*
聚类效果,从而确定相似用户集中相似用户的数量。在相似用户集内应用基于用户的协同过滤算法进行评分预测,最终的电视节目推荐度是基于用户相似度推荐算法预测评分和加权的Slope One算法预测评分线性组合得到的。最后将推荐度中最大的10档电视节目推荐给目标用户。推荐的电视节目覆盖率21.9%高于原始的基于用户的协同过滤算法模型得到的覆盖率16.4%,有效缓解了原始算法中存在的冷启动问题。
引言
当前世界朝着社会信息化发展,海量的信息虽然满足了用户需求,但也导致了信息过载的问题。此时,个性化的推荐系统便显得尤为重要。个性化推荐系统是根据用户历史行为数据,预测哪些信息是消费者最有可能感兴趣的,最终将推荐结果信息推荐给用户。因此,推荐系统受到越来越多的人关注。正式对推荐系统进行定义是在1997 年,Resnick等人在美国计算机学会通讯(Communications of the ACM)上发表了《Recommender System》文章[1]。此后,推荐系统受到了越来越多的关注,推荐系统不仅在学术界应用广泛,商业界亦是如此。
在国外,如Linden[2]等人设计推荐系统对亚马逊网站的商品推荐,Hopfgartner[3]等人将推荐系统用于新闻,Fan等人分析了用户点播电视节目的先后顺序对于用户兴趣偏好的影响,并采取序列模式挖掘算法建立用户兴趣偏好模型[4]。美国著名的网上零售商Overstock使用了个性化广告推荐方案,最终获得了不错的收益。
而国内在推荐系统方面的研究与国外相比相对滞后,近年来随着互联网的迅速发展,同时伴随着大型电商的兴起对于个性化推荐的迫切需求,推荐系统也开始被人们所重视。国内的研究人员开始对推荐系统进行研究和应用。比如何蓉[5]提出基于神经网络的音乐推荐;王培[6]基于商业智能系统,从“微博”搜集数据对用户网络行为数据进行挖掘分析,个性化推送网络电视节目。
推荐系统中最重要的部分则是推荐算法。协同过滤算法与Slope One算法是当前比较常见、利用较为广泛且应用价值较高的个性化推荐算法。协同过滤算法是利用其他用户对项目的历史行为信息来预测目标用户的偏好,从而进行推荐。协同过滤算法主要分为基于项目的协同过滤算法和基于用户的协同过滤算法。基于用户的协同过滤算法是认为用户与其相似度高的其他用户具有相似的偏好。而基于项目的协同过滤算法则认为用户的偏好在一段时间内是固定不变的,用户在一段时间内仍然喜欢类型相似的项目。但是传统的协同过滤算法存在一些问题,例如用户和项目的冷启动问题,数据稀疏性问题等[7]。为弥补传统的协同过滤算法不足,研究人员尝试着对算法进行改进。如陈小辉[8]等人通过对欧氏距离进行归一化来消除不同维度之间的衡量尺度来计算用户相似度。贾俊杰[9]提出修正评分的协同过滤法。王明佳[10]等人提出了基于用户对项目属性偏好的协同过滤算法。该文章将用户对于项目的评分标准稍作改进,其评分依据是用户对项目属性偏好。
Slope One算法是一个预测评分的个性化推荐算法。Slope One算法是假设用户在所有项目的评分存在可以用某个合适的数学公式来表示的某种联系。近年来,研究人员对Slope One算法进行优化。李继云[11]等人为解决数据稀疏性与冷启动的问题,提出了基于项目的协同过滤改进的Slope One算法。该文章采用聚类算法将所有项目分为若干个类别,进而在目标项目所属类别中应用Slope One算法进行评分预测,最后的评分预测是基于项目协同过滤算法评分预测与Slope One算法评分预测线性组合得到的。根据以上所述,本文针对协同过滤算法中存在数据稀疏性问题,提出先利用加权Slope One算法填充用户—项目评分矩阵,避免因矩阵的稀疏性造成用户相似度计算偏离实际情况的问题。再利用基于用户的协同过滤算法产生电视节目推荐列表。对于如何确定相似用户集中所含用户数量的问题上,本文采用层次聚类算法确定所有用户最优的聚类数量,从而确定相似用户集中相似用户的数量。对相似用户集内应用基于用户的协同过滤算法进行评分预测,最终的电视节目推荐度是基于用户相似度推荐算法预测评分和加权的Slope One算法预测评分线性组合得到的。最后将推荐度中最大的N档电视节目推荐给目标用户。
原文链接:http://www.jxszl.com/jsj/sxtj/606729.html