关于我们
![]() ![]() |
使用Python和JAX构建推荐系统
实现和设计向用户提供建议的系统是当前 且最重要的机器学习应用之一.无论是希望客户在你的在线商店中找到拥有吸引力的商品、获取丰富且有趣的视频,还是获取他们需要了解的新闻,推荐系统(RecSys)都能提供解决方案.在这本实用指南中,本书作者阐述了核心概念,并提供示例,帮助你构建适用于任何行业或规模的推荐系统.你将学习构建成功推荐系统所需的数学知识、基本理念,以及具体的实现细节.本书涵盖推荐系统平台的核心组件、MLOps相关工具,以及PySpark、SparkSQL、FastAPI和Weights&Biases中的代码示例和实用建议.你将学习:·构建推荐系统所需的数据.·如何将你的数据和业务问题框定为推荐系统问题.·适用于你的系统的模型评估方法.选择、实现、训练、测试和部署模型的方法.·需要跟踪的关键指标,以确保系统按预期运行.·随着对用户、产品和业务的深入了解,如何不断改进你的系统.
编辑推荐实现和设计向用户提供建议的系统是当前最Z流行且最Z重要的机器学习应用之一。无论是希望客户在你的在线商店中找到最Z具吸引力的商品、获取丰富且有趣的视频,还是获取他们需要了解的新闻,推荐系统(RecSys)都能提供解决方案。在这本实用指南中,本书作者阐述了核心概念,并提供示例,帮助你构建适用于任何行业或规模的推荐系统。你将学习构建成功推荐系统所需的数学知识、基本理念,以及具体的实现细节。本书涵盖推荐系统平台的核心组件、MLOps相关工具,以及PySpark、SparkSQL、FastAPI和Weights&Biases中的代码示例和实用建议。专家推荐对于希望构建真实世界系统,而不仅仅是训练模型的从业者来说,这是一本必B读之作。Jacopo TagliabueBauplan联合创始人,RecList和evalRS共同创作者从现在起,这本书将成为我书架上该主题的标准参考书。 Will KurtAI工程师,《Bayesian Statistics the Fun Way》和《Get Programming with Haskell》作者 前言你是如何找到这本书的?是在网站上看到的广告吗?也许是朋友或导师推荐的,或是在社交媒体上看到的相关帖子。也有可能是在书店的书架上发现的,一家你通过地图应用找到的书店。无论你是如何找到它的,你几乎可以肯定是通过某种推荐系统来到这本书的。实现和设计为用户提供建议的系统是机器学习(ML)在任何业务中最流行和最重要的应用之一。无论你是希望帮助用户找到最符合他们品味的衣服,还是从网上商店中购买最吸引人的商品,或是提供丰富娱乐的视频,从他们的网络中呈现出最具吸引力的内容,或者是他们当天需要知道的新闻亮点,推荐系统都是实现这些目标的方式。现代推荐系统的设计与它们所服务的领域一样多样化。这些系统不仅包括实现和执行产品目标的计算机软件架构,还包括排序的算法组件。推荐排名的方法可以来自传统的统计学习算法、线性代数的启发、几何考虑,当然还有基于梯度的方法。正如算法方法的多样性一样,推荐的建模和评估考虑也同样多样化:个性化排名、搜索推荐、序列建模,以及这些方法的评分现在都是从事推荐系统工作的机器学习工程师需要了解的内容。如果你是一名机器学习从业者,你可能已经了解推荐系统,并且可能知道一两种最简单的建模方法,并能够专业地谈论相关的数据结构和模型架构。然而,RecSys 常常超出数据科学和机器学习的核心课程。许多拥有多年行业经验的高级数据科学家对实际构建推荐系统知之甚少,当谈及此话题时可能会感到不安。尽管RecSys 与其他机器学习问题有着相似的基础和技能,但其活跃的社区和快速发展的重点使得构建推荐系统容易被那些已经投入时间或愿意保持最新信息的其他数据科学家所忽略。这本书的存在正是为了突破这些感知的障碍。理解推荐系统在实际层面上的应用不仅对需要向用户提供内容的商业案例有用,RecSys 的基本理念通常还能弥合其他类型机器学习之间的巨大差距。例如,一个文章推荐系统可能会利用自然语言处理(NLP)来找到文章的表示,使用序列建模来促进更长时间的参与,并使用上下文组件来允许用户查询引导结果。如果你纯粹是出于学术兴趣进入这一领域,无论你对数学的哪个方面感兴趣,迟早都会在RecSys 中找到联系或应用!最后,如果与其他领域的联系、几乎所有数学的应用或明显的商业实用性还不足以让你对RecSys 感兴趣,那么令人惊叹的尖端技术可能会达到这个效果。RecSys 始终处于甚至超越了机器学习的前沿。拥有显著的收入影响的一个好处是,公司和从业者需要不断推动可能性的边界以及他们的实现方式。当你考虑到FAANG[ 即Meta(前Facebook)、Apple、Amazon、Netflix 和Google] 的五个字母中有四个的核心在于一个或多个推荐系统时,这并不奇怪。有人可能会争论说Apple 的核心也有推荐系统。尽管确实如此,App Store 是公司至关重要的战略产品,但我们保守地认为五个中的四个,认为推荐系统并不是Apple的主要收入来源。作为从业者,你需要了解如何:? 将你的数据和业务问题框架化为RecSys 问题。? 确定开始构建RecSys 所需的基本数据。? 确定适合你的RecSys 问题的模型以及如何评估它们。? 实现、训练、测试和部署上述模型。? 跟踪指标以确保系统按计划运行。? 随着你对用户、产品和业务案例的了解不断改进系统。本书展示了完成这些步骤所需的核心概念和示例,无论行业或规模如何。我们将引导你通过数学、思想和实现细节来构建推荐系统,无论这是你的第一个还是第五十个推荐系统。我们将向你展示如何使用Python 和JAX 构建这些系统。如果你还不熟悉,JAX 是Google 推出的一个Python 框架,旨在使自动微分和函数式编程范式成为一等对象。此外,它使用特别方便于来自各种背景的机器学习从业者的NumPy API 风格。我们将展示必要核心概念的代码示例和架构模型,并提供将这些系统扩展到生产应用的方法。排版约定本书采用以下排版约定。斜体(Italic)表示新术语、URL、电子邮件地址、文件名和文件扩展名。等宽字体(Constant width)表示程序清单,在段落内表示程序元素,例如变量、函数名称、数据库、数据类型、环境变量、语句和关键字。粗体等宽字体(Constant width bold)表示应由用户原封不动输入的命令或其他文本。斜体等宽字体(Constant width italic)表示应该替换成用户提供值的文本,或者由上下文决定的值。使用代码示例所包含的代码片段引用了将在中等规模且大多数情况下免费的资源上运行的笔记本。为了便于实验和探索,我们通过Google Colab 笔记本提供代码。补充材料(代码示例、练习等)可在GitHub 上的ESRecsys 下载(https://github.com/BBischof/ESRecsys/)。与本书相关的技术问题,或者在使用代码示例上有疑问,请发电子邮件到bookquestions@oreilly.com。本书是要帮你完成工作的。一般来说,如果本书提供了示例代码,你可以把它用在你的程序或文档中。除非你使用了很大一部分代码,否则无需联系我们获得许可。比如,用本书的几个代码片段写一个程序就无需获得许可,销售或分发OReilly 图书的示例集则需要获得许可;引用本书中的示例代码回答问题无需获得许可,将书中大量的代码放到你的产品文档中则需要获得许可。我们很希望但并不强制要求你在引用本书内容时加上引用说明。引用说明一般包括书名、作者、出版社和ISBN,例如:Building Recommendation Systems in Python and JAX by Bryan Bischof and Hector Yee. Copyright 2024 Bryan Bischof and Resonant Intelligence LLC, 978-1-492-09799-0 。如果你觉得自己对示例代码的使用超出了上述许可范围,请通过permissions@oreilly.com 与我们联系。OReilly 在线学习平台(OReilly Online Learning)近40 年来,OReilly Media 致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。公司独有的专家和改革创新者网络通过OReilly 书籍、文章以及在线学习平台,分享他们的专业知识和实践经验。OReilly 在线学习平台按照您的需要提供实时培训课程、深入学习渠道、交互式编程环境以及来自OReilly 和其他200 多家出版商的大量书籍与视频资料。更多信息,请访问网站:https://www.oreilly.com/。联系我们任何有关本书的意见或疑问,请按照以下地址联系出版社。美国:OReilly Media, Inc.1005 Gravenstein Highway NorthSebastopol, CA 95472中国:北京市西城区西直门南大街2 号成铭大厦C 座807 室(100035)奥莱利技术咨询(北京)有限公司我们为本书建立了一个网页,列出了勘误表、示例和任何附加信息。您可以访问https://oreil.ly/build_rec_sys_python_jax 查看该页面。欲了解本社图书和课程的新闻和信息,请访问我们的网站http://oreilly.com。我们的LinkedIn:https://linkedin.com/company/oreilly-media。我们的Twitter:https://twitter.com/oreillymedia。我们的YouTube:http://youtube.com/oreillymedia。致谢Hector 想感谢她的丈夫Donald 在本书写作期间给予的爱与支持,以及姐姐Serena 一直送来的零食。她还想把这本书献给已经去世的亲人。特别感谢Google 评审员Ed Chi、Courtney Hohne、Sally Goldman、Richa Nigam、Mingliang Jiang 和Anselm Levskaya。感谢Bryan Hughes 审阅Wikipedia 代码。Bryan 想感谢他在Stitch Fix 的同事们,在那里他学到了本书中的许多关键理念,特别是Ian Horn 对迁移学习的耐心指导,Dr. Molly Davies 对实验和效应估计的指导,Mark Weiss 对可用性和推荐之间关系的深度合作,Dr. Reza Sohrabi对Transformers 模型的介绍,Dr. Xi Chen 对推荐系统中图神经网络的鼓励,以及Dr. Leland McInnes 对降维和近似最近邻的细心建议。Bryan 从与Dr.Natalia Gardiol、Dr. Daniel Fleischman、Dr. Andrew Ho、Jason Liu、Dr. Dan Marthaler、Dr. Chris Moody、Oz Raza、Dr. Anna Schneider、Ujjwal Sarin、Agnieszka Szefer、Dr. Daniel Tasse、Diyang Tang、Zach Winston 等人的对话中受益匪浅。除了他在Stitch Fix 的出色同事,他特别想感谢Dr. Eric Bunch、Dr. Lee Goerl、Dr. Will Chernoff、Leo Rosenberg 和Janu Verma 多年来的合作。Dr.Brian Amadio 作为出色的同事,最初建议他写这本书。Dr. Even Oldridge 鼓励他尝试写作。Eugene Yan 和Karl Higley,尽管他从未见过他们,但受到了他们的巨大启发。他还想感谢Dr. Zhongzhu Lin 和Dr. Alexander Rosenberg,他们对他的职业生涯产生了深远的影响。Cianna Salvatora 协助了早期的文献回顾,Valentina Besprozvannykh 在阅读早期草稿和提供指导方面提供了极大的帮助。两位作者感谢Tobias Zwingmann、Ted Dunning、Vicki Boykis、Eric Schles、Shaked Zychlinski 和Will Kurt,他们花了大量时间对书稿进行细致的技术反馈,没有他们,这本书将难以理解。感谢Rebecca Novack 不断督促我们签约这个项目。感谢Jill Leonard 删除了书稿中近100 个错误使用的utilize一词,并在书籍文本方面提供了极大的耐心合作。 前言 1
我要评论
|