编辑推荐
相关领域专家的研究经验和实战经验
总结当今互联网领域中和推荐有关的产品和服务
Web 2.0时代的必读著作
以实战为基础,理论和实践并重,适合不同层次的读者。
《数学之美》作者吴军等强力推荐
内容简介
随着信息技术和互联网的发展,人们逐渐从信息匮乏的时代走入了信息过载(information overload)的时代 。在这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战:对于信息消费者,从大量信息中找到自己感兴趣的信息是一件非常困难的事情;对于信息生产者,让自己生产的信息脱颖而出,受到广大用户的关注,也是一件非常困难的事情。推荐系统就是解决这一矛盾的重要工具。推荐系统的任务就是联系用户和信息,一方面帮助用户发现对自己有价值的信息,另一方面让信息能够展现在对它感兴趣的用户面前,从而实现信息消费者和信息生产者的双赢。
作者简介
项亮,毕业于中国科学技术大学和中国科学院自动化所,研究方向为机器学习和推荐系统,现任职于北京Hulu软件技术开发有限公司,从事视频推荐的研究和开发。2009年参加Netflix Prize推荐系统比赛获得团体第二名,且于当年参与创建了Resys China推荐系统社区。
内页插图
精彩书评
“工程师大都喜欢‘In Action’型的书籍,但这并非‘又一本’工具型的‘In Action’读物,透过它你将涉足现代互联网公司孜孜以求的用户核心价值所在——个性化服务。也许一次全新的旅程就从这里开始。”
——阿稳,豆瓣算法工程师
“作者结合了多年的推荐系统理论研究和在Hulu的具体实践经验,汲取精华并以深入浅出的方式展示给读者。无论是对于刚入门的新手还是推荐领域的老兵,这本书都是不可多得的参考,在此我诚挚地向大家推荐它。”
——郑华, Hulu软件开发主管
“2009年8月,我和项亮一起发起了 Resys China——一个面向推荐系统领域的专业社区。在组织 Resys China 业内分享活动的过程中,我们迫切感受到,出版《推荐系统实践》这样一本传授实战经验的书籍,对推动这个领域的发展是多么必要。项亮作为国内推荐系统领域一位理论与实践并重的专家,把具实用价值的推荐技术进行了系统整理,深入浅出地呈现到读者面前。作为一本主要面向业内人员的技术书籍,这点尤其难能可贵。个性化推荐技术是具人文关怀的技术之一,它尊重个体,相信每个人都是与众不同的,在这个以‘人’为中心的社会化时代,它的兴起与发扬光大只是时间问题。我与项亮相识,是因为对推荐技术的热爱,希望借助此书,可以让更多的人成为朋友。”
——谷文栋,个性化推荐社区Resys China发起人
“从大家经常使用的相关搜索、话题推荐、电子商务的各种产品推荐,到社交网络上的交友推荐等,推荐系统在今天互联网的产品和应用中被广泛采用。但是,至今还没有一本书系统地从理论上对此进行分析和论述。《推荐系统实践》恰恰弥补了这个空白。”
——吴军,腾讯副总裁,《数学之美》和《浪潮之巅》作者
目录
第1章 好的推荐系统
1.1 什么是推荐系统
1.2 个性化推荐系统的应用
1.2.1 电子商务
1.2.2 电影和视频网站
1.2.3 个性化音乐网络电台
1.2.4 社交网络
1.2.5 个性化阅读
1.2.6 基于位置的服务
1.2.7 个性化邮件
1.2.8 个性化广告
1.3 推荐系统评测
1.3.1 推荐系统实验方法
1.3.2 评测指标
1.3.3 评测维度
第2章 利用用户行为数据
2.1 用户行为数据简介
2.2 用户行为分析
2.2.1 用户活跃度和物品流行度的分布
2.2.2 用户活跃度和物品流行度的关系
2.3 实验设计和算法评测
2.3.1 数据集
2.3.2 实验设计
2.3.3 评测指标
2.4 基于邻域的算法
2.4.1 基于用户的协同过滤算法
2.4.2 基于物品的协同过滤算法
2.4.3 UserCF和ItemCF的综合比较
2.5 隐语义模型
2.5.1 基础算法
2.5.2 基于LFM的实际系统的例子
2.5.3 LFM和基于邻域的方法的比较
2.6 基于图的模型
2.6.1 用户行为数据的二分图表示
2.6.2 基于图的推荐算法
第3章 推荐系统冷启动问题
3.1 冷启动问题简介
3.2 利用用户注册信息
3.3 选择合适的物品启动用户的兴趣
3.4 利用物品的内容信息
3.5 发挥专家的作用
第4章 利用用户标签数据
4.1 UGC标签系统的代表应用
4.1.1 Delicious
4.1.2 CiteULike
4.1.3 Last.fm
4.1.4 豆瓣
4.1.5 Hulu
4.2 标签系统中的推荐问题
4.2.1 用户为什么进行标注
4.2.2 用户如何打标签
4.2.3 用户打什么样的标签
4.3 基于标签的推荐系统
4.3.1 实验设置
4.3.2 一个最简单的算法
4.3.3 算法的改进
4.3.4 基于图的推荐算法
4.3.5 基于标签的推荐解释
4.4 给用户推荐标签
4.4.1 为什么要给用户推荐标签
4.4.2 如何给用户推荐标签
4.4.3 实验设置
4.4.4 基于图的标签推荐算法
4.5 扩展阅读
第5章 利用上下文信息
5.1 时间上下文信息
5.1.1 时间效应简介
5.1.2 时间效应举例
5.1.3 系统时间特性的分析
5.1.4 推荐系统的实时性
5.1.5 推荐算法的时间多样性
5.1.6 时间上下文推荐算法
5.1.7 时间段图模型
5.1.8 离线实验
5.2 地点上下文信息
5.3 扩展阅读
第6章 利用社交网络数据
6.1 获取社交网络数据的途径
6.1.1 电子邮件
6.1.2 用户注册信息
6.1.3 用户的位置数据
6.1.4 论坛和讨论组
6.1.5 即时聊天工具
6.1.6 社交网站
6.2 社交网络数据简介
6.3 基于社交网络的推荐
6.3.1 基于邻域的社会化推荐算法
6.3.2 基于图的社会化推荐算法
6.3.3 实际系统中的社会化推荐算法
6.3.4 社会化推荐系统和协同过滤推荐系统
6.3.5 信息流推荐
6.4 给用户推荐好友
6.4.1 基于内容的匹配
6.4.2 基于共同兴趣的好友推荐
6.4.3 基于社交网络图的好友推荐
6.4.4 基于用户调查的好友推荐算法对比
6.5 扩展阅读
第7章 推荐系统实例
7.1 外围架构
7.2 推荐系统架构
7.3 推荐引擎的架构
7.3.1 生成用户特征向量
7.3.2 特征?物品相关推荐
7.3.3 过滤模块
7.3.4 排名模块
7.4 扩展阅读
第8章 评分预测问题
8.1 离线实验方法
8.2 评分预测算法
8.2.1 平均值
8.2.2 基于邻域的方法
8.2.3 隐语义模型与矩阵分解模型
8.2.4 加入时间信息
8.2.5 模型融合
8.2.6 Netflix Prize的相关实验结果
后记
前言/序言
说起本书,还要追溯到2010年3月份的ResysChina推荐系统大会。在那次会议上,我遇到了刘江老师。刘老师看过我之前写的一些推荐系统方面的博客,希望我能总结总结,写本简单的书。当时国内还没有推荐系统方面的书,而国外已经有这方面的专业书了,因此图灵公司很想出版一本介绍推荐系统的书。所以,去年7月博士毕业时,我感觉有时间可以总结一下这方面的工作了,于是准备开始写这本书。
写这本书的目的有下面几个。首先,从个人角度讲,虽然写博士论文时已经总结了读博期间在推荐系统方面的工作,但并没有全部涉及整个推荐系统的各个方面,因此我很希望通过写作这本书全面地阅读一下相关的文献,并在此基础上总结一下推荐系统各个方面的发展现状,供大家参考。其次,最近几年从事推荐系统研究的人越来越多,这些人中有些原来是工程师,对机器学习和数据挖掘不太了解,有些是在校学生,虽然对数据挖掘和机器学习有所了解,却对业界如何实现推荐系统不太清楚。因此,我希望能够通过本书让工程师了解推荐系统的相关算法,让学生了解如何将自己了解的算法实现到一个真实的工业系统中去。
一般认为,推荐系统这个研究领域源于协同过滤算法的提出。这么说来,推荐系统诞生快20年了。这期间,很多学者和公司对推荐系统的发展起到了重要的推动作用,各种各样的推荐算法也层出不穷。本书希望将这20年间诞生的典型方法进行总结。但由于方法太多,这些方法的归类有很多不同的方式。比如,可以按照数据分成协同过滤、内容过滤、社会化过滤,也可以按照算法分成基于邻域的算法、基于图的算法、基于矩阵分解或者概率模型的算法。为了方便读者入门,本书基本采用数据分类的方法,每一章都介绍了一种可以用于推荐系统设计的、新类型的用户数据,然后介绍如何通过各种方法利用该数据,最后在公开数据集上评测这些方法。当然,不是所有数据都有公开的数据集,并且不是所有算法都可以进行离线评测。因此,在遇到没有数据集或无法进行离线评测的问题时,本书引用了一些著名学者的实验结果来说明各种方法的效果。
为了使本书同时适合工程师和在校学生阅读,本书在写作中同时使用了两种介绍方法。一种是利用公式,这样方便有一些理论基础的同学很快明白算法的含义。另一种是利用代码,这样可以方便工程师迅速了解算法的含义。不过因为本人是学生出身,工程经验还不是特别足,所以有些代码写得不是那么完美,还请工程师们海涵。
本书一开始写的时候有3位作者,除了我之外还有豆瓣的陈义和腾讯的王益。他们两位都是这方面的前辈,在写作过程中提出了很多宝贵的意见。但因为二位工作实在太繁忙,所以本书主要由我操刀。但书中的很多论述融合了大家的思想和经验,是我们很多次讨论的结果。因此在这里感谢王益和陈义二位合作者,虽然二位没有动笔,但对这本书做出了很大的贡献。
其次,还要感谢吴军老师和谷文栋为本书作序。感谢谷文栋、稳国柱、张夏天各自审阅了书中部分内容,提出了很多宝贵的意见。感谢我在Hulu的同事郑华和李航,郑华给了我充分的时间完成这本书,对这本书能够按时出版功不可没,而李航审阅了书中的部分内容,提出了很多有价值的修改意见。
最后感谢我的父母和妻子,他们在我写作过程中给予了很大照顾,感谢他们的辛勤付出。
《信息洪流中的智慧引航:个性化推荐系统的原理、算法与应用》 在这个信息爆炸的时代,我们每天都被海量的内容所淹没:新闻资讯、商品信息、影视剧集、音乐歌曲,乃至社交网络上的动态。如何在浩如烟海的信息中快速找到自己真正感兴趣、真正需要的内容,成为了现代生活中的一大挑战。我们不再是过去那个信息匮乏的时代,而是信息过载的时代。在这个时代,能够精准地捕捉用户的喜好,并将其与海量信息进行匹配,从而提供个性化、有价值的推荐,已经成为衡量一个信息平台是否成功的关键指标。 《信息洪流中的智慧引航:个性化推荐系统的原理、算法与应用》正是一本致力于揭示这一“智慧引航”机制背后奥秘的力作。本书并非一本泛泛而谈的科普读物,而是深入浅出地探讨了现代推荐系统所涉及的底层原理、核心算法以及在各种实际场景中的广泛应用。本书的目标读者群体包括对推荐系统感兴趣的技术从业者、数据科学家、产品经理,以及希望深入了解个性化服务运作机制的普通读者。 第一篇:推荐系统的基石——理解用户与物品 在深入探讨算法之前,本书首先为读者构建起对推荐系统最基础的认知框架。 用户画像的构建: 推荐系统的核心在于理解用户。本书详细介绍了如何从用户的行为数据(如点击、购买、评分、浏览时长、搜索记录等)中提取有价值的信息,并将其抽象为具有代表性的“用户画像”。这不仅仅是简单的统计,更是对用户潜在需求、兴趣偏好、生活习惯甚至情感状态的深度挖掘。本书会探讨不同类型的用户特征提取方法,包括基于内容的特征、基于协同行为的特征、基于社交关系的特征,以及如何将这些特征融合,形成更全面、更立体、更动态的用户画像。书中还会强调数据质量的重要性,以及如何处理稀疏、噪声等复杂数据情况。 物品特征的刻画: 与用户对应的是物品。每一件物品,无论是商品、文章还是视频,都拥有自身的属性和特征。本书将详述如何为物品建立准确、丰富的特征表示。这包括从物品的元数据(如标题、描述、类别、标签)、内容本身(如文本的关键词、主题模型,图像的视觉特征,视频的音频特征),以及其他外部信息(如流行度、价格、促销活动)等多个维度进行刻画。本书还会探讨如何处理不同类型物品的特征表示问题,例如如何对结构化数据(如商品属性)和非结构化数据(如文章文本)进行有效的向量化表示,以便于算法进行计算和匹配。 用户-物品交互的模式: 用户与物品之间的交互是推荐系统的生命线。本书会深入分析不同类型的用户-物品交互模式,例如显式反馈(如评分、点赞、收藏)和隐式反馈(如点击、购买、观看时长)。每种交互模式都蕴含着不同的用户意图和偏好信号,本书会详细阐述如何有效利用这些信号,并讨论如何处理不同交互数据带来的挑战,例如“冷启动”问题(新用户或新物品缺乏交互数据)以及如何权衡不同交互信号的重要性。 第二篇:驱动智慧的引擎——核心推荐算法 在建立了对用户和物品的深刻理解后,本书将重点介绍驱动个性化推荐的核心算法。 协同过滤(Collaborative Filtering): 作为最经典、最广为人知的推荐算法之一,协同过滤的原理在于“物以类聚,人以群分”。本书将详细介绍基于用户的协同过滤(User-based CF)和基于物品的协同过滤(Item-based CF),阐述它们的计算原理、优缺点以及适用场景。在此基础上,本书还会深入探讨更现代、更高效的协同过滤方法,例如基于模型的协同过滤,包括矩阵分解(Matrix Factorization)及其变种(如SVD、ALS),以及如何利用深度学习技术来学习用户和物品的低维向量表示,从而捕捉更复杂的潜在关系。 基于内容的推荐(Content-based Filtering): 与协同过滤关注用户之间的相似性或物品之间的相似性不同,基于内容的推荐更侧重于用户过去喜欢的物品的“内容”特征,并推荐与之相似的新物品。本书会详细讲解基于内容的推荐算法,包括如何构建物品的内容特征向量,以及如何利用相似度度量(如余弦相似度、Jaccard相似度)来匹配用户偏好和物品内容。本书还将探讨如何将基于内容的推荐与协同过滤结合,以弥补各自的不足,形成混合推荐系统。 混合推荐系统(Hybrid Recommender Systems): 在实际应用中,单一的推荐算法往往难以满足所有需求。本书将重点阐述如何将不同的推荐算法进行有机结合,构建更强大、更鲁棒的混合推荐系统。本书会介绍多种混合策略,例如加权混合、切换混合、特征组合混合、模型集成等,并分析不同混合策略的优势和适用场景。通过混合推荐,可以有效地解决冷启动问题、提高推荐的多样性和新颖性,并增强推荐的准确性。 深度学习在推荐系统中的应用: 随着深度学习技术的飞速发展,它已经在推荐系统领域掀起了革命性的变革。本书将专门开辟章节,深入介绍深度学习模型在推荐系统中的应用。这包括但不限于: 深度神经网络(DNN)在特征学习中的应用: 如何利用DNN学习高阶的用户-物品交互特征,捕捉更深层次的关联。 循环神经网络(RNN)和卷积神经网络(CNN)在序列推荐中的应用: 如何建模用户的动态行为序列,预测用户下一步可能感兴趣的物品。 图神经网络(GNN)在推荐系统中的应用: 如何将用户-物品交互构建成图结构,利用GNN学习用户和物品在复杂关系网络中的表示。 深度因子分解机(DeepFM)和Wide & Deep模型: 如何结合浅层特征和深度特征,实现泛化能力和记忆能力的双重优化。 第三篇:从理论到实践——推荐系统的工程化与优化 掌握了理论算法后,如何将其有效地落地并持续优化,是衡量一个推荐系统是否成功的关键。 推荐系统的工程架构: 本书将探讨推荐系统的典型工程架构,包括数据收集、特征工程、模型训练、离线评估、在线服务、A/B测试等环节。本书还会介绍常用的推荐系统框架和工具,帮助读者理解如何构建一个可扩展、高可用、低延迟的推荐系统。 评估指标与离线/在线评估: 如何科学地评估推荐系统的效果至关重要。本书将详细介绍各种常用的推荐系统评估指标,如准确率(Precision)、召回率(Recall)、F1分数、AUC、NDCG、覆盖率、多样性、新颖性等。同时,本书将深入阐述离线评估和在线评估(A/B测试)的方法和技巧,帮助读者理解如何在不同阶段有效地度量和优化推荐效果。 冷启动问题与解决方案: 冷启动是推荐系统领域一个普遍存在的难题,即新用户或新物品缺乏足够的交互数据,难以进行有效推荐。本书将系统性地梳理冷启动问题的根源,并详细介绍各种解决方案,包括基于内容的推荐、利用用户注册信息、引导用户进行初始交互、利用内容相似性、利用社交网络信息等。 多样性、新颖性与公平性: 在追求准确率的同时,推荐系统的多样性、新颖性和公平性也日益受到重视。本书将探讨如何通过算法设计和策略调整,在保证推荐效果的前提下,增加推荐的多样性和新颖性,避免“信息茧房”效应。同时,本书还会初步探讨推荐系统中的公平性问题,以及如何平衡不同群体用户的利益。 推荐系统的实际应用场景: 本书的最后一篇将带领读者走进推荐系统的真实世界,探讨其在不同领域的广泛应用。这包括: 电子商务: 商品推荐、促销推荐、猜你喜欢。 内容平台: 新闻推荐、视频推荐、音乐推荐、小说推荐。 社交网络: 好友推荐、内容推荐、话题推荐。 O2O服务: 餐厅推荐、活动推荐、外卖推荐。 其他领域: 金融服务、招聘信息、旅游目的地等。 本书通过对推荐系统从基础原理到前沿算法,再到工程实践的全面剖析,旨在帮助读者建立起对个性化推荐系统的深刻认知。它不仅是一份技术指南,更是一份理解数字时代信息分发的“智慧引航图”。读者将能够在此书中找到构建、优化和应用推荐系统的关键思路和方法,从而在信息洪流中,更好地驾驭技术,为用户带来更精准、更个性化的信息服务。