《构建实时机器学习系统》一1.7 案例:Netflix在机器学习竞赛中学到的经验

简介: 本节书摘来自华章出版社《构建实时机器学习系统》一 书中的第1章,第1.7节,作者:彭河森 汪涵,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.7 案例:Netflix在机器学习竞赛中学到的经验

美国领先的付费视频公司 Netflix 在机器学习、系统推荐方面都做出了卓越的贡献, 早在 2007 年,Netflix 就率先提出了百万美元大奖,奖励在 Netflix Prize 竞赛中优胜的队伍。Netflix Prize通过为期三年的竞赛,积累了机器学习宝贵的第一手资料,成为了机器学习中的经典案例,这里我们介绍以下两个方面。

1.7.1 Netflix 用户信息被逆向工程

Netflix Prize进行影片推荐预测时,使用的数据包括用户名、影片名、评价日期、评价等级等信息,为了防止泄露用户个人的隐私信息,Netflix对用户名进行了加密处理。
尽管如此,德州大学的研究人员仍然通过逆向工程成功得到了一些用户的个人信息。他们是怎么做到的呢?原来 Netflix 用户在评价一个影片的时候,往往还会去互联网影片库 IMDB 上转载自己的评论。德州大学的研究人员将 Netflix 数据集中的评论和IMDB 中的评论按照评论日期进行配对,很快就发现了具有上面行为的若干用户,其中不乏具有隐秘性取向的用户。这一研究结果一经发出之后,这些用户的生命安全直接受到了威胁,这也直接导致了 Netflix 在 2010 年遭到了以上用户的起诉,并且取消了 2010 年以后的所有竞赛。
通过这一案例,我们意识到了在设计机器学习应用的时候一定要把用户隐私保护放在第一位。一些社会边缘个体特别容易因为自己的行为特征与大众不同而被模型泄露。

1.7.2 Netflix 最终胜出者模型无法在生产环境中使用 

2009 年 Netflix 最终胜出的队伍为BellKor,该队伍是由四个队伍混合而成的。为什么要混合队伍呢?笔者曾有幸亲自向BellKor 成员之一的 Michael Jahrer 请教。故事是这样的,在比赛进行到了白热化阶段之后,来自雅虎、贝尔实验室、Commendo Research and Consulting 和 Pragmatic Theory 这四个队伍得到的结果都不相上下,这个时候,往往要在进行大量的参数调校后,模型才会有很少一点的提升。
2009 年的时候,机器学习领域已经出现了 Emsemble 的概念。Emsemble 的意思是通过混搭来源不同的模型的结果,取长补短,以得到更为强大的模型。很自然的,上面这四支队伍先后决定合并成为一个大集体,最后取得了 Netflix 比赛的最终胜利。
比赛确实是结束了,运用 Emsemble 过程带来的负面影响是,最终模型是由上百个小模型组成的,每个小模型都可能是由不同的语言来写成的,需要自己特殊的预处理程序,而且还需要独立的模型训练架构。虽然按照约定,Netflix 享有最终模型的使用权,但是实际上由于训练和运用模型的复杂性,Netflix 至今也没有将上述模型运用到实际应用中去。
通过这一案例,我们可以学到,先进、前沿的机器学习模型固然很重要,得在运用的时候仍然要考虑到训练、运用的复杂性。一切从实际出发,也是本书全文的贯穿思想。

相关文章
|
23天前
|
机器学习/深度学习 传感器 运维
使用机器学习技术进行时间序列缺失数据填充:基础方法与入门案例
本文探讨了时间序列分析中数据缺失的问题,并通过实际案例展示了如何利用机器学习技术进行缺失值补充。文章构建了一个模拟的能源生产数据集,采用线性回归和决策树回归两种方法进行缺失值补充,并从统计特征、自相关性、趋势和季节性等多个维度进行了详细评估。结果显示,决策树方法在处理复杂非线性模式和保持数据局部特征方面表现更佳,而线性回归方法则适用于简单的线性趋势数据。文章最后总结了两种方法的优劣,并给出了实际应用建议。
58 7
使用机器学习技术进行时间序列缺失数据填充:基础方法与入门案例
|
2月前
|
机器学习/深度学习 数据采集 数据处理
Scikit-learn Pipeline完全指南:高效构建机器学习工作流
Scikit-learn管道是构建高效、鲁棒、可复用的机器学习工作流程的利器。通过掌握管道的使用,我们可以轻松地完成从数据预处理到模型训练、评估和部署的全流程,极大地提高工作效率。
42 2
Scikit-learn Pipeline完全指南:高效构建机器学习工作流
|
1月前
|
机器学习/深度学习 人工智能 算法
人工智能浪潮下的编程实践:构建你的第一个机器学习模型
在人工智能的巨浪中,每个人都有机会成为弄潮儿。本文将带你一探究竟,从零基础开始,用最易懂的语言和步骤,教你如何构建属于自己的第一个机器学习模型。不需要复杂的数学公式,也不必担心编程难题,只需跟随我们的步伐,一起探索这个充满魔力的AI世界。
50 12
|
2天前
|
人工智能 运维 API
PAI企业级能力升级:应用系统构建、高效资源管理、AI治理
PAI平台针对企业用户在AI应用中的复杂需求,提供了全面的企业级能力。涵盖权限管理、资源分配、任务调度与资产管理等模块,确保高效利用AI资源。通过API和SDK支持定制化开发,满足不同企业的特殊需求。典型案例中,某顶尖高校基于PAI构建了融合AI与HPC的科研计算平台,实现了作业、运营及运维三大中心的高效管理,成功服务于校内外多个场景。
|
1月前
|
机器学习/深度学习 存储 运维
分布式机器学习系统:设计原理、优化策略与实践经验
本文详细探讨了分布式机器学习系统的发展现状与挑战,重点分析了数据并行、模型并行等核心训练范式,以及参数服务器、优化器等关键组件的设计与实现。文章还深入讨论了混合精度训练、梯度累积、ZeRO优化器等高级特性,旨在提供一套全面的技术解决方案,以应对超大规模模型训练中的计算、存储及通信挑战。
70 4
|
2月前
|
机器学习/深度学习 数据采集
机器学习入门——使用Scikit-Learn构建分类器
机器学习入门——使用Scikit-Learn构建分类器
|
2月前
|
机器学习/深度学习 数据采集 算法
从零到一:构建高效机器学习模型的旅程####
在探索技术深度与广度的征途中,我深刻体会到技术创新既在于理论的飞跃,更在于实践的积累。本文将通过一个具体案例,分享我在构建高效机器学习模型过程中的实战经验,包括数据预处理、特征工程、模型选择与优化等关键环节,旨在为读者提供一个从零开始构建并优化机器学习模型的实用指南。 ####
|
2月前
|
机器学习/深度学习 算法 数据挖掘
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
52 1
|
2月前
|
机器学习/深度学习 自然语言处理 Linux
Linux 中的机器学习:Whisper——自动语音识别系统
本文介绍了先进的自动语音识别系统 Whisper 在 Linux 环境中的应用。Whisper 基于深度学习和神经网络技术,支持多语言识别,具有高准确性和实时处理能力。文章详细讲解了在 Linux 中安装、配置和使用 Whisper 的步骤,以及其在语音助手、语音识别软件等领域的应用场景。
68 5
|
2月前
|
机器学习/深度学习 数据采集 搜索推荐
利用Python和机器学习构建电影推荐系统
利用Python和机器学习构建电影推荐系统
123 1