我觉得这道题问的其实不是三个指标怎么分别优化,而是广告系统里多目标冲突时怎么取舍和联动。CTR高了可能带来低质点击,CVR高了可能过滤掉潜在高价值用户,ROI高了可能牺牲规模。说白了,这是一个系统层面的平衡问题,不是单个模型能搞定的。
我一般会从模型和策略两个层面来搭方案。模型层面,核心是 多任务学习。因为CTR、CVR、ROI共享用户和广告的特征,但各自的优化目标不一样。我会用 MMoE 或者PLE这种结构,底层共享[[embedding]],上层每个任务有自己的专家网络和门控。这样模型能学到通用表示,又不会让某一个任务主导梯度。不过这里有个坑:如果直接不加约束地联合训练,ROI这种稀疏目标很容易被CTR这种密集目标带偏。所以我会加一个 动态任务权重,比如用不确定性加权或者Pareto优化,让模型在训练过程中自动调节各任务的loss比例。
再一个,模型层面还可以用 因果推断。比如uplift建模,直接预测广告曝光带来的增量转化,而不是绝对CVR。这样能避免把自然转化也算成广告效果,对ROI优化更直接。
策略层面,我会做一个分层漏斗。召回层用CTR粗筛,精排层用CVR预估排序,出价层用ROI调控。每一层设不同的阈值,形成级联约束。举个例子,电商大促时,高客单价品类我会在出价层设一个ROI下限,比如ROI低于2.5的直接不出价,但CTR和CVR层可以放宽一点,保证曝光量。这样既保住了ROI,又不至于流量断崖。
更动态一点,可以用 强化学习 来做实时调控。状态是当前时段的预算消耗、各指标表现,动作是调整出价系数或者流量筛选阈值,奖励是综合ROI加上完成率惩罚。比如双十一当天,系统发现ROI掉到警戒线以下,强化学习会主动降低出价,宁可牺牲一点CTR也要保住ROI。
这里有个前提,就是你的数据回流要够快。如果CVR延迟超过一天,强化学习根本学不到实时反馈。常见失败场景是,广告主用长转化链路,比如汽车试驾,CVR延迟一周,那强化学习就没什么用,还是得靠离线模型加人工规则。
所以落地时我会特别关注两个点。先说, A/B测试不能只看均值,还要看分布。比如ROI均值提高了,但方差变大,说明有些广告主受益、有些受损,长期可能生态恶化。我会同时看广告主留存率和投诉率。再一个,不同流量要分层运营。高价值流量激进优化ROI,探索流量保CTR和CVR,积累数据。
另外,如果广告主有明确的预算约束和KPI,还可以用约束优化,比如最大化ROI的同时保证CTR不低于某个值。但这需要广告主提供准确的约束条件,实际中很多广告主自己都说不清楚,所以更常见的做法是让系统自动学习一个Pareto前沿,让广告主在界面上滑动选择。
总的来说,我更倾向把CTR、CVR、ROI的优化看成一个 多目标规划问题,而不是三个独立指标。模型和策略要配合,模型给出预估,策略做决策和兜底。核心是理解业务场景,知道什么时候该保哪个指标。