美团推荐算法实践

本文介绍了美团推荐系统从数据层、触发层、融合过滤层到排序层的构建过程。协同过滤、地理位置、搜索行为、实时用户行为和图算法等多种策略用于候选集触发。在重排序阶段,使用非线性模型和线性模型结合,考虑多种特征进行模型训练。通过策略融合和候选集重排序,提高了推荐的准确性和用户体验。
摘要由CSDN通过智能技术生成

前言

推荐系统并不是新鲜的事物,在很久之前就存在,但是推荐系统真正进入人们的视野,并且作为一个重要的模块存在于各个互联网公司,还是近几年的事情。

随着互联网的深入发展,越来越多的信息在互联网上传播,产生了严重的信息过载。如果不采用一定的手段,用户很难从如此多的信息流中找到对自己有价值的信息。

解决信息过载有几种手段:一种是搜索,当用户有了明确的信息需求意图后,将意图转换为几个简短的词或者短语的组合(即query),然后将这些词或短语组合提交到相应的搜索引擎,再由搜索引擎在海量的信息库中检索出与query相关的信息返回给用户;另外一种是推荐,很多时候用户的意图并不是很明确,或者很难用清晰的语义表达,有时甚至连用户自己都不清楚自己的需求,这种情况下搜索就显得捉襟见肘了。尤其是近些年来,随着电子商务的兴起,用户并非一定是带着明确的购买意图去浏览,很多时候是去“逛”的,这种情景下解决信息过载,理解用户意图,为用户推送个性化的结果,推荐系统便是一种比较好的选择。

美团作为国内发展较快的o2o网站,有着大量的用户和丰富的用户行为,这些为推荐系统的应用和优化提供了不可或缺的条件,接下来介绍我们在推荐系统的构建和优化过程中的一些做法,与大家共享。

框架

                                       Alt text

从框架的角度看,推荐系统基本可以分为数据层、触发层、融合过滤层和排序层。

  • 数据层:数据生成和数据存储,主要是利用各种数据处理工具对原始日志进行清洗,处理成格式化的数据,落地到不同类型的存储系统中,供下游的算法和模型使用。
  • 触发层:从用户的历史行为、实时行为、地理位置等角度利用各种触发策略产生推荐的候选集。
  • 融合过滤层:一是对出发层产生的不同候选集进行融合,提高推荐策略的覆盖度和精度;另外还要承担一定的过滤职责,从产品、运营的角度确定一些人工规则,过滤掉不符合条件的item。
  • 排序层:利用机器学习的模型对触发层筛选出来的候选集进行重排序。

同时,对与候选集触发和重排序两层而言,为了效果迭代是需要频繁修改的两层,因此需要支持ABtest。为了支持高效率的迭代,我们对候选集触发和重排序两层进行了解耦,这两层的结果是正交的,因此可以分别进行对比试验,不会相互影响。同时在每一层的内部,我们会根据用户将流量划分为多份,支持多个策略同时在线对比。

数据应用

数据乃算法、模型之本。美团作为一个交易平台,同时具有快速增长的用户量,因此产生了海量丰富的用户行为数据。当然,不同类型的数据的价值和反映的用户意图的强弱也有所不同。

行为类别 行为详情
主动行为数据 搜索、筛选、点击、收藏、下单、支付、评分
UGC 文本评价、上传图片
负反馈数据 左滑删除、取消收藏、取消订单、退款、负评、低评
用户画像 用户人口属性、美团DNA、品类偏好、消费水平、工作地与居住地
  1. 用户主动行为数据记录了用户在美团平台上不同的环节的各种行为,这些行为一方面用于候选集触发算法(在下一部分介绍)中的离线计算(主要是浏览、下单),另外一方面,这些行为代表的意图的强弱不同,因此在训练重排序模型时可以针对不同的行为设定不同的回归目标值,以更细地刻画用户的行为强弱程度。此外,用户对deal的这些行为还可以作为重排序模型的交叉特征,用于模型的离线训练和在线预测。
  2. 负反馈数据反映了当前的结果可能在某些方面不能满足用户的需求,因此在后续的候选集触发过程中需要考虑对特定的因素进行过滤或者降权,降低负面因素再次出现的几率,提高用户体验;同时在重排序的模型训练中,负反馈数据可以作为不可多得的负例参与模型训练,这些负例要比那些展示
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值