论文部分内容阅读
早期的互联网用户必须通过记住网站来查找信息。随着21世纪以来互联网信息技术的迅速发展,尤其是近年来Web2.0和社交媒体技术的诞生,爆炸式增长的信息量引发了信息过载的现象。为了缓解信息过载的情况,使得用户可以在海量信息中找到有价值的信息,分类目录网站和搜索引擎网站应运而生,但是分类目录一般只能涉及少量的热门网站,收录和维护工作比较繁琐且不自动化,当信息量进一步增加的时候,分类目录将束手无策。为了解决这个问题,搜索引擎技术诞生了,搜索引擎的机制是网络用户提供需要检索的关键词,此后搜索引擎根据关键词进行检索并返回相同的结果,无法满足用户个性化的需求,同时一词多义也造成了噪声结果从而影响用户体验。推荐系统就在此背景下应运而生,推荐系统通过分析用户历史行为数据进行主动推荐,目前个性化推荐技术已经成为最受欢迎的信息过滤方式。
协同过滤算法的重要输入数据是用户-项目评分矩阵,但是由于项目数是远远多于用户数的,所以用户-项目评分矩阵存在着十分严重的数据稀疏性。针对传统协同过滤算法中的数据稀疏性问题,本文通过改进的Slope-One算法融入协同过滤算法中来填充评分矩阵,通过融入话语权的Slope-One算法对用户评分进行预测并回填至原始评分矩阵中形成最终的评分矩阵。
传统的协同过滤算法输出的是标准排序的Top-N推荐列表。针对标准排序的Top-N推荐列表中多样性较低的问题,本文提出了基于流行度阈值和评分阈值的双向动态排序方法。该方法基于流行度进行列表的重排序,通过设定动态可调的评分阈值来限制流行度排序精确度过低的问题,保证精确度和多样性之间的平衡。同时针对这种方法在推荐流行度过低的项目时由于陌生项目过于陌生造成用户努力上升的问题,本文提出设定流行度阈值,在评分阈值动态可调的基础上,流行度阈值也动态可调,以此来调整推荐列表中的项目陌生程度,在保证了足够的多样性和精确度的同时也提升了用户体验。
仿真试验基于Movie-Lens和Amazon-Clothes两个稀疏度不同和项目品类不同的数据集,首先针对本文的改进评分矩阵算法进行有效性验证。针对两个数据及使用本文改进评分矩阵协同过滤算法分别采用填充比例由小到大的顺序进行MAE值判定,以确定最优的填充比例;此后将本文改进评分矩阵填充协同过滤算法与SVD算法、原始协同过滤算法、原始加权Slope-One分别使用两个数据集进行仿真试验,以验证最优的近邻数Top-N值;最后基于四种算法两个数据集分别实施五折交叉仿真试验验证,这种对初始的用户-项目评分矩阵进行预测填充的方式,可以有效缓解数据稀疏性,提升推荐准确性。这成功验证本文改进评分矩阵的协同过滤算法的有效性。
此后针对本文改进列表重排序算法进行仿真试验以验证有效性与动态性。首先基于本文改进双阈值列表重排序方法与动态评分阈值的流行度重排序方法以及标准列表排序方法进行仿真试验。选取不同的流行度阈值和评分阈值,以验证本文改进列表重排序方法的有效性并确定大致的流行度阈值取值范围;此后同样针对三种方法在两个数据集上进行仿真试验,不断调整评分阈值与流行度阈值得出三种算法的精确度和多样性表现,不同的精确度和多样性要求都可以得到对应的评分阈值和流行度阈值的取值,因此本文改进列表重排序方法的动态性也得到了验证。
本文共分为6个部分,第一章为绪论,第二章为相关理论与相关综述,第三章为基于改进Slope-One算法填充评分矩阵,第四章为改进列表重排序的协同过滤推荐算法,第五章为仿真与结论,第六章为总结与展望。
协同过滤算法的重要输入数据是用户-项目评分矩阵,但是由于项目数是远远多于用户数的,所以用户-项目评分矩阵存在着十分严重的数据稀疏性。针对传统协同过滤算法中的数据稀疏性问题,本文通过改进的Slope-One算法融入协同过滤算法中来填充评分矩阵,通过融入话语权的Slope-One算法对用户评分进行预测并回填至原始评分矩阵中形成最终的评分矩阵。
传统的协同过滤算法输出的是标准排序的Top-N推荐列表。针对标准排序的Top-N推荐列表中多样性较低的问题,本文提出了基于流行度阈值和评分阈值的双向动态排序方法。该方法基于流行度进行列表的重排序,通过设定动态可调的评分阈值来限制流行度排序精确度过低的问题,保证精确度和多样性之间的平衡。同时针对这种方法在推荐流行度过低的项目时由于陌生项目过于陌生造成用户努力上升的问题,本文提出设定流行度阈值,在评分阈值动态可调的基础上,流行度阈值也动态可调,以此来调整推荐列表中的项目陌生程度,在保证了足够的多样性和精确度的同时也提升了用户体验。
仿真试验基于Movie-Lens和Amazon-Clothes两个稀疏度不同和项目品类不同的数据集,首先针对本文的改进评分矩阵算法进行有效性验证。针对两个数据及使用本文改进评分矩阵协同过滤算法分别采用填充比例由小到大的顺序进行MAE值判定,以确定最优的填充比例;此后将本文改进评分矩阵填充协同过滤算法与SVD算法、原始协同过滤算法、原始加权Slope-One分别使用两个数据集进行仿真试验,以验证最优的近邻数Top-N值;最后基于四种算法两个数据集分别实施五折交叉仿真试验验证,这种对初始的用户-项目评分矩阵进行预测填充的方式,可以有效缓解数据稀疏性,提升推荐准确性。这成功验证本文改进评分矩阵的协同过滤算法的有效性。
此后针对本文改进列表重排序算法进行仿真试验以验证有效性与动态性。首先基于本文改进双阈值列表重排序方法与动态评分阈值的流行度重排序方法以及标准列表排序方法进行仿真试验。选取不同的流行度阈值和评分阈值,以验证本文改进列表重排序方法的有效性并确定大致的流行度阈值取值范围;此后同样针对三种方法在两个数据集上进行仿真试验,不断调整评分阈值与流行度阈值得出三种算法的精确度和多样性表现,不同的精确度和多样性要求都可以得到对应的评分阈值和流行度阈值的取值,因此本文改进列表重排序方法的动态性也得到了验证。
本文共分为6个部分,第一章为绪论,第二章为相关理论与相关综述,第三章为基于改进Slope-One算法填充评分矩阵,第四章为改进列表重排序的协同过滤推荐算法,第五章为仿真与结论,第六章为总结与展望。