百度Feed推荐是一个月活数亿的综合信息流推荐平台。该平台涵盖了图文、视频、动态、小程序、问答等多种内容类型。它不仅提供类似于单列或双列的点选式推荐,还包括视频沉浸式等多种推荐形式。同时,推荐系统是一个多利益方的系统,不仅仅包含C端用户体验。内容生产者在推荐系统中扮演着重要的角色,百度Feed大量的活跃作践者,每天生产海量的内容。
内容平台型推荐系统的本质是要做到多方共赢,对于用户侧:平台需要给用户持续推荐优质、时鲜、多样性的内容,吸引更多的用户、贡献更多的时长;对于作者侧:用户正向的激励,促进作者生产更多优质的内容,相反,如果作者发布的优质、时鲜的内容得不到快速、足够的曝光,作者会选择退出平台,这不利于平台可持续发展的。基于以上讨论,可以提炼出几个关键词:时鲜、优质、多样、作者发文、留存。这与本文要讨论的内容冷启动密切相关。首先要让更多的资源能够获取足够的展现,通过收集更多内容的反馈,增加可以被系统推荐的内容量,进而能够增加用户消费资源的多样性;其次,新资源快速起量,提升用户的时鲜感,进而拉动大盘的时长、DAU、CTR;作者侧,通过作者积极性的激发,提升活跃作者数和内容发布量。
新资源冷启动和常规推荐算法之间存在一些不同之处。冷启动所面临的挑战可以归纳为三个主要方面: 1. 数据稀缺性:新资源在初始阶段往往没有足够的用户行为数据来支持个性化推荐。这导致推荐算法无法准确了
首先是精准推荐的挑战。随着过去十多年来推荐算法的发展,从最初的矩阵分解到后来的深度学习的广泛应用,ID类特征在模型中的作用逐渐凸显。然而,由于新资源冷启动样本量稀少至不存在,导致 ID类特征在冷启动样本上的训练不充分,从而影响了推荐精准度。
第二,推荐系统普遍存在着马太效应,即已经得到用户认可的资源更容易被推荐,从而得到更多的曝光和点击,进一步巩固其地位。反之,新资源很难获得推荐,甚至可能被完全忽视。因此,推荐系统需要不断优化,使其更加公平和客观。
最后,我们需要给新资源进行一定的冷启扶持,那么如何更高效、更公平的对新资源进行扶持?这里引出公平性和公正性两个概念,公平性指的是:每个内容产品在冷启动初期都能获得一定的曝光机会,都能有公平竞争的机会。公正性指的是:我们要体现优质内容的价值,内容的质量高低,要能够影响冷启扶持的权重。所以在新资源上,如何在公平和公正之间寻找合适的平衡点,让优质的资源脱颖而出,从而达到整体收益的最大化,也是一个很大的挑战。
下面是新资源常用的召回手段,因为新资源与用户的交互次数很少,传统的 i-to-i(item-to-item)和u-to-i(user-to-item)召回方法并不适用。因此,冷启动主要依赖于内容推荐方法。例如,基于最基本的用户画像、内容标签和分类进行直接召回的方法,个性化程度较低,召回的准确性也相对较差。
其次随着各大内容平台人格化属性的作者越来越多,基于关注关系的冷启动成为一种有效的方法。但关注较为稀疏,并不能满足很多低粉丝量作者的发文;所以更进一步,通过算法挖掘作者的潜在粉丝,来扩充基于关注冷启的影响面。例如经常消费该作者但未关注的用户,以及基于用户-作者关注关系构图,计算潜在关注关系。
另外,多模态召回也是一种有效的方法。随着跨模态、多模型、大模型技术的发展,在推荐系统中整合内容的各种模态信息,尤其是在冷启动推荐系统中效果显着。 CLIP 是一种基于对比文本和图像的预训练方法,主要包含文本编码器和图像编码器两个模块,将文本和图像信息映射到相同的空间,对下游任务提供更好的帮助。直接使用该向量进行召回会存在一定问题,该向量代表的是内容先验信息,先验相似并不一定代表用户都会喜欢,我们需要将先验表示和推荐系统中基于行为数据学习到的后验表示关联起来。
具体的映射做法是基于已经分发充足的 embedding 和充分学习的资源,可以收集一些样本并将其作为标签用于训练投影网络。该投影网络将跨模态的先验表示映射到推荐系统的后验行为表示。这种方法的一个优势在于,无需增加任何模型,就可以无缝使用推荐系统中已有的召回和排序模型。举例来说,对于双塔模型,我们只需要利用现有的用户侧向量,而不需要做任何改动,然后使用投影网络将新资源投影到双塔模型的后验表示空间,从而可以简单快速地上线一个双塔召回。同样,对于当前已有的图召回和基于树的召回,也可以以低成本的方式进行上线。
当然,这种映射方法存在一个小缺点,即回归的难度较大。在 CB2CF 中,这是一种回归问题,而回归一般比较难学习。因此,我们也可以采用 pairwise 的方式来学习映射关系。具体来说,可以将正样本设定为item CF 学习到的相似item pair,负样本可以通过全局负采样等方式获取,输入也包括item 的一些先验和动态信息,然后通过学习来获得这样一个映射。
通过利用内容的先验信息,基本上可以实现大盘常用的召回方法在冷启动上的有效实现。
由于早期的冷启动主要针对一些零点击的资源进行设计,一旦有了一些早期的冷启动,这些内容就会收集到一定数量的正反馈种子。此时,我们可以通过 lookalike 的方法来进行召回。
Lookalike 的一个重要优点是其实时性特别高。这个方法主要源自互联网广告领域,以前广告主会选择一些可能感兴趣的用户作为种子用户,然后系统会寻找这些种子用户的相似用户进行扩散。在推荐系统中,我们可以订阅在线实时流日志,获取之前冷启动时收集到的给予资源的正反馈,比如点击、播放、互动、关注等,甚至包括负反馈,如快速滑动的用户。然后基于这些种子用户,系统可以通过用户的 embedding,并通过各种汇聚方法或添加一些自注意力机制等,得到 item 的表示。这个表示可以非常快速地进行更新,再基于这个表示向外扩散,具有非常高的时效性。
在模型方面,冷启动的优化点可以归纳为三种范式:ID 丢弃式、ID 生成式和模型的动态参数。这三种范式实际上可以相互组合使用。
对于ID 丢弃式优化,由于整体资源样本较少,模型容易迎合头部资源,因此头部资源的ID 学习非常充分,在模型中的特征重要度也特别高。然而,冷启动资源的出现较少,ID 学习不充分。针对这个问题,有两种思路:一种是尽量避免使用 ID,另一种是如何更好地利用 ID。
第一个范式是丢弃式优化,经典的方法之一是 DropoutNet。在训练过程中,DropoutNet 会随机丢弃 item ID 和 user ID 特征,以尽量提高模型对非 ID 特征的重视程度,增强模型的泛化能力。这样做实际上能够提升新用户或新资源的冷启效果。
另外,近年来也出现了一些对比学习的方法。对比学习是一种自监督学习方法,不依赖于人工标注,可以构造大量的样本,为优化多帮冷启动问题提供了帮助,因为我们可以构造额外的样本来加强冷启动数据的地位。例如,在双塔模型中,可以在 item 侧增加一个辅助的对比损失。这两个塔的参数是共享的,使用对比学习损失能够影响资源塔的网络参数和嵌入特征,通过掩码方法,对具有 ID 特征和其他冷启动特征的样本进行不同比例的掩码,从而兼顾模型的泛化能力和冷启动资源的特殊性。
接下来是生成式优化,前面提到了对于不可靠的 ID 特征,要尽量少使用,但目前更优的做法是如何让它更可靠。常规的思路是基于 ID 的先验特征来进行 ID 的 embedding 初始化。通过合理的初始化,使得新资源的预测更加精确,同时能够更快地收敛,以双塔模型为例,通常情况下,新特征会被随机初始化或者全零初始化,这会导致对新资源的预测不准确,收敛速度慢。因此,可以利用内容的一些先验特征,如标签、内容标签、作者标签等,以及一些相似的 ID(如热门 ID),选择一些具有充分高后验和高分发的资源的 ID embedding 作为标签,然后训练一个生成器来生成 ID 的 embedding,以替代初始值。当然,也可以直接利用新资源与最相似的前 K 个热门资源的 ID embedding 进行平均,作为新资源的 embedding 初始化,这种方法效果相对稳定,而且成本非常低,在工业界使用较多。
针对热门 ID 主导模型且模型更依赖 ID 特征的问题,我们可以采用多任务和多场景的思路进行优化。依然拿双塔模型举例,可以将冷启动和非冷启动资源的预测拆分为两个独立的目标。通过常见的多目标模型,提升模型对新内容的重视程度。一种经典的方法是 CGC 网络,如上图左部所示。在这种网络中,所有任务共享 embedding 层,然后通过冷启动任务和非冷启动任务分别学习独立的专家网络,以提升冷启动预测的能力。另一种方法是通过动态权重来调整网络中不同资源类型的参数权重,如上图右部所示。在这个网络中,最右侧的网络是一个冷启动指示器,它接收冷启动资源的信息(如当前点击展示次数和资源类型),然后输出网络各层的权重,以控制不同资源类型下信息在网络中的传递通道,从而让模型在冷启动情况下预测更加精准。
新资源需要尽快起量以提升作者的发文体验和推荐的实现性,但由于马太效应,我们需要对新资源进行一定的倾斜。一般的冷启动倾斜可分为两种流量:基础流量和助推流量。基础流量意味着公平,我们需要给予所有资源一些普惠的流量进行试探。而助推流量则基于作者质量资源的潜力预估和初级流量的表现给予差异化的扶持。
冷启的扶持机制,在抽象层面上有两个参数:时间和分发量,即通过强插、调权等手段,在给定的时间内让资源达到给定的分发量目标。对于不同的业务,我们会设定不同的分发量和所需时间。例如,对于普通资源,可能只需要在 24 小时内展现 100 次就足够了;而对于新热资源,可能需要更快,例如半小时内达到 3000 次展现。同时,对于新作者可能会设置较大的冷启动额度。
具体到公式上,公式中的 t 表示当前发布时间除以目标所需时间的归一化,即当前的时间进度,x 表示当前的分发进度。我们希望 t 和 x 相等,这意味着正常进度下的分发。如果 x 小于 t,则说明当前的冷启动速度较慢,需要增加权重或强插的系数。公式中的 θ 可以控制资源前期投放的倾斜程度。
然而,这个公式的前提是产品不同时段的流量是均匀的,而实际情况并不符合这一假设。一般的互联网产品流量分布存在高峰和低谷的差异,因此需要根据实际情况进行调整。例如,如果一个内容在凌晨 2 点发布,到早上 8 点可能只需要 25 次分发,因为凌晨时段的流量较少。因此,公式中的 t 需要基于实际的流量分布进行积分。
另一个关键问题是在资源分发初期,应该将资源投放给哪些用户?最常规的做法是尽量将新资源推荐给老用户,而不是新用户,因为老用户的容忍度通常更高,可以避免新资源推荐不精准而对新用户造成伤害。此外,如果将冷启动资源的提升视为一种干预,基于 Uplift 思想可以学习干预对用户时长和留存的影响,尽量选择对干预不产生负面影响的用户进行冷启动。
以上两点都是基于 C 端用户影响的角度。然而,冷启动受众的选择也会影响资源的后续传播发展。从信息传播的角度来看,二级传播理论将信息传播分为两个步骤。首先,在每天产生的大量信息中,一些人群具有筛选和助推信息的能力,我们称之为意见领袖。然后,由这些意见领袖放大助推的资源会大规模传播。
在当前时代,意见领袖的角色同样存在于社交平台、知名媒体、电视台等地方。对于推荐系统来说,也存在着关键节点用户资源的概念,他们通过筛选优质资源并进行推荐,从而影响其他用户的消费行为。
那么,如何挖掘这些关键用户呢?通过以上讨论,关键用户具有两个特点:一是对资源质量有较高的鉴别能力,二是他们推荐的内容被其他用户接受的概率较高。因此,有两种挖掘方法:
首先,根据资源的后验情况将资源划分为优质和低质资源,并将其作为标签。然后以初期点击这些资源的用户 ID 作为特征,预测资源的后验情况。模型学习出的每个用户 ID 的权重可以视为该用户的关键指数。
其次,通过在线用户协同过滤推荐系统,挖掘用户之间的推荐成功率。推荐成功率较高的用户可被视为推荐系统中的关键用户。通过这两种方法,挖掘出图中的关键用户,并在资源冷启动时优先推荐给他们。
冷启动内容的实验系统在设计时需要注意一些特殊性,因为推荐系统的样本是共享的,导致实验组收集到的反馈也会在对照组中被学习到,从而难以准确衡量冷启动策略的效果。因此,我们需要进行内容隔离实验,以评估冷启动策略对整个系统的影响。
一种常见的实验设计是将用户和资源完全隔离,比如上图左下部所示。其中,50% 的用户只能看到 50% 的内容,不同的资源分组使用不同的冷启动策略。这样可以评估冷启动策略对整个系统的影响。但是这种方法可能对 C 端用户的体验造成较大的影响,因为他们只能看到一部分的内容。
另一种柔和的方式是在冷启动阶段,比如前 3000 次,将用户和资源完全隔离,然后不同的分组进行不同的冷启动策略。在经过冷启动之后,就可以在全部用户上分发资源。这样的设计可以降低对 C 端用户体验的影响。
通过实验,我们可以分析以下指标:
A1:冷热双塔的判断通常基于资源的分发量。一般来说,分发量较低的资源被认为是冷塔,而分发量较高的资源则被认为是热塔。例如,可以将分发量小于 100 次的资源视为冷启资源。当然,需要根据线上模型的预估精度进行分析,并根据实际情况来确定具体的判断标准。
A2:冷启流量的优质助推通常涉及对资源潜力的评估。判断资源潜力可以结合多个信号源。例如,对于是否是领域的新热,可以综合考虑全网的信息,包括各个产品的热榜信息,以及相关领域的话题讨论和关注度等。对于资源的价值评估,可能会考虑作者的优质度,包括其在初期阶段的表现、互动情况等因素。综合利用这些信息,可以对资源的潜力进行较为全面的预估。
A3:在求解理想的 t 和实际的 t 时,可以通过观察曝光曲线来体现。曝光曲线展示了资源在不同时间段内的曝光量,而理想的 t 指的是根据设定的目标所需时间而计算的理论曝光进度,而实际的 t 则是根据当前实际的曝光进度而确定的。为了保证实际的曝光与大盘趋势一致,需要对整体流量的比例进行稳定的监测,以确保冷启的进度与整体流量趋势保持一致。如果冷启的进度比较慢,可能需要提高曝光量或者调整其他推荐策略以加速进度,而如果进度过快,则可能需要减缓曝光速度以避免资源过度曝光。
A4:冷启的问题其实很难精确的测出来效果的准确值。现在一般就是去对比实验组和对照组哪个更好。
以上是百度推荐资源冷启动实践的详细内容。更多信息请关注PHP中文网其他相关文章!