阅读更多
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天搭建...

  • 架构学习资料精选

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

  • 基于FPGA的四相八拍步进电机控制系统设计:集成交付、正反转、加速减速及调速功能

    内容概要:本文详细介绍了基于FPGA的四相八拍步进电机控制系统的开发过程。主要内容包括:1. 使用VHDL和Verilog编写LED显示屏驱动代码,用于显示角度、学号和姓名等信息;2. 实现步进电机的正反转控制,通过状态机管理相序变化;3. 开发加速减速控制模块,确保电机启动和停止时的平稳性;4. 设计调速功能,通过调节脉冲频率实现速度控制。此外,文中还讨论了调试过程中遇到的问题及其解决方案。 适合人群:对FPGA开发和步进电机控制感兴趣的电子工程师、嵌入式系统开发者以及相关专业的学生。 使用场景及目标:适用于需要高精度运动控制的应用场合,如工业自动化、机器人技术和精密仪器等领域。目标是帮助读者掌握FPGA控制步进电机的基本原理和技术细节。 其他说明:文中提供了详细的代码片段和调试经验分享,有助于读者更好地理解和应用所学知识。同时,作者还提到了一些实用技巧,如通过PWM调节实现多级变速,以及如何避免步进电机的共振问题。

  • Android开发:基于SQLite的日历备忘录记事本项目详解与实现

    内容概要:本文详细介绍了基于Android Studio开发的日历备忘录记事本项目,涵盖日历查看、添加备忘录、闹钟提醒和删除备忘录等功能。项目使用SQLite数据库进行数据存储,通过CalendarView、EditText、Button等控件实现用户交互,并利用AlarmManager和PendingIntent实现闹钟提醒功能。此外,项目还包括数据库的设计与管理,如创建DatabaseHelper类来管理数据库操作,确保数据的安全性和完整性。文章还探讨了一些常见的开发技巧和注意事项,如时间戳的使用、手势监听的实现等。 适用人群:适用于初学者和有一定经验的Android开发者,尤其是希望深入了解Android开发基础知识和技术细节的人群。 使用场景及目标:该项目旨在帮助开发者掌握Android开发的基本技能,包括UI设计、数据库操作、闹钟提醒机制等。通过实际项目练习,开发者能够更好地理解和应用这些技术,提升自己的开发能力。 其他说明:文中提到一些进阶任务,如用Room替换SQLite、增加分类标签、实现云端同步等,鼓励开发者进一步扩展和优化项目。同时,项目源码公开,便于学习和参考。

  • Matlab实现基于SVM-Adaboost支持向量机结合Adaboost集成学习时间序列预测的详细项目实例(含完整的程序,GUI设计和代码详解)

    内容概要:本文档详细介绍了一个基于SVM(支持向量机)和Adaboost集成学习的时间序列预测项目。该项目旨在通过结合这两种强大算法,提升时间序列预测的准确性和稳定性。文档涵盖了项目的背景、目标、挑战及其解决方案,重点介绍了模型架构、数据预处理、特征选择、SVM训练、Adaboost集成、预测与误差修正等环节。此外,文档还探讨了模型在金融市场、气象、能源需求、交通流量和医疗健康等多个领域的应用潜力,并提出了未来改进的方向,如引入深度学习、多任务学习、联邦学习等先进技术。 适合人群:具备一定机器学习基础的研究人员和工程师,特别是那些从事时间序列预测工作的专业人士。 使用场景及目标:①用于金融市场、气象、能源需求、交通流量和医疗健康等领域的复杂时间序列数据预测;②通过结合SVM和Adaboost,提升预测模型的准确性和稳定性;③处理噪声数据,降低计算复杂度,提高模型的泛化能力和实时预测能力。 其他说明:文档不仅提供了详细的理论解释,还附有完整的Matlab代码示例和GUI设计指导,帮助读者理解和实践。此外,文档还讨论了模型的部署与应用,包括系统架构设计、实时数据流处理、可视化界面、GPU加速推理等方面的技术细节。

  • #游戏之追逐奶酪123

    #游戏之追逐奶酪123

  • 威纶通触摸屏配方管理系统解析:宏程序、数据结构与UI设计

    内容概要:本文详细介绍了威纶通触摸屏配方管理系统的实现方法及其应用场景。首先,文章讲解了配方管理的基本概念和技术背景,强调了配方管理在工业自动化中的重要性。接着,通过具体的宏程序代码示例,展示了如何实现配方的保存、加载以及安全校验等功能。文中还提到配方数据结构的设计,如使用寄存器地址偏移来确保数据不冲突,并通过CSV文件格式方便地管理和维护配方数据。此外,文章深入探讨了UI设计方面的内容,包括动态图层技术和按钮交互效果的应用,使得用户界面更加友好和直观。最后,作者分享了一些实际项目中的经验和技巧,如文件操作的异常处理和宏指令调试方法。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对触摸屏配方管理系统感兴趣的读者。 使用场景及目标:适用于需要频繁切换设备参数的生产环境,如食品加工、注塑成型等行业。通过使用威纶通触摸屏配方管理系统,可以提高工作效率,减少人为错误,同时简化设备调试和维护流程。 其他说明:附带的工具包提供了完整的宏指令注释版、图库资源和调试工具,帮助用户更好地理解和应用该系统。

  • 张彩明-图形学简明教程 配书资源

    张彩明-图形学简明教程 PPT课件

  • 计算机术语.pdf

    计算机术语.pdf

  • 基于改进粒子群算法的微电网多目标优化调度模型与算法分析

    内容概要:本文详细介绍了利用改进粒子群算法(IPSO)进行微电网多目标优化调度的方法和技术。首先指出了传统粒子群算法(PSO)存在的局限性,如初始化随机性和易陷入局部最优等问题。接着提出了多种改进措施,包括混沌映射初始化、动态权重调整、自适应变异以及引入帕累托前沿机制等。文中通过具体的代码实例展示了这些改进的具体实现,并通过实验验证了改进后的算法在处理微电网优化调度问题时的有效性,尤其是在应对风光发电不确定性方面表现突出。此外,文章还讨论了实际应用场景中的约束处理方法,如功率平衡约束的修复策略,确保理论与实践相结合。 适合人群:对智能优化算法及其在电力系统特别是微电网中的应用感兴趣的科研人员、工程师及研究生。 使用场景及目标:适用于需要对微电网进行多目标优化调度的研究和工程项目,旨在提高微电网运行效率,降低成本并减少环境污染。通过学习本文提供的改进算法和技术手段,能够更好地理解和掌握如何针对特定业务场景定制化地改进经典优化算法。 其他说明:文章不仅提供了详细的理论分析和算法改进思路,还包括了大量的代码片段和实验结果,有助于读者深入理解并快速应用于实际项目中。

  • S7-1200 PLC与组态王实现7车位3x3立体车库控制系统

    内容概要:本文详细介绍了基于西门子S7-1200 PLC和组态王的7车位3x3升降横移立体车库控制系统的设计与实现。主要内容涵盖IO分配、梯形图程序、接线图、组态画面设计以及安全防护逻辑等方面。文中强调了硬件互锁、软件互锁、模块化编程、精确控制和平移控制等关键技术点,并分享了一些调试经验和注意事项。此外,还讨论了光电传感器误触发、急停按钮处理、故障记录等实际应用中的挑战及其解决方案。 适合人群:从事工业自动化领域的工程师和技术人员,特别是熟悉PLC编程和组态软件使用的专业人员。 使用场景及目标:适用于需要设计和实施立体车库控制系统的工程项目。目标是帮助读者掌握S7-1200 PLC与组态王的具体应用方法,提高系统可靠性和安全性。 其他说明:文中提供了详细的代码片段和配置示例,有助于读者更好地理解和实践相关技术。同时,作者分享了许多宝贵的实战经验,对于初学者和有一定经验的技术人员都非常有价值。

  • 数据结构解析:线性表顺序表示的原理、操作及应用

    内容概要:本文详细介绍了线性表及其顺序表示的概念、原理和操作。线性表作为一种基础数据结构,通过顺序表示将元素按顺序存储在连续的内存空间中。文中解释了顺序表示的定义与原理,探讨了顺序表与数组的关系,并详细描述了顺序表的基本操作,包括初始化、插入、删除和查找。此外,文章分析了顺序表的优点和局限性,并讨论了其在数据库索引、图像处理和嵌入式系统中的实际应用。最后,对比了顺序表和链表的性能特点,帮助读者根据具体需求选择合适的数据结构。 适合人群:计算机科学专业的学生、软件开发人员以及对数据结构感兴趣的自学者。 使用场景及目标:①理解线性表顺序表示的原理和实现;②掌握顺序表的基本操作及其时间复杂度;③了解顺序表在实际应用中的优势和局限性;④学会根据应用场景选择合适的数据结构。 其他说明:本文不仅提供了理论知识,还附带了具体的代码实现,有助于读者更好地理解和实践线性表的相关概念和技术。

Global site tag (gtag.js) - Google Analytics