有一种书让我们完成到科班的跨越
2013-04-17
非常有幸先读到了这本书的中译版,来说说我的感受吧。
一般来说,我接触过的程序员大多属于两种,第一种是经过良好的大学教育,另一种是可能毕业后误打误撞进入了程序员这个行业。从心底来讲,我个人倾向于前者,因为他们一般具有很棒的计算机基础,可是我又舍不得后者,因为他们又有着丰富的项目经验。我接触过很多在校的学生,包括已经工作过的人,我提问,如果某个大学来招你做计算机系的老师,那么你会选择教哪一门课?关于这一门课你的教学思路是什么?如果组内希望你做一次关于推荐系统的分享讲座,你会怎么安排目录计划?这个问题目前为止我很少遇到能答得很棒的人。
推荐系统在国内的起步时间较晚,与软件工程,计算机视觉,搜索技术等国内已经成熟的专业不同,很少有实验室来专门来做推荐系统的研究,大多数做推荐系统的人都是半路出家,当然其中也包括我自己。往往的情况都是原公司,或者实验室希望做一个推荐相关的事情,那么找一个有兴趣并且有一定算法基础的人去做这个事儿,这个人也往往是看几篇关于推荐系统的文章,大部分是协同过滤,或者矩阵分解,然后做出一个结果,具体怎么优化或者还需要做什么,这些都以后遇到问题再说。
而这样就造成了很多计算机科班出身的人,在推荐系统领域却成了半路出家,理论决定实践,实践又反作用于理论,对于当前的很多互联网公司的工作人员而言,有着很多的数据让你去折腾,所以瓶颈并不在于实践上,往往在于理论和体系的欠缺。
现用现查所造成的情况是缺少一个对推荐系统整体的把控,说到推荐系统和推荐算法,近年来除了Boosting, SVM和Deep Learning算是三个跨时代的算法,最多再算上SVD++,其余很少有算法有着质的突破,大多大同小异。那么决定一个推荐系统好坏的原因,已经从拼算法模型到了拼数据,拼产品,拼细节,拼系统架构,再到对推荐系统的整体设计,而这些都需要对业务的理解和对推荐系统整体的理解和把控。
这本书最大的优点是对推荐系统的整理都做了一个很好的概括,从基本的协同过滤,Content-based,降维。再到对当前推荐系统弊端的分析,然后引入Knowledge-based的“推荐系统“,到推荐算法的混合,再到推荐系统的评估以及推荐系统的攻击防御。最后简单介绍语义网和移动互联网大环境下的推荐系统需要注意和考虑的点。几乎整理了一个推荐系统所涉及到的每一个模块。为读者上了一个很好的推荐引擎架构课。
不过我个人并不建议把这本书作为学习推荐的第一本书,因为这本书对于初学者来说有些过于复杂了,毕竟时常出现的数学公式可能会让人望而生却。对于初学者的第一本书,无论是《集体智慧编程》还是项亮的《推荐系统实践》都是很棒的入门书。
而这本书是我目前最好的初学者的第二本书,在对推荐系统有着初步了解的情况下对推荐系统整体有一个了解和把控,然后接下来再针对每一章所提出的问题,以及细节去专门看对应的书或者是paper,或者再去读大名鼎鼎的Recommender System Handbook,一定会让你受益匪浅。
最后,打个广告,如果你做完了上面的步骤,Welcome to douban~