新入手一本《美团机器学习实践》,读完觉得很有意思,把一部分内容分享给大家。
这本书分为六部分,第一部分是通用流程,讲的是机器学习在实践中应用的通用流程,有些经验之谈很有意思;第二部分讲的是数据挖掘,主要包括用户画像、POI实体链接和评论挖掘;第三部分是搜索和推荐,顾名思义,讲的是美团中的应用的搜索和推荐架构;第四部分计算广告;第五部分讲的是深度学习;第六部分讲的是算法工程。
第一部分和第五部分属于通用流程,有一些实践中应用的经验值得学习,不过相对而言,要想了解这些部分不如去看专讲这些的书籍。第六部分笔者个人也觉得较为平常,要想了解这些东西更推荐去阅读专门讲并行机器学习的部分。真正出彩的在于第二、三、四部分,或者说,凡是涉及到POI和O2O的部分都非常值得一读!
美团可以说是当之无愧的国内最大的POI和O2O应用的公司,他们在这方面的经验积累极多,架构非常漂亮,而且即使我这个不大了解这方面的人读起来,也能对机器学习在POI和O2方面的应用有大致的了解。接下来笔者将介绍一些自己觉得很有趣的部分。
POI实体链接
坦率地说,第二部分中,用户画像部分的架构最令我觉得出色,但最有参考价值的部分是POI实体链接。做用户画像和评论挖掘的公司很多,但美团的POI算法却很有可能是国内最好的。
POI在这本书里代表一个信息实体,比如在酒店业务中就代表一个酒店。维护一个优质的POI信息库是一切算法的基础。美团在这一部分讨论的是这样一个问题:美团已经有的POI信息库,称为库存POI;需要录入的POI信息库,称为待选POI库。待选POI库中的大部分POI都可能本来就在库存POI中,只是名称、描述、信息等可能不同,一个在应用中比较重要的问题就是将待选POI库对应到库存POI库中去。
以酒店业务为例,金泉假日酒店和金泉商务宾馆可能是同一家实体,要怎么把它们对应起来呢?从名称相似度上入手是大家都想得到的解决方案,但是这个方法未必准确,因此就需要引入其他信息,比如地址、电话、经纬度等。在这个场景中还有一个问题要关注,即不能进行全量比较,否则我们就将得到一个复杂度至少为待选POI库大小*库存POI库大小的算法,这个复杂度在实践中是不可接受的。那么美团的方案是什么呢?
第一步:缩小候选集
- 通过聚类的方式进行POI聚合:即首先在城市维度进行聚合
- 建立倒排索引,缩小比较候选集
第二步:相似度比较
这一步有两个方法:
- if-else连击,即通过一连串if-else条件判定是否同一实体
- 相似度打分:对不同POI的每一个维度进行打分,加权比较相似度
具体流程
这一工作的具体流程为:
数据清洗-》特征生成(各种不同模块)-》模型选择与效果评估
他们的候选模型包括GBDT,SVM,LR等,不算复杂,但是讲到了不少实践中的细节。
O2O场景下的搜索
O2O场景下的搜索比普通的搜索问题有意思,因为它是深度依赖于当前环境的。用户在日本、在北京、在武汉搜同一个词往往代表着不同的意思。用户在中午搜美食、下午搜美食、晚上搜美食,往往期待得到的美食推荐完全不相同。用户搜地点时未必想找地点,也可能是找地点附近的餐厅或酒店。这些问题对搜索系统提出了非常高的要求。
在美团中,搜索引擎要解决的主要问题如下:
- 如何定义用户的查询意图?
- 如何识别用户的查询意图?
- 如何将用户的查询意图链接到特定实体?
- 如何引导用户完成搜索?
这本书对这些问题的解决方法都做了详细的解释。笔者就不在这里详细描述了。而另一个问题是搜索结果的排序方式,美团认为自己的搜索排序场景主要有如下四个特点:
- 移动化:用户的位置不断移动,并且距离是排序的重要因素
- 场景化:用户在家、工作地点、户外或者店内,这些不同场景对于用户意图的理解是非常重要的
- 本地化:搜索查询的目标往往是本地化的
- 个性化:用户偏好较为明显
针对这些特点,美团实现了自己的搜索排序框架。
O2O场景下的推荐
美团认为O2O下的推荐与其他推荐的主要区别包括如下三点:
- 地理位置因素
- 用户历史行为:与其他的推荐场景不同,用户在同一家店的复购可能性很高
- 实时推荐:一是需要考虑用户的实时地理位置,二是需要考虑消费的实时性,在O2O场景下,用户从考虑消费到最终下单的时间非常短
美团使用的仍然是经典的推荐框架,包括召回和排序两个阶段:
- 召回阶段:召回策略包括基于协同过滤的召回、基于位置的召回、基于搜索查询的召回、基于图的召回和基于实时用户行为的召回
- 排序阶段;排序模型仍然是经典的模型,没有什么特别之处,特征则包括:item维度的特征、用户维度的特征、用户和item的交叉特征、距离特征和场景特征。
从行文来看,推荐并不是美团最重视的入口。
O2O场景下的广告营销
O2O场景下的广告营销主要具有如下特点:
- 移动化:主要体现在精确性、即时性和互动性三个方面
- 本地化:美团发现超过90%的交易中用户和商家的距离小于3公里
- 场景化:移动条件下的场景比web条件下更为精确
- 多样性:O2O模式面对的商户各种各样,需求差异很大
综合这些特点,美团的广告排序机制非常有趣,它可以实现一些在web条件下根本不可能实现的需求:例如分辨哪些是流失单,流失到了哪个竞争对手手里。我不在这里赘述它的具体内容,但整体而言还是很有意思。
总结
从个人角度来说,这本书最大的价值在于视野拓展。不同的场景下,算法要面对的问题千差万别,有些问题往往是不做这些的人根本想不到的。很多时候,发现问题、定位问题的价值比解决问题还要高。所以,多看看不同场景下的算法应用是非常有帮助的,与各位读者共勉。要是有机会的话,我们下次再分析一下美团的用户画像架构。