同在学习推荐算法,大概介绍一下我自己规划的推荐算法学习轨迹(还在慢慢实践中,好长时间了,捂脸...)。
首先,看完了推荐系统实战的话,应该大概了解了大部分的推荐算法。那我觉得看完了书,应该有必要再从宏观上再来了解一下推荐系统这个研究领域的研究现状,包括研究领域目前有的挑战,比如冷启动问题,大规模矩阵分解问题,增量模型计算问题等等,包括目前热门的研究方向,比如基于LBS、社交网络等等的推荐。最方便的了解这些问题的途径当然就是看论文了,
找到 Recommender System相关最新的Review 或者Survey 文章,多读几篇。这些文章往往是该领域的大牛所著,往往会非常良心的收集了近十几年来该领域的研究成果,分析好坏,做出比较,非常赞。
然后,看完理论算法就要到算法实现层面来了,一些简单的算法,比如UCF,ICF,SlopeOne等等算法,完全可以根据自己的理解手动编一编,更好的来对它做理解。当然
借助于开源解决方案也是一种非常好的学习方法。这里有几篇总结的很好的推荐系统开源软件介绍:
推荐系统开源软件列表汇总和点评 TOP 10开源的推荐系统简介 如果楼主会JAVA,那就果断推荐Mahout了,虽然Mahout是在2011年搞出来的,但是它对Hadoop的支持做的不错,而且最新版本的Mahout即将抛弃Mapreduce,转向Spark了,背后还有阿帕奇基金会的支持,相信会是不错的选择。Python的用过
Recommender Systems Framework in Python (Crab) 代码比较简洁,适合一读,号称是Mahout的python版本。其他的开源软件楼主也可以关注关注。特别之前两篇中提到的Myrrix,它是Mahout的作者之一Sean Owen基于Mahout开发的一个试验性质的推荐系统,目前已经并入Oryx项目,Oryx1.0 (
cloudera/oryx · GitHub )已经发布,Oryx2.0也正在孵化中,相较于1.0版本,Oryx2.0更好的实现了
lambda架构 ,使得各个层之间可复用性更强。实现了比1更多的机器学习算法(1.0只实现了,ALS协同过滤,随机森林,以及K-means++算法)同时2.0版本还引入更新的Spark和Streaming技术。总之社区更新非常活跃,所用的技术也非常前沿,适合学习用。
最后,(我也还停留在这一步)了解了这些东西我觉得就应该去实践了(其实边实践边了解可能更好),
找一份实习,或者相关的工作,看看如何将所学到的算法真正的结合到特定 的业务中去,不同的模型,不同的推荐算法如何进行融合,如何解决冷启动,如何解决大规模的计算等等。不同的业务比如电商,音乐,电影,新闻,咨询等等的推荐,都会有相对应的特色的方法。先进的算法和解决方案固然重要,但是如何深刻的理解业务,提取一些用特征,总结一些业务经验,有时候往往会比几个干净的算法,融合几个模型对业务提升更有效。
以上都是愚见,望与大家一起学习交流。