如何设计算法模型驱动业务增长:7大步骤+5个关键序列

大家好,我是GrowingIO首席数据科学家何云筱。我们团队在算法模型驱动业务和智能化运营的项目实践中,积累了大量的经验并产生了自己的思考。

1.从人类决策到数据决策,分析能力再上台阶

随着大数据与云计算的发展,我们企业能够获取的数据量越来越大、数据维度也越来越丰富。与此同时,帮助我们挖掘数据、分析数据的工具也越来越强大,比如大家所熟知的各种云平台和大数据平台。

在模型算法方面,业界和学界也投入了很多资源来进行开发和迭代,因此各种新的模型和算法源源不断地被开发完善,发展速度非常快。

在这个背景下,当企业拥有了足够的数据、或者有能力去收集相当数量的数据,智能化运营手段即成为企业增长的一大探索点。

图1:企业决策面临从人类做决策到机器做决策的鸿沟

具体来讲,很多企业近年来借助BI(BusinessIntelligence,商务智能)工具,得到了很多有意义的洞察与增长。

但由于BI工具是由分析师设计,再交由运营人员去使用的分析工具,所以从人力投入与使用场景来看,BI工具所做出的分析一般不会特别复杂,可能只是一些低维度的比如一维、二维的分析。

比如常见的集成学习(ensemblemodel)、深度学习、前几年大家所熟知的在下围棋应用中非常成功的强化学习模型、去年大家十分关心的换脸技术背后的GAN模型等等。所以我们会面临的一个问题是:如何把这些不好理解但功能十分强大的工具应用到我们的业务体系当中。

2.从数据到商业价值,建模流程逐一拆解

图2:模型驱动项目流程

一般情况下,模型驱动项目的起点是一个业务场景或者痛点,比如说大家想解决一个什么样的问题。

我们的团队会和需求方进行一个详细的沟通,比如说在业务场景中出现这种问题的原因是什么,有哪些解决方案,开发模型需要那些数据。这些业务角度的洞察,对我们后面的项目部署具有非常好的指导意义。

GrowingIO有一个家居家装平台的客户,他们通过匹配设计师和有家装需求的用户获得盈利。该平台希望通过智能化分析从平台上筛选出有高意愿去找设计师的用户,以将有限的资源集中到这些高潜用户中从而进行精准运营。总体而言,就是以最少的投入触达最多的高转化率用户,最终提升整体转化率。

现实生活中,大多数行业都有这样一个提升转换率的诉求。

当我们拥有大体方案后,下一步就是进行数据采集。一些提前部署了GrowingIO客户数据平台(CDP)的企业,他们的数据已经封装在我们的客户数据平台中。这些标准化后的数据是可以直接使用的。

而对于新的客户,除了数据拉通外,我们还需要进行数据清洗与流程标准化,这个阶段的速度会相对缓慢。

以零售行业为例,假设某零售客户希望能够预测哪些用户会到店购买,或者预测他们未来会购买哪个品牌、哪个品类等等。

通常情况下,我们所采集的零售数据都是一些交易数据,这些数据记录了一笔又一笔的用户消费信息。

我们要做的是预测未来哪些用户会产生购买转化行为,而过往的用户消费数据可能蕴含着这些信息。因此我们需要把这些交易数据转化为用户特征和商品特征,以便输入到我们的预测模型中。

在预测哪些用户可能会转化的场景中,我们通常采用1或0的二分类模型。

当场景比较复杂、牵涉到种类较多的商品或物品时,我们可以做一些多分类模型深入展开。比如做电商平台的购买推荐时,面对过多的商品种类,可以通过个性化推荐实现“千人千面”的推荐效果。

基于以上四个步骤初步搭建好模型后,我们需要做很多的离线检验以进行模型验证。

整个过程结束以后,我们会对验证后的模型做一些画像,以更好地理解模型背后的逻辑。同时,模型画像也能够帮助我们确定整体的营销策略。

至此,大家对这个模型也有一定程度的了解、精度也能得到保障,模型就可以上线了。上线后,我们也会在线上做一些相应的检测,并把整个流程固化下来,使它变成一个自动化模型产品。同时,我们也会依照业务的需求以一定的节奏让模型保持自动更新。

在GrowingIO现有客户中,他们的预测模型每天都在自动更新。在这种情况下,客户就能够通过这个模型实现源源不断的输出,赋能相应的业务场景。

3.从模型到业务增长,解析项目五大关键点

3.1清晰的建模目标

图3:建模的业务目标

一个成功的技术模型,往往是商业洞察、数据、算法三者相互作用的结果。业务目标决定了我们需要采集什么数据、使用什么算法、做什么验证以及制定什么策略。总而言之,业务目标是一个根本性的驱动因素。

业务场景通常来说是多种多样的,因此我们需要根据客户的需求对建模过程进行一些微调。

3.2模型和算法选择

图4:选择模型和算法

选择算法的第一步,是明确选择算法的目的,即从数据中提取有效的信息。因为算法是不会自己生成信息的,所以我们只能从数据中提取。

那什么是有效信息呢?这里的有效是针对业务目标而言的。一般情况下,业务需求和我们所给出的解决方案,基本上就决定了我们所要选择的算法类型。比如简单的分群分类、预测或是个性化推荐场景就分别对应了序列决策(Sequentialdecisionmaking)、强化学习等算法。

值得注意的是,选择模型和算法的时候需要我们在准确性与可解释性之间做一个平衡。通常来讲,如果我们做的是预测模型或者分类模型的话,会更关心准确性;而归因模型最终的目的是对哪些因素起作用哪些不起作用做说明,这时模型的可解释性则更加重要。

图5:从简单到复杂

在建模的初始阶段,我们会优先尝试一些相对简单的模型,比如说线性模型,这样方便我们作出解释。

其次,考虑模型的可拓展性。由于当前用户行为数据呈现指数级增长,我们需要结合平台运算能力与模型结果实施来进行这方面的考虑。

总的来说,算法模型多种多样,可选择的余地也非常大,但当我们从这几个维度进行考量后,可选择的范围就会相对的缩小。

3.3特征工程与选择

算法的目的是从数据中挖掘有效信息,因此我们用来拟合算法的数据应该要包含尽可能多的信息和预测能力

举个GrowingIO的客户案例,我们曾经做过一个预测模型用来预测哪些用户会到商店进行消费。在这个模型中,因变量是用户是否会到店购买的这个行为,但由于我们预测是的下一周/下个月/下一季度的购买情况,所以因变量还需要从用户行为周期或最终营销执行策略等角度进行调整。

至于自变量则需要考虑能够影响用户消费行为的因素。具体一点来说,就是找到具备预测我们所需解决事情能力的信息,并且把信息中具有预测能力的变量抽离出来,再放到我们的模型当中。

比如性别、年龄、教育程度、收入等基础的用户特征;又比如品牌、是否打折品类等商品特征。对于零食类商品而言,口味也是影响用户购买行为的重要因素。

其次,用户过往行为和线上行为也会蕴含大量的信息。比如说我们营销中常用的RMF维度、用户忠诚度、会员身份、是否参与打折消费以及用户过去的商品浏览、收藏点赞等行为等等。这些数据能够极大地提升我们的模型预测表现。

在个性化推荐场景的特征工程中,我们需要推测用户会对什么样的产品更感兴趣。如果我们能把包含用户兴趣的特征放进模型中,模型的表现也会更好一些。

除了预测模型中所提到的基本的用户与商品特征外,还需要结合场景思考用户可能感兴趣的商品品类。比如节假日会影响用户的购买兴趣;对于内容平台而言,终端或者所处网络状态都会影响用户的浏览偏好。

同时,社交网络也是影响用户购买的一大因素。用户的邻居、朋友、同事等等的兴趣行为很大概率会反映到用户身上,这些都从另一个角度为我们提供了分析用户购买兴趣的线索。

其次,在个性化推荐商品的场景中,我们常常面临着冷启动的问题。一些新的用户,由于缺乏关于他们的足够量的行为数据,导致我们对他们所知较少。这时,我们可以借助比如地域等其他信息来洞察用户。

当然我们也存在一些比较特殊的场景。在一般的电商平台上,如果我们推断用户对某些商品感兴趣,那我们就可以直接进行推荐。

而对于婚恋网站来说,它存在一个双向性的问题,即只有双方都具备好感时,才算是推荐成功。对于运营商客户,它们也存在一些特殊的限制,因此行业和平台的特征也是我们在选择算法时所需要考虑的因素。

整个流程下来,我们其实没有谈到非常技术的问题,主要是通过业务知识或领域现状来判断哪些特征对我们有所帮助。

最后,我们需要完成对模型的校验。最终的校验模型将会为我们提供更多有用的信息,比如说哪些特征会有用、而哪些特征会没用。

3.4检验模型

模型检验通常来讲有两个目的,一是验证模型的准确性,二是解决模型的稳定性。通常而言,我们是根据某一样本来建立模型,但如果我们拿出另一个样本,模型的效度是否能够得到保证?

另外,如果这个模型对当月数据有效,那到下个月是不是还能保持大致程度的准确性?这就是我们需要解决的问题。

在衡量算法模型项目的准确性时候,通常会用到技术指标和商业指标:

不同类型的模型会有一些技术指标,相信大家都非常熟悉。

做模型的最终目的是给业务带来增长,因此商业指标在某种程度上要比技术指标更重要。比如说看一下CTR(Click-Through-Rate,点击通过率)或是引入模型后带来的营收增量等指标。

通常情况下,我们是在离线环境下训练模型,这就意味着在模型上线后,需要检验模型在线上环境的运行情况及效果,所以我们也会有一些对应的检测方法和手段。

A/B测试是我们比较熟悉的检测方法,更复杂的还有交叉验证、In-timetesting和Outoftimetesting。这些都是基础模型常用的检测手段。

图6:用技术指标检验模型效果

如图6所示,当我们在做二分类或者多分类的问题时,可以跑一下历史数据,用我们的模型来为用户排序分组,区分高概率转化的用户和低概率转化的用户。

比如说我们排序前10%的用户,如果能覆盖40%转化的用户量,这样子我们大概会产生400的lift。而像ROCcurve或AUC这样的指标会对我们评估模型表现具有比较好的指导意义。

图7:用商业指标检验模型效果

图7从商业指标的角度反映我们的模型效果。我们在第一部分提到的家装平台案例中,通过模型将用户分为高意愿组和低意愿组,并在他们在线时候分别进行弹窗引导。

结果显示,低意愿组在加了弹窗之后,转化率大概在0.05%左右;而高意愿加弹窗后转化率能达到0.67%。十几倍转化率是由有序的项目流程,系统的统计分析和先进的模型构建所支撑的。

3.5模型画像

模型虽然功能很强大、预测能力很强,但它也会变得十分复杂、不容易解释。而且建模项目往往需要多团队合作,因此大家一定要对所做的模型有共识和足够的信心,这样大家才会放心的交付并使用模型。

在模型产出输出后,我们会使用画像对模型做一个解释,它能帮助我们梳理模型背后的逻辑,从而完成一些模型优化工作。

尽管模型本身的数据逻辑很复杂,但它背后的核心逻辑能用两点来概括:一是商业逻辑;二是长期作用。如果我们能够探索出决定模型的商业逻辑,它在我们提炼营销策略时就能起到很好的提示作用。

从方法论来讲,我们主要可以从三个方面来入手。

图8:变量重要性检验

第一个是变量的重要性。现在的算法模型很复杂,我们通常也会拟合很多特征,而最终哪些特征起作用,哪些特征没有起那么大的作用,我们则可以通过提取变量重要性的方式(如图8所示),在排序后理解模型的逻辑。

图9:用商业指标验证所选指标

第二个考虑我们所使用的特征与商业指标之间的关系。通过模型输出,我们可以看到某一变量或某一维度在不同人群中差异极大,那么他们可能会是比较好的可选特征,将它用于用户分群后,就能进行精细化运营。

第三个是输入与输出的关系。举个例子,我们在医院体检的时候,报告上会提示很多不同的指标。医生看完报告后会告诉我们一些需要注意的地方,或者我们在健康上有哪些问题。而我们就会反问医生报告背后的逻辑是什么、他是怎么得出结论的。

我相信医生整个诊断的过程是非常复杂的,因为它绝对不会是一个简单的线性关系。但医生给我们解释它逻辑的时候,一定是用最简单的话来完整地表达整个逻辑。因为如果太复杂的话,我们也不一定能够听懂。

实际上,医生解读健康报告这个案例也在给我们带来一些提示。虽然我们的模型整体上非常复杂,但我们或许可以在局部用一些线性模型或者树型模型等易解释的模型对它做一些逼近。

如果逼近比较成功的话,那么我们至少在一个局部可以根据这些简单的模型来解释为什么复杂模型能够得出这些结论。

以上就是建模的整个流程与注意事项。

4.GrowingIO数字化增长解决方案

这部分我想给大家简单地介绍GrowingIO目前在做的一些工作,具体来说,就是智能解决方案平台背后的搭建思路。

如果我们想把做出来的模型尽可能的自动化,至少需要考虑三个方面的东西,它们分别是计算平台、数据、算法。

图10:GrowingIO客户数据平台(CDP)

从图10可知,计算平台、数据、算法是我们GrowingIO智能解决方案平台的基础设施。越到中间环节就越接近算法,在数学上也就更加复杂,但同时也是自动化或标准化程度较高的部分。

在整个平台的两端,由于我们需要对接具体业务,落地应用场景,因此不同模型的差别会非常大。在这种情况下就需要业务、技术等团队相互配合。在具体的操作中,可以对各个不同行业所共同关心的话题作一些抽象、提炼出一些常用的场景,来帮助我们不同行业的客户。

基于此,GrowingIO增长平台的逻辑也就出来了:首先把硬件软件、数据算法做一个有效的封装,然后通过算法从数据中提取有效信息和商业洞察并形成可落地的商业策略,并用合理的渠道去触达云以提高效率、增强智能,最终为客户带来增长。

在GrowingIO,我们有专业的团队来对各个行业所共同关心的场景进行提炼,现在已经提取出一些常用场景的算法模型。

图11:19个适用于电商的模型/算法场景

需要注意的是这里有一个帕累托原则的概念(ParetoPrinciple),即20%的高价值用户为我们带来80%的业务营收。因此我们需要通过分权的方式,将这些高价值用户从众多的用户中筛选出来。

此外,用户运营还包括流失用户预警、潜客挖掘等等的场景。

商品运营包括价格制定策略、品类优化、个性化推荐、场景。具体而言,我们可以通过衡量用户对平台、对产品的忠诚度计算用户的价格弹性,根据产品的可替代性制定最优的价格策略;通过对用户购买组合的分析判断划分出品类相似的产品,通过实体店的商品摆放,方便用户找到自己所需的商品。

电商平台可能还会举办各种各样的促销活动,结束之后我们需要对活动复盘,评估营销活动究竟能给我们带来哪些长期和短期的效果;同时促销活动可能会涉及到优惠券分发的需求,我们的模型可以帮助客户提高个性化发券的精准性,提高活动效率。

除了电商平台的解决方案外,GrowingIO团队还提炼出运营商、内容社区等不同行业的模型与算法场景,总结出了20个适用于运营商以及17个适用于内容社区的模型和算法场景。

THE END
1.算法设计的步骤算法设计的四个步骤算法设计的步骤 第一步:确定程序的入口(即已知条件),出口(条件). 第二步:由第一步画出示意图. 第三步:综合运用正逆思维方式,分析解决问题. 第四步:根据上面的分析,写出顶层较抽象的算法,分析边界情况. 第五步:验证第四步的算法. 第六步:写出具体算法,分析输入.https://blog.csdn.net/xiaojun_2006/article/details/2267375
2.设计一个动态规划算法的过程可分为四个步骤的英文翻译海词词典,最权威的学习词典,专业出版设计一个动态规划算法的过程可分为四个步骤的英文,设计一个动态规划算法的过程可分为四个步骤翻译,设计一个动态规划算法的过程可分为四个步骤英语怎么说等详细讲解。海词词典:学习变容易,记忆很深刻。http://dict.cn/%E8%AE%BE%E8%AE%A1%E4%B8%80%E4%B8%AA%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%E7%AE%97%E6%B3%95%E7%9A%84%E8%BF%87%E7%A8%8B%E5%8F%AF%E5%88%86%E4%B8%BA%E5%9B%9B%E4%B8%AA%E6%AD%A5%E9%AA%A4
3.二年级数学教案(精选15篇)设计意图:通过观察情境图,提高学生主动获取数学信息的能力。通过引导学生提出问题,提高学生发现问题、提出问题的能力,进而激发学生解决问题的兴趣。 ⊙合作交流,掌握算法 1.教师选取其中与例1类似的问题,让学生在交流的基础上想办法解决。 师:现在请同学们进行小组交流,探讨可以用什么方法解决第四个问题。 https://www.fwsir.com/jiaoan/html/jiaoan_20221205144720_2119659.html
4.多级反馈队列调度算法(重点)七多处理器调度算法设计1.1 cpu调度 其任务是控制、协调进程对cpu的竞争,即按一定的调度算法从就绪队列中选择一个进程,把cpu的使用权交给被选中的进程。如果没有就绪进程,系统会安排一个系统空闲进程或idle进程进入cpu运行。 1.2 系统场景 *N个进程就绪、等待上cpu运行 *M个cpu,M>=1* 需要决策:给哪个进程分配哪一个cpu? https://cloud.tencent.com/developer/article/1124488
5.心法利器[10]算法项目从1到N过程整个流程下来,其实大家就能大概看到一个算法工程师视角的工作是怎么开展的,项目又是怎么管理,这样让我们在任务的执行过程中,逐步摆脱一个“打工人”的身份,而逐步变成一个项目的统筹者、计划者、设计者,我们不应该只是简单的会执行命令,而是会思考。怎么做才对这个项目的短期、长期更有利。https://zhuanlan.zhihu.com/p/437397627
6.软件测试试题库(通用7套)6、典型的瀑布模型的四个阶段是:( ABCD ) A、分析 B、设计 C、编码 D、测试 E、需求调研 F、实施 7. 下面的哪一项测试步骤中需要进行局部数据结构测试: ( A ) A、单元测试 B、集成测试 C、确认测试 D、系统测试 8. 从是否需要执行被测软件的角度,软件测试技术可划分的类型是:(AC )。 https://www.unjs.com/zuixinxiaoxi/ziliao/20170720000008_1398848.html
7.五大常用算法之二:动态规划算法151CTO博客五、算法实现的说明 动态规划的主要难点在于理论上的设计,也就是上面4个步骤的确定,一旦设计完成,实现部分就会非常简单。 最重要的就是确定动态规划三要素: (1)问题的阶段 每个阶段的状态 (3)从前一个阶段转化到后一个阶段之间的递推关系。 递推关系必须是从次小的问题开始到较大的问题之间的转化,从这个角度来https://blog.51cto.com/u_12667998/6544848
8.基于改进A*算法的无人机避障路径规划2 算法设计 A*算法是一种静态路网中求解最短路径最有效的直接搜索算法, 它通过启发函数来引导算法的搜索方向. 针对本文研究的问题, 对A*算法做了一定的改进. 首先输入无人机飞行起始点S, 终止点T. 建立两个数组C1、C2, 用来存放无人机所经过节点的信息. https://c-s-a.org.cn/html/2021/2/7772.html
9.关于计算机二级Access的知识点两步:1概要设计(总体设计):将软件需求转化为数据结构和软件的系统结构;2详细结构(过程设计):通过对结构表示进行细化,得到软件详细的数据结构和算法 七、计算机辅助设计CAD 计算机辅助过程CAE 计算机辅助软件过程CASE 八、 1.软件测试四个步骤:单元测试(静态分析或动态测试)、集成测试、验收测试、系统测试。 https://www.yjbys.com/edu/jisuanjidengji/158075.html
10.数据结构与算法(一):概述算法(Algorithm)一词最早出现在波斯数学家al-Khwarizmi所写的《印度数字算术》中。欧几里得算法(求两个整数的最大公约数)被认为是史上第一个算法。 算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。 https://developer.aliyun.com/article/1213753
11.数学三年级上册《笔算乘法》说课稿范文(精选3篇)根据教学目标和课后练习,我设计了以下一个作业: 把课后“练习十五”中的1——4题做在课后作业本上。 以下是我本节课的板书设计: (略) 我的说课到此结束,请各位老师和各位同学指导批评。 数学三年级上册《笔算乘法》说课稿2 一、说教材 《三位数乘两位数》是四年级上册第三单元的内容。学生在三年级下册已经学https://xiaoxue.ruiwen.com/shuokegao/128134.html
12.《认识周长》说课稿(精选13篇)特别是后而的拓展延伸环节,这里又跟前面的创设情境部分呼应。这里体现了数学回归到生活的思想,培养学生解决问题的能力。而且这里第一步骤设计得很妙。请你先估一估这幅图的周长。这里体现了估算意识,为了降低难度,用了双面胶作参照物,体现出老师处处从学生角度考虑的思想。https://www.yuwenmi.com/fanwen/shuokegao/1984786.html
13.高中信息技术课程标准四、课程目标 五、内容标准 必修信息技术基础 选修一算法与程序设计 选修二多媒体技术应用 选修三网络技术应用 选修四数据管理技术 选修五人工智能初步 六、实施建议 教学建议 评价建议 教科书编写建议 课程资源的利用与开发建议 七、案例 一、课程性质 信息技术既是一个独立的学科分支,又是所有学科发展的基础。信息https://www.fqkhzx.cn/index/article/view/id/94.html
14.第一章数据结构与算法算法各步骤之间的操作和运算顺序称为算法的控制结构。 三种基本结构:顺序、选择(分支)、循环(重复) 1.3.3 算法的描述工具 N-S结构化流程图、伪代码、流程图、自然语言、程序设计语言 1.4 算法设计的基本方法 递推法、减半递推法、递归法、列举法、回溯法、归纳法 https://www.jianshu.com/p/7507b8dbc8ef