《美团机器学习实践》读后感

       《美团机器学习实践》这本书对很多算法的同学而言,应该都不陌生,我自己也是大概一年多前就有所耳闻,但直到今年才真正买了一本,好好看了下,看完感触颇深,感觉这本书应该是最近半年读过的非常棒的一本工程类书籍。熟悉算法的同学应该对周志华老师的《机器学习》、李航老师的《统计学习方法》、或者是三巨头的《深度学习》都耳熟能详,甚至是比较入门的那本《python机器学习》,但美团的这本,我觉得是与上述概念性、知识性的书籍有着本质区别,如果让我用一个词来给这本书做一个注解,那这个词必然是——工程,毫无疑问,这本书是写给工程师看的,美团的各位同学在编写这本书的时候应该跟他们一贯以来在博客方面的知识分享类似,从工程化的角度来描述机器学习是如何影响到相关业务的,这一点在18年听美团王仲远博士讲解知识图谱的时候也有类似的感受。

        接下来,我想从我自己作为一个数据分析师/算法工程师的角度来描写一下这本书的一些优缺点(主要还是优点)。

        从大的分析角度来看,这本书以通用流程、数据挖掘、搜索和推荐、计算广告以及深度学习五个方面来整理。

         1、在通用流程中,涵盖了问题建模、特征工程、常用模型和模型融合,其中的问题建模主要是以常用的评估指标,包括分类和回归相关的一些指标,包括排序相关的指标(用于推荐系统),这些内容在常见的机器学习书籍中都能找到相关踪影,但在样本选择这一个小节中,美团同学给了比较详细的样本选择实例,尤其是对于推荐模型中,正负样本的选择方式,给了很多工程上常用的并且具有合理依据的选择方法;在特征工程中,是用了比较多的文字来描述常用的连续型特征、离散型特征,同时也讲到了时间特征、空间特征以及文本特征,后面的这几类特征对于习惯了文本分析和深度学习算法的同学而言,并不罕见,但是对于一些习惯了逻辑回归或者决策树算法的同学而言,还是有很多参考价值,比方说笔者曾经所在的team,主要是以风控算法为主,当时对于用户的收货地址、还有住址等文本信息,处理的方式相对而言比较粗糙,但实际上在搞了一段时间的NLP相关工作以后,文本的处理方式其实是多种多样,如果有关注过阿里近两年的推荐系统论文的话,会发现,很多算法就是对item的文本处理或者是以item作为一系列的会话session进行的时间序列分析,这些无疑是能够给人以正向的思考。同时,在他们描述的模型融合中,也给了一些比较有意思的思考,常见的模型融合方式从平均法到投票法,还有对模型本身进行的bagging算法和stacking算法,这些都是很有意义的尝试,笔者所在的team曾经在开展很多工作时都是采用的模型赛马机制,往往就是从多个模型中挑选一个,当时如果好好考虑的话,也可以考虑使用模型融合的方法。

          2、在数据挖掘部分,主要涵盖了用户画像、POI实体连接和评论挖掘,其中评论挖掘和POI实体连接算的上是数据挖掘的两个实例,用户画像则是他们公司的一个主要基本功能,目前很多公司都在开展用户画像工作,无论是电商相关、还是互联网金融相关,都投入了大量的人力物力来进行用户画像开发,也形成了一个又一个的ppt,ppt里面都不约而同地都会写谁谁可能是个有点小资的白领,谁谁可能是个霸道总裁,对小白领和霸道总裁我们该怎么怎么做,但很少有把画像层和实际业务层讲的比较清楚的,最起码这个画像做了,我给谁用、怎么用,这是一件非常重要的事情,实际使用中,这个工作一般是由etl、BI同学协作完成,但是很多算法的同学,并没有参与这个过程,这直接导致算法同学在使用画像的时候跟用户画像本身的开发目的及流程是有些脱节的,算法的同学一般都是coding能力比较强,tensorflow、pytorch玩的666,但对于业务的理解可能还是需要向BI的同学学习学习,好的特征选择范围能够直接决定模型最终的天花板。至于POI的实体连接以及评论数据的挖掘,结合的很多都是NLP相关的工作,比如说词性标注、命名实体识别(NER),句子切分、标签提取等,这些工作对于NLPer应该是手到擒来,但并不是每一个算法同学都是NLP专家,所以说,好的算法同学,应当是能够挖掘别人挖掘不到的数据,同时也能够挖掘别人不能挖掘的数据,这个对算法同学的知识广度有一定的要求。

        3、搜素和推荐,这是我看了以后感触最深的一个部分,也是美团机器学习使用最为广泛的场景,笔者目前所在的团队也负责公司的搜索框和部分功能的推荐,美团同学在描述他们的O2O场景下的查询理解和用户引导时,其实主要讲的就是搜索,怎么用用户给出的带有特定指向的query来得出用户想要查询的结果呢,这个工作不仅仅是算法这么简单,其中还涉及了开发同学需要考虑的倒排索引、词语查询改写、查询纠错等一系列工作,但同时算法同学能够提供的意图识别、实体识别都是能够进一步提升搜索的结果,笔者目前的团队,在开展搜索开发时,并没有考虑到实体识别与意图识别的增益,这个在我和搜索开发的同学讨论后,都觉得这是后续版本可以添加的功能,并且由于美团的O2O场景本身是一个非常复杂的业务场景,他们的APP涵盖的服务范围应该是非常广泛的,包括吃喝玩乐的所有信息,因此,他们在进行搜索开发时做了一系列非常有用的优化,这些优化对于我们一些更为简单的场景而言,未见得是必须的,但是在某些方面确实是能够给出一定的指引。另外这个部分的O2O场景排序讲了目前对于排序而言比较常用的pointwise和pairwise,并且也对场景化排序的指标给了一个比较好的验证指标,这个内容和第一章的指标类型是互相呼应的,同时,他们也并没有一上来就是使用非常深度的模型,而是采用的GBDT等简单模型。另外就是推荐,这块我觉得写得比较好的是他们的推荐框架描述,对于大部分推荐系统而言,都是要把召回部分和粗排、精排部分进行分割处理,简而言之,其实是为了防止过大的计算,另外,召回、粗排和精排各部分模型的不一致也可以理解为一种广义上的模型融合,同时,在推荐过程中不光是要考虑到用户点击情况,而是应该对平台、用户、广告主等多方面的协同优化,体现在最终的指标衡量上,实际上是一个需要多方考量的综合性指标,不仅有CTR和CVR,同时也要考虑到用户的感受,以及新颖度、多样性,总之,推荐绝对不是简单的机器学习模型,而是一个从前到后的解决方案,模型在这之中只是一个比较小的环节。

       4、计算广告部分,这一部分主要讲的是广告营销和用户偏好,广告营销部分从平台收益、商户感知和用户体验出发,描述了计算广告所需要考虑的方面,从本质上而言,这也代表了平台的短期利益和长期利益的权衡,如何能够在不影响平台的长期利益(商户感知和用户体验)的前提下,尽可能扩大平台的短期利益(平台的广告收入),相关模型并没有介绍的太复杂,都是常见的LR、FM/FFM和Wide & Deep为代表的深度学习模型;另外,在用户偏好和损失建模这块,提到了广告价值与偏好损失的优化目标和模型建模,这块内容我觉得对于理解广告算法是非常有帮助的,另外,重提了PairWise的算法,GBRank和RankNet,但是也有一些原来电商的同学跟我交流时说到这种算法在电商的广告排序中效果不佳,可能这就是见仁见智的事情,模型效果更多还是依赖于能够应用的场景以及能够获得的数据。

      5、深度学习部分,这块内容,怎么讲呢,明显感觉得到是跟前面的搜索、推荐等工作是脱节的,个人认为深度学习目前应用最为广泛的还是图像识别和文本处理两块,比方说OCR识别在美团的应用,通过这一部分的阅读,能够体会到深度学习在O2O场景中确实能够起到比较大的作用,比方说OCR识别、色情图片识别、恶意差评识别、水印检测等等,这一类场景都是传统的机器学习难以提取特征的场景,总之,近两年很明显的一个趋势是,做机器学习的同学,根本不可能绕开深度学习了,现在的情形和几年前不一样,一个xgboost、LR模型就能够吃饭,机器学习面临的场景更为复杂,非结构化数据、文本数据、图像数据越来越丰富,传统的机器学习模型在面对这类场景和数据时明显非常吃力。

      6、算法工程,这个部分是由大规模机器学习和特征工程、实验平台构成,我觉得撇开大规模机器学习不谈,单纯看第17章的特征工程和实验平台,也是非常有用的,因为这块的内容实际上是讲的模型怎么在生产环境中产生、实验、起作用,包括有对A/B测试的思考,特征有效性的跟踪等等,都是非常好的工程经验,再好的模型,最终也是需要能够落地到场景当中,除此之外,特征工程和实验平台的好坏是能够决定一个公司机器学习相关工作的开发效率和最终效果的,目前在推荐系统中比较火热的在线学习,也是依赖于一个比较好的特征工程和线上模型平台,而这些工作,仅仅依靠一个算法团队是不可能完成的,而是需要依赖于大数据的ETL、实时数据、BI团队、算法团队等一系列人员的共同协作,同时还要与业务人员有比较密切的沟通才能够实现。

      总之,记了一大篇流水账,算是对最近读完的这本书的一个记录,思考的东西其实很多,但是写到纸面上以后发现大部分是对原书本内容的潦草概括,总之,这是一本很好的工程实践指导,感谢美团技术团队的无私分享。

 

 

你可能感兴趣的:(深度学习,机器学习)