推荐系统可以过滤一些无用信息,可以预测用户是否喜欢给定的资源。基于内容的推荐和协同过滤推荐算法是目前主要的个性化推荐方法。但是随着用户项目的不断增加,用户-项目评分矩阵存在着稀疏性、冷启动等问题。针对此问题,我们提出了一个独特的层叠混合推荐方法,使用评级数据,人口统计数据和特征数据来计算项目之间的相似度。实验表明我们的方法优于传统的推荐系统算法。 Recommender system can filter some useless information and can predict whether the users love given resources. Content-based recommendation and collaborative filtering recommendation algorithm is the main personalized recommendation method. However, with the continuous increase of user projects, there are sparse, cold start and other issues in the user-project scoring matrix. In response to this problem, we propose a unique cascade hybrid recommendation method that uses rating data, demographic data, and feature data to calculate the similarity between projects. Experiments show that our method is superior to the traditional recommendation system algorithm.
王全民,谷 实,李振国,王开阳,孙艳峰
北京工业大学,北京
收稿日期:2017年5月6日;录用日期:2017年5月21日;发布日期:2017年5月27日
推荐系统可以过滤一些无用信息,可以预测用户是否喜欢给定的资源。基于内容的推荐和协同过滤推荐算法是目前主要的个性化推荐方法。但是随着用户项目的不断增加,用户-项目评分矩阵存在着稀疏性、冷启动等问题。针对此问题,我们提出了一个独特的层叠混合推荐方法,使用评级数据,人口统计数据和特征数据来计算项目之间的相似度。实验表明我们的方法优于传统的推荐系统算法。
关键词 :个性化,基于内容,协同过滤,推荐算法
Copyright © 2017 by authors and beplay安卓登录
This work is licensed under the Creative Commons Attribution International License (CC BY).
http://creativecommons.org/licenses/by/4.0/
近年来,数字信息、电子资源和在线服务的数量呈指数级增长。信息超载出现了一个潜在的问题,即如何给用户过滤和有效地传递相关信息。这是一个可以过滤用户不需要的信息和可以预测用户需要的物品的系统。这样的系统被称为推荐系统。
假设
R是一个完全有序的集合。对于每一个用户
协同过滤系统可以分为两类:基于内存的协同过滤和基于模型的协同过滤。基于内存的协同过滤,其基本思想是用统计的方法得出所有用户对物品或者信息的偏好,然后发现与当前用户口味和偏好相似的邻居用户群 [
推荐系统有两个潜在的问题。一是可扩展性,即一个推荐系统多快可以产生推荐,第二是改善给一个用户的推荐准度。纯协同过滤推荐系统能够比纯基于内容和基于人口统计学推荐系统产生更好的推荐效果,但是,由于冷启动问题,导致推荐效果的偏差。
本文提出一个混合方案,能进行更准确的预测和推荐,并用来解决冷启动问题。我们提出的方案是基于一个级联的混合推荐技术,其基于项目的评分,特征和人口信息构建项目模型。评估算法的数据集是MovieLens和FilmTrust。
基于项目的协同过滤推荐系统用离线平台建立一个计算项目相似度的模型 [
1) 检索由活跃用户评价过的所有项目。
2) 使用检索的项目的集合计算目标项目的相似性。选择k个最相似的项目的集合,也称为具有它们的相似性的目标项目的邻居。
3) 通过计算对k个最相似的项目的活跃用户评价的加权和来进行对目标项目的预测。
基于内容的推荐系统是基于项目的文本信息推荐项目。在这些系统中,感兴趣的项目由其相关联的特征定义,例如新闻过滤系统使用文本的词作为特征。
我们从IMDB下载关于电影的信息,并应用TF-IDF方法从关于每部电影的信息中提取特征 [
人口统计学推荐系统是基于用户或项目的个人属性对其进行分类,并基于人口统计分类进行推荐。在我们的工作中,我们使用关于电影的类型信息作为其人口统计信息,并构造一个矢量。
令
提出的算法可以总结如下:
步骤1:使用评级数据,人口统计数据和特征数据来计算项目之间的相似度,并存储该信息 [
步骤2:提高的相似性
等式(3)告诉我们选择使训练集中的项目集(
函数号 | 函数(f) | MAE(ML) | MAE(FT) |
---|---|---|---|
1 |
|
0.793 | 1.443 |
2 |
|
0.788 | 1.437 |
… | … | … | … |
32 … |
|
0.736 … | 1.378 … |
83 |
|
0.835 | 1.452 |
表1. k = 20的函数样本
令
公式(4)中,
步骤3:通过使用以下公式来预测目标项目
我们使用MovieLens (ML)和FilmTrust (FT)数据集用于评估我们的算法。MovieLens数据集包含943个用户,1682个电影和100000个评分记录。规模为1 (差)至5 (优)。MovieLens数据集被用在很多研究
项目中。这个数据集的稀疏性约93.7% (
我们通过FilmTrust创建了第二个数据集。检索的数据集包含1592位用户,1930电影和28645评级,
规模为1 (差)到10 (优)。此数据集的稀疏度约为99.06% (
我们在本文中的具体任务是预测已经被实际用户评分的项目的分数,并且检查该预测如何有助于用户选择高质量项目。考虑到这一点,我们使用平均绝对误差(MAE)。
MAE测量推荐系统的预测评级和用户分配的真实评级之间的平均绝对偏差。其计算如下:
其中
此外,我们使用覆盖度来衡量推荐系统可以推荐多少项目。我们随机选择每个用户的20%评级作为测试集,并使用剩余的80%作为训练集。我们将训练集进一步细分为测试集和用于测量参数灵敏度的训练集。为了学习参数,我们通过随机选择在80%的训练集上进行5重交叉验证,每次随机选择不同的测试和训练集合,并取结果的平均值。
我们将我们的算法与几种不同的算法进行比较:使用皮尔逊相似性的基于用户的协同过滤,基于项目的协同过滤使用修正的余弦相似度,朴素贝叶斯分类方法使用项目特征信息,用于生成推荐的朴素混合方法,用于进行概率推荐的个性诊断算法 [
我们将活动用户的邻居数目从0改到100,并计算
图1. 确定邻域大小的最优值k
图1表示对于MovieLens数据集的MAE对于k = 20是最小的。所以对于进一步的实验,我们选择邻域大小为20。
通过产生参数值的所有可能组合产生36个参数集,范围从0.1到1.0,差值为0.1。表2给出了所学习的参数集的样本。参数设置α = 0.5,β = 0.3,γ = 0.2,α = 0.7,β = 0.2,γ = 0.1分别在MovieLens和FilmTrust数据集下给出最低的MAE。值得注意的是,组合相似性在很大程度上取决于特征相似性,即α。此外,对于MovieLens和FilmTrust数据集,参数的值是不同的,这是由于这两个数据集具有不同的密度,评分分布和评级量表。
1) MAE方面的性能评估:图2显示我们的算法明显优于其他算法。对于FilmTrust数据集我们观察到类似的结果。我们可以从项目集合的结果中得出结论,应用
2) MAE,ROC灵敏度,覆盖率与其他算法的在线成本的比较:表3显示了在线成本(在最坏情况下)每个算法具有的最低MAE和覆盖率。这里,P是针对训练示例的特征的数量(即针对电影的特征)。值得注意的是,对于FilmTrust数据集,与MovieLens数据集相比,对于所有算法,ROC灵敏度更高。我们认为这是由于评分分布的原因。此外在FilmTrust数据集下,算法的覆盖率低得多,这是由于其非常稀疏(99%)的原因 [
3) 新项目和新用户冷启动问题下的性能评估:当将新项目添加到系统时,则不可能从用户获得该项目的评分数据,因此协同过滤推荐系统不会推荐该项目。这个问题被称为新项目冷启动问题。为了在这种情况下测试我们的算法,我们选择1000个来自测试集的用户/项目对的随机样本 [
参数集号 | α | β | γ | MAE (ML) | MAE (FT) |
---|---|---|---|---|---|
1 | 0.1 | 0.1 | 0.8 | 0.738 | 1.382 |
… | … | … | … | … | … |
29 | 0.5 | 0.3 | 0.2 | 0.732 | 1.379 |
… | … | … | … | … | … |
35 | 0.7 | 0.2 | 0.1 | 0.739 | 1.374 |
36 | 0.8 | 0.1 | 0.1 | 0.742 | 1.379 |
表2. k = 20的参数集样本
Algorithm | Online Cost | MAE (ML) | MAE (FT) | ROC (ML) | ROC (FT) | Coverage (ML) | Coverage (FT) |
---|---|---|---|---|---|---|---|
Userbased | NM2 | 0.792 | 1.442 | 0.402 | 0.643 | 99.42 | 96.61 |
Itembased | N2 | 0.791 | 1.441 | 0.384 | 0.623 | 99.22 | 92.31 |
BoostedRDF | N2 | 0.725 | 1.363 | 0.563 | 0.755 | 100 | 99.19 |
NaiveBayes | M (NP) | 0.833 | 1.472 | 0.623 | 0.835 | 100 | 99.99 |
Naivehybrid | NM2+ M | 0.822 | 1.462 | 0.525 | 0.725 | 100 | 99.99 |
Personality diagnosis | NM | 0.785 | 1.433 | 0.521 | 0.735 | 99.14 | 94.23 |
表3. 各种算法成本,精度,覆盖率比较
算法 | MAE1 | MAE2 | MAE5 | |||
---|---|---|---|---|---|---|
(ML) | (FT) | (ML) | (FT) | (ML) | (FT) | |
User-based CF | 1.64 | 2.66 | 1.23 | 2.24 | 0.95 | 1.94 |
Item-based CF | 1.36 | 2.55 | 1.19 | 2.15 | 0.91 | 1.58 |
BoostedRDF | 0.98 | 1.61 | 0.84 | 1.58 | 0.82 | 1.45 |
表4. 冷启动下的性能评估
图2. 不同邻域下改进算法与其他算法的MAE对比
图3. 不同稀疏水平下的算法性能
对于新用户冷启动问题,其中用户的信息不完整,我们使用线性回归模型来找到一个项目的活动用户的评分的近似值 [
在(6)中,J的选择来自训练集,发现MovieLens为10,FilmTrust数据集为5。评分
4) 不同稀疏性下的性能评价:为了检查稀疏性的影响,我们通过丢弃一些随机选择的条目来增加训练集的稀疏度。但是我们保持每个稀疏训练集的相同的测试集。我们检查了提出的算法的性能与以纯用户为基础的协同过滤,基于项目的协同过滤和一个朴素的混合推荐算法。图3表示在所提出的不同算法的情况下,性能不会快速降低。这是因为项目的特征仍然可以用于找到类似的项目。此外,同义词检测算法了丰富项目特征,同时也可以找到项目之间的相似性。
在本文中,我们提出了一个独特的层叠混合推荐方法,使用评级数据,人口统计数据和特征数据相结合的方法来计算项目之间的相似度。实验表明我们的方法优于传统的推荐算法。
王全民,谷实,李振国,王开阳,孙艳峰. 一种改进的更准确的混合推荐算法An Improved and More Accurate Hybrid Recommendation Algorithm[J]. 应用数学进展, 2017, 06(03): 267-274. http://dx.doi.org/10.12677/AAM.2017.63032
https://doi.org/10.1109/TKDE.2005.99
https://doi.org/10.1145/371920.372071
https://doi.org/10.1016/j.ins.2007.02.036
https://doi.org/10.1023/A:1021240730564
https://doi.org/10.1023/A:1006544522159
https://doi.org/10.1016/b978-1-55860-377-6.50048-7