**序一 2018年春天,我从西雅图飞回阔别七年的北京,加入了一家互联网电商公司。我们的团队负责公司的搜索、**和智能客服业务。过去十多年间,随着大规模云计算的普及和GPU的发展,各种机器学习算法得到了快速发展,成为各大互联网公司促进业务增长的强劲引擎。不管是在学术界还是工业界,各种新算法层出不穷,但是是否能真正落地,真正地应用在商业场景中并带来可观收益,都需要很多的尝试和摸索。 在这个新公司中,我结识了一批像刘宇和刘书斌这样的��互联网人,他们非常好学、务实、努力,并充满热情,都希望能够利用新技术、新方法为公司带来新的业务增长。不过一开始,尤其是在各种新算法、新论文博得大众眼球的时候,很多人容易陷入一个误区,就是过多使用*新的算法或者倾向于使用复杂的算法。实际上,深入了解业务场景,合理地收集和整理正确反映用户行为和业务场景数据,是对算法提升*直接、*有效的手段。从如何把用户的购买行为进行合理的归因,到数据如何做归一化,甚至如何处理一些细节的数值越界问题,都直接影响搜索和**算法的效果。我们只有把这些“小”问题处理好了,才有余力尝试更加复杂的算法模型。 对于一个经营服装家居的电商平台来说,如何帮助用户输入合理的搜索词并且在大量的产品当中快速找到满意的产品,对用户体验和业务提升都是非常重要的。刘宇在自然语言处理和理解方面带领团队做了很多研究和开发工作,积累了很多经验。我们经常在一起讨论有关系统和算法的设计问题,应对各种挑战和难点。在搜索和**系统中,我们不仅需要从产品角度定义用户关注的产品属性,还需要从用户的角度挖掘对产品的分类和属性的定义,还要合并、去重和分组,*后需要进行点击率预测。在一系列的处理过程中,并不是用*复杂、*新的算法就可以解决问题的,而是需要寻找问题的关键步骤进行**投入,对非关键问题简化处理,或者在将来的迭代中再考虑优化。对于过于复杂的问题,我们还要考虑适当缩小问题的空间来降低解决问题的复杂度。当然,一个应用*终能够正式运用到产品中,在工程实践中还需要非常多的精雕细琢。 刘宇和几位同事把过去几年学习到的各种算法以及应用的经验整理记录下来,这对刚刚开始进入算法工作的工程研究人员会有很大帮助。如何在实际场景中应用这些知识,还需要每个人根据实际问题不断探索。苹果公司一直非常推崇创新和创意,但是它的创始人史蒂芬·乔布斯曾经表达过一种担心—大家会以为只要有好的创新和好的创意,一个产品就成功了。实际上,从一个伟大的创意到一个伟大的产品需要我们不断地修正思路,不断地做出必要的取舍。在算法工程和工作中,我们也需要使用同样的思路。一个*优的算法固然重要,但是真正的成功在于不断实践,投入足够的精力和时间去解决那些看似不重要的周边问题,并需要对问题做出必要的裁剪,通过快速迭代逐步递进,从而给我们的工作带来真正可观的商业价值。 孙燕峰 Hulu技术总监 2020年11月于西雅图 **序二 美国**棒球运动员及教练尤吉·贝拉(Yogi Berra)有一句名言:“从理论上讲,理论与实践没有区别;但是在实践中,两者是不一样的。” 对于在互联网公司的搜索、**、广告等人工智能领域践行的工程师来说,尤吉的这句话非常适用。一方面,这些领域的工作要求工程师在概率统计、应用数学、自然语言处理以及机器学习等方面具有扎实的基础理论知识。另一方面,在这些领域中,如何将理论应用到工程实践,解决搜索、**、广告系统等实际问题,是工程师必须面对的挑战。 今天,在市面上已经有一些关于智能系统的基础理论书籍,在网络上也有很多关于搜索、**、广告开源系统及框架的文档,但是鲜有能够将基础理论、智能系统的基本原理,以及实际应用都覆盖到位的图书。 本书作者结合自己在学校和工作中的理论学习以及实践体会,将理论、原理和实践有机地结合起来,用严谨的文字,深入浅出地阐述了自己的理论感悟与实践心得,是一本值得收藏的好书。 黄彦林 前唯品会CTO