||
《Introduction To Recommender Systems:Algorithms and Evaluation》学习笔记
作者:Joseph A. Konstan
发表期刊:ACM Transactions on Information Systems
总述:
推荐系统通过利用个体的观点信息来对个体推荐他们可能感兴趣或者是和他们的需求相关的产品、信息。推荐系统,最初主要指的是协同过滤的推荐系统,相对于基于关键字过滤的系统,主要解决以下两个问题:
1、解决了用户通过关键字搜索后,仍然会面临巨大数据量问题。这些过滤主要是基于人工对文档信息质量的判断。即传统的搜索引擎仍然存在大数据量的问题,用户仍然没有能够摆脱需要从海量数据中挑选信息的问题。例如我们现在在google或者百度输入关键字进行搜索,得到的搜索结果仍然是非常多的,输入苹果,我可能指的是苹果电脑,但是搜索引擎可能还会返回水果苹果的相关信息等。
2、解决了需要基于个人品味的非文本类型的商品过滤的问题。比如,Ringo系统利用协同过滤的方法来对用户推荐音乐,稍后又应用同样的技术到艺术论坛中。再比如,对于同一部电影,不同人可能感受不同,评分也不同。有人认为好看的电影,也许在别人眼里非常垃圾。所以电影、音乐等基于个人品味和爱好的商品推荐,再基于个人品味就不科学和准确了。
在这个领域的早期,研究主要集中在系统产生推荐结果的能力,主要是通过用户使用系统来进行评估。1996年,在关于协同过滤的首次系列研讨会上,一些非常简单的算法(如将加权重的k最近邻算法应用到用户对特定商品或文档打分的稀疏矩阵中)在不同研究小组和应用领域的应用效果不错的事实被首次正式提出。因此这个研讨会也正式开始使用“推荐系统”这个术语,并催生出“Communications of the ACM”在这个特定领域的出版物。
这时,推荐系统研究领域产生了不同方向的侧重点。大量的商业人士非常注重一系列实际问题,比如推荐系统的速度,推荐商品的范围,推荐给公司或者用户的内容价值的评定等。同时,很多机器学习的研究者开始使用各种技术来解决推荐问题,探索如何提高算法准确率,如何更好的利用文本或产品领域的知识,如何对系统和用户来说达到更加快速启动的目的。
一些推荐系统研究者发现,在这个领域缺失了两个重要资源:
1、缺少单一的集中点来为不同类型的推荐系统做指导;
2、缺少对评估推荐系统的一个宽泛的指导,从而鼓励具有不同专长的研究者来创造有可比性的结果。
我的理解是缺少对推荐系统性能评估的一个普适性的标准。有了这个普适性的标准后,各专业的研究者就可以参考这个标准来评估自己推荐算法的性能好坏了。
下面作者分析了这期发行物中的几篇文章:
Herlocker et al.`s 的文章是关于评价协同过滤系统的,主要是讨论如何更加有意义的评估新的算法和系统性能。这个想法主要来源于对最近几年发表的论文的观察,发现它们在一个分布非常广泛的数据集上的性能表现基本上是完全一样的(主要是对系统预测分数和用户实际打分的平均绝对误差的计算)。这不禁让我们开始思考继续这样的评估算法是否有意义。这篇文章通过两个方法解决了这些问题。首先,它实验性的评估了大量已经发表的度量指标(metrics),这些度量指标是研究者用来评估他们推荐算法的性能的。评估表明,不仅所有度量指标都衡量同一个事情,而且这些度量指标可以由于高相关性而被聚类。其次,它受用户任务驱动,评估哪种评价机制最能反映一个推荐系统对特定需求的适配程度。在这种情况下,准确率只能反映推荐系统的少部分有用性,其他的因素,比如推荐新颖性等则经常被忽略。
Middletion的文章主要描述了通过研究文章话题的本体论(ontology)的使用,来为推荐系统建立更多有效的用户兴趣属性资料。这篇文章值得注意的有三点:第一,它展示了本体的存在对推荐系统的有效性,并且这种混合技术可以推广到其他领域,推荐系统可以适当的参考用户兴趣属性资料来作出更好的推荐。第二,它展示了一个外部实体的存在可以帮助解决推荐系统中的冷启动问题。比如,只是单纯基于协同过滤算法的推荐系统对系统初期的使用者没有太多价值,对新用户没有任何价值,直到他们的属性资料比较完善。第三,这项工作包括了对推荐系统中本体属性资料的有效性的评估。
Hoffman`s的文章是关于基于系统过滤算法的概率性潜在语义分析和期望值最大化算法来构建一个紧凑的、社会偏好空间(a community preference space)的精确降维的算法(关于社会偏好空间的精确降维这个概念没弄明白,目前理解的只是一种降维方法).作者直觉上认为对于有选择权的用户来说,存在一组独立的潜在因素,这些用户的选择可以通过一个加权向量来描述。类似的,在这个空间里的商品也可以通过同样的因素来表达。这个模型可以用来进行高效的预测,并且可以更加深入的理解相关商品的簇。除了展示这些算法非常精确之外,Hoffman也指出这个模型不会随着用户和商品数量的增加而增加预测时间。这点我个人认为非常难得,往往系统的预测时间会随着数据量的增加而增大,这个模型的预测时间和数据量没有关联。但是,到底是如何一种计算方式,可以让推荐得分和数据集的规模无关呢?如果无关,那么公式中必然不存在用户和商品size这两个变量。
Huang et al. 的文章提出一种解决推荐系统中数据稀疏性问题的方法。通过利用一份中国在线书城的数据,他们探索了传播-激活(spreading-activation)算法是如何利用传递关联来提高推荐质量的。这个方法解决了纯协同过滤算法的一个问题:在传统的协同过滤算法中,如果两个用户都阅读了并且喜欢相似的书籍,但不是同一本,那么他们之间的关联就不存在。但是这个算法可以解决这个问题。这篇文章显示,通过利用传播-激活(spreading-activation)算法对推荐过程可以起到帮助,尤其是对新用户,当然对于一般用户而言同样适用。但是,较高密度的数据集会导致过度激活效应,也因此随着打分数据集密度的增加,传播激活的效应会减弱。因此,个人觉得这种方法只适用于存在数据稀疏性问题的数据集上。但是这个方法和周涛等人提出的热传导算法的本质区别是什么呢?我记得热传导算法仍然不能解决冷启动问题。但是这个算法显然可以解决冷启动问题,可以帮助对新用户的推荐。
Deshpande和Karypis的文章主要关注于基于商品的推荐来提供一个推荐列表而不是对大多数或者所有商品集合做推荐。这个任务尤其是在电子商务应用中非常普遍:推荐少量商品给一个个性化网页,或者在一个营销信息中,或者是在交易时间。这篇文章显示,基于联合购买或者联合打分计算商品间,或者是商品集合和商品间的相似性的算法是如何产生高效和高质量推荐结果的。
总体上这篇文章并没有详细说明各个算法,而是非常概括的描述了各个算法可以解决的问题。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-23 10:22
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社