今天跟大家分享一篇CIKM 2024来自香港城市大学和华为诺亚提出的一种新型多场景推荐模型HierRec。它结合了显式场景信息和隐式数据分布信息,以实现对场景的精细建模,提升了多场景下的整体推荐性能。
论文:https://arxiv.org/abs/2309.02061
背景
多场景推荐是近年来推荐系统的一个新发展方向。通过将场景id或场景差异作为样本的补充特征,我们可以将不同场景的数据统合在一起以进行联合建模与训练,以提升整体推荐性能。近期研究表明,实施多场景推荐可以增强信息共享并提高整体性能。
现有的多场景模型仅考虑基于预定义的场景特征的粗粒度显式场景建模。这是由于场景这一特征一般通过不同样本的数据来源人为进行划分(常以id特征形式出现),场景间具有显著的数据分布差异。针对场景特征进行差异化建模有利于提升模型整体性能。
然而,除了场景特征外,通用特征中其实也存在着许多重要特征或特征组合,能够划分出重要的隐式数据分布组,这些隐式数据分布组同样显著影响着整体推荐性能。现有的研究缺乏对这部分内容进行差异化建模,因而会导致整体推荐效果次优。
为了解决这些局限性,我们在提出的HierRec模型中构建了一种基于场景感知的分层建模方式,使该模型能够在以id特征为代表的显式场景下进一步自适应地构建细致的隐式数据分布,以同时进行显式和隐式场景建模。
方法
本文提出了一个场景感知的分层建模多场景推荐模型。如下图所示,整个框架由两个主要模块组成,即用于进行显式场景建模的Explicit Scenario-Aware Module和用于进行隐式场景建模的Implicit Scenario-Aware Module。我们希望通过这种分层建模方式,能够在利用预定义场景特征进行建模(即建模显式场景)的同时,在每个显式场景下进一步从通用特征组合中提取重要的数据分布模式,进行精细化建模(即建模隐式场景)。
1) Scenario-Oriented Module
为了方便对显式/隐式场景进行建模。我们设计了一个基于场景的通用建模模块Scenario-Oriented Module。该模块由数个Linear层构成。与普通全连接网络不同的是,该模块利用了动态网络技巧,首先接收不同的场景信息(SC)以初始化其模块参数,随后才接受输入并产生输出。由于模块参数由场景信息实例化而来,因此通过该模块获取输出时,即可以被视为在特定场景下对输入进行了对应的场景建模。
2) Explicit Scenario-Aware Module
该模块旨在对人为预定义的显式场景进行建模。因此,该模块首先接受由场景id特征转化而来的表征矩阵以初始化Scenario-Oriented Module为Explicit Scenario-Oriented Layer,随后接受经过了一个全连接层处理的通用表征作为输入以进行显式场景建模。
3) Implicit Scenario-Aware Module
为了自适应地在每个显式场景下捕捉重要的隐式数据分布,我们首先根据场景id表征生成数组权值,以加权出G组公共表征组合,作为建模时需要考虑的重要“隐式场景”。随后为每个隐式场景初始化一个Implicit Scenario-Oriented Layer进行建模。
4) Output Layer
在上述建模完成后,输入表征将按顺序经过经过Explicit Scenario-Oriented Layer和多组并列的Implicit Scenario-Oriented Layers以进行显式和隐式场景建模,随后通过concat+FC的形式聚合并生成输出。
实验
本文在实验部分主要回答三个研究问题:
RQ1:与不同多场景推荐基线相比,HierRec的表现如何?
RQ2:所设计的层级结构是否有助于提升不同场景的实际性能?
RQ3:HierRec的推理效率是否满足在线部署的要求?
数据集
本文在两个常用的公开数据集Ali-CCP和KuaiRand上进行了实验,预测任务为点击率预估(CTR Prediction)。
对比实验
本文对比了HierRec与常用的多场景推荐模型的性能,结果如下:
其中,sce_x代表该数据集下不同场景的性能。可以观察到,基于多任务模型(Shared Bottom, MMoE, PLE)的多场景推荐在两个数据集上表现一般,其中 MMoE 和 PLE 因其任务共享和信息隔离机制分别表现较好。相比之下,多场景模型(STAR, AdaSparse)通过有效建模显式场景差异取得了更好的效果,特别是 AdaSparse 的动态权重方法表现出色。APG 和 AdaptDHM 通过学习样本分布以达到了可观的性能,强调了挖掘数据分布的重要性,但性能仍不及 AdaSparse 和 HierRec。因此,本文中HierRec尝试使用分层结构对不同显式场景基于差异化权值进行隐式场景建模,达到了更好的预测效果。
消融实验
为了证明HierRec中不同组件对场景建模的贡献,本文从“是否需要多头注意力以建模多组隐式场景?”(-MI),“是否需要建模隐式场景?”(-I)和“是否需要建模显式场景?”(-E))三个方面对模型进行了消融实验。结果如下:
实验结果说明,显式场景(人为预定义的场景特征)和隐式场景(公共特征组中的重要数据分布)都是多场景建模中的重要组成部分。而本文通过多头注意力的方式在不同显式场景下进一步建模多组隐式场景的方式有利于模型自适应地根据输入输出捕捉重要的数据分布,以达到细粒度建模的目的。
推理性能分析
为了满足部署要求,本文还进行了推理性能分析(每2000样本平均耗时):
可以看到,尽管由于添加了一个隐式场景建模模块,模型的推理耗时并没有增加很多。这是因为两个重要的模块(Explicit / Implicit Scenario-Oriented Layers)都采用了bottle neck结构,且网络层数并不深。因此,HierRec满足线上部署要求。
线上部署
为了进一步验证HierRec的有效性,本文在华为广告相关业务方面对HierRec进行了Offline和Online部署实验。并与当前常用的线上多场景推荐模型进行了对比。Offline效果如下:
Online A/B测试中,CTR(点击率预测)和CVR(转化率预测)阶段的eCPM(effective cost per mile)指标分别提升2.21%和10.33%。实验验证了HierRec场景感知分层建模的有效性。
总结
本文提出了一种场景感知分层建模模型HierRec,以在人为预定义的显式场景内执行细粒度的隐式数据分布建模,提升了整体的多场景推荐性能。线上部署实验证明了HierRec的有效性。
更多细节请见原始论文。
欢迎干货投稿 \ 论文宣传 \ 合作交流
推荐阅读
由于公众号试行乱序推送,您可能不再准时收到机器学习与推荐算法的推送。为了第一时间收到本号的干货内容, 请将本号设为星标,以及常点文末右下角的“在看”。
由于公众号试行乱序推送,您可能不再准时收到机器学习与推荐算法的推送。为了第一时间收到本号的干货内容, 请将本号设为星标,以及常点文末右下角的“在看”。