一方面,百度 APP 的所有视频场景已经升级成统一的沉浸式(上下滑)交互形态;另一方面,基于百度统一的大模型,我们打通了所有场景的数据和推荐体验。交互和数据的统一可以更好地实现生态共赢,促进百度视频的长远发展。
为了更好地培养用户对视频的消费习惯,我们还打造了一个视频消费的一级入口(底部导航栏入口)。大家如果有兴趣可以去下载百度 APP,有好的建议和 badcase 随时欢迎反馈给我们。
值得一提的是,百度是做搜索起家,搜索的使用率极高,在推荐场景中需要更好地使用搜索的数据,通过”搜+推”双引擎来满足用户的需求。搜索主要是“人找内容”,用户会明确地输入自己的需求,而推荐是“内容找人”。将搜索的信号和推荐的信号进行跨域整合,做到更好的推搜融合,这也是百度的优势之一。
由于听众中有相当一部分人对推荐技术缺乏了解,因此有必要简单介绍推荐技术要解决的问题。推荐平台有三个玩家:
推荐平台希望实现生产、消费和收入的良性循环,推荐系统作为平台的核心部件,主要解决两方面的问题:
在设计目标时,我们需要综合考虑推荐系统的两个使命
推荐系统的流程大致如下:审核后的资源会先推送到存储 meta 信息的统一正排库;推荐系统收到请求后,先通过图引擎、多目标召回等,召回相关资源;召回之后会经过两轮排序,分别为粗排和精排,再经过多目标的融合模型,选出一些与用户强相关的内容;最后通过多样性感知、序列建模、流量分配机制等策略,生成一个视频列表,下发到用户的手机。
下面的内容将主要关注于精确排列的目标设计和模型的融合
首先,我们要介绍的是多目标设计在视频推荐中的应用
先请大家思考一下视频沉浸式的场景下,如何设计推荐系统的目标呢?
在传统的推荐系统中,用户通过点击内容或视频来消费资源,从而明确表达了对该资源的喜好。因此,在传统推荐场景中,点击行为是非常重要的信号,也是一种明确而简单的反馈方式。然而,在沉浸式场景中,由于缺乏明确的反馈,用户的喜好往往通过“隐藏”的行为来表现,此时观看时间成为沉浸式推荐场景中极其重要的信号
除了上述消费时长以外,还需要考虑用户在系统中主动留下的行为,比如关注、评论、分享、点赞。然而,与播放数据相比,这些行为数据非常稀疏,可能只有千分之一这个量级
除了这些交互信号以外,在百度 APP 的推荐里面还有一部分很重要的数据就是搜索信号,在百度 70% 的用户既会消费推荐信息流,又会用搜索,因此推荐系统也需要刻画用户搜索域的满意度信号。
B端的创作者需要一套竞争机制,以除C端用户满意的消费信号外,筛选出劣质创作者,激发优质创作者的创作潜力,从而实现生产和消费的良性循环
从推荐系统角度看,用户就是样本标注员,用户有一些明确的正向表达,比如播放、点赞、收藏、评论等行为;还有一些明确的负向表达,比如 Dislike、负向评论、举报等等。除了明确表达,用户还会有一些隐式的表达,比如通过完播、播放时长、作者页消费、阅读相关推荐等表达出的喜欢,或是通过短播、快速跳出等表达出的不喜欢。因此在设计目标的时候,要全方面地思考,平衡明确的信号和隐式的信号,避免设计出一个“偏科”的推荐系统。
除了上述基础目标,我们还会设计一些高阶的目标,不再是简单地使用用户的反馈。举个例子,如上图右侧所示,我们上线了基于用户满意度反馈的模型。第一阶段,通过完播、时长这种稠密的信号,利用简单的规则或者模型去拟合用户的满意反馈,得到一个比较稠密的用户满意度 label。第二阶段,基于这个 label 建一个满意度模型,利用推搜全域大模型产生的 Embedding、文心底层 Embedding,以及用户画像和行为序列特征建模,以评估推荐域相对于搜索域的满意度增益。如果某个兴趣点用户在搜索里消费过了,推荐系统可以基于该满意度模型推荐出更优质的内容,这样就可以使搜推融合更加平滑,将搜索的兴趣更好地迁移到 Feed。
在前文中介绍了如何预估当前内容的播放时长和互动。我们可以利用用户的历史消费行为作为样本或特征,来预测即将推出的内容是正反馈还是负反馈,以及是否会有互动和消费的满意情况
我们可以进一步思考,用户未来的消费内容与当前消费的内容是否有关系?举例来说,如果用户现在正在观看郭德纲的视频,那么如果在接下来的第N天他们继续消费于谦的视频,那么这些于谦的视频是否是由郭德纲的视频“激发”而来的呢?消费未来的兴趣点是否可以被视为当前兴趣点的“延续”呢?答案是肯定的。因此,我们在系统中引入了LTV的体系,将未来长期价值的内容归因于当前视频的推荐
假设 V0 是当前视频的价值,V1,V2,… Vn 是用户未来消费的视频,假设 V2 和 Vn 是满意的消费,并且是 V0 的一个延续,就可以将其归因到V0 。
归因方式有多种,根据百度 Feed 的业务场景,归因包括以下三大块:
当然这个归因是有权重的,我们通过距离 V0 的时间间隔,和 V0 的相关性等因子来调节用户未来消费视频的归因权重,从而得到当前视频 V0 的长期价值。有了长期价值目标后,学习就比较简单了,首先是目标的归一化,然后直接建模即可。
基于对业务现状的抽象和梳理,我们在设计推荐系统目标时会从以下三个方向入手进行简单总结
要综合考虑各个发展方向,推荐系统的目标需要从多个角度出发
百度现在推荐场景的发展已经分为三个主要场景:
百度产品的发展演变,导致了排序目标的逐步改变。最初只有单个领域的主要目标,然后发展为多领域多目标,现在已经实现了全领域的综合建模,将多个领域的样本整合在一起,实现信息的充分共享。下面将介绍全领域综合建模的具体内容
首先,我们来看一下业界都做了哪些工作。无论是MMoE、PLE,还是阿里在做的STAR网络、PEPNet等这些结构,以及谷歌、腾讯等公司,都在不遗余力地根据自己的业务设计各种各样的网络结构,希望在异构场景下共享更多有用的信息。这些工作主要解决了两个问题:
同样百度推荐系统也面临这两个问题。
百度的场景下存在许多不同的子域目标,而这些目标之间的相关性较低,这可能导致多个目标之间发生负迁移。为了解决这个问题,需要分析不同目标之间的 PNR,并找出它们之间的相关性差异。也就是说,在异构场景下如何描述用户信息,以及如何实现异构信息的迁移,这是模型结构需要解决的问题
根据百度的业务需求,我们设计了一种跨域分层多目标网络结构,采用 Gating 结构。这个结构主要分为三层:首先是个性化的共享网络作为底层;第二层是跨域信息提取的 GCG 网络;最后一层是子域的多目标网络。通过这样的设计,我们可以在共享信息的同时,对每个域进行多目标预估
这套方案与单域多目标相比有着显著提升,初次上线 AUC 约提升 3-9 个千分。如上图右下角所示,获取用户特征在多个域的 embedding,做了一个 TSNE 降维后,除了搜 C 和二跳这两个比较接近以外,其它两个场景的区分还是比较明显的,说明模型可以学到场景间的差异。搜 C 和二跳两个场景区别不大也是合理的,都是视频场景,用户的交互和兴趣也都差别不大。
百度业务场景有 40 多个物理目标,还有 4 个大的子域,6 种形态,包括视频、图文、动态、小程序等。我们希望模型在众多复杂业务中都能有较好的表现。简单介绍一下模型结构。第一层是 common 网络,作为分域的底座,筛选各个场景中多目标的满意样本,通过 gate 网络实现个性化 embedding 映射。第二层是域间信息的提取,将域内独有的特征和个性化共享特征通过 CGC 网络实现。两者共同构建了跨域的信息提取,其好处是既保留了域内的信息丰富度,同时又提取出了异构场景的共享信息。第三层是子域的多目标建模。这块我们还有对应的论文在发表中,对细节感兴趣的朋友可以看论文。
百度的多目标融合演进过程与业界相似。首先是先验知识融合,虽然简单直接,但需要耗费大量人力。接着我们升级到了LTR,效果显著,但弊端是当业务变化时需要频繁调整,同时偏序关系也会随着业务和用户分层的变化而变化。之后,我们采用了多目标融合价值模型,使用序列最优的方法。短期使用后,我们升级到了现在正在使用的方法——ES(Evolution Strategy)进化学习
要使用ES,首先需要定义一个奖励,即北极星指标。百度的奖励是会话的深度(时长+步长)和互动,时长和步长对应的业务指标是时长和视频播放量,这两个指标反映了用户的留存,即LT。此外,还有互动信息,代表了用户在APP中资产的积累,例如关注作者的行为,实际上是希望在作者有更新后能够找到。不管是提高消费次数还是互动数量,都是希望用户能够更长期地使用这个APP
我们的初始版本是一个简单的启发式模型,而当前线上的 ES 则进行更高级的计算,比如引入不同场景和人群的信息
以上是百度视频推荐跨域多目标预估与融合的实践和思考的详细内容。更多信息请关注PHP中文网其他相关文章!