自学推荐系统两年多了,也阅读了一些相关的书籍和论文,但毕竟还没有实际的在公司做过推荐相关项目,所以说跟大佬们相比,还是有很多差距的。不过,在入门推荐的道路上,有一些经验和资料还是可以分享给你的,希望本文能够对你有所帮助。
1、第一阶段 - 掌握机器学习基础知识,打好基础
学习推荐系统,还是要掌握一定的机器学习知识的,从特征获取、特征处理、特征选择,到基本的机器学习模型如逻辑回归、GBDT等等,都需要你熟练掌握。
其中比较重要的就是特征这块,因为推荐系统中会面临大量的离散特征,对离散特征的处理方式需要有一定的了解。
这里还是推荐李航博士的《统计学习方法第二版》。
然后就是神经网络,推荐系统中神经网络运用非常多,神经网络中基础的如循环神经网络、卷积神经网络,以及一些模型结构的搭建、训练的技巧如Dropout、BN等等也需要有所理解。
这个推荐吴恩达的深度学习课程以及李宏毅老师的深度学习课程。
2、第二阶段 - 阅读推荐系统经典书籍,入门推荐
推荐系统市面上的书不是很多,而且写得往往不够深入,仅能够起到一定的入门作用,毕竟推荐在各个公司还是比较核心的内容,是比较受到保护的。但经典的书籍还是有的,入门的话推荐两本。
一是大家所熟知的《推荐系统实践》,这本的话对于大家了解推荐系统中最基本的算法如协同过滤、推荐系统中常用的评价指标、使用上下文和社交网络进行推荐、如何解决冷启动问题都有一定的帮助。
二是最近市面上新出现的《推荐系统开发实战》一书,虽然这本书我还没有看过,但不少的群友反映这本书对于入门推荐系统来说十分友好。理论和实战相结合,是挺不错的一本“小白实操书”。
然后还有的一些书籍如《推荐系统与深度学习》和《推荐系统-技术、评估及高效算法》,大家感兴趣的话也可以进行阅读。
3、第三阶段 - 精读推荐系统经典论文,掌握诀窍
在理解基本的推荐知识之后,你大概会了解到推荐具体是做什么的,那么其问题又可以分成几个方面。如召回、CTR预估、Learning to Rank等等。这个时候我建议的话就是开始阅读经典论文了。下面整理一些我看过的比较经典的论文吧,可能有遗漏,也欢迎大家补充。
FM:《Factorization Machines》
FFM:《Field-aware Factorization Machines for CTR Prediction》
DeepFM:《DeepFM: A Factorization-Machine based Neural Network for CTR Prediction》
Wide & Deep:《Wide & Deep Learning for Recommender Systems》
DCN:《Deep & Cross Network for Ad Click Predictions》
NFM:《Neural Factorization Machines for Sparse Predictive Analytics》
AFM:《Attentional Factorization Machines:Learning the Weight of Feature Interactions via Attention Networks》
GBDT + LR:《Practical Lessons from Predicting Clicks on Ads at Facebook》
MLR:《Learning Piece-wise Linear Models from Large Scale Data for Ad Click Prediction》
DIN:《Deep Interest Network for Click-Through Rate Prediction》
DIEN:《Deep Interest Evolution Network for Click-Through Rate Prediction》
BPR:《BPR: Bayesian Personalized Ranking from Implicit Feedback》
Youtube:《Deep Neural Networks for YouTube Recommendations》
当然有些其他的论文也十分经典,咱们放在后面继续讲。
读论文也是需要一定的技巧,不同的人可能关注的点不一样,所以导致阅读重心不一样。对于我来说,我比较关注的点是这个论文要解决什么样的问题,是如何解决的,以及作者从哪几方面出发,使用什么评价指标来评判模型的好坏。至于效果,论文嘛,可信可不信,看看就好了。
4、第四阶段 - 复现推荐论文开源代码,加深理解
读论文中你也许会有很多疑惑,如DeepFM这个Embedding如何共享的?DIN里面的Attention如何实现?解决这些疑惑的最好办法我认为不是读论文、百度别人写的博客,最好的方法就是去找开源的代码,试着复现也好,比着代码自己实现一遍也好,对你加深认识都有很大的帮助!
有一些开源的代码我已经帮大家整理的差不多了,在下面的github中(以后不要再问我数据或者地址的问题了,数据都在github的readme中):https://github.com/princewen/tensorflow_practice
不管对一篇论文你看懂了还是没看懂也好,都去尝试复现一遍吧,真的很有帮助。
5、第五阶段 - 持续跟进最近推荐论文,思维发散
在不断跟进推荐系统论文的过程中,你会发现推荐系统会借鉴各个领域的方法, 持续跟进最近推荐论文,对我们学习其他领域如NLP、图像领域、强化学习等等都会有所帮助。接下来列举一些借鉴其他领域方法的一些文章吧,也算是对第三部分的一个补充。
强化学习
《DRN: A Deep Reinforcement Learning Framework for News Recommendation》
《Deep Reinforcement Learning for List-wise Recommendations》
多任务学习
《Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate》
《Why I like it: Multi-task Learning for Recommendation and Explanation》
GAN
《IRGAN: A Minimax Game for Unifying Generative and Discriminative Information Retrieval Models》
《CFGAN: A Generic Collaborative Filtering Framework based on Generative Adversarial Networks》
知识图谱
《DKN: Deep Knowledge-Aware Network for News Recommendation》
《RippleNet: Propagating User Preferences on the Knowledge Graph for Recommender Systems》
《Multi-task Learning for KG enhanced Recommendation》
《Perceive Your Users in Depth: Learning Universal User Representations from Multiple E-commerce Tasks》
Transformer
《Next Item Recommendation with Self-Attention》
《Deep Session Interest Network for Click-Through Rate Prediction》
《Behavior Sequence Transformer for E-commerce Recommendation in Alibaba》
《BERT4Rec: Sequential Recommendation with Bidirectional Encoder Representations from Transformer》
RNN & GNN
《SESSION-BASED RECOMMENDATIONS WITH RECURRENT NEURAL NETWORKS》
《Improved Recurrent Neural Networks for Session-based Recommendations》
《Session-based Recommendation with Graph Neural Networks》
Embedding技巧
《Real-time Personalization using Embeddings for Search Ranking at Airbnb》
《Learning and Transferring IDs Representation in E-commerce》
《Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba》