从0到1搭建推荐策略产品的思考(二):如何搭建?
上一篇文章关于如何从0到1搭建推荐策略产品的思考(一)主要聊了聊搭建策略产品前关于其必要性和应具备的条件,这篇文章主要讲一下如何实施策略产品的搭建。
一、明确目标,瞄准方向
如今再也不是移动互联网刚兴起的时候,随便一个APP就能获取百万用户,依靠用户体验即可取胜的时代了。当然不是说用户体验不重要,而是用户体验逐渐像电力一样,越来越成为一个产品的基础设施了。
好的产品用户体验一定好,不好的产品用户体验不一定差,这其中的唯一区别就是你的产品能否带来价值。
价值,很虚,很空。具体一点,就是能不能切实的为用户解决实实在在的问题,为业务带来增长。
从推荐系统诞生的初衷就可以看出来,推荐策略是为了更加高效的,准确的为用户提供内容。所以当你打算着手在一个业务上搭建策略的时候,想想到底是为了什么?
撇开业务谈策略就是耍流氓。
推荐策略除了能够给用户解决实在的问题之外,能给业务带来什么价值更是重中之重。说的俗点,产品该赚钱还得赚钱,不赚钱真的会死。
所谓的业务价值说到底,就是做了推荐策略能为业务增长带来什么,最终的KPI绕不过的就是利润。
生意,莫不过如此。
不过,即便是利润,也可以拆解为若干指标来看。
- 比如流量类型:PV,UV,DAU,MAU
- 比如转化率类型:CTR,CVR,UCTR,RCVR
- 比如和钱相关的类型:UV价值,RPM,GMV
每一步都可以转化为对利润的贡献率。
重点解释几个常用指标:
至于如何制定推荐策略的核心指标?之前也谈过,一般来说可以根据当前业务线的发展程度去设置:
- 对于新业务线暂不要以GMV为导向,可以从流量或转化率的角度入手,选取CTR作为核心指标;
- 对于比较稳定的业务线则以GMV为导向,选取CVR,UV价值、RPM等作为核心指标。
二、工业级推荐系统架构
在聊具体的搭建流程之前,先简单聊一下目前工业级推荐系统的整体架构,如下图所示:
目前工业级推荐系统架构一般采用如下设计:多路召回、综合排序、人工干预。
- 多路召回是指系统会按照预先制定的策略,从不同的维度到item池选择符合策略的item进行召回,一方面是为了更精准的命中用户感兴趣的item,另一方面大大降低了候选item的数量;
- 综合排序是指系统会采用算法,结合对应的排序策略对召回item进行排序,一般可分为粗排和精排,精排一般指添加了业务规则的排序;
- 人工干预则是对呈现给用户最终的结果进行干预,通常是为了满足特定的业务需求。
除了以上三个核心模块之外,其实对于数据处理也是其中重要的一环,正是数据的流转,推荐系统构成的一个完美的闭环。下面分别说一下以上几个环节。
三、策略搭建,从这里开始
3.1 数据预处理
数据预处理一般是指从底层数据到feature的一个过程。
底层数据通常是指未经过任何加工,直接落到底层表中的数据,比较零散,且不成体系。比如:一个点击浏览表,存放了平台上所有用户在何时何处点过什么东西,但是对于推荐系统来讲通常无法直接使用这种原始数据,因为它依赖的是用户的画像。
画像与原始数据的区别可以做这么一个比喻:原始数据是你买了一个什么物品,画像则是你喜欢买什么物品。所以原始数据仅仅是一种事实,而画像是可以用来做决策的依据。
一般来说,通过数据预处理可以把原始数据加工成数据模型,进而形成一个数据仓库,这些都是加入了人为意图的数据,是可以做决策的数据,从中提取作为推荐系统召回的feature。
目前数据预处理这一环节通常被标签/画像系统代替了,也就是推荐系统可以直接对接标签系统。虽然系统架构上有所调整,但是标签系统的工作本质仍然是基于数据提取用户feature,进而生成用户画像。
3.2 召回策略
目前常见的商用推荐系统召回策略一般采用的都是多路召回策略,如下图所示:
基本都会包含个性化标签、热门,协同过滤,个性化内容/活动穿插。
当然对于一些特殊业务线还有其他自定义的策略,比如:对于拍卖这种业务,捡漏是一个很常见的用户心理,因此对于判断捡漏物品并且进行召回就是一个很重要的召回策略。
每一路都会按照TopN的思路进行召回,具体N的值可以自定义,也可以用AB测试来决定。如果这个阶段召回的item比较多,通常会加入一个粗排过程,进而把不是太符合召回策略的item剔除掉
一般来说召回策略的具体制定通常由业务形态以及推荐应用场景来决定,比如:
- 对于电商首页的推荐,通常考虑的是用户的长短期兴趣标签,对应的策略可能就是通过用户近期的点击,收藏,加购,下单等行为来召回其感兴趣的物品;
- 对于中间过渡页的推荐,通常会考虑用户的实时兴趣,对应的策略可能就是用户的当下session内的浏览路径,进而预测其下一步可能浏览的物品。
一般召回策略会分为两种:实时召回和离线召回。
- 对于实时召回,通常基于用户在平台上的实时行为,实时抽取行为特征,并且召回符合其特征的item,近乎实时的更新推荐结果,这种的好处就是时效性高,能够更准确的抓住用户当下的意图。
- 对于离线召回,主要是通过日志数据,周期性(比如T+1)的更新推荐结果,并返回给用户。离线召回通常会应用于用户长期兴趣特征。
3.3 排序策略
排序通常来说是算法的事情了,具体可以稍微了解一下LR/FM/WDL/GBDT这些主流的排序算法,毕竟技多不压身。关于模型的介绍,我之前的文章涉及过部分,可以参考一下:写给产品经理的机器学习算法。
不过我是没法讲具体的算法优化之类,更想说的是排序中的后半段——page placement。(PS:这个叫法不太确定,欢迎大家纠错)
这个阶段一般是指,通过一定的手段去干预呈现在用户面前的最终排序结果。
算法是基于模型跑出来的排序结果,跑的过程完全自动化,而page placement则是在这个基础上加入了对业务目标和应用场景因素的考量,比如:
- 为了扶持一些新业务,通常会在最终呈现给用户的排序结果中穿插一些该业务的相关内容;
- 为了保证推荐结果的多样性,多特征交替排序策略也是一种常见的手段;
- 比如为了盈利,加入广告,一般还不少。
在这之后,最终的推荐结果才展示给用户。其实这块主要想表达的意思策略一定是基于业务制定的,有牛逼的算法不一定是牛逼的策略。
结合姊妹篇关于如何从0到1搭建推荐策略产品的思考(一),一个推荐策略产品的基本搭建流程基本完结了,是我个人的一些思考总结,肯定有不当之处,欢迎大家多多指正交流。
不过还有许多细小的问题待挖掘,比如:有时候推荐系统中可能用了不止一套算法,那我如何衡量两套算法的好坏?做AB测试么?做一次AB测试成本有多高怕是只有做过的人才知道。
且听下回分解。
作者:夏唬人,公众号:夏唬人,某厂策略产品经理
本文由 @夏唬人 原创发布于人人都是产品经理,未经许可,禁止转载
题图来自 Unsplash,基于 CC0 协议
2021要结束了 求作者大大更新第三篇
2020都要结束了,三还没出来
这么无情的么。。
等三等的好辛苦啊
辛苦辛苦
请教下,推荐产品经理在推荐系统中的角色,除了是业务的输入以外,还有别的吗。如何体现产品经理在其中的价值
推荐产品经理在推荐系统中最重要的角色就是明确推荐系统的业务目标,进而制定对应的策略,策略是基于业务出发的。算法这块推荐产品经理可以依据业务目标来制定算法优化计划,但是具体的执行是算法工程师上,严格来说推荐只是一种手段,最终还是为业务价值服务
产品流程
越来越不喜欢这种推荐了……别问为什么……
追求精准的确会让用户产生疲劳,到底还是策略不够好,没有做到新颖性,多样性,给用户惊喜