《推荐系统:技术、评估及高效算法》一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的生产环境中。本章描述了需求和考虑因素,包括规模和准确度,而这些正是选择推荐算法的主导因素。除此之外,本章还描述了系统中用到的离线和在线评测方法,并且说明了系统应该如何进行相应的调整。

相关文章
|
3天前
|
存储 监控 算法
员工上网行为监控中的Go语言算法:布隆过滤器的应用
在信息化高速发展的时代,企业上网行为监管至关重要。布隆过滤器作为一种高效、节省空间的概率性数据结构,适用于大规模URL查询与匹配,是实现精准上网行为管理的理想选择。本文探讨了布隆过滤器的原理及其优缺点,并展示了如何使用Go语言实现该算法,以提升企业网络管理效率和安全性。尽管存在误报等局限性,但合理配置下,布隆过滤器为企业提供了经济有效的解决方案。
32 8
员工上网行为监控中的Go语言算法:布隆过滤器的应用
|
2月前
|
存储 算法 Java
解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用
在Java中,Set接口以其独特的“无重复”特性脱颖而出。本文通过解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用。
59 3
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的优化算法及其应用
【10月更文挑战第8天】 本文将探讨深度学习中常用的优化算法,包括梯度下降法、Adam和RMSProp等,介绍这些算法的基本原理与应用场景。通过实例分析,帮助读者更好地理解和应用这些优化算法,提高深度学习模型的训练效率与性能。
218 63
|
3天前
|
存储 缓存 算法
探索企业文件管理软件:Python中的哈希表算法应用
企业文件管理软件依赖哈希表实现高效的数据管理和安全保障。哈希表通过键值映射,提供平均O(1)时间复杂度的快速访问,适用于海量文件处理。在Python中,字典类型基于哈希表实现,可用于管理文件元数据、缓存机制、版本控制及快速搜索等功能,极大提升工作效率和数据安全性。
30 0
|
29天前
|
机器学习/深度学习 人工智能 算法
探索人工智能中的强化学习:原理、算法与应用
探索人工智能中的强化学习:原理、算法与应用
|
28天前
|
机器学习/深度学习 算法 数据挖掘
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
45 1
|
28天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
62 1
|
1月前
|
机器学习/深度学习 搜索推荐 算法
在数字化时代,推荐系统成为互联网应用的重要组成部分,通过机器学习技术根据用户兴趣和行为提供个性化推荐,提升用户体验
在数字化时代,推荐系统成为互联网应用的重要组成部分,通过机器学习技术根据用户兴趣和行为提供个性化推荐,提升用户体验。本文探讨了推荐系统的基本原理、常用算法、实现步骤及Python应用,介绍了如何克服数据稀疏性、冷启动等问题,强调了合理选择算法和持续优化的重要性。
71 4
|
1月前
|
缓存 算法 网络协议
OSPF的路由计算算法:原理与应用
OSPF的路由计算算法:原理与应用
50 4
|
1月前
|
机器学习/深度学习 监控 算法
基于反光衣和检测算法的应用探索
本文探讨了利用机器学习和计算机视觉技术进行反光衣检测的方法,涵盖图像预处理、目标检测与分类、特征提取等关键技术。通过YOLOv5等模型的训练与优化,展示了实现高效反光衣识别的完整流程,旨在提升智能检测系统的性能,应用于交通安全、工地监控等领域。

热门文章

最新文章