在快手这一融合了内容和电商业务的复杂业务形态中,用户打开快手 APP 后,从 C 端流量的视角来看,可以通过自然流量中的推荐和搜索,以及广告中的推荐和搜索来消费平台上的内容和商品。从消费媒介的形式来看,快手平台提供了图文、短视频、直播、商详页、落地页等多种媒介形式,以满足用户的内容和商品消费需求。从B端供给侧的视角来看,包括个人或机构上传的自然作品、广告主上传的广告作品以及商家上传的电商作品,这三种供给形式承载着不同的平台业务目标,这些作品之间虽有交集,但大部分可能并不重合。这样一个复杂的生态下,就带了一个很复杂的问题就是用户行为散落在不同的场景叉乘媒介的矩阵上,使得用户的行为在单一场景下比较稀疏。
此外,目前的推荐系统主要是以 ID 为中心的分发体系,例如短视频主要以视频 ID (Video ID)为主,商品主要以商品 ID(Item ID)为主,直播主要以直播 ID(Live ID)或主播 ID 为主,这些 ID 体系之间难以实现互通。若要利用全域行为进行用户兴趣建模,则面临跨域数据的挑战。同时,不同类型内容的生命周期也不尽相同,例如短视频的消费旺盛周期可能为一到两周,直播可能为 2 到 3 小时,商品则可能更长,这进一步加剧了问题的复杂性。
接下来将重点介绍我们的工作,首先是对全域行为的利用——商品内容统一表征框架 COPE。下面将以电商推荐广告为例,分享我们所做的工作。在内部,我们的商品分发依赖于一个核心要素,即商品 ID,这也是业界使用最广泛的体系之一,基于商品 ID 进行 embedding 学习。
该体系的优点在于简单实用,但商品 ID 主要是为了平台运营和数据库中的唯一标识而设计,缺乏语义和同品聚合能力。理论上,随着新商品的不断上传,ID 会不断膨胀,这可能导致基于商品 ID 的 embedding 学习对于稳定用户行为兴趣的捕捉存在困难。
例如,即使是同一商品,在平台上可能表现为不同的 item ID,且跨场景表现不同,如商详页上的用户转化行为可能与短视频或直播上的行为不同。因此,为了打通跨媒介的全域行为,我们在内部建立了一个体系,即 SPU ID 体系。这一体系实际上是同品 ID,将具有相同商品属性的商品聚合成一个 ID,使得 ID 空间更加稳定,并具有同品聚合能力。因此,我们也能将同品的不同商品 ID 聚合在一起,并将相关数据如 live ID 和 video ID 等聚合在一起,这有利于全域稳定兴趣建模。这一做法在线上也取得了不错的收益。然而,我们认为量级仍然较大,且语义性不足,因为它只是一个同品的随机分配 ID,特征学习高度依赖于用户行为交互。
在构建数据集之后,需要探讨如何实现跨域统一的多模态表征,以便对内容商品进行有效表征。模型结构相对简单。在底层输入侧,针对商详页产品侧,使用与产品相关的图片和文本信息;对于视频侧,主要提取视频帧中 ASR 和 OCR 文本;直播侧的处理方式与视频侧相同。这些输入将分别送入文本编码器、视觉编码器,最终进行融合(Fusion)。融合完成后,获得该领域下的具体表征。
在 Loss 上,使用跨域对比损失,来对齐不同域的商品表征,使用商品分类损失,来提升特征区分度,右图就是 COPE 框架示意图。
在实际操作过程中,离线部分,我们会将用户在平台上过去一年或几个月的数据按照设定的切分点进行切分,例如将未来一个月和过去九个月的数据分别作为测试集和训练集。然后,将用户行为过的商品或短视频等信息,比如商品标题、产品价格或相关权益信息等,输入到大模型中。通过大模型获得 content embedding,之后再通过训练一个用户偏好序列模型,来建模用户的兴趣偏好。通过这种方式,构建一个双塔模型结构,参数共享,同时训练 item 侧和 user 侧。我们认为最重要的是如何利用长期稳定的兴趣。因此,我们使用 dense all action loss 来进行训练,这是一种常用的方法。
在完成离线训练模型之后,如何在业务中在线使用它呢?我们在传统推荐模型上加了一个辅助塔,以解决特征上线和适配问题。我们在得到 user 侧和 item 侧的表征之后,会进行融合,并通过一些多层感知器(MLP)处理,最终实现对转化率(CVR)的 loss 监督,进一步微调我们得到的 embedding。此外,精排的 loss 也会回传到更新的 embeding 中。这样,将离线更新与在线更新解耦,从而能够在线上实现轻量级的部署,并在资源消耗较小且可控的情况下获得业务收益,感兴趣的读者可以参阅下述论文。
关于离线效果,我们最初是在业务场景数据上开展的这项工作。我们构建了如前所述的数据集,构建完成后进行离线验证并适配上线,结果表明我们能够获得稳定的线上收益,这主要体现在广告收入上。并且,实验结果表明,在冷启和长尾上的效果更为显著。我们与基于 ID 的一些 SOTA 方法,或 ID 与文本融合的 SOTA 方法,在 Amazon Review 数据集上进行了对比,公开数据集上测试结果表明该方法可以得到一个非常稳定的大幅提升,在零样本泛化场景中,甚至比某些场景下的全监督微调表现得更好。