交互式推荐在美团的实现

什么是交互式推荐

交互式推荐是一种互动式实时推荐产品模块,主要通过理解用户需求、以互动的方式进行推荐。交互式推荐由Youtube在2018年提出,主要用于解决推荐系统的延迟和与用户互动偏弱的问题。
从2021年下半年开始,美团外卖推荐技术团队在外卖首页Feed上持续进行探索,2022上半年完成全量。具体流程:用户从首页Feed进入商家详情页并退出之后,动态地插入新的推荐内容到用户推荐列表中。其主要优势是根据用户的实时需求动态插入卡片进行反馈,进而增强用户的使用体验。
我们发现,外卖首页Feed在用户即时兴趣的捕捉和反馈上存在痛点,“对比型”用户的选购效率和体验不佳。外卖首页Feed作为泛意图用户主要选购场景之一,用户在浏览到成单过程中通常需要进行一番对比、才能逐步收敛意图,然后做出最终决策。但受限于长列表的翻页模式,首页Feed根据用户需求实时调整推荐结果的能力不足。业界优化这类问题的主要产品形态有交互式推荐、动态翻页、端上重排这三种。交互式推荐由于是在用户可视范围内插入,用户感知较强;后两种的主流形态是在用户不可见区域更新推荐,用户感知相对较弱。其实,这三种形态在美团外卖均有尝试,本文重点聚焦于交互式推荐的介绍。

主要工作

整体框架

交互式推荐框架的搭建思路可以用“4W1H”来总结:
Where/How:交互式推荐卡片展示在哪?交互式推荐卡片的展现形式是什么?涉及产品形态。
Who/When:交互式推荐需要对什么样的用户触发?在什么时机下触发?涉及用户意图理解。
What:交互式推荐卡片需要展示什么?涉及推荐策略。
基于对上述问题的思考和多方探讨,我们最终和产品、端智能、客户端、应用服务和推荐工程等多个相关团队一起,搭建了这套适用于外卖首页Feed的交互式推荐链路。
在这里插入图片描述
上图展示了从“用户点击首页Feed商家卡片”开始,到交互式推荐卡片展现”的全流程。用户进入点菜页后,由客户端调用端智能的意图理解引擎;满足交互式推荐的触发条件后,进行特征处理、计算和存储,并将计算好的将特征传递给客户端组装推荐请求;推荐请求由应用服务层透传给混排服务,再由混排调用商家推荐模块,经过召回、排序、机制、透出阶段,最终返回结果到客户端进行展示。

推荐排序策略

首页Feed一次展示整个列表,而交互式推荐一次仅展示1个商家卡片。为了推荐更精准的结果,就需要交互式推荐更准确的理解用户实时的外卖需求。因此,我们在首页Feed的推荐链路的基础上,通过优化“召回->排序->机制->透出”链路,覆盖更多用户的同时,不断提升交互式推荐和用户兴趣的匹配度。

召回

召回阶段分为两步:

  1. 利用多个召回算法策略从用户附近召回数百个候选POI商家。
  2. 利用相似品类过滤方案来过滤和当前用户意图明显不同的商家,并将生成的候选结果传给排序阶段。为更好理解用户即时意图,我们提出了Item2Item Multi-Trigger召回和相似品类过滤方案。
    首先,一方面,我们直接复用了首页Feed推荐的召回链路,融合了双塔召回、User2Item召回、热销召回等多个召回算法。另一方面,为了加强对用户即时意图的理解和关注,我们新增了一路Item2Item Multi-Trigger旁路召回。

具体做法是:我们将用户在首页Feed点击、加购的POI,作为Item2Item召回的Trigger,召回更多符合用户即时意图的商家。其中每个用户的Trigger数是不同的,每个Trigger召回的商家数量也是不同的,其数量满足N/M(N是I2I Multi-Trigger召回的POI总数,M是Trigger数量)。

排序

排序阶段,模型的主要任务是预测CTR、CXR(曝光转化率),并将预估结果传给机制阶段。

优化交互式推荐的排序模型,我们主要面临样本分布差异、训练样本少的问题。交互式推荐的单商家卡片形态和首页Feed的列表形态天然有差异,导致其样本分布上(如点击率、转化率、人群分布上)明显不一致,直接使用首页Feed的推荐模型缺少对交互式推荐场景个性化的关注,效果会有明显衰减。简单的做法是直接使用交互式推荐的样本训练模型,但是交互式推荐单场景样本较少,会导致模型鲁棒性不足。

因此,我们选择了业界通用的Fine-tune的方法,在首页Feed排序模型的基础上,利用交互式推荐的样本Fine-tune排序模型。同时,我们充分利用了用户实时需求理解模块,优化模型效果。当然,我们也探索了不同网络结构对于模型效果的提升,但是限于算力资源等约束,我们并没有上线更为复杂的交互式推荐排序模型,具体的模型结构如下图所示。
在这里插入图片描述
输入模型的Embdding数据,经过MMoE层和3层的MLP网络,得到预测的pCTR、pCXR结果。
其中,模型的输入特征分为5种类型:1)用户特征;2)商家特征;3)上下文特征;4)序列特征;5)触发交互式推荐的商家特征。序列特征,包含了实时曝光、点击等序列,并且使用了Micro-Behavior详细信息。

触发交互式推荐的商家特征,包含商家的embdding表示、配送信息、优惠信息等,排序模型离/在线效果如下表所示。可以看出,对比首页Feed排序模型,优化后的交互式推荐排序在卡片效率上显著优于直接使用首页Feed排序模型的效果。
在这里插入图片描述

MMoE

MMOE本质上就是个集成学习方法,类似xgb/lgb(基模型是单棵树),这里的基模型可以是:lr/fm/ffm/dnn/wide&&deep/deepfm/xdeepfm/autoint,然后通过Gate Network给每个网络输出结果分配权重。
MMOE模型的结构图如(c)所示:
在这里插入图片描述
模型 (a) 最为常见,两个任务直接共享模型的 bottom 部分,只在最后处理时做区分,图 (a) 中使用了 Tower A 和 Tower B,然后分别接损失函数。
模型 (b) 是常见的多任务学习模型。将 input 分别输入给三个 Expert,但三个 Expert 并不共享参数。同时将 input 输出给 Gate,Gate 输出每个 Expert 被选择的概率,然后将三个 Expert 的输出加权求和,输出给 Tower。有点 attention 的感觉。
模型 © 是作者新提出的方法,对于不同的任务,模型的权重选择是不同的,所以作者为每个任务都配备一个 Gate 模型。对于不同的任务,特定的 Gate k 的输出表示不同的 Expert 被选择的概率,将多个 Expert 加权求和,并输出给特定的 Tower 模型,用于最终的输出。
其中: gate ,为多层感知机模型,实现时为简单的线性变换加 softmax 层。

机制

为了更为灵活的承载业务目标,我们引入了机制模块,目标是对排序阶段传过来的候选商家,根据不同业务目标进行顺序调整(如CTR、CXR、新颖性等)。最终,在兼顾新颖性的目标下,交互式推荐按照预估CXR排序,以最大化卡片和列表转化率。与此同时,我们还从解决负面反馈、优化体验两方面进行了体验优化:

通过业务规则约束来解决负面反馈,主要包括:重复曝光商家过滤、预下单商家过滤、同品牌商家过滤、用户不喜欢&黑名单商家过滤,以及避免插入配送费过高、配送距离过远的商家。
在交互体验方面:1)通过在新颖性等目标上的探索,给用户更丰富的推荐体验;2)通过推荐理由的优化,为用户解释推荐原因。

透出

透出阶段,主要判断机制阶段传过来的Top 1的商家是否展示给用户。理论上,用户每次“触发”交互式推荐,系统都有可能推荐一个相似度最高的商家。但是,相似度高的商家并不意味着质量也高,不考虑商家质量的推荐策略对用户体验和首页Feed效果都有很大损伤。因此,我们探索了卡片的透出策略,即机制阶段透传的Top 1卡片是否展示。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值