《推荐系统:技术、评估及高效算法》一1.5 应用与评价

简介:

本节书摘来自华章出版社《推荐系统:技术、评估及高效算法》一书中的第1章,第1.5节,作者 [ 美]弗朗西斯科·里奇(Francesco Ricci)利奥·罗卡奇(Lior Rokach)布拉哈·夏皮拉(Bracha Shapira)保罗 B.坎特(Paul B.Kantor),更多章节内容可以访问云栖社区“华章计算机”公众号查看

1.5 应用与评价

推荐系统的研究着重放在实践和商业应用上。因为除了理论方面的贡献,这方面的研究一般旨在切实促进商业推荐系统的发展。因此,推荐系统的研究包括实现这些系统的实践方面。这些方面与推荐系统生命周期的不同阶段都相关,即系统设计、实现以及系统运行过程中的维护和改善。

系统设计阶段所需考虑的影响因素或许会影响算法的选择。第一个要考虑的因素——应用的领域是算法选择的主要影响因素。[72]提供了推荐系统的分类,并且对特定应用领域的推荐系统应用做了分类。基于这些特定的应用领域,我们为最普遍的推荐系统应用做了更一般的领域分类:

娱乐:电影、音乐和IPTV的推荐。

内容:个性化新闻报纸、文件推荐、网页推荐、电子学习程序和电子邮件过滤。

电子商务:为消费者推荐要购买的产品,如书籍、照相机、电脑等。

服务:旅游服务推荐、专家咨询推荐、租房推荐或者中介服务。

随着推荐系统的流行,一些新应用上的潜在优势激发了人们的兴趣。例如,可以像在www.tweeter.com网站那样推荐一个朋友列表或者一个推特信息列表。因此,诸如上面的列表并不能覆盖推荐技术所涉及的所有应用领域,这些列表只是给出了不同类型的应用领域的初始描述。

特定应用领域的推荐系统开发商应该了解该领域的特殊方面、具体的要求、应用程序面临的挑战和局限性。只有在分析这些因素之后,才能选择最佳推荐算法,并且设计更高效的人机交互。

本书第11章提供了推荐技术与应用领域相匹配的指南。Burke和Ramezani写的章节中为推荐系统提供了一个新的分类。与以往推荐系统分类方法(如[25,94,3,7])不同,Burke和Ramezani采用以人工智能为核心的方法,而且重点关注不同推荐方法所需要的知识源,并把与这些推荐方法相关联的约束条件作为选择算法的入门指南。该章讨论了针对不同问题选择的不同推荐技术的适用性,并提出了选择这些技术的决策准则。

该章的目的很明确,就是为系统实现者“推荐”合适的推荐技术。作者描述了不同领域的推荐系统中可用的知识库以及确定一种推荐技术时所不可获取的知识库。这就意味着设计推荐系统首先要注重的是分析知识库的来源,然后再据此选择算法。

第12章记述了另一个需要根据领域来调整推荐方法的示例,这个示例关于推荐系统的技术增强型学习(TEL)。TEL基本覆盖了支持各种形式的教学活动的技术,其目的是设计、发展和测试新方法与技术来增强个人和组织双方的学习实践能力。TEL的主要收益来源于将推荐系统技术整合到个性化学习过程中,并根据用户先前的知识、能力和偏好逐步调整。该章阐述了能满足TEL的特定需求的推荐系统;TEL设置阶段用户需要做的任务;其他推荐系统的用户任务和这些任务有什么区别。例如,对TEL来说,用户的特殊任务是“发现新资源”,也就是尝试仅仅推荐新的或者新奇的物品。或者,我们考虑另一个例子,即“发现新路径”,也就是通过学习知识库推荐可选的路径。该章提出的过滤方法的分析对TEL很有用,有关现有TEL系统的调查显示,推荐技术已经被部署到系统中。

第10章讨论了推荐系统发展的实践方面,目的在于为推荐的设计、实现和个性化系统的评测提供指导。设计推荐系统的时候,除了考虑预测算法,也要考虑其他因素。第10章列了许多因素:目标用户的种类和他们的上下文、需要用的设备、推荐系统在程序中的作用、推荐的目标,还有之前提到的可用的数据。

作者建议为此环境搭建一个三维模型,三个维度分别是:系统用户、数据特征和程序的综合应用。推荐系统的设计要基于这个模型。作者阐述了其指导方案以及建立在他们自己开发的一个新闻推荐系统上的模型。

有关推荐系统实际部署方面的另一个重要的问题就是对推荐系统的测评。出于各种各样的目的,推荐系统生命周期的不同阶段都要进行测评[25,1]。在设计时,需要用测评去判定推荐算法的选择。在设计阶段,测评过程是离线完成的,并且推荐算法需要拿来和用户交互作比较。离线测评包括在同一个用户互动(如评分)数据集上运行多个算法并且比较各自的性能。如果能够获得合适的数据,这种测评通常都是在一些公开的基准数据上进行的,否则,就要在自己收集的数据集上进行。为了确保结果的可靠性,离线实验的设计需要与已知的实验设计方法保持一致[11]。

系统上线运行以后依然需要评测。当解决一些核心推荐问题(如预测用户评分)时,算法可能需要非常精确,但是有些情况下系统可能不会被用户接受,例如,当系统的表现和用户期望的不一致时。实施在线评测并且分析系统日志以增强系统性能就显得很有必要了。另外,大多数算法都包含参数,如阈值权重、近邻的数量等,都需要不断地调整和校准。

另一种测评方法是当在线测评不可行或太冒险的时候,可以进行一个集中的用户研究(a focused user study)。在这类测评中,需要实施一种可控制的实验,即一小群用户被要求执行随着系统变化的不同的任务。然后才有可能分析用户喜好以及分发调查问卷以便用户报告各自的用户体验。在这样的实验中,我们一般能够收集到关于系统的数量大、质量高的用户反馈信息。
第12章也讲了TEL系统环境下的测评方法,对测评方法和工具进行了详细的分析。这些方法和工具可以用来在一组特定的标准下评估TEL推荐技术,这组标准是与每个选择的部分(如用户模型、领域模型、推荐策略和算法)相对应的。

第8章详细阐述了用于评估推荐系统的三种实验,并阐述了它们各自的优缺点,最后为测评选择方法制定了指导原则。通常文献中有关评估的讨论都会提到算法预测的精准度及相关度量方法,本章则独树一帜,专门讨论定向特性的评估。除了精准度,还给出了一大组特性。每个特性都有相应的实验验证和度量方法。这些特性包括覆盖率、冷启动、信心值、可信度、新颖性、风险度和惊喜度。

当讨论推荐系统的实践方面时,我们最好分析真实实现的系统。我们的想法是在理论上验证直观的假设,目的是确定它们在实践中是否成立。但是我们必须要面对的事实是,商业推荐系统的所有者通常不愿意公开他们真实的做法并且甚至连这样合作的机会几乎也没有。

第9章介绍了一个这样的时机并阐述了一个真实推荐系统的操作,由此说明
了适用于推荐系统实践阶段和评估过程的实践层面。Fastweb是欧洲最大的IPTV服务商,本章着重介绍了如何把推荐系统整合到Fastweb的生产环境中。本章描述了需求和考虑因素,包括规模和准确度,而这些正是选择推荐算法的主导因素。除此之外,本章还描述了系统中用到的离线和在线评测方法,并且说明了系统应该如何进行相应的调整。

相关文章
|
21天前
|
机器学习/深度学习 存储 算法
sklearn应用线性回归算法
sklearn应用线性回归算法
24 0
|
1月前
|
存储 算法 测试技术
ArrayList集合的两个实例应用,有趣的洗牌算法与杨辉三角
ArrayList集合的两个实例应用,有趣的洗牌算法与杨辉三角
23 1
|
1月前
|
算法 前端开发 数据可视化
数据结构与算法在前端开发中的实际应用
本文将探讨数据结构与算法在前端开发中的实际应用,重点介绍在处理大规模数据、优化性能和提升用户体验方面的具体场景和解决方案。
|
1月前
|
机器学习/深度学习 算法 数据库
KNN和SVM实现对LFW人像图像数据集的分类应用
KNN和SVM实现对LFW人像图像数据集的分类应用
33 0
|
8天前
|
机器学习/深度学习 自然语言处理 算法
|
3月前
|
搜索推荐 算法 前端开发
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
97 4
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
|
3天前
|
数据采集 算法 数据可视化
R语言聚类算法的应用实例
R语言聚类算法的应用实例
80 18
R语言聚类算法的应用实例
|
3天前
|
算法 数据可视化 数据挖掘
R语言社区主题检测算法应用案例
R语言社区主题检测算法应用案例
|
1月前
|
存储 算法 安全
数据安全之道:加密算法在现代网络通信中的应用
本文将深入探讨加密算法在现代网络通信中的重要性和应用。通过介绍对称加密、非对称加密和哈希算法等加密技术,帮助读者了解数据安全保障的关键技术,并探讨其在保护数据完整性和隐私方面的作用。
|
2月前
|
存储 前端开发 算法
加密算法在网络通信中的应用及优势分析
本文将探讨加密算法在网络通信中的重要性,以及不同加密算法的应用和优势。通过对前端、后端、Java、Python、C、PHP、Go等多种技术的分析,我们将了解在日益增长的网络威胁下,加密算法对于确保数据安全和隐私保护的必要性。