记得给 “应用机器学习” 添加星标,收取最新干货
作者:香港城市大学 汪宇豪
今天跟大家分享一篇CIKM 2024来自香港城市大学和华为诺亚提出的一种多场景推荐的增强方法,以提升传统多场景推荐模型的表现。具体地,本文提出了基于大语言模型(Large Language Model,LLM)的多场景建模提升范式,并在基于快手和亚马逊的三个公开数据集进行了实验,验证了我们的方法具有以下优点:兼容各种多场景骨干模型,不需要对LLM进行微调所以具有高效性,能够在工业推荐系统上实现实时推荐,同时提升了传统推荐系统的可解释性。
论文地址:https://dl.acm.org/doi/abs/10.1145/3627673.3679743
代码:
https://github.com/Applied-Machine-Learning-Lab/LLM4MSR
背景
我们面向多场景推荐问题(简称MSR),它利用来自多个场景(比如电商平台不同类别的产品)的数据来同时提升他们的推荐效果,并解决数据稀疏问题。典型的建模方式和多任务建模类似,模型结构如下图所示。它以场景id、用户特征和物品特征作为输入,蓝色部分代表共享参数,而红色和黄色则表示特有的场景参数。然而,之前的多场景建模面临两个挑战。第一是场景知识利用不足。具体来说,场景id通常是唯一用来捕捉领域差异的场景知识。第二是用户的跨场景个性化偏好往往被忽略,因为大多数模型仅仅依赖不同的参数共享方式以及协同信息来进行建模。
最近,大语言模型因为其自然语言理解和推理能力而备受关注,并且已经有了一些尝试利用大语言模型来增强推荐系统的工作,然而他们面临一些挑战。首先是大语言模型的推理时延较高,直接用来做推荐无法满足实时的需求。其次,从大语言模型生成的信息通常是自然语言形式的,所以通常需要弥合语义空间与协同空间之间的差异,比如采用额外的编码器和对大语言模型进行指令微调,通常会带来高昂的计算成本。
因此,我们的动机是利用LLM去提升传统的推荐模型,这里LLM作为推理器+编码器,而不是直接用于生成推荐结果。同时我们希望回答以下两个重要问题:
What:从LLM可以获得什么信息? How:如何利用这些信息带来信息增益?
方法
为了解决上述问题,我们提出了LLM4MSR这个范式。它包含两个步骤,第一步是多场景知识推理,它回答了从大语言模型可以获得什么信息的问题。一方面,我们设计了一个场景级别的prompt,明确捕获场景的统计信息和语义描述中的场景共性和特性。如下图中紫色框所示,样本数量、用户数量、物品数量和场景重叠部分的统计数据以及相关背景描述的语义信息一起用来挖掘推荐和搜索场景的相似性和异质性。另一方面,我们设计了一个用户级别的prompt,基于丰富的历史交互数据,以探索用户在所有场景中个性化的共有和特有兴趣。直观来说,正向的交互行为比负面行为更能反映用户的兴趣。同时,由于数据收集和用户互动中的偏见和不确定性,负面样本包含了很多噪声信息。因此,在用户级别的prompt中,我们筛选了正向交互(如点击、转发和喜欢)。如图中蓝色框所示,LLM帮助捕获用户在搜索和推荐场景中的偏好,同时考虑互动频率和语义关系,例如物品的类别和标题。在获得场景级别和用户级别的提示后,它们被传递给LLM并使用固定参数的LLM来推理多场景知识。
第二步是多层级知识融合。它回答了如何使用来自大语言模型的信息以获取信息增益的问题。具体地,我们利用分层的元网络,它可以动态生成元层,以自适应的方式融合场景级和用户级知识,以及多场景骨干模型中的协同信息。此外,我们提出了一种分层的“底层+平行”结构,其中用户级元层位于底层,而场景级元层则与多场景骨干模型平行。具体来说,将大型语言模型输出的最后一层隐向量记为,元网络将其作为输入并输出和,然后使用重组维度的操作来获得总共个元层。例如,维度为 8256的可以重组为一个维度为128×64的权重矩阵加上一个维度为64×1的权重矩阵。
其中和指第层元层的权重和偏置矩阵。
接着每个元层后面都会跟着一个激活函数,比如 ReLU。其中是第个元层的输出。之后特征的表征,即,被传递到所获得的元层中。最后,预测结果是通过将平行的场景级元层的输出与多场景骨干模型的输出以自适应方式结合得到,通过可学习的超参数。
值得注意的是,我们在3.4章节进行了一些有趣的讨论,对比了我们的方法和传统多场景模型,和基于大模型的推荐系统的联系和区别,同时阐述了大模型相较于预训练语言模型(比如BERT)在我们方法中的必要性。
实验
我们在实验部分主要回答了三个研究问题:
① LLM4MSR是一种有效的范式吗?它是否与不同的多场景骨干模型兼容? ② 场景级别和用户级别的prompt有什么效果?它们各自的最优架构是什么? ③ 交互样本的截断阈值和元网络生成的网络层数对结果有什么影响? ④ 与原始的多场景骨干模型相比,LLM4MSR的效率如何? ⑤ LLM是如何通过我们提出的LLM4MSR来帮助改进多场景骨干模型的?
数据集
我们在3个公开数据集上进行了实验,分别是KuaiSAR-small、KuaiSAR和Amazon。前两个数据集是从快手短视频平台收集的,包含搜索和推荐两个场景。Amazon数据集是从亚马逊电子商务平台收集的,我们选择了其中三个有关联的场景。同时,我们选择AUC作为评估指标,并且有两种基线方法(动态网络和EP-Net)和六个多场景骨干模型(包括STAR, OMoE, MMoE, PLE, AITM, Shared Bottom)。
主实验
首先,以STAR为例,LLM4MSR在三个数据集上的AUC分别提高了1.5%、1%和40%。其表现更好的原因是,一方面,多场景骨干模型和基准方法都融入了不足的场景知识,即仅包含场景id,并且缺乏个性化建模。另一方面,LLM4MSR首先利用大语言模型来探索领域相关性并推断个性化的跨场景兴趣,然后通过整合元网络来明确增强多场景建模能力。同时,它也提升了所有骨干模型上的性能。
效率分析
此外,为了验证我们提出的LLM4MSR范式的效率,我们以STAR作为骨干模型,在KuaiSAR-small数据集上进行了分析。如下表所示,作为基于大语言模型的方法,LLM4MSR即使比其他基线方法需要更多的训练和推理时间,也能够实现实时推理。具体来说,实际的工业系统有一个最大延迟(比如0.1秒),当前的推理时间(我们方法中的0.05秒)并不会降低系统的有效性,考虑到延迟和成功率,同时仍然实现了性能的显著提升。因此,我们可以得出结论,LLM4MSR在有效性和高效率之间取得了不错的平衡。
成分分析
我们还进行了成分分析,可以看到,将用户级别prompt对应的元层放在底部,并将场景级别prompt的元层平行放置是最佳的组合方案。一个合理的解释是,用户级别的多场景信息有助于在更低层次上更好地个性化调节通用表征。相比之下,场景级别的信息在更高层次上表现更好,就像STAR中采用的辅助网络一样。
实例分析
我们在KuaiSAR-small数据集上以用户1为例进行了实例研究,由ChatGLM2-6B生成的对应用户级别prompt的结果如下图所示。我们可以看到,它明确地推断出用户1在这两个场景中的共同和不同兴趣,并准确总结了用户画像。这些结果也有助于提高传统推荐模型的可解释性。
此外,我们还进行了消融研究和超参数分析,更多细节请参考我们的论文。
END