猜你喜欢
推荐系统算法实践

推荐系统算法实践

书籍作者:黄美灵 ISBN:9787121370403
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:4057
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书主要讲解推荐系统中的召回算法和排序算法,以及各个算法在主流工具Sklearn、Spark、TensorFlow等中的实现和应用。

书中本着循序渐进的原则进行讲解。首先,介绍推荐系统中推荐算法的数学基础,推荐算法的平台、工具基础,以及具体的推荐系统。其次,讲解推荐系统中的召回算法,主要包括基于行为相似的协同过滤召回和基于内容相似的Word2vec召回,并且介绍其在Spark、TensorFlow主流工具中的实现与应用。再次,讲解推荐系统中的排序算法,包括线性模型、树模型和深度学习模型,分别介绍逻辑回归、FM、决策树、随机森林、GBDT、GBDT+LR、集成学习、深度森林、DNN、Wide & Deep、DeepFM、YouTube推荐等模型的原理,以及其在Sklearn、Spark、TensorFlow主流工具中的实现与应用。最后,介绍推荐算法的4个实践案例,帮助读者进行工程实践和应用,并且介绍如何在Notebook上进行代码开发和算法调试,以帮助读者提升工作效率。


作者简介

黄美灵 现任一线互联网公司的高级工程师,拥有多年大型互联网公司推荐系统和机器学习实战经验,现从事广告推荐、应用分发和资讯Feeds流推荐相关工作。

编辑推荐
适读人群 :本书适合 AI、数据挖掘、大数据等领域的从业人员阅读,书中为开发者展现了推荐算法的原理、实现与应用案例。

1.本书主要讲解推荐系统中的推荐算法——召回算法和排序算法,以及各个算法在主流工具Sklearn、Spark、TensorFlow等中的实现和应用。

2.本书本着循序渐进的原则进行讲解,配有丰富的工程案例和源代码,可以帮助读者进行工程实践并在实际工作中应用。

3.本书适合 AI、数据挖掘、大数据等领域的从业人员阅读,书中为开发者展现了推荐算法的原理、实现与应用案例。


前言

前 言


随着互联网行业的高速发展,人们获取信息的方式越来越多,从主动获取信息逐渐变为被动接收信息,信息量也呈爆发式增长。因此,人们已经从信息匮乏时代进入信息“过载”时代。人们对信息获取的有效性和针对性的需求随之出现,推荐系统也应运而生。推荐系统就是互联网时代的一种信息检索工具,推荐系统的任务就是连接用户和信息,创造价值。

推荐系统从20世纪90年代开始出现,逐渐成为一门独立的学科,并且在学术界和工业界应用中都取得了诸多成果。本书主要讲解目前学术界和工业界的一些主流、常用的推荐方法和工具。

首先从基础开始,介绍数学基础、具体的推荐系统,以及常用的推荐算法工具,包括目前主流的工具Sklearn、Spark MLlib、TensorFlow,并且介绍效率提升工具Zeppelin Notebook和Jupyter Notebook。

随后讲解推荐系统中的召回算法,包括常见的协同过滤和Word2vec两个算法,并且介绍这两个算法在Spark、TensorFlow主流工具中的实现。

接着讲解推荐系统中的排序算法——线性模型,包括常见的逻辑回归和FM两个算法,并且介绍这两个算法在Sklearn、Spark、TensorFlow主流工具中的实现。

然后讲解推荐系统中的排序算法——树模型,包括常见的随机森林、GBDT、GBDT+LR、集成学习算法以及最近出现的深度森林算法,并且介绍各个算法在Sklearn、Spark、TensorFlow主流工具中的实现。

之后讲解推荐系统中的排序算法——深度学习模型,包括深度学习在推荐算法中的应用、常见的DNN算法以及最近出现的DeepFM、Wide & Deep、YouTube推荐模型等,并且介绍各个算法在TensorFlow工具中的实现。

最后讲解电商平台的商品召回、音乐的评分预测、Kaggle竞赛Outbrain的点击率预估和电商商品点击率预估4个推荐算法的实践案例,并且讲解在Notebook上进行代码开发的实践案例和算法调试的实践案例。

本书主要对推荐系统中的常见方法和工具进行全面讲解,并且配合讲解算法原理、实现以及案例,通过本书可从基础到实践全面掌握推荐系统中的推荐算法。

学习本书内容需要具备以下基础:Python基础知识、Spark基础知识、TensorFlow基础知识、Scala基础知识、线性代数基础知识等。

本书面向以下各类读者:机器学习工程师、数据挖掘工程师、大数据工程师、各高校的研究生和高年级本科生等。

本书学习指南

第1部分 推荐系统的算法基础

第1章 数学基础

第2章 推荐系统介绍

第3章 推荐算法工具

本部分涵盖以下内容:

√推荐算法的基础知识讲解,包括数学基础知识的讲解,如对线性代数、概率与统计、损失函数、优化方法和评价方法等内容的介绍;

√对具体推荐系统的介绍;

√常用的推荐算法工具,如Sklearn、Spark MLlib、TensorFlow、Zeppelin Notebook和Jupyter Notebook

通过本部分的学习,可掌握数学基础、常用工具、推荐系统入门等相关知识


第2部分 推荐系统的召回算法

第4章 协同过滤——基于行为相似的召回

第5章 Word2vec——基于内容相似的召回

本部分介绍推荐系统的召回算法,包含常见的协同过滤和Word2vec

通过本部分的学习,可掌握常见的两个召回算法,以及其在Spark、TensorFlow主流工具中的实现,读者可以实现简单的召回方法开发,并可以实现具体的实践应用


第3部分 推荐系统的排序算法——线性模型

第6章 逻辑回归

第7章 因子分解机(FM)

第4部分 推荐系统的排序算法——树模型

第8章 决策树

第9章 集成学习

第5部分 推荐系统的排序算法——深度学习模型

第10章 深度学习在推荐算法中的应用

第11章 DNN算法

第12章 Wide & Deep模型

第13章 DeepFM模型

第14章 YouTube的深度神经网络模型

这几部分介绍推荐系统的排序算法,包括线性模型、树模型、深度学习模型:

√线性模型部分介绍逻辑回归、FM算法等内容;

√树模型部分介绍决策树、随机森林、GBDT、GBDT+LR、集成学习、深度森林等内容;

√深度学习模型部分介绍DNN、Wide & Deep、DeepFM、YouTube推荐模型等内容

通过这几部分的学习,可掌握常见的排序算法,以及其在Sklearn、Spark、TensorFlow主流工具中的实现,读者可以实现简单的排序方法开发,并可以实现具体的实践应用


第6部分 推荐系统的算法实践

第15章 实践——基于电商平台的商品召回

第16章 实践——基于逻辑回归的音乐评分预测

第17章 实践——Kaggle竞赛Outbrain的点击率预估

第18章 实践——基于深度学习的电商商品点击率预估

第19章 Notebook实践

本部分介绍推荐算法的具体实践,包括电商平台的商品召回、音乐评分预测、Outbrain的点击率预估和电商商品点击率预估4个推荐算法的实践案例,以及Notebook的使用方法(包括Zeppelin Notebook和Jupyter Notebook)

通过本部分的学习,可以帮助读者进行具体的工程实践和应用,以及掌握Notebook的使用方法,提升工作效率


在本书的编写过程中,参考了一些国内外文献,主要如下。

【第1章】1.4节“优化方法”,参考了张志华审校的《深度学习》一书中的第8章(英文版是由Ian Goodfellow、Yoshua Bengio和Aaron Courville编写的Deep Learning)。

【第5章】5.1节“Word2vec算法”,参考了Xin Rong在2016年发表的论文Word2vec Parameter Learning Explained。

【第6章】6.1节“逻辑回归算法”,参考了李航编写的《统计学习方法》的第6章。

【第7章】7.1节“FM算法”,参考了美团技术文章《深入FFM原理与实践》、Steffen Rendle在2010发表的论文Factorization Machines、Yu-Chin Juan在2016年发表的论文Field-aware Factorization Machines for CTR Prediction。

【第9章】9.1节“GBDT+LR算法”,参考了He Xinran在2014年发表的论文Practical Lessons from Predicting Clicks on Ads at Facebook。9.2节“深度森林算法”,参考了周志华在2018年发表的论文Deep Forest: Towards an Alternative to Deep Neural Networks。

【第11章】11.2.2节“Attention机制”,参考了Colin Raffel在2016年发表的论文Feed- forward networks with attention can solve some long-term memory problems。

【第12章】参考了Heng-Tze Cheng在2016年发表的论文Wide & Deep Learning for Recommender Systems。

【第13章】参考了Huifeng Guo在2017年发表的论文DeepFM: A Factorization-Machine based Neural Network for CTR Prediction。

【第14章】参考了Paul Covington在2016年发表的论文Deep Neural Networks for YouTube Recommendations。

另外,书中参考的部分内容未能找到原始出处和作者,在此对相关作者表示衷心感谢。

何娟、何丹、黄春林参与了全书的编写、整理及校对工作。邱泰生、吴德龙对全书提出了宝贵意见。

由于笔者的水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。读者也可以通过微信公众号“推荐系统算法实践”、邮箱[email protected]和QQ群715526135 联系到我,期待能够得到读者朋友的真挚反馈,在技术之路上互勉共进。

本书在写作的过程中得到了很多朋友及同事的帮助和支持,在此表示衷心感谢!

在工作中笔者也得到了很多同事的指导、支持和帮助,尤其感谢王雪晖、吴俊彦、邱泰生、KUN BAI、吴德龙、江伟森、李钊、吴春成、周远远、林伟兵、黄韬、文双炳,米成锦、郭嘉杰、谢维邦、彭佑辉、钟俊葳、郭鑫鹏、谢毅、陈庆麟、胡荣杰、何锦潮、戴智君、张燕、林也、邱鑫、代锋、骆顺昌、李阳、熊先明、樊鹏等给予的支持与帮助。

感谢电子工业出版社的付睿编辑,她不仅积极策划和推动本书的出版,而且在写作过程中提出了极为详细的改进意见。感谢电子工业出版社的李云静、王中英编辑为本书做了非常辛苦和专业的编辑工作。

感谢我的父母和妻子,有了你们的帮助和支持,我才有时间和精力去完成本书的写作。

最后,将此书献给热爱AI和大数据技术的朋友们!

读者服务

轻松注册成为博文视点社区用户(www.broadview.com.cn),扫码直达本书页面。

√提交勘误:您对书中内容的修改意见可在 提交勘误 处提交,若被采纳,将获赠博文视点社区积分(在您购买电子书时,积分可用来抵扣相应金额)。

√交流互动:在页面下方 读者评论 处留下您的疑问或观点,与我们和其他读者一同学习交流。

页面入口:http://www.broadview.com.cn/37040


目录

目 录

第1部分 推荐系统的算法基础
第1章 数学基础 2
1.1 线性代数 2
1.2 概率与统计 5
1.3 损失函数 7
1.4 优化方法 8
1.4.1 SGD 8
1.4.2 动量 8
1.4.3 Nesterov动量 9
1.4.4 AdaGrad 9
1.4.5 Adam 10
1.4.6 L-BFGS 10
1.4.7 梯度法和牛顿法的比较 11
1.5 评价方法 11
1.5.1 混淆矩阵 11
1.5.2 ROC曲线 13
第2章 推荐系统介绍 17
2.1 推荐系统背景 17
2.2 推荐系统的典型案例 18
2.2.1 Amazon推荐 19
2.2.2 Facebook推荐 21
2.2.3 YouTube推荐 22
2.3 推荐系统原理 23
第3章 推荐算法工具 26
3.1 Python Sklearn机器学习库 26
3.1.1 Sklearn介绍 26
3.1.2 Sklearn建模流程 27
3.2 Spark MLlib机器学习库 28
3.2.1 MLlib介绍 28
3.2.2 MLlib建模流程 29
3.3 TensorFlow 31
3.3.1 TensorFlow介绍 31
3.3.2 TensorFlow建模流程 31
3.4 Notebook介绍 32
3.4.1 Zeppelin Notebook介绍 32
3.4.2 Jupyter Notebook介绍 36
第2部分 推荐系统的召回算法
第4章 协同过滤――基于行为相似的召回 40
4.1 协同过滤算法 40
4.1.1 协同过滤推荐概述 40
4.1.2 用户评分 41
4.1.3 相似度计算 41
4.1.4 推荐计算 43
4.2 协同过滤推荐算法实现 44
4.2.1 相似度计算及推荐计算 47
4.2.2 协同推荐 54
4.2.3 运行结果 59
第5章 Word2vec――基于内容相似的召回 65
5.1 Word2vec算法 65
5.1.1 语言模型 65
5.1.2 CBOW One-Word Context模型 66
5.1.3 CBOW Multi-Word Context 模型 71
5.1.4 Skip-Gram模型 72
5.1.5 Hierarchical Softmax 74
5.1.6 Negative Sampling 74
5.2 Word2vec实例 75
5.2.1 Spark实现 75
5.2.2 TensorFlow实现 80
第3部分 推荐系统的排序算法――线性模型
第6章 逻辑回归 86
6.1 逻辑回归算法 86
6.1.1 二元逻辑回归模型 86
6.1.2 模型参数估计 88
6.1.3 多元逻辑回归模型(Softmax回归) 88
6.1.4 逻辑回归的网络结构 89
6.1.5 梯度下降算法 90
6.1.6 正则化 91
6.2 逻辑回归实现 93
6.2.1 Sklearn实现 93
6.2.2 Spark实现 98
6.2.3 TensorFlow实现 108
6.2.4 效果总结 114
第7章 因子分解机(FM) 115
7.1 FM算法 115
7.1.1 FM模型 115
7.1.2 FFM模型 118
7.1.3 FM模型的网络结构 119
7.2 FM实现 120
7.2.1 Sklearn实现 120
7.2.2 TensorFlow实现 122
7.2.3 效果总结 128
第4部分 推荐系统的排序算法――树模型
第8章 决策树 130
8.1 决策树算法 130
8.1.1 决策树模型 130
8.1.2 特征选择 131
8.1.3 决策树的生成 133
8.1.4 决策树的生成实例 134
8.1.5 决策树的剪枝 135
8.2 决策树的集成算法 136
8.2.1 集成分类器 136
8.2.2 随机森林 137
8.2.3 GBDT 137
8.3 决策树集成算法实例 139
8.3.1 Spark实现 139
8.3.2 Sklearn实现 149
8.3.3 效果总结 154
第9章 集成学习 155
9.1 GBDT+LR算法 155
9.1.1 背景 155
9.1.2 GBDT+LR网络结构 156
9.2 深度森林算法 159
9.2.1 深度森林介绍 159
9.2.2 级联森林 160
9.2.3 多粒度扫描 161
9.3 决策树集成分类器 162
9.4 集成学习实例 164
9.4.1 GBDT+LR实现 164
9.4.2 深度森林实现 167
9.4.3 效果总结 175
第5部分 推荐系统的排序算法――深度学习模型
第10章 深度学习在推荐算法中的应用 178
10.1 推荐模型的特点 178
10.2 基于深度学习的推荐模型 179
10.2.1 DNN优化高阶特征 179
10.2.2 高阶特征交叉与低阶特征交叉 181
10.2.3 特征交叉优化 183
10.2.4 特征连接优化 184
10.2.5 高阶特征交叉优化 185
10.2.6 多样性的深度兴趣特征优化 186
第11章 DNN算法 189
11.1 人工神经网络算法 189
11.1.1 神经元 189
11.1.2 神经网络模型 191
11.1.3 信号的前向传播 191
11.1.4 误差的反向传播 193
11.2 DNN优化方法 195
11.2.1 优化参数 196
11.2.2 Attention机制 197
11.3 DNN实例 198
11.4 运行结果 205
第12章 Wide & Deep模型 206
12.1 Wide & Deep模型概述 206
12.1.1 Wide模型 208
12.1.2 Deep模型 209
12.1.3 模型联合训练 210
12.2 Wide & Deep系统实现 211
12.2.1 推荐系统介绍 211
12.2.2 系统流程 212
12.2.3 训练数据的生成 213
12.2.4 模型训练 213
12.2.5 线上应用 214
12.3 Wide & Deep实例 214
12.4 运行结果 219
第13章 DeepFM模型 225
13.1 DeepFM模型概述 225
13.1.1 FM组件 226
13.1.2 Deep组件 228
13.1.3 模型对比 229
13.2 DeepFM模型实例 231
13.3 运行结果 241
第14章 YouTube的深度神经网络模型 243
14.1 YouTube推荐模型 243
14.1.1 背景介绍 243
14.1.2 召回模型设计 245
14.1.3 排序模型设计 250
14.2 YouTube实例 252
14.3 运行结果 256
第6部分 推荐系统的算法实践
第15章 实践――基于电商平台的商品召回 260
15.1 背景介绍 260
15.2 模型选择 261
15.3 算法开发 261
第16章 实践――基于逻辑回归的音乐评分预测 266
16.1 背景介绍 266
16.2 数据准备 266
16.3 特征处理 268
16.4 模型选择 270
16.5 算法开发 271
第17章 实践――Kaggle竞赛之Outbrain点击率预估 275
17.1 背景介绍 275
17.2 数据准备 277
17.3 特征处理 283
17.4 模型选择 284
17.4.1 FFM 285
17.4.2 XGBoost 288
17.4.3 集成学习 292
17.5 算法开发 292
第18章 实践――基于深度学习的电商商品点击率预估 297
18.1 背景介绍 297
18.2 数据准备 298
18.3 特征处理 302
18.4 模型选择 303
18.5 算法开发 304
18.6 运行结果 309
第19章 Notebook实践 312
19.1 Sklearn中的LR实践 312
19.2 TensorFlow中的LR实践 316
19.3 Spark中的LR实践 321
19.4 TensorFlow中的FM调试实践 327
19.5 Spark中的协同过滤调试实践 331

产品特色