A SCALABLE COLLABORATIVE FILTERING ALGORITHM BASED ON LOCALIZED PREFERENCE.docx
《A SCALABLE COLLABORATIVE FILTERING ALGORITHM BASED ON LOCALIZED PREFERENCE.docx》由会员分享,可在线阅读,更多相关《A SCALABLE COLLABORATIVE FILTERING ALGORITHM BASED ON LOCALIZED PREFERENCE.docx(12页珍藏版)》请在冰豆网上搜索。
![A SCALABLE COLLABORATIVE FILTERING ALGORITHM BASED ON LOCALIZED PREFERENCE.docx](https://file1.bdocx.com/fileroot1/2023-1/26/25f4f52a-bdbf-48c6-ba18-f8f7d174a9f1/25f4f52a-bdbf-48c6-ba18-f8f7d174a9f11.gif)
ASCALABLECOLLABORATIVEFILTERINGALGORITHMBASEDONLOCALIZEDPREFERENCE
基于本地化偏好的可扩展协作过滤算法
摘要
在研究和应用领域协同过滤是非常成功的。
K近邻(KNN)方法是一个流行实现的方式。
其关键技术是为一个给定的用户找到K个最近的邻居,来预测他的兴趣。
基于用户聚类的协同过滤算法把用户分为集群,并通过使用所有项目选择前N个邻居,来计算在一个群集的相似性。
基于集群的协同过滤,具有很高的可扩展性,但预测精度低。
在本文中,我们提出了一种新的方法,以提高协同过滤的准确性和可扩展性。
我们的方法给用户分区,发现在每个部分的本地化偏好,使用本地化偏好的用户来选择用于预测的邻居,而不是使用所有项目。
我们目前的实证研究结果表明,该方法有更好的令人满意的精度和性能。
关键词:
协同过滤;推荐系统;聚类;本地化偏好
介绍
随着互联网信息的指数级增长,网上交易已成为越来越受欢迎。
但一个主要问题,是用户面临着如何从上百万的产品中找到他们喜欢的产品。
为了在决策过程中帮助用户,设计自动识别用户的可能选择的推荐系统越来越重要。
一个流行的推荐系统算法是自动协同过滤算法(ACF,或CF)。
这些算法产生建议,基于相似用户也有相似喜好的直觉。
也就是说,与你分享共同好恶的人,很可能是一个良好的建议来源。
协同过滤一直在研究和应用领域非常成功,如信息过滤和电子商务。
但是,仍然存在一些重要的研究问题,在克服协同过滤的两个根本性的挑战[3]。
第一个挑战是提高建议的质量。
一般情况下,用户数据的稀疏性是致命的事实,影响结果的准确。
稀疏性是指,大多数用户没有给大多数项目评分,因此产生一个非常稀疏的用户项目评分矩阵。
第二个挑战是提高协同过滤算法的可扩展性。
协同过滤患有严重的可扩展性问题,在于无法随着用户数和项目数的增长扩大计算。
通常情况下,算法越具可扩展性,速度越快,需要越少邻居,但其质量更糟糕。
因此,如何正确看待这两个挑战,是非常重要的。
在本文中,我们提出一个新的基于模型的协同过滤算法。
我们使用一种新的方法对用户进行分区,并同步地发现每个集群的本地化偏爱。
通过使用一个集群中项目的整数权重,我们很容易得到用户的本地化偏好,并用它来选择用于预测的邻居。
该算法位于第3节,第4节提出的实证研究结果,第5节总结。
相关工作
在本节中,我们回顾协同过滤的几个主要方法。
协同过滤的任务是根据用户的喜好,预测一个活跃的用户的首选目标项目。
一般有两类协同过滤算法:
基于内存的方法和基于模型的方法[4]。
基于内存的算法执行对整个数据库的计算,来识别前K个与活跃用户最相似的用户,然后将这些评级结合起来。
显着的例子包括基于皮尔逊-相关方法[21],基于向量相似度的方法,基于调整向量的相似性的方法[12]。
这些方法侧重于利用现有的训练用户的评级作为特征。
但是,基于内存患有两个根本问题:
数据稀疏和无法扩大规模。
基于模型的方法把训练数据库中不同的用户分为数量较少的类,基于他们的模式。
为了预测一个积极用户对一个特定项目的评级,这些方法首先把积极用户分为一个或多个预定义用户类,使用对目标项目的预测类的评级作为预测。
两种流行的基于模型的算法是聚类的协同过滤[2][18]方面模型[23]。
集群技术通过识别用户或项目组工作,一旦创建集群,可以通过使用在一个集群中的相似用户或项目评级进行对个人的预测。
方面模型是一个概率的潜在空间模型,它考虑个人喜好,作为喜好因素的凸组合。
贝叶斯网络方法[4]是另一种基于模型的协同过滤。
与基于内存的方法相比,这些基于模型的方法有更有效的可扩展性,但质量低。
模型可脱线超过几个小时或几天,由此产生的模型是非常小的和快速的。
然而,基于模型的方法,不适合用户偏好模型必须迅速或经常更新的环境。
有一些其他方法也处理稀疏问题。
一个基于图形的方法已被发现,它使用双边用户项目图[24]中用户和项目之间传递意义。
内容提高协同过滤方法[19][20]需要更多的信息,有关项目和计算其中有意义相似度的指标的信息。
协同过滤研究的另一个方向,结合了基于内存和基于模型的方法[8][10]。
例如[10]给用户数据分集群,并运用内群集来平滑以减少稀疏。
J.王[15]提出了一种新方法,结合基于用户和基于项目的协同过滤来预测
在本文中,我们将集中在基于模型的算法,并提出了一种新的基于模型的方法,以提高精度和可扩展性。
3.背景
本节简要介绍了基于用户和基于项目的协同过滤方法。
3.1问题域
通常情况下,每个用户只喜欢几个项目。
换句话说,相应的用户项目矩阵非常稀疏。
协同过滤算法的目的是预测用户对他/她还没看过的一个电影的兴趣。
3.2.基于用户的协同过滤
基于用户的协同过滤预测,测试用户对测试项目的兴趣,基于相似用户配置文件[22][3][17]的评级信息信息。
一般情况下,基于用户的协同过滤工作过程可以分为两个主要步骤:
邻居形成:
假定一个活跃用户ai,从所有用户数据中计算相似用户,基于相似度或他们各自的评级函数。
Pearson相关性和余弦距离是相似度计算的常用函数。
前N个最相似用户成为邻域成员。
预测评级:
一旦选好了前N个最相近邻居,对于每一个预测项目,这些高评价邻居被用于计算预测。
通过采用偏离选定用户的加权平均的手段,可以计算预测。
我们的方法是一种基于用户的协同过滤,我们提出了一个新的方法来选择预测用的邻居用户。
3.3.基于项目的协同过滤
基于项目的协同过滤[7][14][5][16]分析用户项目矩阵,以确定不同项目之间的关系,然后利用这些关系来计算前N个建议的名单。
这些计划背后的主要原因是,客户将更有可能购买他/她已经购买类似或相关的项目的项目。
由于这些计划并不需要确定建议所需要的相似用户的邻域,它们会导致更快的计算和更高的可扩展性。
4、方法
在本节中,我们详细描述了基于本地化偏好的协同过滤算法。
4.1.定义
在详细介绍我们的方法之前,我们介绍我们的方法的需要一些符号和定义。
一般来说,为了计算两个用户的相似性,你应该首先计算该项目的两个用户之间的路口,并使用所有这些项目计算的相似性。
有时,用户U和用户U'不相似,但他们有本地化的相似性偏好,他们仅在一些项目上具有相似性偏好。
我们可以使用本地化喜好来计算前N个建议的名单。
我们的方法准备对用户进行分区,并得到如下一些集群:
每个集群的用户在同一项目具有相似的偏好。
我们很容易观察到一个用户组的新项目集,通过mergence+operation,我们发现用户的喜好是,一个项目越一致,新集的权重绝对值就越大。
相比之下,当用户喜好不同时权重趋于零。
许多集群技术致力于集群的代表,这是用来作为分配对象的锚点。
在我们的方法中Mergenceoperation+被用于计算集群代表。
4.2.数据预处理
通常情况下,不同的用户项目评级的数据集有一定的差异。
这些数据集之间的一个关键的不同在评定量表中。
为了使数据集适合我们的算法,我们将进行数据集预处理,如下:
基本上,我们的方法是把其他评级范围改成-1/1的范围,其中1表示用户u喜欢的项目t,而-1表示u不喜欢项目t,0表示u没有看到过这个项目。
这个转化后,我们很容易用算法处理数据。
4.3.相似性度量
为了计算用户,用户的相似性,许多类似的函数已经被提出,如Pearson相关和余弦相似。
通常情况下,Pearson相关在协同过滤中是比较流行的。
定义如下,
4.4算法
基于用户的协同过滤算法的一个重要步骤是为活跃用户搜索邻居。
传统的方法是搜索整个数据库。
显然,当越来越多的用户和项目添加到数据库中时这种方法得可扩展性变差。
为了解决这个问题,我们期望数据集进行分类,并为活跃用户计算一个集群。
传统的基于用户的协同过滤聚类算法把用户分为集群,并使用的所有项目,计算在一个群集[2][17][9]中的相似性来选择前N个每个集群的邻居。
通常,在一个群集的用户只对一些项目有相同的喜好,我们可以为了作出评价预测,通过使用本地化喜好来选择前N个邻居,而不是使用的所有项目。
所以我们希望能够得到一些集群,一个集群中的广大用户对相同的项目有相同的喜好,同时,我们可以得到这些相同的项目用于预测。
图2说明了分割算法的过程,深色区域表示用户之间项目的本地化偏好。
因为不同项目组的两个用户可以有本地化偏好,每个用户将被分配到一个或多个集群。
为了得到这些集群,我们为了分割算法使用集群代表,通过用户代表的相似性将用户分配到一个集群。
找到一个良好的分区建立在其周围的集群代表对算法的成功是非常重要的。
我们希望得到一些代表,如下:
一个代表是一个设置了的对每个项目的整数权重(图3)。
在一个集群中的用户对同一个项目的偏好越相似,集群代表中的该项目的权越重。
相反,当一个集群中的用户在一个项目上没有相似性,该项目的权重是趋于零。
我们使用“mergenceoperation+”计算集群代表,我们计算代表的算法很简单,与计算K-means算法[1]的重心很相似。
我们希望有一个总的K个集群,其中k是由用户指定的参数。
我们假设K是用户所需集群的近似数量的指示。
我们首先随机选择M个初始代表,其中m是比目标更大的代表数目。
通过消除边缘和合并属于最接近的群集的代表,我们可以得到我们需要的代表。
在合并过程中,每一步都合并了最接近的代表对。
我们的算法由算法1正式描述。
当我们得到了初始代表,我们首先合并相似度大于阈值α的代表。
对于每一个代表,我们选择相似性大于阈值β的最接近用户,并将它们分配到一个群集。
阈值α和β可以由用户指定。
当代表用户的数量太少,代表将被删除。
然后是通过合并属于同一代表用户,得到一个新的代表。
我们重复这些步骤,直到代表人数小于k或新代表不相似。
显然,最初代表的大小越大,集群代表越准确,但计算代表的过程中越复杂。
用户可以根据他/她自己的需要,作出适当的选择。
为了找到最接近的用户和代表,我们需要一个衡量,量化“最接近”的具体数据的概念。
Pearson相关性往往是用于计算的协同过滤算法的相似性,我们使用它作为我们的相似性度量。
我们相信,不同的用户对不同的项目组都有本地化偏好。
因此,分配用户时,我们分配一个用户给最接近的几个集群,而不是分配给一个集群。
我们的分配过程被正式描述为算法2。
max(sim(u,R))表示最类似代表的相似度。
对于每个用户,我们选择更多类似代表,也就是说,当前代表sim(u,r')和max(sim(u,R))的比例小于阈值γ。
当我们得到集群,重要的一步是选择一个集群来为一个给定的用户和项目选择邻居。
根据分配用户的算法,用户可以分配到多个群集。
对于一个活跃用户和一个项目,我们选择集群代表的权重最大的集群,因为我们认为集群代表的权重较大意味着关于该项目的用户偏好越一致。
对于一个给定的用户和一个项目的预测算法描述如算法3。
要预测一个活跃用户的评级,最重要的一步是选择邻居用户。
传统方法使用方程
(2)作为相似度来计算邻居用户,,这种相似度不需要所有项目,也就是它使用的所有项目评级来计算。
但在一个集群中,用户只对部分项目有相同的喜好,所以我们提出了一种新的相似度来计算邻居用户:
一旦选出了前N个最相似的用户,他们评级的加权总和被用于生成活跃用户的预测,如下。
作为与邻居平均值[11]的偏差的加权平均预测被计算:
5.实验评价
在本节中,我们报告我们提出技术的实验考核的结果。
我们描述所使用的数据集,实验方法,以及与传统技术相比之下的性能的改善。
5.1.数据集
我们在基于Web的MovieLens推荐(movielens.umn.edu)的电影评级数据的一个子集上执行实验。
MovieLens是基于Web的研究推荐系统在1997年2月推出。
使用的数据集包含了10万个评级,有943个用户和1682部电影(项目),每个用户至少评了20个项目。
在MovieLens数据里的评级是整数,由用户输入的,从1到5。
我们选择80%的评级数据作为训练集,20%的数据作为测试集。
5.2.评估的衡量标准
平均绝对误差(MAE)[13]是最常用的评价协同过滤的度量,它通过比较在用户项目测试数据集数值建议分数与实际用户评级,评估系统的精确度。
在我们的实验中,我们用MAE作为评价。
根据这一指标,更好的CF算法具有较低的MAE。
5.3.实验结果
预测精度实验:
为了显示预测的准确性,我们比较了基于内存和基于集群的协同过滤的准确性预测。
数以百计的聚类和分割算法的变种已经出版。
在我们的实验中,我们选择用众所周知的K-means聚类算法做实验。
我们得到5组的训练和测试数据作为我们的实验数据。
图4给出了实验结果和第6组数据是前5组平均的MAE。
在图4中,可以观察到我们基于模型的方法预测的准确性,有稳定的精度,它已经非常接近,基于内存的方法。
我们也比较与基于集群中的基于项目和基于用户协同过滤的结果。
我们算法的精度比其他两个集群为基础的协同过滤要好。
我们方法在图7中出现的参数设置为以下值:
M=200,N=10,K=10,α=0.2,β=0.2,γ=0.8。
K-means的参数K为10。
邻域大小的实验:
我们还完成了一项实验,以确定邻域规模的敏感性。
结果如图5所示。
我们可以观察到,邻域的规模影响预测的质量,当邻域大于20时,预测准确性的提高非常缓慢。
考虑到发展趋势,我们选择我们的邻域的最佳大小为20。
群集参数实验:
α和β的值在集群代表的选择上有显著的影响。
α值过大,一些不相似的代表被合并。
相反,α值太小,将有太多的代表。
同样,β值过大或过小,代表将不具有代表性。
通过实验确定预测的质量参数的影响,我们选择性地使用不同的α和β的值,从0.2到0.9,计算相似度。
图6显示了不同值的情况。
从图可以看出,集群的数量对预测质量有显著影响。
一旦我们获得代表,我们将根据阈值γ分配用户到几个集群。
γ值是从0到1不等。
γ当设置为1,每个用户只分配到一个集群,集群代表的相似性是最大的。
γ值决定集群的大小,因此它对预测质量具有显著影响。
我们进行了一个实验,用不同的γ值,计算MAE。
我们的研究结果如图7所示。
从结果中我们可以观察到,γ的值越小,预测的准确性越好。
另一方面,γ值较小意味着更多的用户在一个集群里面,预测的时间花销较多。
我们发现,当γ>0.8,预测准确性的下降非常迅速,所以我们选择0.8作为该邻域大小下最佳的选择。
6.总结
在本文中,我们提出了一个新颖的基于模型的协同过滤框架。
我们给用户分区,用在一个群集里的本地化相似性来选择预测用的邻居。
实验结果表明,我们提出的框架,可以显着提高预测准确性,解决可扩展性问题。
本文从目前正在进行的工作中提出了一些初步的研究结果。
我们将继续探索分区和前N的选择技术的有效性,以提高预测的准确性和算法的可扩展性。
将来的工作将继续探索聚类或分区和前N的选择算法的特点,使其有效地在协同过滤中分割项目。