一、阿里健康用户算法业务简介
首先,阿里健康的用户算法其实是围绕整个天猫行业的数据资产。
商家,会分成两部分,一部分是自营的药房,比如阿里健康大药房、海外店、品牌旗舰店,等等。当我们平台的商家,带着某些诉求来到平台,比如说,想提升产品的一些指标,例如商品类目的 GMV,或者是提升 ROI 等。首先,平台会向商家提供人群策略上的能力,也就是根据目标以及目标运营商品,提供定向人群的能力。人群产生后,下一步就是商家如何去做营销投放。这里会遇到一个问题,淘内外有那么多营销渠道,比如短信、push 推送、包括站内的广告。在站外,还会有一些字节系的比如抖音、知乎等站外广告。那么商家在面对这么多不同的投放渠道时,会遇到这些人群怎么去投放才能最高效、渠道间怎么合作等等一系列的问题。
在这里,我们会有一些渠道上的策略,人群策略 + 渠道策略,帮助我们的商家去做人群的投放。当流量来到我们站内以后,我们会根据用户数据去做一些差异化引导,比如商品推荐、入会引导、权益的个性化等等。通过这些,我们获取了用户在我们站内的一些行为数据,同时这部分数据会回流到平台的行业数据用户资产中。这些数据会进一步提炼出用户标签、去支持我们后续人群策略的迭代。
针对阿里健康用户算法,序列化投放,重点解决用户运营全图中渠道策略的部分,提供渠道组合、序列触达、预算/出价能力以及频次控制等能力。
序列化投放主要解决以下两大问题:
(1)首先,行业商家面对多种多样的淘内外投放产品,缺乏一个全局化的抓手,不知道如何投放整体效率最高。
(2)另外,对于行业平台来说,如果各个营销渠道都是以自己的目标为先,各自为战。在短期的目标下,每个渠道独有的、可以相互协作的用户运营价值会被商家忽视、影响平台增长。
针对上述问题,我们这边的解法就是通过定向人群流转、序列触达推荐,和曝光频次控制实现人群有次序的触达,从而实现人群的精准触达和转化。从上图中的触达次数与用户转化占比图,可以看出大部分的成交都是发生在消费者的非首次触达中,也就是说用户首次触达转化情况是非常少见的。
结合一些实际的数据,可以发现渠道的多次触达对于用户的转化心智存在累积效应。其次不同的渠道触达顺序对用户的转化存在影响。
二、序列化投放模型基础方案
接下来介绍针对上述问题的基础解决方案。
将单渠道优化中的人货预估问题,针对特定的人群、特定的商品。去做 CTR 和 CVR 的预估,包括其他目标的预估。然后把问题,转化为人货路径的预估问题。
基于这样的思路,我们会遇到两个问题:
(1)首先是序列样本构建。
(2)第二个问题是路径的不确定性。投放前规划的触达序列在实际投放中并不能保证被完整曝光,尤其是广告渠道。
下一步,结合实际场景设计序列化投放推荐的模型。基础方案就是通过一个向量三塔模型去解决。
为什么要通过向量三塔模型呢?
首先,刚才提到的三元组,第一个就是人,第二个就是货,也就是商品,第三个就是路径。人、货、路径三元塔的数量级其实是非常庞大的。而产品功能需要保证计算时间可控,并将白盒化的定向人群、匹配商品及推荐路径及时反馈给商家。然后商家确认策略后采取投放。基于这样的产品性能的要求,采用向量的模型。因为向量比如商品或者路径可以提前缓存,等到人群圈选出来后再做计算,这样可以保证时间可控。
基于这个模型,我们做个两点优化:
(1)第一点,泛化性的优化。模型训练样本近 80% 为营销重点品。因此模型对中长尾商品、新品的学习是不充分的。因此基于 GraphSAGE 在基础模型的 item 侧构建了Graph Embedding,提升泛化性。
(2)第二点,根据实际情况去做的一个优化,原来的序列化投放模型是基于 CVR 预估的,但其实从行业商家视角来看,渠道策略最终的目标是提升 ROI。所以结合这一情况,我们这边把最终的目标转化成 ROI 的预估问题。
对于 ROI 的预估有两种方式:
(1)第一种,直接预估。这种方式的优点是,模型保序即可,选择预估值最大的触达序列作为推荐策略。缺点就是,ROI 值域较大,模型预测难度大。
(2)第二种,分别预估。这种方式的优点是,模型预测难度小于直接预估。缺点是分别预估由两个预估值相除得到,存在模型误差累积放大的可能。
三、向量模型优化
基于最后的实验结果可以看到,使用这个直接预估 ROI 的结果,效果不是很好。刚才提到的向量三塔模型中,有一个很明显的缺点,就是人货路径三塔分离的向量化结构,保证了产品的 serving 性能,但因为缺少特征交叉的模型结构,导致对侧信息交叉过晚、模型表达能力被严重制约,整个模型精度有所欠缺。
基于这类问题,我们第一个优化解决方式就是——知识蒸馏。
刚刚提到,缺少类似交叉特征等对模型精准度有很大帮助的特征。如果可以引入这个优势特征,并且通过知识蒸馏的方式提供给线上模型,那是不是这个问题就能解决了?
图中 teacher 网络除了基础特征以外,还引入了优势特征。这里的优势特征包括对侧交叉特征和承接后链路特征。被知识蒸馏过的 student 特征,保证了线上线下特征的一致性。teacher 网络只基于前后链路数据,在更高纬的假设空间下学习知识。并指导 student 网络的学习。并不存在数据穿越的问题。
第二个优化方案,虚拟内核,topic embedding。在保证模型性能的前提下,实现用户向量的千物千面,实现对侧特征的融合。
四、规则优化
营销阶段的算法,离不开规则的优化。
原始人群流转的规则,用户在前置触点中产生了目标商品的曝光,才进入下一个触点的投放计划。那么这个原始人群流转的规则是相当严格的。比如商品在直通车的渠道上面没有产生曝光或者消耗。由于前置条件是产生了才会走到后续的渠道,否则将会永远停留在这个阶段,不再进行流转。
我们的初衷是想通过更多的渠道去做多次的触达,促使用户转化心智的累积。所以要尽可能多的让用户产生累积触达。不要去浪费前面触点的价值。尽可能提升人群流转率,提升投放覆盖和感知力度。
首先第一点,需要对原来严格的流转策略做一个放宽。原来是基于场景去做约束,比如直通车知道必须在这个点曝光,但是呢,用户基于前面的触点曝光以后,或者已经在其他的一些场景产生了类似的行为,比如说公域,用户已经去搜索这个商品了,或者已经在详情页里对这个商品产生浏览。那么我们应该把这个场景放宽,公域场景也可以触发曝光,这样就可以使他流转到下一个节点。另外是约束放宽,是指不局限于目标商品的曝光。可能相同的叶子类目或者店铺品牌的相似品类的曝光,也可以触发流转。
两个放宽策略优化后,整个人群的流转大概提升了 23.6%。
第二点就是频次控制,前面提到,有些用户经由前面的触点,已经完成转化,如果后续还按照原有的计划投放,会造成资源的浪费。过度曝光频次控制包括:对远超阈值曝光次数、但未对商品产生行为的用户,停止后续的触点流转。频次控制策略优化后,投放整体 ROI 提升 4.46%。
五、总结与展望
最后对整个序列化实验和后续迭代方向做一个总结。
在模型阶段,知识蒸馏和虚拟内核方案的引入对侧信息以及优势特征,在保证推理时效的同时提升了模型的准确性。可以看到,在 AUC 和 ROI 方向,都有提升。
可迭代的方向,就是要结合整个健康行业,医药类目的一些属性去做一些事情。
首先,第一点就是我们在健康类目上,尤其是结合 OTC 或者处方药的复购属性,对临近复购周期人群定制化流转策略。举个例子,一些用户习惯在淘宝下单一些慢病相关的药,当这个药购买之后,我们已经可以获得他买的这个规格或者说是订单的数量,大概就可以判断出什么时候把这些药品吃完。那么在写一个阶段他到达复购周期的时候,我们可以针对这部分人做一些定制化的流转策略。
第二点,复购可以和渠道策略进行结合。渠道策略可以围绕用户运行的前后链路做一些联动。
第三点,序列化投放,其实是一个多触点决策,决策完成后,需要做多触点归因分析。归因分析告诉我们不同的触点,对于用户转化的目标,或者价值,以及各个触点贡献了多少的增量价值。基于这些结果,可以沉淀为整个经营策略。包括多触点归因其实是可以辅助序列化投放的优化迭代。
六、问答环节
Q1:模型线上单次运行耗时多久?
A1:单次线上运行耗时要分不同的情况,比如商家基于不同的目标,圈选的人群量级、或者商品的量级,包括最后选定的渠道数量等等,不同的量级,比如百万级和千万级的人群数量运行的时间肯定是不同的 。但结合目前的情况来看,单个模型运行下来,大概是分钟级别的,也就是,商家需要等待一段时间,才能将整个策略白盒化。
Q2:不同渠道下的用户侧特征可以对齐吗?
A2:其实是可以的。因为用户侧的特征其实没有包含渠道上的数据,更多的比如像 user 的特征或者说他的行为特征。这个行为特征,你可以理解为就是用户在整个淘系内产生的一些点击、转化搜索之类的行为。他其实并没有和渠道侧相关。所以这边目前没有加入一些渠道定制化的特征在里面。唯一和渠道结合的数据可能就是用户在渠道上面的点击率等等。点击率和点击率其实是能够对齐的。
Q3:序列化重的渠道选择与预算,频率在模型中是如何结合的?
A3:作为模型特征,序列化渠道是没有考虑预算的事情。因为预算,不是算法能够解决的。往往是说,商家带着目标,想要去运营哪些商品,那么营销商品,有多少的营销预算,那么这个预算,其实在一开始就做好决定的。算法能做的就是基于历史的一部分数据,帮助做一部分预算的分配。
比如你有 1000 万的营销预算,这些预算应该花在那个节点上面。所以预算的总量是没办法用算法做出决定的。更多是在分配或者出价上,给出一定的建议或者策略。
至于频次的话,就是在人群流转的时候去做一些控制。比如会基于用户的一些实际行为和转化意愿等做一个频次的控制。
Q4:投放路径的选择存在因人而异或者是差异化吗?
A4:这个是的。因为整件事情就是基于不同的用户,然后去设置个性化的路径。这一定是因人而异的。
Q5:用户行为的使用是否存在数据泄露?
A5:不存在数据泄露的问题。
Q6:触点是曝光触点还是唤醒?
A6:触点是在我们淘内的渠道场景下发生的曝光。比如说短信发送以后,我们可以收到日志,来判断用户是否成功接收了短信。如果说成功接收了这条短信,对于用户来说就是一次触达,也就是一次触点。再比如说,直通车,搜索一些关键词,然后我们出现在第一个坑位,只要用户看到了这个坑位,我们也认为这是一种触点的曝光。
Q7:客户路径差异化通过什么工具或者方式把这个路径固定下来?
A7:首先,在投放阶段,商家带着目标或者意愿,还有预算来到平台,去设计整个人群的投放策略。在这个时候,我们会通过刚才提到的方式把路径固定下来,交付给商家。其实就是一个人群包。无非就是你这个人群包中不同的用户对应当天投放的哪些渠道。比如说用户 A 对应的就是短信,用户 B 对应的就是直通车。商家会根据人群包去做相应的投放计划。前面提到的用户已经产生了一些曝光,那么按照刚才的人群流转策略,需要对这个用户 A 对应的渠道做一些更新。所以,行业商家看到的就是一个人群包不停更新的结果。
Q8:用户行为发生变化,是否会改变路径,不同路径如何转换?
A8:用户行为发生变化是否会去改变路径,我理解这是另外一个问题,叫做重定向问题。这可以理解为是否要基于这个用户当时实际的一个行为去改变下一个节点。在这一版本的序列化投放其实是没有的。目前的序列化投放是做好了整个计划的创建,然后按照这个计划去执行,比如这个问题,其实有两个难点。第一个就是说这个用户的数据要尽可能做到实时,比如秒级或者分钟级。那么你才能够做到一个很好的且即时的重定向。然后,这个重定向其实会有一个长期价值预估的问题,可能更多的涉及到一些前后链路的问题。