本书主要讲解推荐系统中的召回算法和排序算法,以及各个算法在主流工具Sklearn、Spark、TensorFlow等中的实现和应用。
书中本着循序渐进的原则进行讲解。首先,介绍推荐系统中推荐算法的数学基础,推荐算法的平台、工具基础,以及具体的推荐系统。其次,讲解推荐系统中的召回算法,主要包括基于行为相似的协同过滤召回和基于内容相似的Word2vec召回,并且介绍其在Spark、TensorFlow主流工具中的实现与应用。再次,讲解推荐系统中的排序算法,包括线性模型、树模型和深度学习模型,分别介绍逻辑回归、FM、决策树、随机森林、GBDT、GBDT+LR、集成学习、深度森林、DNN、Wide&Deep、DeepFM、YouTube推荐等模型的原理,以及其在Sklearn、Spark、TensorFlow主流工具中的实现与应用。最后,介绍推荐算法的4个实践案例,帮助读者进行工程实践和应用,并且介绍如何在Notebook上进行代码开发和算法调试,以帮助读者提升工作效率。
1.本书主要讲解推荐系统中的推荐算法——召回算法和排序算法,以及各个算法在主流工具Sklearn、Spark、TensorFlow等中的实现和应用。
2.本书本着循序渐进的原则进行讲解,配有丰富的工程案例和源代码,可以帮助读者进行工程实践并在实际工作中应用。
3.本书适合AI、数据挖掘、大数据等领域的从业人员阅读,书中为开发者展现了推荐算法的原理、实现与应用案例。
前言
随着互联网行业的高速发展,人们获取信息的方式越来越多,从主动获取信息逐渐变为被动接收信息,信息量也呈爆发式增长。因此,人们已经从信息匮乏时代进入信息“过载”时代。人们对信息获取的有效性和针对性的需求随之出现,推荐系统也应运而生。推荐系统就是互联网时代的一种信息检索工具,推荐系统的任务就是连接用户和信息,创造价值。
推荐系统从20世纪90年代开始出现,逐渐成为一门独立的学科,并且在学术界和工业界应用中都取得了诸多成果。本书主要讲解目前学术界和工业界的一些主流、常用的推荐方法和工具。
首先从基础开始,介绍数学基础、具体的推荐系统,以及常用的推荐算法工具,包括目前主流的工具Sklearn、SparkMLlib、TensorFlow,并且介绍效率提升工具ZeppelinNotebook和JupyterNotebook。
随后讲解推荐系统中的召回算法,包括常见的协同过滤和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、SparkMLlib、TensorFlow、ZeppelinNotebook和JupyterNotebook
第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的使用方法(包括ZeppelinNotebook和JupyterNotebook)
通过本部分的学习,可以帮助读者进行具体的工程实践和应用,以及掌握Notebook的使用方法,提升工作效率
在本书的编写过程中,参考了一些国内外文献,主要如下。
【第1章】1.4节“优化方法”,参考了张志华审校的《深度学习》一书中的第8章(英文版是由IanGoodfellow、YoshuaBengio和AaronCourville编写的DeepLearning)。
【第5章】5.1节“Word2vec算法”,参考了XinRong在2016年发表的论文Word2vecParameterLearningExplained。
【第6章】6.1节“逻辑回归算法”,参考了李航编写的《统计学习方法》的第6章。
【第9章】9.1节“GBDT+LR算法”,参考了HeXinran在2014年发表的论文PracticalLessonsfromPredictingClicksonAdsatFacebook。9.2节“深度森林算法”,参考了周志华在2018年发表的论文DeepForest:TowardsanAlternativetoDeepNeuralNetworks。
【第11章】11.2.2节“Attention机制”,参考了ColinRaffel在2016年发表的论文Feed-forwardnetworkswithattentioncansolvesomelong-termmemoryproblems。
【第12章】参考了Heng-TzeCheng在2016年发表的论文Wide&DeepLearningforRecommenderSystems。
【第13章】参考了HuifengGuo在2017年发表的论文DeepFM:AFactorization-MachinebasedNeuralNetworkforCTRPrediction。
【第14章】参考了PaulCovington在2016年发表的论文DeepNeuralNetworksforYouTubeRecommendations。
何娟、何丹、黄春林参与了全书的编写、整理及校对工作。邱泰生、吴德龙对全书提出了宝贵意见。
本书在写作的过程中得到了很多朋友及同事的帮助和支持,在此表示衷心感谢!
在工作中笔者也得到了很多同事的指导、支持和帮助,尤其感谢王雪晖、吴俊彦、邱泰生、KUNBAI、吴德龙、江伟森、李钊、吴春成、周远远、林伟兵、黄韬、文双炳,米成锦、郭嘉杰、谢维邦、彭佑辉、钟俊葳、郭鑫鹏、谢毅、陈庆麟、胡荣杰、何锦潮、戴智君、张燕、林也、邱鑫、代锋、骆顺昌、李阳、熊先明、樊鹏等给予的支持与帮助。
感谢电子工业出版社的付睿编辑,她不仅积极策划和推动本书的出版,而且在写作过程中提出了极为详细的改进意见。感谢电子工业出版社的李云静、王中英编辑为本书做了非常辛苦和专业的编辑工作。
最后,将此书献给热爱AI和大数据技术的朋友们!
读者服务
轻松注册成为博文视点社区用户(www.broadview.com.cn),扫码直达本书页面。
√提交勘误:您对书中内容的修改意见可在提交勘误处提交,若被采纳,将获赠博文视点社区积分(在您购买电子书时,积分可用来抵扣相应金额)。