推荐系统解构

编辑整理:陈家辉

出品平台:DataFunTalk

导读:由于移动互联网时代用户每时每刻都会产生海量信息,伴随着大数据技术的快速发展,使得企业能够迎合用户的痛点,分析用户喜好,进行商品推荐。推荐系统诞生的益处:从用户角度,推荐系统可以缓解信息过载带来的时间成本;从企业角度,可以帮助企业进行精准营销,解决长尾营销,最大化收益。因此推荐系统的好坏对于互联网企业来说至关重要。

本次分享主要是以电商平台为例,从以下几个方面对推荐系统进行解构:

01

推荐概述

1. 工作思路

对于电商平台来讲,一套完整的电商流程应该包含以下完整流程:

推荐系统作为电商平台的一个子系统,其价值体现在商品与用户的匹配上,而匹配的效率与质量对于电商平台至关重要。

2. 推荐系统面临的挑战

多场景、多目标、考虑生态、场景间目标的差异

电商推荐系统的优化往往是多目标的,这个体现在场景和优化时效维度;在不同场景间, 推荐系统的目标侧重点也是不一样的,比如有的目标是提高用户在页面的停留时间,有的是提高用户短时间内的消费,比如猜你喜欢、购物车、商品详情页的推荐坑位。而从优化的时效维度来看,比如从短期来讲,目标有点击率、转化率和客单价等,从长期来讲,目标需要考虑留存、复购等指标。不仅如此,电商平台需要兼顾用户、商家、平台三者的利益,构建长期健康的生态。由于电商业务的购物链路较长,往往用户需要先浏览、点击、加购、下单、支付、履约配送、收货、评价/退货等环节构成,所以推荐系统往往需要将各个环节纳入其中。当然在其它业务类型的推荐系统中,也存在着链路长的挑战。如招聘行业的推荐系统,给候选人推荐合适工作只是第一步,后面还会伴随着长时间的简历投递,招聘人员的审核和邀请,参加面试,最终入职或者进行下一家的应聘。社交场景也类似,这种推荐系统存在这双向匹配,比电商平台的单项匹配链路更长,挑战也更大。

数据闭环

对于电商企业来说,数据是核心,是驱动业务迭代的关键点,从用户、商品、商家维度,需要持续积累和采集。从用户的角度,存在浏览、点击、成交、评价、物流全链路闭环数据。从商品角度,有潜力、新品、老品、衰落、下架等信息。从商家角度,也有价值、非价值和灰黑商家等。

3. 推荐系统中的关键因素建模

我们以电商推荐场景为例,用户的行为旅程包括浏览、点击、加购、购买以及长期的复购行为,大致可以由下图表示:

推荐系统首先需要在点击(也即流量的转化)这一环节进行建模,引导用户进入商品详情页,同时对详情页的加购/购买建模,依次引导后续行为。

另一个角度,从上面PPT下半部分的公式出发,产品运营可以被结构为以上三个模块,流量、转化、x因素(回访、复购)等;长期来讲, X因素非常关键,即复购回访的长期价值,只有长期生命周期价值高才能给企业带来持久收益(n为时间/天,x的少许增长可以带来长期巨大复利)。

结合上述用户旅程和公式拆解,如果想将V做大,自然的,我们需要构建转化率-访购率-毛GMV-净GMV-留存率-复购等关键节点的建模,并且这个也是推荐系统的观测指标。

在系统更大维度,我们需要关注长短期收益、用户/商家个体满意度和总体满意度以及兴趣探索成本、流量效率与商品/商家成长等维度。

02

推荐系统拆解

1. 基本架构

我这里拿一个前几年我刚开始入门推荐系统时候的架构:

最开始的阶段是召回过程,分为多个模块;实时模块会拿到用户实时的信息,比如用户实时点击、收藏、加购的商品,并获取这些商品的相似商品;历史模块会获取用户的历史信息,如历史的购买行为;画像模块则会获取用户的静态信息和偏好标签,如用户的设备型号、年龄、性别、类目偏好等;最后还会包括现在以及过去的热门商品等。

在经过这些召回的过程后,我们会进行一层过滤。比如曝光过滤,即某个类目已经曝光了一定次数,但是用户都没有点击,隐式表明用户不感兴趣。还有用户购买过滤,即已经购买过的短期内不再推荐。同时还有购买率过滤、性别过滤等等。

经过过滤阶段后,我们可以对过滤后的商品进行一定的预估。如点击率、转化率预估等。同时可以考虑单价,多样性以及新品率等影响进行排序。随后我们可以通过规则或者模型,将这些粗排后的物品统一得分进行融合,最后再经过精排阶段给出最终得分,这个阶段还会增加一些业务规则进行强控,比如考虑多样性的打散、出于运营需求的置顶等。

上述是大致推荐系统的简单介绍,不同的业务和团队,在构建过程中也存在模块的差异,推荐系统没有特别强的标准存在。

2. 召回策略

主要策略包括:

① 实时行为召回:在线实时捕捉用户对商品的点击,收藏,加购,购买等反馈行 为,并召回相似商品,迅速抓住用户的短期购物需求。

② 历史行为召回:离线分析用户对商品的历史点击,收藏,加购,购买等反馈行为,并召回相似商品,兼顾用户的长期购物需求。

③ profile召回:从性别,年龄段,设备等多个维度,在线和离线同时对用户进行

画像,并召回相对应的热门商品。不要小看这个召回,非常关键,往往新用户需要用这些静态信息和标签来做召回,往往可以快速圈定其圈层进行精准的探索和数据反馈,比如5-6线城市和北京西二旗的用户往往大概率兴趣差异较大。这层召回是全局热门召回的更精细化拆解。

④ 热销&趋势召回:分析商品的长期和短期销量变化,召回爆款和近期热点商品。

  • 召回模块特别重要,因为召回的来源/相似分可以作为排序特征(推荐日志落盘-回看/溯源机制)

  • 召回作为漏斗的顶部,好坏对漏斗底部(排序)的影响很大。

3. 排序策略

排序阶段的影响因子较多,可以作为特征,也可以独立在外作为排序因子存在。比如以下的一些因子:Ctr Cvr Price、Ctr Ts、Match Score、Trigger score time decay、Match type ctr cvr、Match type score、...

当然针对不同的产品有不同的侧重点,比如电商的内容差异较大,甚至同是内容也会因为产品形态存在差异,比如快手的双列可以考虑点击率建模,而抖音单列下滑不需要考虑点击率建模。甚至还需要考虑多样性,惊喜性,新颖性等更多的指标。并且建模过程可以尝试end2end或单独建模的方式,这里面需要考虑的是稀疏性、正负比例、预估不准等问题。

如果一个指标不够,还可以考虑多个指标的结合,形成新的指标。如电商场景下,gmv这个指标,可以用CTRα*CVRβ*Priceγ代表gmv,那为什么还需要α、β、γ呢?因为如果ctr和cvr估计是准确的, α、β、γ均为1的排序公式是可解释的,你把这几个指标的分子分母拆开就看到了,相乘以后就是gmv。但是由于模型各自的准确率差异,导致了我们需要学习这几个参数,理论上建模越准确的指标系数越大。而这三个系数如果相对稳定可以通过离线统一参数学习的情况完成;如果不稳定,可通过强化学习来解决这个超参的设定。

可参看下图的电商场景建模的相关排序因子,当然部分因子作为特征可纳入排序模型。

4. 排序阶段还有一些常见的原则

① 针对不同的召回策略,主要秉持“短期行为优先,兼顾长期行为”,“保证多样性,避免过度个性化”原则。算法上主要通过长短期用户行为密度建模,正负反馈反向调节等手段来实现。

② 不同排序因子(商家质量/分发宽度及强度等等)可共用一套底层表征。

③ 覆盖率:通过类目,品牌,频道,场景等多粒度的打散重排,最大化各个维度的个性化覆盖率。

④ 疲劳度:通过引入一定的随机因子,针对不同个性化程度,建立合理的轮转机制,保证一定的新颖性。

⑤ 转化能力:通过对用户,商品,会场等多维度采集特征数据,训练点击转化和交易转化模型。大促期间 根据不同的阶段,采取差异化的处理策略。比如预热期强化点击转化,正式售卖期则强调交易转化。

5. 更加精细化的排序

① 考虑到召回和排序的压力,可以再精排和召回中间加一层,少量核心特征+简单模型进行粗排。

② 多过程建模:如直接购买还是收藏比价使用模型判断。举个例子,在购物车推荐中,用模型来操控推荐策略。在购物的流程中,通过数据分析可以发现,有一部分用户是希望通过加入购物车来进行比价, 还有一部分用户加入购物车是直接购买。通过模型来判断用户的行为,比如用户一直添加同类目的商品,那么比价的概率就高一些。如果判断出用户是直接购买,那么就尽量推荐相关商品,如果是比价用户,就推荐相似物品。

③ 粗粒度召回:离线产出不同类目下的精品数据,作为召回补充和兜底

④ E&E探索解决低置信度预估模型问题

6. 模型演进

模型的演进路线可以由下图表示:

而模型的时效性也从天级别,慢慢演化成小时(一天几次), 再演化成近实时级别,而目前主流的推荐系统都是实时级别。

目前模型的演进已经进入到深度学习时代,各个大厂提出的新的深度学习架构也层出不穷:

这里不对于模型具体结构过过多展开,主要趋势就是通过时序、行为特征的使用,通过embedding、LSTM、attention、tansformor等结构提取特征信息,拟合用户兴趣,提高预测精度。

7. 特征构建

这里主要解构一下电商推荐系统中特征的构建方式:

初级的方式,一般大家会对用户和商品进行一些用户画像,然后作为特征加入模型。但是长期来看,匹配类的特征非常重要,比如待排序的商品和用户历史行为的一个关系,上面提到的模型中,DIN和DIEN都很好的使用了这种行为序列。匹配特征一般是与点击特征结合在一起的,比如用户对于某个商品的点击,对于某个类别的点击,某类用户对于商品的点击等等。可以总结为下图:

8. 评估方式

针对于召回的评估方式,绝大部分都是通过命中率、准确率、覆盖率、F1-score等方式评估,参考下图:

但是因为推荐系统是串联的,我们往往需要考虑到前置模块对后置模块的影响,比如召回对于排序的影响,下图是LinkedIn的方式。

03

系统&全局生态
1. 推荐功能决策链路

做一个推荐功能之前,我们需要对这个产品功能的作用进行一定的决策,如:

  • 推荐功能对该产品有无价值 ( 可以 )

  • 价值多大 ( 值得 )

  • 成本和收益 ( 现在 )

  • 优先级 ( 怎样 )

同时还要对推荐功能的工程上的要求进行决策,如推荐系统的实时性做到毫秒级是否有必要。是否是毫秒级,应该以用户的使用习惯来决定,如80%的用户其实都是秒级需求,没有必要做到毫秒级的响应。

2. 场景串联与用户旅程

不同的场景需要兼顾业务定位,进行场景间差异化。场景单独优化时往往召回、排序策略会趋同,带来局部增益与全局增益最优的冲突,解法往往是产品业务层的干预与算法场景通信两种手段。

3. 方向&外围

从系统和生态全局来看,建设推荐系统既要考虑短期的gmv等指标,更要考虑长期的发展 ( 回访、复购、netGMV ) 。因此需要从更多的层面考虑推荐系统的建设,如:

① 供应商、seller等级建设,流量分配,运营机制。对于高登记的seller需要有更好的流量,但是对于等级较低的seller,也应该分配流量,帮助其提高等级。

② 商品理解&建设: 良好的后备力量。每个商品都有生命周期,虽然可能旧款的商品质量很高,但是我们在推荐的时候也要对新品进行流量分配,进行新品测试、流量扶持。

③ 智能投放: 低延时、高效率展现。在考虑商品的流量分配时,还需要对用户的意图、兴趣、负反馈、视觉窄化进行考虑,不能不顾用户的体验。

④ 生态多目标,包括用户体验,如回访、活跃度、复购率、分群倾斜等,也包括商家层级、价值、收益、良性竞争等目标,同时还需兼顾平台收益。在增长过程中,一定需要兼顾上述若干指标,若置之不理,则最终用户、商家都会流失,最终让产品僵化。

4. 生态多目标

从推荐系统的构建之初,我们就需要从以下角度去关注系统,设定合理的目标和观测指标。不能什么都是先污染后治理,两眼一抹黑。在增长过程中,一定需要兼顾上述若干指标,若置之不理,则最终用户、商家都会流失,最终使产品僵化。从用户体验角度,我们需要关注回访、活跃度、复购率、分群倾斜等;从商家角度,需要考虑商家层级、价值、收益、良性竞争;最后我们还需要关注平台收益。

04

话题探讨

下面我们在逐个结合业务展开一些相关探讨,这些探讨想要让大家了解到推荐系统构建过程中,对业务拆解的重要性。

1. 分群

根据用户的活跃度及行为密度进行分群,并对分群后的用户投放对应的热销进行兜底补足,或者作为主召回源。其中用户行为较多(交互过的物料个数和品类/主题较多)时,作为兜底召回做补足;而部分用户行为过少(新用户或刚进入APP行为数较少的),可以作为主召回策略,这时候可以做更精细化地数据集。

比如针对国家/地区、性别、设备这些新用户也可收集的静态标签分别做热销数据;比如印度、男性、IOS 的用户A和印度、女性、Android用户B,使用的热销列表是不一样的。其实其它分群策略也非常有用,比如购买力分群、兴趣分群;群体对类目的强偏好和弱偏好均可以在推荐中使用。强偏好基本就是喜欢看、喜欢买什么品类就具有这类偏好;弱偏好就是某类人群从来不会交互或者交互过低的类目,利用统计概率进行显著性检验,可以挑出群体显著不关心的品类,在推荐过程中少推荐或不推荐。

2. 电商同店铺用户行为

  • 做一下分析,看一下进入店铺页的用户后续的行为,可以酌情加重同店铺商品trigger的权重(实时获取),往往很多店铺有包邮门槛,这时候同店铺召回是满足包邮诉求。

  • 同店x2i(i2i、c2i、b2i等)可以做一个很好的实时上下文强化,这里trigger数量和召回数量都需要进行控制。

  • 考虑在rank的时候对每个召回源和召回分数进行埋点,在训练模型是考虑进行,这样就可以进行很好的多召回源融合,当然这个不是同店的情形也可以用。

3. 购物车推荐策略

在购物车场景,通过数据分析你会发现用户加购商品基本有2种用户,一种是对比,另一种是马上要买了再凑个单。这时候引入意图建模,通过实时的数据收集,对于用户加入购物车的商品进行意图预测,然后在i2i召回策略中使用不同的召回控制,比如召回相似和相关搭配。

这里推荐的策略可以考虑用加权融合的方式,对于相似和相关搭配召回源,根据预测的意图强弱进行比例调整;如果有埋点支持,还可以结合实时埋点,在排序层考虑上述融合。

05

总结

需要明确的是,业务效果好的并不一定是复杂算法, 建立推荐系统需要遵循“假设->分析->策略->效果”的流程。在出现的badcase中,需要回顾案发现场,在产品增加埋点,跟着数据走(实时) 。迭代模型需要跟着业务走,在badcase中发现新的思路。系统化地思考全局收益、场景串联、局部与全局最优的情况。最重要的是合理的指标,从健康生态系统的定义出发。以上就是此次分享的主要内容,谢谢大家阅读。

今天的分享就到这里,谢谢大家。


(0)

相关推荐

  • 【maya游戏建模】场景模型

    87:56[maya游戏建模]卡通风格场景模型3D建模制作 274 10-26 81:02[maya游戏建模]古建筑房子场景零基础布线流程3D建模 258 10-24 80:51[maya游戏建模]场 ...

  • 淘宝详情页分发推荐算法总结:用户即时兴趣强化

    本文介绍淘宝详情页全网分发场景的机制. 商品详情页是手淘内流量最大的模块之一,它加载了数十亿级商品的详细信息,是用户整个决策过程必不可少的一环.这个区块不仅要承接用户对当前商品充分感知的诉求,同时也要 ...

  • 使用 DDD 指导微服务拆分的逻辑

    对于服务拆分的逻辑来说,是先设计高内聚低耦合的领域模型,再实现相应的分布式系统.服务的划分有一些基本的方法和原则,通过这些方法能让微服务划分更有操作性.最终在微服务落地实施时也能按图索骥,无论是对遗留 ...

  • 用户分群模型,这么建才有用

    接地气的陈老师11小时前 关注 今天系统讲解一下,如何破这个局. 一听到用户分群呀,很多同学都来劲了,网上大量写用户分群多如牛毛.可实际工作中,经常做完分群以后被一句话问死:"所以能提升多业 ...

  • 万字干货|一文助你了解机器学习

    本文将通过大量案例和通俗易懂的"人话",讲述机器学习建模逻辑和使用场景,让非数据科学专业的职场人都可以快速了解机器学习是什么,能做什么,如何用! 从AlphaGo战胜李世石开始,A ...

  • 西安峰上别墅设计 | 香榭御澄 | 用极简线条,解构纯粹空间

    艺术的伟大意义 在于它能显示人的真正感情 内心生活的奥秘和热情的世界 --罗曼·罗兰 -项目信息- 项目地址 ▏香榭御澄洋房底跃项目面积 ▏360平米设计风格 ▏现代项目设计 ▏曹旭项目执行 ▏峰上大 ...

  • 高压开关柜详细培训,全方面解构阐述!

    导 读 高压开关柜是金属封闭开关设备的俗称,是按一定的电路方案将有关电气设备组装在一个封闭的金属外壳内的成套配电装置. 35KV高压开关柜 高压开关柜广泛应用于配电系统,作接受与分配电能之用.既可根据 ...

  • 我最常用的保胎方——解构泰山磐石饮(上)

    每年的这个季节,也就是夏至前后,孕期妇女先兆流产的病例较其他季节要多,还有一些孩子出现流鼻血,因为夏至前,阳气生发之极,热迫血行,有的人肾气不足升发太过,就会出现腰腿无力脚后跟疼,造成上焦能量过盛,下 ...

  • 七种平面布局,解构排烟系统

    [[烟规4.1.1]]  建筑排烟系统的设计应根据建筑的使用性质.平面布局等因素,优先采用自然排烟系统. 防烟系统的设置主要和建筑的高度息息相关,而排烟的系统设计和建筑的平面布局关系非常大. 现在建筑 ...

  • 用洛伦兹变换和相对论解构时间——时间确实不存在,源于人类无知

    想象一下,你正在和一个穴居人聊天.你告诉他,他每天在天空中看到的太阳都是同一个太阳.并没有新的太阳每天从东边升起,然后又在晚上沉入大海."但必须是一个新的太阳.它从那里升起,又从那里落下&q ...

  • 解构微生物群中分类群与分类群与环境之间的相互作用

    生态学的一个长期目标是捕获多种物种相互作用的多样性,生态系统中存在多种物种时产生的不可预测的影响.例如,动物具有多样的微生物群落,它们的组成是可变的,受随机过程控制,这会影响系统的整体行为.许多涉及复 ...

  • 重新设计一所好学校:简单、合理、多样化地解构和重塑现有学习空间和学校环境

    写在前面 /李希贵 引 言 两万亿美元的错误--传统校园为何让我们的孩子如此失望 关于教育的两种观点 学校设计简史 为教育而设计 设计原则应该支持的六个教育策略 学校设计的四项原则 什么是学习型教学楼 ...

  • 用金缮工艺来解构重组的陶瓷雕塑 by Yee sookyung

    今早偶尔看到这个作品,就被浓浓的好奇心吸引,明知道这是一团陶瓷和缮金工艺结合的当代艺术,但是忍不住要来探究把玩一番. 先奉上这位韩国艺术家的官网:https://www.yeesookyung.com ...

  • 【解构膝关节】一篇文章,5个视频,最复杂的膝关节也并不难!

    话不多说 膝关节是人体最大最复杂的关节 不单单是说它的解剖解构复杂 它的运动模式.损伤机制.康复方案,同样也复杂 今天这篇文章 我们尝试从下面五个角度 带大家一起全面"解构"膝关节 ...