2.6 总结
本章介绍了在设计推荐系统中可能用到的主要的数据挖掘方法和技术。我们也总结了在文献中提到的用法,提供了如何以及在哪用到它们一些粗略指导。
我们从综述在预处理步骤可能用到的技术开始。首先,2.2.1节回顾了如何选择合适的距离衡量指标。在后面的步骤中大部分的方法需要它。余弦相似度和皮尔逊相关度是一般可接受最好的选择。尽管付出了许多的努力来提高这些距离指标,但是最近的工作似乎表明距离函数的选择不是这么重要。然后,在2.2.2节回顾了最基础的抽样,其应用是为了选择原始大数据集的子集,或者是划分训练和测试集。最后,我们讨论降维技术的使用,诸如,在2.2.3节中主成分分析(PCA)和奇异值分解(SVD)作为一种方法来解决维度灾难问题。我们解释了一些使用降维技术的成功案例,特别是在Netflix大奖的环境中。
在2.3节中,我们回顾了主要的分类方法:即近邻,决策树,基于规则分类,贝叶斯网络,人工神经网络,支持向量机。我们看到,尽管kNN(见2.3.1节)的CF是首选的方法,但是所有这些方法都可以应用在不同的环境中。决策树(见2.3.2节)可以被用来导出基于物品内容的模型或者是模拟系统的特殊部分。决策规则(见2.3.3节)可以从预先存在的决策树中推导出,或者是被用来引入商业或者是领域知识。贝叶斯网络(见2.3.4节)是基于内容的推荐中一个流行的方法,但它也可以用来生成一个基于模型的协同过滤系统。类似的方法,人工神经网络能够被用来导出基于模型的推荐,也可以用来结合/混合其他几种算法。最后,支持向量机(见2.3.6节)作为一种方法来推断出基于内容的分类或者是导出CF模型而流行。
对于推荐系统来说,选择合适的分类器不容易,尤其是一些感知判断任务和数据依赖的情况下。在CF的案例中,一些结果似乎表明基于模型方法,使用如SVM或者是贝叶斯网络,能够稍微提高标准kNN分类的性能。但是,这些结果不显著并且很难推广。在基于内容的推荐系统的例子中有些证据表明,在一些例子中贝叶斯网络执行效果比简单方法要好,如决策树。但是,更加复杂的非线性分类,如ANN或SVM,执行效果是否更好还不是很清楚。
因此,给特定的推荐任务选择合适分类器在今天仍有许多探索的地方。实际的经验规则是从最简单的方法做起,并且只有在性能的提升值得时才采用复杂方法。性能增益应该平衡不同的维度,如预测精确度或计算效率。
我们在2.4节中回顾了聚类算法。聚类在推荐系统中一般被用来提高性能。不管是在用户空间还是物品空间,较早进行聚类步骤都能减少随后要做的计算距离的操作数量。但是,这一般以较低的精确度为代价,所以处理时要慎重。事实上,通过使用降维技术(如SVD)提高效率在一般的例子中是好的选择。与分类相反,没有那么多的聚类算法在推荐系统的环境中使用。k-means(见2.4.1节)算法由于简单和相对有效,很难找到实用的替代者。我们在2.4.2节中综述了它们中一些算法,如分层聚类或消息传递算法。尽管这些技术还没有应用在推荐系统中,但为将来的研究提供了有希望的出路。
最后,在2.5节中,我们描述了关联规则并总结了它们在推荐系统的使用。关联规则为推荐物品提供了直观的框架,只要有一个显式或隐式的事务。尽管存在有效的算法来计算关联规则,而且已经被证明比标准kNN的CF准确率好,但是他们仍不是受青睐的方法。
在设计推荐系统中选择正确的数据挖掘技术是一个复杂的任务,其一定受许多特殊问题约束。但是,我们希望本章中技术和经验的简短综述能够帮助读者做出更加合理的决定。除此之外,我们也发现了有待进一步提高的领域和令人兴奋的研究点,以及接下来有待研究的相关研究点。