当前位置: 首页 > 科技观察

vivo互联网异构混排的技术实践

时间:2023-03-19 12:46:06 科技观察

混排层负责整合广告、游戏、自然流量等多个异构队列的结果。需要在上游、下游、业务的多重约束下获得最优解。比较复杂,难以控制。本文主要从业务和模式的角度介绍了vivo广告策略团队在信息流和应用商店混合布局上的一些探索和思考。一、背景介绍首先介绍一下什么是洗牌。所谓混合排列,如图所示,是指在保证用户体验的前提下,需要在不同队列中合理混合异构内容,以实现收益最优,更好地服务广告主和用户。shuffling的核心挑战是不同队列项的建模目标不同,很难直接比较。比如有的队列是按照ctr建模的,有的队列是按照ecpm建模的,不能直接比较。候选队列往往受到大量产品规则的约束,如区间约束、数量保留、首位约束等。由于候选队列是由上游的细排序算法生成的,因此在混合排序时受业务限制不能修改候选队列的顺序,即需要实现保序混合排序。此次介绍主要是vivo信息流与门店场景的混合布置。vivo的信息流场景包括浏览器、i视频、负一屏等,具有场景多、下拉深度高、广告形式多样、用户个性化需求强等特点。至于门店场景,是一个整体的垂直场景,涉及到广告、游戏、自然体量的多方平衡。需要在保量、用户体验等严苛要求下,获得全面的最优解。下面,我们将一一介绍这两种场景的特点。2.信息流洗牌的实践2.1信息流洗牌介绍我们开始介绍信息流洗牌的实践场景。对于信息流场景,如下图,shuffle端主要要解决的问题是内容队列和广告队列的shuffle。即如何在用户体验与广告主利益平衡的情况下,将广告投放到合适的位置。对于传统的信息流媒体,前期主要的混合方式可能以固定比特模板为主。即由运营商手动确定广告与内容的插入关系,简单直接。但它也带来了三个明显的问题:从用户侧来看,广告在偏好场景和非偏好场景出现的概率是一样的,损害了用户体验。从业务端来看,流量投放不精准,业务服务效率低,广告主体验差。在平台侧,资源错配导致平台资源浪费。2.2行业解决方案研究接下来介绍行业内常见的几种解决方案。以某职场社交平台的解决方案为例。它设定优化目标,在用户体验值大于一定值的前提下优化收益值。对于要插入的广告,将用户体验货币化,综合价值与商业价值进行加权。如果整体价值大于用户体验价值,则投放广告内容,否则投放产品内容。另外,在交付时也会考虑间隔等约束条件,如右图所示。他的方法简单明了,很多团队都采用了类似的解决方案,取得了更好的成绩。但是这种方案只考虑了单个物品的价值,没有考虑物品之间的相互作用,缺乏对长期利益的考虑。接下来介绍一个小视频的方案。他们用强化学习的方法来混编。该方案将信息流洗牌问题抽象为序列插入问题,将不同广告插入不同槽位抽象为不同动作,通过强化学习进行选择。在考虑奖励设计时,将广告价值(例如,收入等)与用户体验价值(例如,下降和退出)相结合。通过调整超参数来平衡两者。但该方案工程依赖性强,论文中主要是离线测试,缺乏在线分析。并且该模型只考虑单个广告插入,不考虑多个广告。具体到vivo信息流场景的迭代,shuffling迭代包括三个阶段:fixedbitshuffling、Qlearningshuffling、deepsolutionspaceshuffling。总体思路是在Qlearning阶段通过简单的强化学习程序积累样本,快速挖掘收益。深度学习解决方案的后续升级。2.3Qlearningshuffling以上就是强化学习的基本流程。强化学习最大的特点就是在交互中学习。在与环境的交互中,智能体根据获得的奖励或惩罚不断学习知识,更加适应环境。状态、奖励和行动是强化学习中最关键的三个要素,后面会详细展开。vivo信息流的Qlearning洗牌机制有什么好处?首先会考虑整页收益和长期收益,满足多浏览场景的需求。此外,Qlearning模型可以小步运行,在积累样本的同时快速验证效果。在目前的整体系统架构中,混合编排系统位于adx之后。收到内容队列和广告队列后,通过Qlearning模型下发权重调整系数,调整广告的权重。业务策略叠加后,生成融合队列。用户行为也会触发Qlearning模型更新。Qlearning模型的运行原理如图所示。首先初始化qtable,然后选择一个动作,根据动作获得的奖励更新qtable,在损失函数中同时考虑短期和长期收益。在vivo的实践中,在奖励设计上,我们综合考虑时长、广告价值等用户体验指标。将两者平滑后,我们通过超参数对其进行权衡。在动作设计方面,第一阶段采用数值方法生成广告权重系数,作用于广告精细排名得分,与内容端混合实现混合排名。状态设计包括四个部分:用户特征、上下文特征、内容侧特征和广告侧特征。统计特征和上下文特征对Qlearning模型的影响更大。在vivo信息流场景,Qlearning取得了不错的效果,已经覆盖了大部分场景。2.4深度定位式shufflingQlearningshuffling有一定的局限性:Qtable结构简单,信息容量小。Qlearning模型可以使用有限的特征,因此很难对序列等详细行为进行建模。目前的Qlearningmix依赖于upstreamscoreing,upstreamscoreing的波动会导致效果波动。为了解决Qlearning的问题,我们开发了深度位置洗牌。洗牌机制从原来的数值型升级为直接生成位置的位置洗牌,在模型本身,我们从Qlearning升级为深度学习。这带来了三个好处:与上游解耦,大大提高了混合排列的稳定性,深度网络,可以容纳大量的信息,可以考虑页面之间item的交互。我们整体的模型架构是业界主流的类似双塔dqn的模型架构,左塔主要导入的状态信息包括用户属性,行为等,右塔的动作信息是基础信息解空间排列。值得一提的是,我们会将之前刷机的解决方案作为一个feature整合到现在的模型中。新的解决方案空间模型具有更大的行动空间和更高的天花板。然而,稀疏动作很难完全学习,这很容易导致预测不准确。为了解决这个问题,我们在线上加入小流量的随机实验,提高稀疏动作的命中率,丰富样本的多样性。序列特征作为模型最重要的特征之一,也是强化学习模型描述状态的重要特征之一。我们对序列做了一些优化。在sequenceattention模块中,为了解决用户历史兴趣与待插播广告的匹配度,我们使用transformer来描述用户行为序列信息;然后通过对要插入的广告的操作和sequenceattention来描述匹配度。此外,在序列匹配模块中,我们引入先验信息生成强交叉特征来补充注意力;对于匹配权重,通过CTR、命中与否、时间权重、TF-IDF提取信息。3.Appstoreshuffling3.1Storeshuffling介绍下面介绍appstoreshuffling模块。商店洗牌的核心问题是实现广告队列和游戏队列的洗牌。如图所示,广告和游戏的排名点定义不同,难以直接比较。此外,联运游戏的回收周期长,LTV难以估算。即使所有游戏都按照ecpm排序,也很难保证效果。总结应用商店面临的核心挑战:涉及的业务方较多,需要在满足用户体验、广告、游戏等需求的同时进行综合优化。店铺混排往往有数量保全等相关需求,与整体收益无法挂钩。追求整体收益,必然会改变数量保全的结果,引发矛盾。如何在满足保量的情况下实现整体优化?与信息流不同,门店是高成本消费场景,用户行为稀疏。许多用户在很长一段时间内只会下载一次。游戏LTV的预估是业界的难题。如何在混合端为游戏LTV提供一定的容错空间?回到vivo应用商店的洗牌,整体迭代包括四个阶段:定点洗牌、PID保量、约束洗牌、洗牌精细分流。3.2PID数量保证首先介绍PID解决方案,它最初起源于自动化领域。前期为响应业务方诉求,参考行业主流方案,通过保持广告和游戏的体量,初步实现混合编排能力。但该方案较为简单,PID难以与收益目标关联,难以实现收益最优。3.3有约束的混合安排在数量保证和收益最大化之间存在一定程度的冲突。在保量约束下,如何实现企业综合收益最优是最大的难点。vivo门店的组合采用流量拆分微调的思路,PID量保存后再重新排列,综合考虑用户体验、广告收入、游戏价值的平衡。针对重排和PID保量的冲突,重排只对部分位置有效,这样可以在满足保量需求的同时,在部分流量进行收益探索,比如首屏下。在重排层,我们最初考虑使用信息流的洗牌方案,使用强化学习进行洗牌。但存在两个问题:重排只对首刷生效,缺乏常规强化学习的状态迁移。与信息流场景相比,门店场景涉及的业务方更多。如何权衡用户体验、广告收入和游戏价值,是一个比较复杂的问题。为了适应门店场景的特点,我们做了一些适配和优化:第一,针对loss。不同于传统的强化学习,由于店铺场景行为稀疏且只在首屏生效,缺乏状态转换,我们将gamma设置为0,整体变成类似监督学习的状态,提高系统稳定性。在奖励的设计上,我们综合考虑了整页游戏收益、广告收益、用户体验等多重因素,以达到收益最优。在前期的动作设计阶段,还是使用了数值方案。该版本在vivo商城的混排中取得了不错的成绩,目前已经全部售罄。3.4洗牌和分流的细化在约束重排的基础上,我们考虑是否可以进一步优化。首先,重排候选集是由PID生成的,不是全局最优的。其次,当候选集全是广告或者全是游戏时,没有当前重排的有效空间(这一??行占一半以上)。那么如何满足保量并进一步实现最优收益呢?我们开始尝试混合微调分布,并取消了部分分支机构的数量保证限制,并释放了约束。这使得PID专注于满足数量维护等业务需求,模型专注于探索更好的空间。在当前版本中,当有请求到来时,我们会根据分发模块判断是否为优质流量。对于优质流量,我们会采用洗牌模式来挖掘收益。对于低质量的流量,我们会使用PID来保持音量并融合最终的结果。这样重排策略可以对部分流量的所有请求生效,整体容量也在正常范围内。目前我们尝试过的导流方式有商业价值导流、游戏偏好导流、广告位导流、体验机制导流等,具体到重排模式,我们也做了一些迭代。目前的rearrangementlayer,数值模型存在一些问题:numericalshuffling依赖于upstreamscoreing,upstreamdeviation变化影响shuffling模型的精度。不考虑上述信息和位置信息等列表因素的影响。为了解决问题:我们使用生成模型而不是数值模型直接生成洗牌结果并将其与上游解耦。借鉴context-dnn的思想,我们采用context-aware的方法,将上下文的影响融入到生成方法和标签设计中。与原模型相比,该模型在实验流量方面有更明显的优势,不受上游评分影响,更稳定。4、未来展望未来展望包括4个方面:模型优化:混合排列深度优化,建模更加精细化,融合更多实时反馈信号,模型效果提升,建模更加个性化。跨场景联动:尝试跨场景联动,混排,实现兑换比例最优,所有场景最优。统一范式:为每个场景统一建立序列生成和序列评估的统一混合范式。On-deviceshuffle:尝试on-deviceshuffle,及时捕捉用户兴趣,提升用户体验。异构混合在vivo互联网的探索过程中遇到了很多挑战,也取得了一定的收益。欢迎有兴趣的同学留言交流讨论。