导读 本文将分享在智能手机这一制造行业下,OPPO Andes智能云团队所采用的智能增长算法的核心架构,以及相关的应用场景。
全文目录:
(资料图片仅供参考)
1.行业背景介绍
2.算法架构阐述
3.应用场景分享
4.总结和展望
分享嘉宾|吴存华 OPPO 推荐算法专家
编辑整理|樊陈卓 复旦大学
出品社区|DataFun
01行业背景
智能手机行业作为典型的硬件制造业,与大众生活息息相关。
国家统计局统计显示手机上网人数10.65亿人,还未手机上网的一般是未成年、老年人,手机行业几乎没有增量。在存量用户需求端,用户的换机周期越来越长。去年和前年的对比,1-2年的持机用户占比从15%下降到13%,2~3年的用户占比从28%下降到22%,3~4年的用户占比从24%增加到28%,4年及以上的用户占比从28%增加到31%。
从供给端看,20年、21年经历了供给内卷,所有厂商都在疯狂出新品,竞争剩余的增量。去年新品数量恢复到19年水平,但是上市2年以上的机型逐年下降,主要原因可能是老机型产品没有竞争力,被迫退出市场。进入23年,国内安卓阵营竞争更加剧烈,在微博、B站等社区都能看出战场痕迹。
随着智能手机风口过去,手机公司可能面临许多挑战。一般来说,它们可以从以下四个方向来应对这些挑战:
第一个方向是拓展高价值市场,例如海外发达国家或国内高端市场。
第二个方向是增加手机的附加值,例如提升手机互联网服务的平均用户收入(ARPU)。
第三个方向是增加新的运营主线,例如拓展智能穿戴设备或汽车行业。
第四个方向是提升渠道效率和营销模式,例如增加效果营销,或通过线下和线上渠道的互补来促进用户的粘性。
OPPO在过去两年的智能增长探索中,主要积累了第三和第四个方向上的经验。接下来将分享相关的增长策略。
02算法架构
近年来,在深度学习的推动下,各行业的智能算法架构基本上都采用TensorFlow或PyTorch作为底座,以此为基础进行构建,降低了技术门槛,同时享受到了技术红利,做出有行业特色的创新和优势。就手机行业而言,它既拥有互联网巨头的数据优势,又面临着制造业智能改造的挑战。
以下是OPPO团队的整体算法架构。手机增长的算法架构主要包括基础数据、数据建设、特征画像、模型建设和应用场景这五个部分。
基础数据方面,手机增长算法所需的主要数据包括:
手机状态:一般是操作系统层面的各类字符串或数值类型的状态数据,主要用于建模用户生命周期。 商品属性:指待售商品的一些基本属性,如内存、大小、卖点、权益等。 订单数据:指用户购买手机时的关键数据。 营销投放:指在智能增长过程中干预用户的数据,通常包括RTA、RTB以及广告投放的数据,或其他消息日志。 实时行为:主要描述用户在手机上的部分实时反馈。 素材:为提升干预效果而准备的一些内容。为了提升数据复用效率和扩展性,要在基础数据的基础上,做一系列标准化、规范化处理,再基于手机的流转关系抽取用户的流转关系图。这里的自然人是描述手机和自然人的映射关系。完成数据建设后,特征画像的建设和业界大多数做法比较相似,包括实时统计类、实时序列类、内容理解、用户长期画像,不过也有一部分是行业特有的,手机流转画像和营销节点画像,主要刻画手机市场的竞争关系和因应手段。
在模型建设方面,我们采用了以下方法:
因果模型(Uplift):用于刻画营销的边际收益,并减少负向干预,用于换机预测。 PU-learning方法:用于准确找到干预的精准人群,减少对用户信息的干扰。 多模态理解:主要用于文本和图像的预训练。 PID方法:主要是一种自动控制能力,用于满足大部分场景的自动约束需求。 AIGC方法:通过Stable Diffusion模型的能力,输出图片素材。 CTR和CVR:主要用于链路上点击率和转化率的预估。这些模型和算法的应用场景包括以下几个方面:
RTA和RTB:涉及广告投放场景,包括域内和域外的广告投放。 社区和商城:指OPPO的自有平台,是用户运营和手机自营的营销核心渠道。 权益和Push:综合干预渠道。以上就是OPPO算法层面的整体架构。
从工程层面,我们看下怎么解决智能改造的技术方案。最最侧的智选模块,完成算法场景的自动接入。手机增长涉及的链路很长,比如从新机卖点洞察、人群营销洞察、新机预热、首销、促销,并且每个链路的场景很多,智选主要满足了场景快速接入的需求,并且解耦运营、工程、算法,支撑算法专注在效果优化上。营销云主要用于素材生成、广告投放管理、分析监控。中间引擎模块是推荐引擎,通过召回、粗排、精排、重排、策略算子的自由组合,满足定制化需求。为了进一步提升引擎的灵活性,我们对多样性、多目标、重排、策略模块做了DSL改造,支撑团队的算法探索。另外由于机器成本的约束,上面的很多步骤在使用时都可以0成本的插拔,以降低延迟、提升吞吐。
上述算法架构主要是基于OPPO的Andes智能云完成的。得益于智能云的基础设施的灵活性和易用性,我们在协作方面,特别是跨团队、跨部门和跨系统的协作上拥有较好的解决方案。
03应用场景
接下来将分享4 个具体的应用场景案例,第一个案例是基于 AIGC 的内容供给;第二个案例是在商城中,基于多场景、多目标、多模态的推荐;第三个案例是基于因果推断的精准人群定位;第四个案例是在手机行业里的广告精准营销。
1.第一个应用场景:基于AIGC的内容供给
首先,我们意识到在非算法领域或传统制造行业中,业务团队可能需要一些科普才能理解内容供给的重要性。因此,我们与业务伙伴合作时采用了讲道理和数据展示的方式,在一些小的场景中通过实验验证了扩大内容供给量的益处。我们观察到,通过增加内容供给量,可以显著提高点击率,获得15%的点击率提升,从而达成了共识。
另一个挑战是供给效率和人力成本。最初,内容供给的流程依赖于人工,即设计师输出一些素材,经过安全审核后投放到线上。这个过程相对低效。为此,我们团队进行了第一次改造,采用工程模板制图的方式。这样,内容供给的流程发生了改变:设计师集中精力在模板创作上,然后通过模板生成大量候选素材,经过初审和安全审核后进行投放。通过这次改造,每天初审的内容数量显著增加。然而,也出现了新的问题:模板的重复率较高,生成的候选素材信息量不足,容易让用户感到千篇一律。
目前,随着AIGC技术的不断成熟,我们调研了AIGC的相关方案,并发现该技术实际上可以增加模板的创作难度同时增加信息量。因此,我们与相关的团队合作,引入AIGC技术来增加素材创作的信息量,以提升用户体验。
目前,我们使用的AIGC模型主要是CLIP模型,它的主要思路是通过大量的图像数据和文本数据进行模型预训练,使模型能够理解图像和自然语言之间的对应关系,从而实现跨模态的语义推理。为了实现这个目标,我们生成模型的框架涉及两个组件。第一个是图像编码器,基于Transformer架构,将图像特征转化为Embedding向量。第二个是文本编码器,基于VILT架构,将自然语言转化为特征向量。基于这两种向量,我们结合交叉熵学习和对比学习的方法,进行模型的训练。在预训练阶段,我们参考了一些开源数据和OPPO私有的图像和文本数据,并在Andes智能云的GPU集群上进行训练。
在生成部分,我们经过了多次尝试,以使AIGC输出的内容符合广告投放的需求。目前发现,通过添加关键词、卖点、营销话术、图文风格、负面反馈以及图像细节的提示,可以有助于生成素材。最右侧的示例展示了结合素材和模板生成的最终结果,其中背景图就是一个例子。
2.第二个应用场景:多场景、多目标的多模态推荐
如上图所示,我们目前的业务场景主要是在商城界面进行推荐。例如,在首页的横幅广告部分、格子位、瀑布流推送以及积分、社区、优惠券发放等场景中进行推荐。
在算法接口方面,我们已经接入了近几百个业务场景,需要关注点击率、转化率、GMV等业务指标。同时,手机行业内存在人力约束,这对算法提出了不同的需求。
我们一开始就采用了跨场景多目标的模型方案来进行推荐,随着场景的增加,我们不断对模型进行迭代优化。后来,我们还增加了一些非产品内容的推荐,例如社区、视频等。此外,对于内容素材的需求,我们也需要在多模态模型中引入一些新的能力。
经过不断迭代,我们的模型如上图所示。左侧部分是多模态的理解,模型主要基于ViLT的结构。通过对比发现,经过业务数据微调的ViLT模型比公开的ViIT模型效果更好。我们进行了大量的分析,发现实际业务场景的数据与公开数据集存在较大差异,特别是在营销话术等垂直领域方面。右侧部分是推荐模型,该模型结构融合了最新论文的进展。底层模型主要基于历史行为、上下文和候选物料三个部分。对于候选物料,我们目前采用对应的多模态预训练特征。实时统计的行为会使用Encoding 的方法进行向量化表示,而上下文内容我们会额外区分场景和domain特征进行向量化。
在多模态多感场景感知模块中,我们主要使用Transformer和场景专属的方法。在最上层,我们为目标设置了专门的tower,最终得到目标的比例结果。经过测试对比,我们发现引入AITM的多目标校准方法可以获得一定的收益。在多目标层面,与传统电商相比,我们会加入更多的目标,这与行业特点有关。例如,在手机行业中,每个用户可能需要两三年才会更换手机,这导致转化率很低。同时,换机用户中复购的比例也较低。因此,为了准确捕捉用户当前的换机意图,我们需要增加其他目标来辅助发现用户的意图,例如评论查看、时长相关和商险相关的目标。得到这些目标后,我们使用近似排序公式计算得分,该得分是各个目标的连乘结果。同时,每个目标受到三个超参数α、β、γ的约束,目前这些超参数通过离散超参模型学习得到。
经过多次迭代,包括增加更多目标、引入多模态、优化超参数等措施,相较于原有模型,我们在转化率(CVR)上取得了累计20%以上的收益。
3.第三个应用场景:基于因果推断的精准人群
手机行业中的“精准人群”概念与电商平台的划分有所不同,这是因为用户购买手机的行为具有不一样的特点。举个例子,假设用户A,他可能会选择继续购买当前品牌的手机,也可能会换到其他品牌。对于已购买当前品牌的用户,他们可能有两种行为,一种是自己使用手机(留存),另一种是赠送给他人。然而,由于线上和线下数据的隐私安全等问题,手机公司只能获取到部分购买和换机的数据。手机行业的增长目标是通过现有数据识别出购机和留存用户,并通过营销活动增加商品的粘性。这就是精准人群的背景场景。
因此,在算法团队进行人群建模时,主要关注两个指标:准确率和召回率。通常情况下,我们很难获取到完整准确的营销数据,因此在实践中,我们会花费更多时间进行特征画像和用户分析,通过多种方法挖掘真实的购机用户,并叠加相应的模型方案,从而得到最终的精准人群。
我们采用了多种方法,例如Look-Alike、PU-learning和Graph-learning等方法,来获取相对精准的人群。
在营销中,只有精准人群是不足够的,因为对于营销四象限图中的B、C、D三个象限的人群进行营销可能效果甚微,不符合预期。我们的核心目标仍然是针对A人群,因此这个问题实际上转化为一种因果推断的问题。
在算法层面上,在满足一定条件的情况下,因果推断可以等价于计算Uplift,这种模型通常有三种建模思路:
Two-Model:分别建模基准组、控制组的模型,两者相减就是结果。缺点是两个模型有误差累积 Single-Model:参考推荐领域的多目标模型,解决了模型误差 Direct-Model:直接建模ITE在典型的推广搜算法领域,假设训练数据和预测数据独立同分布,能不断产出很好的结果。在因果推断上,由于一个人要么有干预、要么没有干预,没办法在同一环境下同时观察到基准组、控制组的结果。因此需要使用因果模型来解决uplift建模问题。Uplift建模时有两个挑战:
由于业务需求,导致两组数据的分布不同。 一般业务只会保留很小一部分用户作为基准组,样本数量不均,也会给模型建模带来困难。我们尝试了DESCN的论文思路,使用了干预组和控制组的全样本,这样的结构相当于使用了Single-Model的思路实现。这篇论文主要创新点在于使用了meta-learning的思想,引入一个网络来学习中间变量treatment。
在深入迭代时我们还会遇到具体的业务问题,比如在t1时间段,业务需要干预左边和右边的人群,过了一段时间后在t2时刻,业务需要干预中间的人群,在t3时刻干预的人群又变了。这种业务人群变化剧烈的问题给因果推断提出了更高的挑战。
我们是这么来看待这个问题,这个问题本质上属于曝光选择偏差的问题,需要对曝光bias给消除掉才能准确建模。我们参考了EUEN(Explicit Uplift Effect Network 显式提升效应网络)的论文方法,μt(X,最终的uplift) = μc(x, 控制组的转化率) + ω(X, 曝光概率) · τe(X, 曝光组的uplift)。基于样本是否曝光的修正,降低业务曝光选择偏差导致的模型有偏。
由于因果推断的反事实特性,上线验证成本很高,所有的优化都会优先在离线验证全部细节,离线保证了正确性,再开展线上实验。在当前的增量实验里能看到和最初的监督模型,在增量ROI上提升了11.3%。
4.第四个应用场景:广告精准营销
对于手机厂商来说,数据隐私是至关重要的,所有数据都必须保持在公司内部,不允许泄露。因此,在进行营销活动时,我们首先考虑的是数据安全性,在域外投放或者在其他广告平台基于人群包投放的这类方法是行不通的。我们采用了一些更安全的方法来获取流量,如实时API(RTA)和实时竞价(RTB)的模式。基于RTA和RTB,我们还建立了内部的营销云平台,用于整合不同渠道的流量,以提高迭代效率。
简单介绍一下RTA和RTB。RTA代表实时API(Real Time API),它决定了我们是否选择某个流量。RTB代表实时竞价(Real Time Bidding),它决定了我们是否参与竞价以及以何种价格参与竞争某个流量。
接下来介绍一些与广告精准营销相关的独特技术。
在RTB渠道的竞价过程中,模型主要考虑三个目标:竞价成功率、点击率和转化率。竞价成功率指的是在基础出价下成功获得流量的概率,该目标用于后续的价格调整策略;转化率指的是用户点击后进行转化的概率,该目标也会影响出价策略的调整,并且在很大程度上决定了整体投放的投资回报率(ROI)。
模型的整体结构与多任务多路输出(MMOE)的结构相似,我们额外增加了每个目标单独的输出层。特征部分主要包括长期特征、实时特征和多模态特征。通过观察发现,渠道的实时特征对ROI影响非常大,而多模态特征对于冷启动问题非常有帮助。
我们发现,在RTB中,点击率(CTR)预估的准确性对于流量竞价的投资回报率(ROI)有很大的影响。例如,如果CTR的预估值高于实际统计值,会导致竞得的流量价值高于实际值,从而降低投放的ROI;而如果CTR的预估值低于实际统计值,则会导致竞得率下降,无法获得足够的流量,无法充分利用预算。
我们的目标是希望模型的预估值和后验统计值能够在相应的水平线上,以准确预估真实情况。通常情况下,原始模型和后验模型之间存在一定的差距,需要进行调整。我们当前的校准策略是采用了特征敏感的树模型的分箱策略,参考了一篇22年的公开论文。相对于原有的模型,经过CTR分桶校准后的模型,PCOC值会下降约44%。PCOC反映了预估值和真实值之间的偏差。PCOC值下降意味着模型更加准确,相应的ROI也会有较大提升。
下面介绍我们在投放时的出价策略。我们在RTB上采用了与业界常规不同的公式,考虑了更多因素。首先是素材的基础出价,然后是素材的CTR打分。我们还会预估素材的流量价值,主要包括转化率、用户换机概率以及在换机时成为增量用户的概率。此外,我们还会考虑预算和ROI的限制。同时,我们还会增加竞得率因子。所有这些因素通过连乘计算。在实际应用中,我们可能会对计算结果进行排序或进行截断操作。
经过多次迭代和实验,我们发现,针对ROI的这些多因素考虑可以使其提升约25%。
04总结和展望
在手机行业做增长的过程中,有一些方法论是必要的,其中最重要的是要确定一个北极星指标,即定义出识别增长的核心指标。我们大致梳理了一下,包括新机激活、老用户留存、复购率、用户流失以及干预的投资回报率(ROI)等宏观指标。这些宏观指标对于制造行业尤其重要,能够显著帮助我们凝聚数据业务逻辑的共识。除了北极星指标外,我们在具体的链路上也制定了可量化的指标。总结来说,主要包括以下几块内容:
首先是新机洞察,这是增长的源泉,通过深入了解其中的逻辑,能够显著提升业务。这部分主要包括行业特点的分析,如竞品的卖点分析、同期市场的社会分析,以及可应用于营销的策略和首销期用户的反馈。
第二个是营销敏感人群,我们关注的是一些算法指标,包括准确率、召回率、AUCC(Average Uplift in Conversion Rate)和AUUC(Average Uplift in User Conversion)。后两个指标与因果推断相关。
接下来是从花钱的角度来看增长,大致可以分为免费增长和付费增长两类。在免费增长方面,我们注重通过提升现有流量的效率来实现增长,关注的指标有很多,例如点击率、竞得率、转化率、品类流转和增量ROI等。这些指标可能会随着迭代的进行而增加或剔除,以符合当前的业务需求。
在付费增长方面,我们主要关注预算分配等指标。预算分配不仅限于广告领域,还包括不同渠道和资源方之间的动态调度,比如京东和自营之间的动态分配,或者首周不同时间段的预算调度。我们总结发现,在不同时间段或跨渠道之间进行资源分配对于投放ROI具有非常大的影响。
05问答环节
Q1:在多目标多估计部分,提到了超参数,对于超参数设定不同公司有不同的做法,就比如有的会采用CNN,或者有的会采用的实验的方法去确定,您这里是怎么区学习得到超参数的?
A1:我们也试验过多种方法,比如说最开始的时候是基于经验参数,但是后来随着场景增多发现行不通,手工设定效率低且不科学,目前主是主要采用PSO 的方法,当然我们也在探索用强化学习的思路,但我们也发现强化学习对于收敛的要求很高,同时对数据量需求很大,在智能增长领域,我们的数据量是一大短板,我们不能像互联网行业的APP那样有丰富的日志数据,这也导致我们目前只能用 PSO 这种模型来去输出离线指标。
Q2:还是多目标预估部分,增加一个模型目标之后,那么线上应该进行怎么样的适配?有没有什么经验技巧?因为很多时候在排序时可能会有很多目标,每增加一个目标都可能会遇到各种各样的一些问题。
A2:这是好问题。当然不同的业务场景它需要调整细节是不一样的。比如在我们这个行业里面,它因为它的候选集比较少,所以我们很少区做一些召回相关的东西。但是如果你们有很大的候选集的话,需要调整的东西有很多,比如从召回粗排可能一路都要调整。但对于我们这个行业来讲,主要是调整的是比如说增加一个目标以后,首先要做一些离线体验证,看看原有的目标有没有受到影响,比如说他预估的偏差会不会随着人群有分布的影响?如果去排查完离线没问题以后,在线上部分我们主要是调整的首先是增加了目标以后的融合公式,其次是在重排上的调整。当然也要考虑应用场景,如果是这个多目标是在广告投放场景的话,我们可能会更关心其他的指标,比如以 RTB 为例,它可能是需要还要观察我们竞得率相关的实验,我们也需要做这种适配。
Q3:在营销增益的例子中,如果发现特征在整个周期内分布差异较大的怎么办?
A3:我们刚才也看到,在我们营销的时间节点上,特征分布确实是很大,比如说机型的偏好,因为对于我们手机行业,今年有的时候打高端机,有的是打低端机,有的时候主打女性市场。所以我们对于曝光偏差也是参考很多业界内的先进经验,比如在曝光选择上,还有我们也会基于PSM 进行一些样本的过滤,尽量让同一个模型接受到的模样本尽可能地来自同样的一个分布。即使做这些调整以后,还是会面临一些特征分布差异的问题,因为我们只能解决一些核心特征分布差异的问题,但是总会有一些细枝末节的特征是解决不了的。
因为在我们的场景里还会面临一个大问题,就是手机的销量分摊到可以用的样本每天大约只有几千个,样本量是很大的调整,受制于此很多方法我们去使用。
Q4:关于因果推断,提到了control model和treatment model,还有一个uplift model,对于这部分建模的数据是A/B test的数据还是直接观测的数据?
A4:模型所用的样本是全样本包含干预组和控制组,然后我们会用模型学习用户被干预的概率,计算uplift。
Q5:所以说实际上是有干预实验存在的吗?是否是通过干预实验去收集了数据训练的模型?
A5:是的,在这个实验里面,控制组是永远都存在的,剩下对不同人群进行干预得到数据。
Q6:关于曝光偏差,一篇文章讲到了就是曝光偏差可能会有有害的和有利的部分,如果一味的去纠正偏差,效果会不会不一定是最好的,是否有考虑过这个问题?
A5:是个好问题,确实如果考虑特别多话,尤其在选择样本的时候进行消偏,涉及到样本过滤的时候,确实会我们会有很大的挑战,所以我们也是比较谨慎。首先,我们原则是尽可能的能够把样本用起来。然后在这基础上,然后会去看一些具体的指标进行评估,比如说我们会做大量实验分析人群,在离线情况下,看AUUC 指标,同事,我们会继续去拆机型,拆人群、拆解维度,再分别去看指标,然后才确定某种技术是否真的要采用。