序三
翻翻我的邮箱,可以看到2010年6月就有项亮组织大家讨论《推荐系统实践》一书目录结构的记录。实际上最初的讨论比这还早,而且从北京初夏难得一见的暴雨砸在咖啡馆的玻璃窗上开始,一直持续到了金秋时节。讨论的焦点在于为什么要写一本关于推荐系统的书、从什么角度写以及写给谁看。
第一个问题相对好回答。推荐系统是目前互联网世界最常见的智能产品形式。从电子商务、音乐视频网站,到作为互联网经济支柱的在线广告和新颖的在线应用推荐,到处都有推荐系统的身影。这些网站和业务的开创者大都是年轻热情的工程师,或者有志于投身互联网行业的同学。虽然我们并非都有相关学术研究的背景,也并非都有在企业中积累的经验,但是大家都不乏学习的热情,而且充满着对研发成功推荐系统的期待。因此参与讨论的朋友都赞同从实践者的角度来写这本书,写给希望一起学习和实践的朋友们。讨论并不是空想。在此期间,项亮建立了一个wiki系统,样章一发布在上面,一些朋友就开始修改。经过将近一年的努力,我们看到了本书的初稿。
初识项亮是在2009年,当时项亮还是中国科学院的一名博士研究生,一方面积极参与Netflix和其他推荐系统比赛并取得了漂亮的成绩,一方面积极参与组织了recsys学术会议。作为一个有很多业界公司支持的学术交流活动,recsys在建立之初就吸引了很多同学和工程师。项亮毕业后进入Hulu公司,开始了工业级别推荐系统的开发工作,并一如既往地注意学习、总结和分享。我在recsys做了一次关于并行机器学习技术的报告后,项亮介绍我认识了本书的几位主要贡献者。随后不久,大家就开始酝酿本书的写作。项亮的经历在很大程度上决定了本书的写作目标:希望帮助在校学生了解推荐系统的业界起源和应用,把握研究方向;帮助工程师总结各类方法,迅速开发出一个推荐系统并持续优化之。
推荐系统是一个很大的话题。各种在线甚至部分离线应用中,都有各式各样目标不一的推荐系统,小到论文推荐,大到用户兴趣定向的在线广告系统。在学术圈,相关的研究成果亦可谓多矣。实际上,几周前大家还在讨论最新的机器学习方法可能给推荐系统带来的变化。可是,本书不论是写成一本学术专著,还是一部产品大全,都难免浩瀚空泛的尴尬,对大家难有帮助。因此,作者花费了大量精力在组织目录结构上,希望覆盖推荐系统的若干重要问题,同时让每个问题下既有实际产品介绍,也有技术思路介绍。为了保证可读性,本书重在常见方法和技术思路,而非全面介绍各种思想和最新研究成果。为了保证可操作性,重要的算法都配有Python语言的示例程序。
我想,这本实践者写给实践者的书,留下的是作者对“思考”和“学习”的辩证足迹。我希望本书的出版能带动更多的朋友一起把足迹走成大路,而大路的前方,是更多成功的互联网应用和完美的技术方法。
——王益
腾讯公司情境广告中心总监