随着数字内容的激增和互联网用户的不断增加,信息过载的问题日益凸显,这使得人们在互联网上及时、恰当地获取感兴趣的信息或项目变得困难。为了应对这一挑战,信息检索数字平台尝试通过开发“智能系统”来部分解决问题,这些系统能够将可用内容映射到用户的选择和偏好上。这些“智能系统”就是推荐系统,也是本文讨论的主题。
推荐系统可以被定义为一种工具,它帮助用户搜索与他或其他用户的偏好和选择相关的知识历史。因此,它们作为一种手段来协助和增强使用他人推荐来做出选择的社会过程,当没有第一手知识或对可能的替代品的经验时。这些系统因此作为信息过滤途径,帮助解决信息过载问题,通过过滤大量信息网络中的重要信息,以满足其他数字用户的兴趣和偏好。由于它们具有预测特定产品或服务是否符合用户偏好的固有能力——基于用户档案——推荐系统对用户和服务提供商都有益。从服务提供商的角度来看,它们通过让用户找到他们想要的产品来帮助提高转化率。它们还通过建议客户愿望清单上的其他产品来帮助公司增加销售额。这有助于提高客户忠诚度,并有助于在客户和公司之间建立增值关系。
基于内容的过滤
基于内容的方法背后的算法是领域依赖的,为了进行预测,它更强调对项目属性的分析。这种方法的推荐是基于为每个用户创建的档案。从用户过去使用过的物品内容中提取特征。推荐与用户积极评价的物品最相关的项目。基于内容的过滤(CBF)主要可以使用向量空间模型(如词频或逆文档频率)或概率模型(如朴素贝叶斯分类器、决策树)或神经网络来学习整个信息语料库中不同内容之间的潜在相似性。
// 示例代码:基于内容的过滤算法框架
在CBF中,其他用户的档案是多余的,因为它们不影响推荐。CBF可以轻松处理任何用户的偏好档案,并在短时间内相应地调整其推荐。它们甚至可以在数据库不包含用户偏好的情况下推荐新项目。因此,共享用户档案的需求被消除,这确保了隐私。然而,CBF也存在各种缺点。首先,该方法需要丰富的元数据和详细的项目和用户档案描述来做出合适的推荐。这限制了有效性,用户通常被限制在从他们的档案中获得类似的推荐。这限制了选择的多样性。
协同过滤(CF)不依赖于领域知识。它对于不能快速且完全由元数据描述的内容(如电影和音乐)是有益的。CF相对于CBF的主要优势是领域独立性,它可以解决通常被掩盖且难以使用CBF进行档案化的数据方面。CF的工作原理是创建一个用户-项目数据矩阵,记录每个用户对每个项目的偏好。然后通过计算它们档案之间的相似性来匹配具有相关兴趣和偏好的用户,以进行推荐。这样的用户构建了一个称为邻域的集合。用户可以获得尚未被他们积极评价但已被他们的邻域积极评价的推荐。CF的两个主要领域是模型基础技术和基于记忆的技术。
// 示例代码:基于协同过滤的用户-项目矩阵
基于记忆的技术
在这种技术中,算法试图找到与用户过去积极评价过相同项目的共享欣赏的用户。一旦定义了邻居,就可以使用不同的算法来组合邻居的偏好以生成推荐。这种方法可以通过两种方式实现:基于用户和基于项目的技术的。
// 示例代码:基于记忆的技术算法框架
基于用户的CF
首先计算用户之间的相似性,基于对同一项目的比较评分,然后为用户产生预测推荐,作为与活动用户相似的用户对项目评分的加权平均值。这里的权重由用户与目标项目的相似性决定。
// 示例代码:基于用户的协同过滤算法
基于项目的CF
基于项目之间的相似性计算推荐,通过构建项目相似性模型。从用户-项目矩阵中检索所有用户评分的项目相似性。然后确定检索到的项目与目标项目的相似性,然后推荐k个最佳项目。
// 示例代码:基于项目的协同过滤算法
模型基础技术
这种技术使用基于机器学习或数据挖掘的模型来学习以前的评分并提高CF技术的性能。模型是预先计算的,所以它们可以快速推荐一组项目。它们利用用户-项目矩阵数据的固有关系,并利用这些关系来计算顶级N推荐列表。像奇异值分解(SVD)、潜在语义方法、朴素贝叶斯分类器、回归、聚类、决策树和人工神经网络(ANN)这样的技术在这种方法中找到了应用。
// 示例代码:模型基础技术的协同过滤算法
尽管CF在CBF算法上拥有显著优势,但由于它们无法解决系统新产品和用户的问题,它们遭受了“冷启动问题”。
推荐算法的质量使用不同的测量方法进行评估,涵盖准确性和覆盖范围。使用的矩阵取决于用于过滤技术的算法。平均绝对误差(MAE)和均方根误差(RMSE)是最常见的准确性指标。其他常用的准确性矩阵包括接收者操作特征(ROC)、精确度、召回率和F分数。选择适合所用算法的合适错误矩阵需要用户斟酌。
本文提供了推荐系统的生动理论概念。从推荐系统的概念开始,讨论了这些系统在当代世界的使用,从而描绘了这些系统的有用性和必要性。然后从构建它们的算法的理论角度讨论了推荐系统,以及每种方法的优缺点。最后简要讨论了用于验证模型的评估矩阵。
希望阅读本文到目前为止,一定激发了尝试开发这样的推荐系统的热情。以下是可以尝试构建的内容。
电影推荐系统:
可用数据集 – Movielens 25M数据集,Netflix Prize数据集