阅读更多
8月11日晚20:30,受CSDN人工智能用户群邀请,美团推荐与个性化团队技术经理沈国阳来到CSDN在线视频分享平台,为我们深度解析美团本地生活服务推荐的工作经验,并与群友进行互动交流。沈国阳重点介绍了美团推荐系统的架构和特色,以及在排序层面的主要工作。

沈国阳表示, 对于推荐系统的效果提高,排序比候选集的贡献要大很多。美团排序的主要工作包括:模型及建模,样本采样及label处理,去除position bias,特征工程,Interleaving的使用,以及Online Learning的尝试等。
以下为分享内容文字整理:
美团推荐产品

沈国阳首先介绍了美团的几个重要的推荐产品:
1.猜你喜欢:美团最重要的推荐产品,目标是让用户打开美团 App的时候,可以最快找到他们想要的团购服务。已经做了2年多,交易额占比从最初的0.7%提高到7~8%。
2.首页频道推荐:若干频道是固定的,若干频道是根据用户的个人偏好推荐出来的。这个区域为美团 app带来40%以上交易额。
3.今日推荐个性化推送:美团的个性化推送的产品,目的是在用户打开美团 App前,就把他们最感兴趣的服务推送给他们,促使用户点击及下单,从而提高用户的活跃度。
4.品类列表的个性化排序:美团首页的那些品类频道区,点进去的列表的智能排序,也是我们进行个性化优化的重要位置。相对于搜索,这个位置用户的意图不是非常明确,个性化程度较高;但是相对于首页的猜你喜欢,这个位置用户的意图则要强一些,个性化程度稍低一些。
美团推荐系统的目标

美团推荐系统的目标,首先是要帮助用户快速找到所需。推荐系统作为美团C端平台的重要组成部分,其目标就是为消费者快速找到“高品质,低价格”的服务。判断是否实现目标,主要是看消费者看了推荐结果以后的下单转化效果。

另外,美团希望消费者对美团的品牌认知是“吃喝玩乐”的大平台,所以也希望推荐出来的结果包含多个品类的结果,即推荐结果有多样性。

目前,美团的目标还主要集中在下单转化效果,随着下单率效果的大幅度提高,今后会把重心转到多样性。

推荐系统的整体框架

沈国阳接下来介绍了美团提高推荐下单转化效果的实现路径。其推荐系统的整体框架如下:



沈国阳解释说,最顶层显示的是推荐系统对外的服务接口。由于不同展位的输入输出参数差异较大,因此这一层没有做过多的抽象,每个展位有自己特定的接口形式。

接口层会调用abtest配置模块,对接入的流量按照uuid、城市等维度进行分流量的配置。abtest对于推荐系统是很重要的基础模块,美团对这个模块的要求,是可以有友好的配置界面,灵活根据不同不同维度进行分流量配置,并且立即生效,无需重启服务。

Abtest配置模块之下,是推荐候选集的生成,排序和业务处理模块。候选集生成和排序模块,除了针对不同展位有不同逻辑以外,对同一展位的不同策略也有不同的逻辑。abtest模块在配置流量策略的时候,可以根据需要单独配置候选集策略和排序策略。业务规则处理模块,则有统一的处理逻辑,也有每个展位独特的逻辑,而同一展位的不同策略,通常来说在这一层处理逻辑不会有区别。

重新从接口层开始换个方向来看这个框架。在响应请求的同时,会打印一些必要的日志,记录这次请求的一些必要的上下文信息以及用户及item相关的特征信息,以便生成训练数据。这些日志通过flume传输到HDFS上面。除了推荐系统以外的美团App其他后台服务,也会把各自的日志传递给HDFS,以方便后续进行数据挖掘。借助Hadoop、Hive、Spark等平台以及美团自己实现的一些机器学习/推荐通用算法,对原始日志进行处理,从而得到需要的各种数据及模型:包括用户的profile信息,用户之间的相似度,item之间的相似度,后续我们将要重点介绍的地理位置与item之间的关联关系,以及转化率预估模型。

这些数据及模型在刚才介绍的候选集生成模块,排序模块,业务处理模块会被使用到。

在推荐系统的候选集生成这一块,美团重度使用了传统的user based,item based协同过滤算法。这里面需要注意的是,美团引入了时间衰减的因子,从而使新的行为起的作用大于老的行为,从结果来看,这确实对于效果会有提升。同时,美团尝试了不同的相似度计算方式,发现基于llr(Log-likelihood ratio)的相似度计算比cosine相似度计算的最终效果要好一些。在首页的猜你喜欢这个展位上,美团发现user based算法比item based效果要好很多。原因和user based算法更容易推荐出有一定新颖性的item有关。

美团推荐平台的重要特点

上述传统协同过滤算法,需要在用户行为较丰富的情况下才能奏效。而对于那些行为稀少的用户,需要根据平台的特点进行做好冷启动策略。沈国阳介绍美团平台的几个重要特点如下:

1. 冷启动用户占比高



2. 移动终端占比高

美团的移动终端用户占比和移动终端交易额,都已经超过美团整体交易额的90%。这导致美团用户的使用场景往往是这样的,和朋友约定到哪个shopping mall逛街,逛完了再用美团看看周边有什么饭馆,决定要去哪里吃饭。或者看完一场电影,出来再上美团看看,决定去哪个酒店。

这就引出美团平台交易的另外2个特点。

3. 持券时间短

用户从下单到消费的时间间隔。下图显示的是美团平台上不同类型交易在持券时间上的分布。从中可以看出,电影,美食这样的高频品类的持券时间都非常短,40%的用户在一个小时以内消费。只有像摄影写真,美发这样的低频品类,持券时间会比较长。而美团平台上,美食,电影这种高频品类的交易额占比非常高。



4. 持券距离近

持券距离指的是用户下单地点和消费地点之间的距离。上图纵轴表示对应城市的某个品类的所有交易订单中,持券距离最近的top 80%的交易中的最远的持券距离。可见,大部分城市和品类,top 80%持券距离在2000米以内。

“本地人热单”策略

基于以上特点,美团在用户冷启动上,研发了“本地人热单”策略。如下图所示,就是指一定区域内的用户,浏览或者购买较多的top items。



这里面又有一个问题,这个区域多大范围,怎么定义呢?

美团的目标是,使这个区域足够细,同时又能够使这个区域内的用户行为统计有一定的统计意义。目前使用的是商圈,平均覆盖范围在十几平方公里。

给用户进行推荐时,主要根据用户的实时商圈进行推荐该商圈的本地人热单。但是,由于技术原因或者其他原因,用户的实时位置并不总是能够获取到,或者用户的实时商圈,可推荐的item数量太少。这时候,需要采用其他的替代方案。美团在用户地理位置方面进行了大量挖掘工作。例如,用户周末/平时常去商圈,用户的周末/平时常消费商圈,用户的工作地/居住地附近商圈等,用这些商圈信息,可以根据具体情况,丰富推荐的item。

不同时间段的用户需求是不一样的,因此每个时间段的本地人热单应该是变化的。然而划分太细的时间段,数据量往往又太稀疏,因此通过把其他时段的数据根据时间相似度加权统计进来,效果又会有进一步的提高。



美团排序的主要工作

沈国阳还分享了美团排序经验。他表示,对于推荐系统的效果提高,排序比候选集的贡献要大很多。美团在排序方面所做的主要工作如下:

1.模型及建模

目前美团的推荐系统的排序模型主要是Additive Groves模型,另外也在探索FTRL这样的在线学习模型。AG模型是一种决策树类型的模型,属于非线性模型。这种非线性模型的特点,是一定程度上能够自动进行特征组合的工作,不需要人工进行大量这类工作。

建模方法和传统的ctr预估建模方法一样,是point wise的模型。每一个item对一个用户的每次展示可以作为一个样本,这个item是否被点击或者是否被下单作为标记。美团会为这些样本抽取一些item特征,用户特征,上下文特征,item与用户的交叉特征。

2.样本采样及label处理

由于我们的最终目标是提高item的下单转化效果,所以我们需要重点采用用户下单行为作为标记。但是如果只用下单行为,又会导致数据较为稀疏,有很大比例的用户很长时间内是没有下单行为的。所以我们还需要使用点击行为作为标记。而对点击行为和下单行为对于训练目标的价值是不一样的,对它们需要做不同的处理。美团尝试了2种方式,在参数取得比较合适的情况下,二者的结果效果都很好。一种方式是提高下单样本的采样比例,比如相对点击样本提高30倍。一种方式是提高标记值。比如下单行为的标记值为30,点击行为的标记值为1。

3.去除position bias

item在展示列表中的位置,对item的点击概率和下单概率是有非常大影响的,排名越靠前的item,越容易被点击和下单,这就是position bias的含义。在抽取特征和训练模型的时候,就需要很好去除这种position bias。我们在两个地方做这种处理:一个是在计算item的历史ctr和历史cvr的时候,首先要计算出每个位置的历史平均点击率ctr_p,和历史平均下单率cvr_p,然后在计算item的每次点击和下单的时候,都根据这个item被展示的位置,计算为ctr_0/ctr_p及cvr_0/ctr_p;一个是在产生训练样本的时候,把展示位置作为特征放在样本里面,并且在使用模型的时候,把展示位置特征统一置为0。

4.特征工程

特征工程是排序模型的最重要工作,排序带来的效果提升,大部分是由特征工程带来的。但是提起这部分工作,又会比较枯燥,就是不断地去接触和理解业务数据,试图从中挖掘出和用户转化相关的特征。美团使用的主要特征包括:
  • 上下文特征:如时间,地理位置(商圈),天气,温度等。
  • item特征:如团购服务的价格,销量,用户评分。这部分特征用得很多,但是过多公开容易引起作 弊,所以不详细介绍。
  • 用户特征:用户的属性特征,如年龄,性别,婚育状态,品类偏好,价格偏好等。

5. Interleaving的使用

美团进行策略效果对比所使用的方法是abtest。abtest的好处是能够对多个策略的效果差异给出定量的评估,但是也存在一些问题,比如,如果两个策略的效果差异较小,abtest容易给出波动较大的结果,需要较长时间(一般是一周)才能判断结果,会导致效果迭代速度较慢。为了解决这个问题,美团采用interleaving效果评估方式作为补充。Interleaving方式的好处是所需流量较小,灵敏度较高,一般24小时之内可以给出结论,但是它只能给定性结论而不能给定量结论。Interleaving的基本思想是把两个策略的结果混合在一起,通过统计分析用户选择哪个策略的概率更大。具体列表混合的实现方式有多种。下面介绍比较简单使用的一种,叫Balanced方式。



两种参与对比的策略的列表如图所示,为A列表及B列表。A列表的顺序为a,bcdgh,B列表的顺序为beafgh。Balanced合并方式的A first方式如下:A列表的a,B列表b,A列表的b重复了,顺延到B列表的e,如此循环下去。

采用这种列表混合方式的效果评估方式如下:



统计所有用户对这个列表的下单情况。用户点击的item在A列表排序靠前,则wins(A)++,用户点击的item在B列表排序靠前,则wins(B)++,中间情况则ites(A,B)++。德尔塔ab为正表示A策略优于B策略。

例如,wins(A)=40%, wins(B)=30%,tie=30%,计算结果为5%,意味着A策略比B策略的效果好。

6.Online Learning的尝试

美团还尝试引入Online Learning。沈国阳表示,互联网上的机器学习和传统机器学习存在很重要的区别:互联网上的机器学习面对的是活生生的用户,而用户群体的行为是受很多因素的影响不断变化的,季节因素,天气因素,空气质量,社会潮流,甚至一档电视节目,都会对用户的行为产生很大的影响,比如前段时间的奔跑吧兄弟,引发了撕名牌的热潮。为了能够更快捕捉用户行为模式的变化,非常有必要引入Online Learning。

美团online learning的工作正在进展中,效果还不够稳定。沈国阳预告说,美团将会在9月中旬举行的美团第二届技术沙龙活动中着重介绍其Online Learning算法。

课件分享(墙外): http://www.slideshare.net/GuoyangShen1/ss-51615264

CSDN分流下载: http://download.csdn.net/detail/happytofly/9004657
  • 大小: 61.8 KB
  • 大小: 20.9 KB
  • 大小: 20.9 KB
  • 大小: 23.2 KB
  • 大小: 19.8 KB
  • 大小: 30.7 KB
  • 大小: 15.6 KB
1
0
评论 共 1 条 请登录后发表评论
1 楼 rather_lonely 2015-08-14 18:11
good 

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 沈国阳:美团推荐系统的整体框架及关键工作

    美团推荐与个性化团队技术经理沈国阳来到CSDN在线视频分享平台,为我们深度解析美团本地生活服务推荐的工作经验,并与群友进行互动交流。沈国阳重点介绍了美团推荐系统的架构和特色,以及在排序层面的主要工作。视频...

  • 【整理】小程序 使用 behaviors 多个页面有共享数据字段和方法。

    // my-behavior.js module.exports = Behavior({ data: { sharedText: 'This is a piece of data shared between pages.' }, methods: { sharedMethod: function() { this.data.sharedText === 'This is a piece of data shared between pages.' } .

  • 美团推荐系统整体框架与关键工作

    摘要:美团推荐与个性化团队技术经理沈国阳来到CSDN在线视频分享平台,为我们深度解析美团本地生活服务推荐的工作经验,并与群友进行互动交流。沈国阳重点介绍了美团推荐系统的架构和特色,以及在排序层面的主要工作...

  • 美团推荐系统

    沈国阳:美团推荐系统整体框架与关键工作 http://www.csdn.net/article/2015-08-13/2825455 摘要:美团推荐与个性化团队技术经理沈国阳来到CSDN在线视频分享平台,为我们深度解析美团本地生活服务推荐...

  • 文章汇总【特征工程-推荐系统-大数据-在线学习-广告】

    1. 基于机器学习方法的POI品类推荐算法 2. 美团推荐算法实践 3. 实例详解机器学习如何解决问题 4. 机器学习中的数据清洗与特征处理综述 5. 序列化和反序列化 6. 美团O2O排序解决方案...10. 沈国阳:美团推荐系统整

  • 大数据驱动下的微博社会化推荐

    2009年在北京理工大学获得硕士学位后,加入新浪研发中心,从事自然语言处理领域的研发工作。 责编:仲浩(zhonghao@csdn.net) 本文为《程序员》原创文章,未经允许不得转载,更多精彩文章请订阅2016年程序员 ...

  • 转:你不能错过的“推荐系统”资料合集

    推荐系统的搭建是个复杂工程,涉及到实时计算、离线计算,以及各种数据采集、流转等,对自建推荐系统来说,更是很有困难。云栖社区将在6月16日晚20点组织一场在线分享《21天搭建推荐系统》,主要介绍推荐系统基本...

  • 你不能错过的“推荐系统”资料合集

    6月16日,阿里云技术专家郑重...推荐系统的搭建是个复杂工程,涉及到实时计算、离线计算,以及各种数据采集、流转等,对自建推荐系统来说,更是很有困难。云栖社区将在6月16日晚20点组织一场在线分享《21天搭建...

  • 架构学习资料精选

    架构师技术图谱包括:分布式、前端、大数据、存储、微服务、推荐系统、框架、消息队列、编程语言、设计模式、重构、集群等内容。 体验小程序版「架构师技术图谱」,扫描下方微信小程序码即可。 欢迎订阅《码农周刊...

  • wheel-0.9.6-py27-none-any.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

  • 基于ssm布卡维纳红酒网页平台.zip

    基于ssm布卡维纳红酒网页平台.zip

  • 基于SSM的旅游管理系统.zip

    基于SSM的旅游管理系统.zip

  • 菜鸟驿站(诚毅小高层对面厂房内) 2.m4a

    菜鸟驿站(诚毅小高层对面厂房内) 2.m4a

  • tensorflow_ranking-0.4.0-py2.py3-none-any.whl

    算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

  • 物联网系统运维,NFS存储部署,NFS软件安装

    物联网系统运维,NFS存储部署,NFS软件安装:查询是否安装,配置好防火墙,以免默认的防火墙策略禁止正常的NFS共享服务。开启防火墙,在NFS服务器上建立用于NFS文件共享的目录,并设置足够的权限确保其他人也有写入权限。在NFS服务器上建立用于NFS文件共享的目录,并设置足够的权限确保其他人也有写入权限。启动和启用NFS服务程序。由于在使用NFS服务进行文件共享之前,需要使用RPC(Remote Procedure Call,远程过程调用)服务将NFS服务器的IP地址和端口号等信息发送给客户端。因此,在启动NFS服务之前,还需要顺带重启并启用rpcbind设置完毕 打开克隆机修改网卡后重启网卡并测试能否联网服务程序,并将这两个服务一并加入开机启动项中。查看服务器共享的文件数据在NFS客户端创建一个挂载目录。使用mount命令并结合-t参数,指定要挂载的文件系统的类型,并在命令后面写上服务器的IP地址、服务器上的共享目录以及要挂载到本地系统(即客户端)的目录。如果希望NFS文件共享服务能一直有效,则需要将其写入到fstab文件中:

  • 基于java web+ssm的公益网站的设计与实现.zip

    基于java web+ssm的公益网站的设计与实现.zip

  • 三菱PLC例程源码SFC试验程序

    三菱PLC例程源码SFC试验程序本资源系百度网盘分享地址

  • tensorflow_object_detection_api-0.1.1.tar.gz

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

  • tensorflow_model_optimization-0.4.1.dev0-py2.py3-none-any.whl

    算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

Global site tag (gtag.js) - Google Analytics