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