大厂项目实践案例——美团推荐系统“新颖性”建设思考
现在,越来越多平台逐渐意识到了“新颖性”指标对于推荐系统的重要性,那么,什么是新颖性?现有的平台又是如何实现推荐系统新颖性的?本篇文章里,作者结合实际案例进行了思考,一起来看。
今天想来聊聊在推荐系统场域看似“离经叛道”的优化方向——新颖性novelty,无论是从电商平台推荐、短视频流媒体推荐等新颖性都是在不断发展和持续建设的方向。但是这看上去和Arthur介绍的“相关性”和“信息分发效率”有些许背道而驰,所以我把其称之为看上去有些离经叛道的方向。
那么什么是新颖性、为什么要做新颖性,以及大厂(以美团举例)都是如何实现推荐系统新颖性的,以上的三连问便是我们今天希望与大家分享的话题方向。
PS:本文是对《美团推荐系统新颖性建设》的参考和解读,感兴趣可阅读原文。
一、新颖性诞生的背景和难点
1. 新颖性诞生背景
背景:伴随推荐系统的各种召回策略、排序策略的发展,策略产品经理、算法工程师为了满足公司广告收入Cost、推荐系统物料CTR/CVR极致业务的发展,这种过多的关注商业效率指标而忽视了对于用户新颖性的体验,长此以往给用户带来体验的“信息茧房”问题。
这其实也是早期UserCF、ItemCF协同过滤算法的明显弊端问题,过多的依赖于用户过去行为交互行为来建立相似性,给用户推荐内容,造成了推荐内容的茧房效应,不仅缺少对用户、物体特征的考究,更加加重了推荐内容的马太效应。使得用户的浏览体验越来越差,反噬带来用户下拉深度曝光的坑位数降低,用户在APP停留时长也下降。
因此越来越多的平台开始意识到了“新颖性”指标对于推荐系统的重要性,同时新颖性也成为了推荐策略/推荐广告策略产品的重要考核指标之一。
图1.1拼多多信息流推荐商品集中问题
如上图所示,因为作者在拼多多仅仅只是点击了金字塔原理的书籍,就疯狂推荐该书籍。从心理角度来说,给人一股推荐“过犹不及”的感觉,满屏“金字塔原理”,且不论背后是因为对点击行为特征的特征属性给予权重过高还是书籍投放广告主都比较舍得出价。
但是从体验角度出发,毕竟推荐不同于搜索,非query词触发相关性召回和影响排序,这样的推荐结果确实缺少了一些客户吸引逛下去的欲望和未知的“惊喜”。
2. 美团平台做新颖性的难点与挑战
不同于电商平台物料item的丰富性(候选池高达几十亿),在召回通道和候选集中可以分发的内容非常多,往往可以通过海选过滤Filter环节过滤购买过、重排序环节过滤相同类目、图片的商品也不会严重影响推荐系统的相关性。
但在外卖场景下,候选商家少(受到LBS场景的约束,商家就几百上千,过滤物料完就没了)、用户复购/下单频次高(不希望一天或者几天都吃一样的外卖,有着口味替换的心理诉求),决定了“直接过滤用户看过、下单过”的策略既不现实、也不合理。
所以针对场景的特殊性,怎么去直接定义和量化新颖性,优化目标怎么设计,怎么平衡交易效率的问题,都是新颖性需要考虑的重要点。
二、如何定义新颖性与新颖性评估指标
1. 定义新颖性Novelty
推荐系统业界给出的新颖性相关的定义包括新颖性(Novelty)和惊喜度(Serendipity)。
- 新颖性(Novelty):更多的是衡量给用户推荐没有见过的物品Item(不适用于外卖场景,LBS物料太少)
- 惊喜度(Serendipity):衡量的是推荐和用户历史兴趣不相似,但是却很满意的推荐。
对于美团外卖的的场景,用户比较方案的场景在于一直给用户推荐相同的商家,没有机会看到更多没见过但是适合自己的口味,所以定义指标也需要和对应的平台业务场景匹配,新颖性和惊喜度可能适合京东、淘宝这样的电商APP,但是综合考虑外卖平台候选商家少、复购频次高的特性,结合客户调研结果。新颖商家,应该满足“最近一段时间没见过、没吃过,但是愿意买单的要求”。
所以美团的产品给出的新颖商家定义为:用户在外卖全局最近7天没有见过、或者30天没有点击、或者90天没有完单的商家。
2. 新颖性评估指标
前面也提到了“科学的线上A/B实验就是评估策略产品功能策略的尺度标注”,那么上线了新颖性的功能策略就需要有客观的评估指标,即通过什么商业业务指标来评估新颖性的策略产出是有价值的。基于美团平台的特殊业务性,策略产品与算法制定了如下几个业务指标作为新颖性的评估:
1)客观指标:
- 曝光新颖性@Top N:用户在首页Feed列表前N位看到的新颖商家占比,实际N取值为10。核心实验观察指标。
- 完单新颖性:点击→完单商家中新颖商家的占比曝光商家,作为辅助观测指标。
- UV_RPM:即千人曝光GMV,作为核心约束指标,要求列表UV_RPM不降或微降。
2)主观体验评估(用户体验问卷):
- 新颖好评率:用户对推荐新颖性由低到高打分1-5分,表示>=4分用户的占比所有评价用户。
- 新颖性case率:问卷中主动反馈新颖体验Bad Case的比例。
三、首页信息流Feeds新颖性商家推荐设计方案
1. 整体方案框架设计
美团策略产品与算法团队为了保证每个阶段都对新颖性进行优化主要做到了以下几个部分:
- 召回阶段:召回扩充新颖性供给端
- 精排阶段:建模目标在于优化模型的泛化性
- 混排阶段:混排新颖性商家个性化排序和浮动插卡
- 前端展示:借助动态交互推荐的方式进行体验升级
2. 召回链路新颖供给
主要问题还是模型泛化性不足,高估有交互的“商家”,从而推荐很多“复购”商家。策略的中心需要优化Embedding来提升旁路召回多样性。
在主路召回:双塔模型当中引入了商家side-information,通过商家侧顶层Embedding表征做聚类分析。
因为通过Case分析会发现商家侧顶层Embedding表征空间向量有商家品类聚类效果(上图中的左边所示)和跨地域相似商家能力(深圳的猪脚饭到遵义的猪脚饭)。所以美团用双塔模型的商家Embedding替换原来基于Word2Vec实现商家Embedding。利用双塔商家Embedding向量,新增一路I2I新颖商家召回以提升新颖商家供给。
旁路召回:引入GCN旁路召回类型,利用GCN网络挖掘用户、商家之间的高阶关联性改善长尾推荐问题。尝试性建模“用户-商家”关系的U2I召回和建模“Query—商家”关系的I2I召回。
引入了用户行为构图、新颖性构图两部分以平衡效率、新颖性,损失函数如公式1(r表示完单、点击、新颖性任务)所示。包含了点击、下单两个主任务,新颖性构图为解决引入新颖上下导致模型噪声问题,对完单、点击新颖商家做了加权采样处理。把新颖性采样子图作为辅助任务融入到了两个主任务的训练当中,构建高效用户-商家表示关系的同时,具备了发现新颖性的能力。
最后,线上实验发现,I2I旁路召回Embedding向量表征优化带来了线上1%左右的曝光新颖性收益。而后续的I2I新颖商家召回、GCN召回的方案,其新颖性收益都不足0.5%,分析和外卖的LBS供给较少导致召回侧收益空间相对较低有关。
3. 精排模型泛化能力提升
美团首页推荐信息流的排序优化目标以UV_CXR为主。新颖性商家长期的行为样本稀缺就导致在预估模型被低估。因此考虑从模型特征、损失、结构方面进行优化。核心举措就是引入泛化特征、优化模型损失两个方面。
1)泛化特征-正负反馈
在模型当中去考虑引入负反馈特征方便捕捉“负反馈模式”;其次通过行为数据来捕捉用户长信、复购意图等多个兴趣周期变化。
以商家品类ID做Query,从行为检索出相同品类商家,再进行兴趣建模。结合外卖LBS、就餐特点设计Distance(即用户和商家举例小于KM)、Mealtime(早中晚餐)和Tag_id三种路径检索,从用户历史行为检索出和当前访问最相关的行为,精确刻画当下偏好。
2)新颖商家预估纠偏
纠偏算是我们策略文章当中的老朋友了,之前的文章也有描述通过【保序回归】对点击率纠偏的案例。虽然训练得到的DNN模型的准确率比较接近,但是对于特定新颖性样本,必然存在预估明显偏低估的问题。因此在设计新优化目标的时候,保证预估准确率不变,是的模型达到局部最优偏向新颖性商家预估分比较高的状态,这样可以在不损失UV_RPM的前提下提高新颖商家曝光。
在现有交叉熵损失下,结合商家在曝光、点击、下单的行为差异引入公式2损失纠偏,在UV_RPM持平的情况下,新颖性+1.95%。
4. 混排个性化排序和动态插卡
1)新颖意图预估
构建新颖性预估模型,模型网络抽象多行为特征交叉信息,预估当前场景即时性意图,满足不同用户下新颖商家浏览消费需求。
模型思路:首先,Lable采用的是用户当前请求下是否点击新颖商家,验证“曝光新颖性”指标合理性。其次,模型特征上除了用户统计特征、上下文场景,引入完单新颖商家占比、新颖商家曝光点击等额图特征,损失函数交叉熵损失。最后,兼顾性能,使用了简单MLP网络线上服务来降低耗时,线上UV_RPM持平,用户曝光新颖性+2.28%。
2)新颖商家个性化排序
核心思想:通过ES算法针对pCTR、pCXR等效率指标建设个性化超参,扰动神经网络参数,收集用户反馈计算Reward去确定模型参数更新的方向和比例,输出排序参数用用对应的请求,实现个性化排序策略。a * cxr + b* 新颖商家曝光占比,既提升新颖商家曝光占比指标,又能尽可能减少对列表UV_RPM的顺势。
首先,引入优势函数V(s, a) = Q(s, a) – V(s),原本的动作状态价值Q(s, a)的基础上,减去Batch内Reward的均值,使模型学习到动作相较于平均而言带来的优势V(s, a),进一步为解决Batch内均值无法消除人群状态价值偏差的问题。
其次,通过决策树模型也筛选出新颖度相关的一些用户场景特征、新颖性特征、历史行为特征等等。
最后,选择有经验但是结构简单的MLP网络,使得ES模型决策Action变得逐步稳定。
3)新颖商家动态插卡
在模型选择上,选择了强化学习方案,一方面基于监督学习的ML算法可以通过你和用户历史数据来预估效果,但是缺点也是无法捕捉客户尝新、复购意图;另一方面,监督学习基于贪心策略给出单次结果最优,无法关注长期收益变化。而结合不同状态决策不同动作,建模累计收益,有效推进E&E,建设动态插卡。
简化建模问题:在UV_RPM、流量占比、用户体验的约束下,通过决策哪些位置放入新颖商家,以最大化用户新颖性。其中效率约束表示插卡前后列表GMV降幅不高于P,流量约束表示整体新颖商家曝光占比,不高于某个阈值以避免极端问题。
其次,引入多臂老虎机(MAB)问题,所有插入新颖性商家的位置,都希望列表RPM期望最大,所以基于这个目标去对新商家E&E,最小化列表损失。
在这里美团选择了Thompson方案:利用Beta你和用户在每个位置的新颖、费新颖商家的完单期望值,对用户RPM的收益最大方式,来决定当前位置是否插入新商家。Thompson采样通过Beta分布维护当前位置新颖+非新颖商家完单期望值。
结合历史数据拟合用户偏好,期望值下的新颖+非新颖商家完单Beta期分布,新颖商家更大期望在当前位置插入新颖商家,同时躲避赌博机的思想根据用户反馈拟合位置的偏好。
同时为了解决Thompson泛化不足的问题,通过D3QN模型决策当前用户可插入新颖位置,输出N维的Multi-hot vector,State考虑用户和商家的历史特征、列表信息,奖励函数考虑完单金额、曝光新颖等用户体验。最终线上UV_RPM跌幅不超过0.5%的情况下,新颖度增加8%。
5. 交互推荐优化选购体验
交互式推荐是一种实时推荐产品模块,主要利用用户的实时行为、以实时互动的方式进行推荐:用户从首页Feed进入商家详情页并退出之后,动态地插入新的内容到推荐列表中。优势在于能够实时感知用户行为并判断用户意图,进而动态插卡反馈,增强用户交互体验、新颖感受。在不损失UV_RPM基础上进一步提升用户新颖性+1.20%。
本文由 @策略产品Arthur 原创发布于人人都是产品经理,未经许可,禁止转载
题图来自 Unsplash,基于 CC0 协议
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。
感兴趣策略产品相关知识可以关注作者主业