第12课:实验平台搭建 & 产品设计思维

在前面章节中,我们对整个推荐的架构进行了简单了解,之前也说过推荐的产品形态不在于其功能,而在于其最终的商业价值,带来的转化。

所以,如何保证整个系统能够快速稳定的保持迭代是个需要着重考虑的事,架设一个好的推荐系统实验平台,能够保证整个过程稳步进行。

推荐实验平台

整个推荐实验平台最大的目标就是能够进行 AB 测试,然后进行模型迭代,而这一切的基础就是将很多东西进行解耦,以及打通整个数据闭环。

其要素,包括并不限于:

  • 模型的快速新增实验
  • 模型的快速迭代实验
  • 模型的融合测试
  • 栏位的分流测试
  • 规则的配置生效
  • 推荐的效果追踪分析
    1-7

这是我们的推荐系统实验平台(浓浓的工程师风格)模块截图,从名字上大致可以看出来他所承载的功能。

模型的快速新增和版本迭代

其中最重要的就是模型策略配置,这个模块承载着模型新增、模型进行配置,分流进行配置,策略中进行模型融合等等各项核心功能。

模型迭代

2-6

这是个模型配置部分的示例,只要我们底层实现了一个新的模型,或者旧模型的版本升级,在这里都可以进行添加,那么系统就可以使用这些模型了。

这里包含了每个模型的必要输入参数,对应的输出类型,适用的推荐栏位等基本信息。

这里我们所保证的就是底层模型可以随便玩,但是需要部署到整个业务体系中的时候,就很简单,只需要简单的配置进去就好,实现了模型开发迭代与整个推荐系统的解耦。

模型融合

3-3

这里我们进行模型的融合,以实现推荐的多样性,每个策略可能包含一种或者多种底层模型,并且对与模型进行输出权重进行分配。

底层的算法模型在上层而可以组成不同的策略,然后将策略投放到具体的流量位中。

分流配置

整个分流就是针对推荐的相关栏位进行流量分配,而分配的目标就是推荐策略。

4-1

这里就直接关联到产品的推荐栏位了,每个栏位流量怎么进行分流测试,以快速试探策略的乃至于模型的优略。甚至,我们在流量配置这层,可以进行任意流量的切割,而底层则保证分流的完全随机性。

将上面三个模块结合起来,我们会发现从算法模型的迭代,到算法模型的融合,再到分流投放测试,都可以做的很灵活,并且一旦配置上去,在分钟级即可生效至业务端,并且对应的效果分析也是类实时的分析跟进。

对于排序层,我们目前并没有单独拆离出来,实际上是需要拆离出来的。

模型策略数据查看

所有模型的输出数据我们都可以通过这个模块进行快速的感知,而不用去底层查表等等各种复杂操作,有助于我们业务层快速对推荐的输出进行评估。

5

PS:涉及到敏感数据的我就隐掉了哈。

黑名单机制

我们可以看到,我们这里规则层目前并没有做过多限制,只是做了黑名单的过滤,这个也是通过系统进行配置快速生效的。

而一个完整的规则引擎远不止如此,这些都可以视情况进行迭代。

效果分析

整个效果分析都是内部使用的,用它来进行我们所有配置的效果追踪,每个维度都有对应很多的指标用于进行效果分析追踪。

每日数据

6

7

通过监测每天的数据变化进行推荐系统的输出核心指标的分析。

栏位分析

实际上就是针对不同的推荐栏位,进行拆分分析,然后来对比每个栏位的输出情况。

8

9

通过对不同栏位的交叉分析,有利于进行异常的栏位进行跟进分析。以上两个模块都是偏业务分析,用于评估业务维度的推荐效果。

分流分析

10

还记得我们之前说的分流配置吗,我们针对不同的流量分配其用户流量,这里我们回收所有的效果数据,进行流量的进一步操作评估,是否移除该策略的流量,或者逐渐加大流量。

并且我们可以尝试提供实时的数据反馈,以便进行快速验证和进行调整,但是需要注意的是,很多时候模型的观测需要拉长时间周期,避免偶然性因素造成的波动影响。

策略分析 & 模型分析

至于策略分析和模型分析就不一一拆解了,目的都是类似的,都是拆出来进行横向纵横向的关键指标对比,最终来决定我们的策略配置的动作,来决定哪些模型是好的,哪些模型是差的,流量该怎么进一步分配。

至于健壮分析,实际上就是每个算法模型或者策略,都可能面临无法召回的情况,我们需要分析这些因素带来的影响,甚至整个推荐服务可能都会出现问题,这个时候我们在整个推荐业务的灾备方案(比如随机,避免用户看到为空的列表)等机制就需要生效了,通过健壮分析来分析整个算法的健壮性,系统的健壮性。

实验平台总结

综上,我们可以发现,一个完整的实验平台,其灵活度是很高的,各个层次都可以灵活进行配置,然后快速生效,然后快速获取追踪数据进行分析,然后进一步调整看效果,完美的形成了闭环。

让整个系统的运作与算法模型的开发彻底的进行了解耦,快速部署上线应用到生产中,这就是实验平台存在的价值。

而实际上,我们在考虑上第一版推荐系统的时候,定的基调就是,保证功能、夯实实验平台、满足基本的推荐算法模型即可。

上功能是前提,夯实了实验平台,后续的迭代就可以完全进行解耦了,说白了就是后续怎么玩都可以了,完整对于用户层都是无感知的,只要控制住效果风险就好,就能进行快速的模型迭代,然后进行实验反馈。

推荐系统的产品设计

在推荐的产品设计上,我们首先需要考虑的是什么栏位应该放推荐。

我们来试想一下,推荐核心要满足用户的购物体验(架设在电商场景),完善用户的浏览闭环,说的通俗点就是最好让用户一直逛下去,最会有想买的时候(不加大浏览深度,怎么留住用户)。

其次,我们在推荐的栏位名称设计上也是有迹可循的,实际上他就是一个推荐理由,而推荐理由在推荐整体设计中起着重要作用,很多时候点击率的提升会受推荐理由的影响。

所以这个时候,我们就需要站在用户的角度来思考,到底什么场景的文案说服力会高点,更具有点击的欲望,这个是可以从产品的角度来提升推荐指标的。

实际上还有一个更巧妙的法子,推荐栏位名称同样也是可以做成AB测试的(我们暂时没做,下个版本会考虑),控制住底层所有的变量,进行推荐栏位名称的变更,来观测推荐效果的变化(主要是第一层的点击率)。

此外,对于推荐的产品设计来说,另一个很重要需要考虑的点就是,你的场景里头推荐需要核心服务的是什么用户,是老用户还是新用户,不同的服务群体,我们算法核心重点优化的方向是不同的。

总结

到此,我们整个推荐系列基本上算是完结了,从推荐系统的背景,到推荐系统涉及的基础知识,再到推荐系统的核心推荐算法,再到全局架构的设计,再到保证推荐迭代的实验平台构建,最后到产品设计思路,都基本涵盖了。

沿着这个路径,我们基本上能够构建起推荐系统的只是体系,对于完全没有接触过推荐的工程师来说,沿着操作路径,也能学习一些推荐算法相关的东西,而对于架构师来说,架构其一个能持续迭代的推荐系统架构也应该问题不大的,有点遗憾的就是对于算法这块,并没有太过于深入,只是讲解了一些场景的算法模型,所以对于立志于算法模型的朋友,估计还需要结合其他机器学习的课程进行知识提升了。

(全文完)

(转载本站文章请注明作者和出处 第12课:实验平台搭建 & 产品设计思维