英语原文共 5 页,剩余内容已隐藏,支付完成后下载完整资料
2015年国际信息技术会议
组推荐系统:结合用户-用户和项目-项目的协同过滤技术
Abinash Pujahari
桑巴尔普尔大学信息技术学院
桑巴尔普大学
Jyoti Vihar-768019
email:abinash.pujahari@gmail.com
Vineet Padmanabhan
计算机与信息科学学院
海得拉巴大学
Hyderabad-500046
email:vcpnair73@gmail.com
摘要——如今,推荐系统不再是个人推荐系统,而是团体推荐系统,它列出了针对一组用户的推荐。此外,它们是当今网站(主要是购物,搜索引擎等)中不可或缺的一部分,它们希望跟踪用户的偏好。尽管我们不能为每个人构建一个推荐系统,但是我们可以构建一个考虑一组用户偏好的推荐系统。因此小组推荐的概念更加困难。最近的研究表明市场上没有有效的组推荐技术,并且迄今为止开发的技术对于单个应用程序或网站都是好的。在本文中我们提出了一种使用协同过滤技术的组推荐系统的新方法,该方法是构建推荐系统的两种技术之一。在我们提出的方法中我们结合了项目-项目协同过滤和用户-用户协同过滤的功能,通过创建同质小组来进行有效的小组推荐。我们还通过使用movielens数据集尝试去列出了我们的组推荐系统的精度,该数据集在全球范围内广泛用于推荐系统测试。
关键字——推荐系统,协同过滤,建议
I. 引言
推荐系统[1],[2],[3],[4],[5],[6]广泛用于Netflix,Amazon,YouTube等网站应用程序。这些网站使用推荐系统收集与用户的喜好有关的信息,并为特定用户预测可能适合他们的事物。每当我们想从互联网上下载电影或歌曲时,上述系统也可以预测用户选择的电影或歌曲。除此之外,在电子购物网站上我们还会根据用户以前购买的产品为他们推荐适合的产品。这也是推荐系统的功能。这些系统或软件使用户可以在不浪费大量时间进行选择的情况下做事。
为了生成推荐,系统首先要学习用户的喜好或分析事物或项目配置文件。基本上,任何推荐系统都使用两种技术来生成对用户的推荐。协作过滤技术[3],[5],[6],[7]依赖于收集和分析有关用户过去的经历,行为,活动的信息,并根据他们与其他用户的相似性来预测项目或事物。
图1:协同过滤推荐
例如,假设用户A过去喜欢三个项目,项目1,项目2和项目3,而用户B则喜欢其中两个项目,即项目1和项目2。然后协作过滤系统将根据用户B与用户A的相似性,预测并推荐项目3给用户B,如图1所示。该技术通常被许多社交网站采用(比如像Facebook,LinkedIn等)去向当前用户推荐他可能喜欢的新朋友或小组。协作过滤技术通常在预测其他策略可能会失败的复杂数据时非常有用,因为它不会从数据本身中学到任何东西,并且它会根据与其他用户的相似度来预测事物。推荐系统的另一种方法是基于内容的过滤,该过滤通过使用先前使用的数据,并使用一些机器学习算法(比如决策树,贝叶斯分类器等)来学习用户的偏好以建立模型,并将其存储在规则中。每当有新事物或项目到达时,它都会根据所学习的规则预测项目或事物,如图2所示。为了应用此技术,我们需要具有合理数量的训练数据。
问题在于大多数推荐系统由一组用户使用。我们不能为每个人建立一个推荐系统。一组中的用户可能有不同的选择。这里介绍了组推荐系统(GRS)的概念。考虑在咖啡店播放的歌曲的情况。来咖啡店的人们对音乐的喜好不同。为了吸引顾客,要播放哪些歌曲?因此他们喜欢播放通常没有身体不喜欢的歌曲。因此在使用GRS的情况下,我们需要遵循某种汇总策略以将每个用户的偏好汇总到一个组中。但是这并不是容易的。
图2:基于内容的过滤推荐
因为到目前为止,还没有有效的分组策略来产生有效的分组推荐。此外,组中某些用户的存在可能会影响其他用户的偏好。因此我们需要优先考虑那些对小组成员的偏好影响最重要的小组成员。下一部分将介绍基于相似性度量的协同过滤技术的概念,并且最适合个人推荐。在后面的部分中,我们讨论了我们提出的方法和对小组建议的扩展。
II. 动机
大多数使用协作过滤技术的推荐系统都使用相似性度量来预测推荐。如果系统计算用户之间的相似度并基于该度量标准,然后它预测项目,这被称为基于用户-用户的协同过滤技术。在该技术中系统将基于其偏好类似于当前用户的其他用户的使用项目来生成推荐。但是,如果系统计算项目之间的相似度并基于该度量标准,则系统会预测项目,这称为基于项目-项目的协同过滤。该技术预测与当前用户过去喜欢的项目相似的那些项目。但是,这些技术仅适用于我们希望为单个用户预测事物或项目的情况。在本文中我们将这种方法扩展到了组推荐系统,我们将在下一部分中详细讨论该系统以及实验结果。
A.基于相似性的推荐
如果我们想找出用户或项目之间的相似性,我们需要拥有以前的数据,该数据由用户给出的项目和等级组成。因为在计算相似度时会分析评分信息。下述用于计算用户或项目之间相似度的一些方法,也使用此评级信息。
1)皮尔森相关性:皮尔森相关性计算两个变量之间的相似性。皮尔逊系数给出的值在-1至 1之间。正值表示这两个变量之间有正相关或存在相似性。然而,系数的负结果表明这两个变量之间存在相异性或负相关。如果我们将这两个变量作为两个不同的用户来发现它们之间的相似度。计算两个用户u和v之间相似度由以下公式给出:
在上式中,相似度是根据等级信息计算的,其中表示用户对项目给出的等级。如果我们在公式1中用代替,则它将仅考虑两个用户都已评级或使用的项目。通过这样做我们可以在用户之间获得更准确的相似性。它被称为基于用户-用户的协同过滤技术。我们还可以通过对上述公式进行小的修改,从而找到用于项目-项目的协同过滤的两个项目和之间的相似性:
在上述用于项目过滤的公式中,如果对特定用户u来说两个项目的评分几乎相等,则它们是相似的,并且考虑到这种相似性,将为该特定用户推荐这些项目。
2)余弦相似度:在这种技术中[3],n个用户表示为n维向量空间,并且相似度则作为两个额定向量之间的余弦距离来度量。 在这里,用户及其对项目的评分以矢量即mtimes;n格式排列。可以通过将两个向量的点积除以它们的欧几里德距离的乘积来计算两个向量(即两个用户)之间的距离。
B.预测程序
为了进行预测[3],我们首先需要找到项目之间的相似性。然后通过列出预测最高的项目来生成推荐。我们可以在获得与i相似的一组项目S之后预测项目,这可以通过以下公式计算得出:
上面的公式为项目(j)项提供了预测值,与项目i相似,并且这些项目有被推荐的最高值。我们需要找到S的值,即类似的项目,以便产生良好的结果。在我们的推荐系统中,对于movielens数据集,我们将相似项的值S设为10。
C.组推荐
到目前为止所讨论的内容都是基于对个体或个人推荐系统的推荐。当我们必须为一组用户预测项目时,我们需要遵循某种聚合策略来聚合所有用户的偏好。为了解释聚合偏好的概念,请参考下表,其中有五个用户对五个项目进行了评分。
表I:分组策略
1)社交选择策略:社交选择策略以各种方法聚合用户的评分并生成组推荐。考虑表1中给出的一组五个用户及其对四个不同项目的评级。第一个是功利主义策略,它汇总了所有用户给出的特定项目的所有评级。如上表所示,四个项目的效用值被写入。然后它将预测那些具有最高效用值的项目。在上述情况下,项目2将被推荐给小组。最高乐趣策略找到所有用户给特定项目的最高评分,并选择具有最大价值的项目。在上述情况下,系统会将所有四个项目推荐给该组。同样,最少痛苦策略会找出所有用户对特定项目给出的最低评分,然后推荐那些评分最高的电影。在上面的示例中,项目1和项目2将被同样推荐给小组。
2)RTL策略:从上面的示例中可以明显看出,仅一种策略对组推荐系统的效果不佳。因此,Vineet等提出了一种称为RTL的策略[10],该策略结合了以上讨论的所有三种社会选择策略的特征。该策略的基本功能是,它首先删除赋予每个项目的最低评分,然后将累加功利主义策略应用于其余评分。然后它将向用户组推荐具有最高实用价值的项目。
III. 提出的组策略
实验结果表明,就推荐的精度而言,上一节中讨论的分组技术无法为组提供有效的推荐。为了进行有效的小组推荐,我们需要小组中用户之间的相似度。然后只有小组推荐才有效。还有一些用户的偏好可能会影响整个组,即它们具有比同一组中其他用户更高的优先级。因此我们也需要考虑这一点。我们将结合基于用户-用户的过滤以创建同类群组,以及基于项目-项目的过滤以预测对于该组中大多数用户通用的项目,以生成组推荐。
A.组的产生
为了产生同质基团,我们需要找到它们之间的相似度。我们可以使用公式1来找到两个用户之间的相似性。我们将以矢量格式存储每个用户及其与每个用户的相似性。假设有n个用户,则矩阵的阶数为ntimes;n。对于每个用户行,其余用户以与当前用户相似度的降序存储。因此每当我们要查找与当前用户相似的用户时,我们都可以获取详细信息。用于生成组的伪代码用算法1编写。
在上述算法中delta;表示使用公式1的两个用户之间相似系数的阈值,下面将删除这些用户。移除异类用户的想法是,我们将根据组中相似成员的偏好来预测推荐,以便大多数组成员对推荐项目感到满意。delta;的值是用户定义的。下一部分将讨论该组中不同组的用户相似程度(以该组中没有成员的形式)。
B.组推荐
生成同类组后,我们需要为用户组生成推荐。为达到这个目的,我们需要结合组中每个用户的偏好以及项目之间的相似性。
算法2为一组用户生成前k个推荐,其中k为组推荐系统生成的第k个项目或事物。k的值由用户组给定。该算法使用公式3来找到每个用户的预测值,然后找出用户组之间最常见的实例。找到一个公共实例后,便将其从所有实例中删除,以便同一实例被生成多次。因此该算法使用了两个相似性度量,即在用户-用户和项目-项目之间。下一部分将介绍使用此过程获得的精确度值。
IV. 实验结果
为了验证组推荐系统我们使用了movielens数据集。我们构建的团体推荐系统是团体电影推荐系统。使用的数据集有两个文件。第一个是电影细节,数量大约为1682。每部电影都有以下部分:电影编号,电影名称和它们所属的19种不同流派。当我们要查找两部电影之间的相似度时,即如果两部电影属于同一流派时,它们的相似度最高,就会考虑流派属性。第二部分是不同用户对所有电影的评级。总共有943个用户,每个用户至少对20部电影评分,评分在1-5之间。值5表示优秀,而1表示最差。因此如果用户给电影评分为5,则表示他完全喜欢该电影。用户首选项以二维矢量格式存储,即第一个属于电影编号,第二个是用户对相应电影的评级。
A.评估推荐系统
在将上述方法应用到组推荐系统后,我们已经使用推荐系统评估的标准公式验证了生成的结果。精确度定义为真阳性与所有阳性结果(真阳性和假阳性)的比例:
其中,tp表示真阳性,fp表示假阳性。如果我们想使用此公式为单个用户评估推荐系统(例如U),则修改后的公式可以写成:
其中R表示为用户推荐的项目,U表示当前用户使用的项目。Rcap;U表示R和U之间的公共项。上面获得的精度值仅适用于单个用户。如果要查找组推荐系统的精度,则需要计算组中每个成员的推荐精度,然后找到整个组的平均精度。
图3:组中用户之间的相似性
图4:各组之间的精确度
B.获得的结果
正如我们说过的那样,在小组推荐系统中小组成员之间的相似性起着至关重要的作用,因此我们计算了不同组的相似性百分比,在这些组中成员的编号不同。结果如图3所示。该图表明随着组成员的数量增加,聚合相似度逐渐降低。
通过使用算法1,算法2和评估标准,我们为不同组的团体电影推荐系统找到了以下精度值。图4表明,当我们增加组中成员的数量时,组推荐系统的精度值逐渐降低。经过一些增加后,曲线似乎已饱和。但是对于组中合理数量的成员而言,它产生了良好的效果。因此在为小组推荐时,我们需要明智地选择小组成员的数量,以产生有效的小组推荐。在我们使用的数据集中,即团体电影推荐系统,对于成员人数在3-5之间的团体,我们可以获得更好的结果。
推荐程序中的另一件事就是我们使用了变量k,即系统要生成的项目数。假设我们有一个由五个成员组成的固定组,并且给定了不同的k值,意味着生成的电影数量将发生变化,并且组的精确度也会发生变化。结果如图5所示。这表明当要推荐的项目数增加时,组推荐的精度
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[259990],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。