计算机论文范文栏目提供最新计算机论文范文格式、计算机论文范文硕士论文范文。详情咨询QQ:1847080343(论文辅导)

基于协同过滤的推荐算法研究与计算机引擎设计

日期:2018年02月07日 编辑:ad201107111759308692 作者:无忧论文网 点击次数:1540
论文价格:150元/篇 论文编号:lw201802022108125301 论文字数:34475 所属栏目:计算机论文范文
论文地区:中国 论文语种:中文 论文用途:硕士毕业论文 Master Thesis
第一章 绪 论

1.1研究背景与意义
近年来,互联网和移动互联网发展的如火如荼,物联网时代也在悄然布局,数据和信息的增长速度呈爆炸之势,高速的信息膨胀使人们不得不进入信息过载的时代[1]。如今,知识的海洋如此广袤漫无边际,如何从中准确高效地获取我们想要的数据成为了重要难题。搜索引擎为解决信息过载带来的数据获取难题提供了行之有效的解决方法,用户可以通过搜索关键字准确获取自己想要的数据。搜索引擎为我们提供准确的数据和信息的前提是用户能为自己想要获取的数据做出准确的定义,从这个角度讲搜索引擎不能满足为用户提供个性化服务的要求,它还不够足够的智能。在很多应用场景下,用户并不能提供准确的关键字,或者用户根本不知道自己的具体需求是什么,只是想获取自己感兴趣的信息,搜索引擎并不能满足用户日益增长的需求,因此推荐系统应运而生。自从上世纪九十年代起,推荐系统逐渐的得到了学术界的深入研究和工业界的广泛应用,学术界整合各个相关学科的优秀技术设计了多种推荐算法,工业界更是大胆地将推荐系统应用在具体的互联网产品中,并获得了用户的好评和商业上的成功。在前人研究的基础上,美国学者 ReSnick 等人首先提出“推荐系统”这一专业名词[2],并给出推荐系统如下的定义:推荐系统使用客户对物品的交互数据作为系统的输入,对客户的历史行为数据进行整理,学习客户端兴趣模型,对特定客户推荐该客户喜欢的物品。GroupLens 研究小组对推荐系统进行如下定义[3]:推荐系统采用各种数据分析技术,根据不同的应用场景,可以预测目标用户对目标项目的偏好值,也可以为目标用户生成一个推荐列表,从而达到个性化推荐的目的。明尼苏达大学 Konstan 把推荐系统定义为:推荐系统利用所有用户的偏好数据作为样本,帮助目标用户获取其最感兴趣的项目[4]。
..........

1.2论文的主要工作
本文的主要工作如下:1.提出两种改进的相似度计算标准 EuclideanRPR 和 Co-Occurrence-RPR,在MovieLens 数据集上进行算法实验,检验了改进算法的合理性。2.提出一种融合物品标签属性的 ItemCF-T 推荐算法,主要解决了当物品共同评分数量较少的时候,单一相似度评价标准可靠性下降的问题,最终通过MovieLens 数据集检验了 ItemCF-T 算法的合理性。3.为解决推荐系统稀疏性问题和可扩展性问题,深入研究了基于 SVD 技术的协同过滤推荐算法,通过实验实现了包括 SVD-SGD、SVD-ALS、SVD++等算法并比较了各自的特点,有效验证了 SVD 技术在推荐算法应用中的巨大潜力。4.最终实现一个基于C/S模式的推荐算法系统,主要用到的技术包括Java Web开发,Python 爬虫技术与 Android 客户端开发,通过实现该系统,深入了解了推荐系统实现的特点和难点。最终通过该系统客户端的界面显示可以更加直观方便的观察推荐算法的推荐效果。
..........

第二章 协同过滤推荐算法概述

纵观推荐系统的发展史,推荐系统首先在工业界尝试推广应用,在受到用户推崇之后,推荐系统的应用前景得到了学术界的重视。在早期的工业界领域内,笑话网站 Jester、电子商务网站 Amazon 等都因为采用协同过滤算法为用户进行个性化推荐而取得了商业上的成功。之后协同过滤算法的应用场景如雨后春笋般的发展壮大,遍布各行各业。早期的推荐算法仅仅是基于内容的推荐,需要物品具有明确的内容属性,而很多物品比如音视频等其内容属性难以提取,这一要求制约了该算法的发展。相比之下,协同过滤算法具有很大的优势,它不依赖于物品本身的属性,因此具有更广阔的应用场景。从推荐准确度的角度讲,协同过滤算法具有更高的推荐准确度,甚至能推荐出那些和用户之前喜欢的项目看起来不怎么相似的项目,而用户对推荐的结果却十分满意。按照各种不同的数据获取途径以及数据处理的方式,推荐算法大致上归为三种类型,第一种类型基于内容的推荐算法,第二种类型为协同过滤推荐算法,第三种类型为混合推荐算法。基于内容的推荐算法思路很简单,就是依照物品自身内容上的特征信息,计算得到和某物品最接近的其他物品,向客户推荐那些与客户之前好评的物品从内容上来讲比较相似的物品;协同过滤推荐算法的思路更加先进,不依赖物品的内容属性,是根据用户的历史行为去学习用户的偏好,为用户进行个性化推荐;混合推荐技术将多种技术手段执行整合归纳,各种技术手段之间合作配合,优势互补,提高推荐算法的精度。因为用户数据和项目数据的稀疏性,以及用户数据和项目数据特征数据比较难于提取的特点,基于内容的推荐算法在学术界没有展开深入而广泛的研究。相比之下,协同过滤推荐算法方法具有算法直观、易于实现、效果良好的优点,得到了学术界的广泛讨论和研究。

2.1协同过滤推荐算法发展及研究状况
协同过滤推荐算法诞生在一九九二年,由戈德堡等学者在太佩斯系统的研究中提出[7],该系统能够甄别出对用户有价值和没价值的邮件,但是得到用户的配合需要用户指出哪一类的信息是自己不感兴趣的。一九九六年,Minnesota 大学的算法工作者以协同过滤推荐算法作为基石,创建了专门推荐电影相关信息的MovieLens,并在同年将该系统发布到了互联网上,供广大用户使用[8]。美国计算机协会的数据挖掘团队在一九九九年成立了 WEBKDD 研究小组,该小组以推荐算法作为自己的核心主题[9]。在一九九九年举办的人机界面会议上,特意成立了兴趣研究小队,用以推广推荐算法的进一步研究发展[10]。二零零一年六月,Ken Goldberg等研究者提出了 Eigentaste 算法,使用 PCA 技术加快了最近邻的搜索过程[11]。二零零四年,Bradley N. Miller 等研究者设计了一款可以使用在掌上电脑上的协同过滤算法,它可以通过共享加密后的用户信息的方式离线提供推荐服务[12]。从二零零六年开始,Netflix 公司开始举办推荐算法大赛,自此多种优秀的协同过滤算法被提出并在比赛中摘得桂冠。近几年来,互联网发展速度迅猛,移动互联网更是如火如荼,在人民群众对推荐算法强烈需求的情况下,协同过滤算法受到了广泛的关注和深入地研究。
..........

2.2基于邻域模型的推荐算法研究现状
基于邻域模型的推荐算法又被称作 K 最近邻模型或者 KNN(K-NearestNeighbors)算法[23],属于推荐系统中较为成功和流行的一种算法,因为其实现简单,思路清晰,推荐效果良好,因此得到了学术界的深入研究和工业界的广泛应用。基于邻域模型的推荐算法一般分如下三个步骤(以基于用户的 KNN 算法为例):1. 依照已有的评价信息,求解客户与客户之间的相似度情况。2. 在所有客户中,找到和指定客户最相似的 K 个客户。3. 根据这 K 个最相似的邻居客户的评价数据,为指定客户进行个性化推荐。推荐系统蓬勃发展,蒸蒸日上,用户的数量以及项目的数量与日俱增,用户对项目的评分信息日益稀疏,传统的基于邻域模型的协同过滤算法最近邻的寻找方式和效率受到了很大的挑战,带来的结果就是推荐质量越来越难以令人满意。针对这一情况,冷亚军等研究人员提出了一种新的算法,该算法融合考虑了项目偏好的这一信息[24],先给指定客户找出一组备选的相似邻居集合,相似邻居集合和指定客户的兴趣偏好较为一致,共同参与评分的项目相对来说多一点,接着再从相似邻居集合中寻找最相似的若干个邻居集合,这样就过滤掉了共同参与评分数较少的客户对最相似邻居用户选取的影响,在一定程度上提高了推荐系统的效果。
..........

第三章 基于邻域模型的协同过滤推荐算法研究.... 13
3.1 常用的相似度计算方法......... 13
3.2 基于用户的协同过滤推荐算法......... 15
3.3 基于物品的协同过滤推荐算法......... 17
3.4 改进的欧几里得相似度计算公式 EuclideanRPR 原理........ 18
3.5 改进的基于共现统计的相似度计算公式 Co-Occurrence-RPR 原理.......... 20
3.6 实验与分析..... 23
3.7 本章总结......... 27
第四章 融合物品标签信息的协同过滤推荐算法研究........ 28
4.1 物品信息的多标签特性......... 28
4.2 改进的动态权重混合相似度计算公式 DWHS ........ 29
4.3 融合标签信息的协同过滤推荐算法 ItemCF-T........ 30
4.4 实验与分析..... 31
4.5 本章总结......... 32
第五章 基于 SVD 的协同过滤推荐算法研究.......... 34
5.1 SVD 矩阵分解技术的算法原理......... 34
5.2 随机梯度下降算法 SGD........ 35
5.3 最小二乘算法 ALS..... 38
5.4 Biased-SVD 算法......... 40
5.5 融合邻域信息的 SVD++算法............ 41
5.6 实验与分析..... 42

第五章 基于 SVD 的协同过滤推荐算法研究

5.1 SVD矩阵分解技术的算法原理

从一定程度上讲,推荐算法的本质就是为用户进行未评分项目的评分预测,评分预测问题转化为数学问题就是对用户项目评分矩阵中的缺失数据进行填充。推荐系统对稀疏矩阵的填充方法有一定的要求,要求填充方法不能对原始的评分矩阵产生较大的信息干扰,也就是说填充后的评分矩阵的特征值和填充之前评分矩阵的特征值相差不能太大[50]。SVD 技术满足推荐系统对稀疏矩阵填充方法的要求,SVD 技术使用降维的手段将稀疏评分矩阵填充补全,从而达到了评分预测的目的。在该