TLDR: 本文提出了一个名为STAR的简单无需训练的方法,利用大语言模型来解决推荐系统中的问题。STAR框架无需对大模型进行微调,通过结合语义嵌入和用户协同信息来检索候选项目,然后使用大模型进行成对排序以增强下一个项目预测任务。
论文:https://arxiv.org/abs/2410.16458
引言
在数字化时代,个性化推荐系统已成为提升用户体验和增加用户参与度的重要工具。无论是电商网站、社交媒体还是流媒体服务,推荐系统都在帮助用户在海量信息中发现他们可能感兴趣的内容。
随着大语言模型的快速发展,研究者们有了新的机会来改进推荐任务。传统的大模型推荐方法依赖于微调大模型来实现最佳效果,但这不仅成本高昂,还增加了工程复杂性;而不经过微调直接使用大模型的方法虽然资源消耗较少,但往往无法充分捕捉语义和协同信息,导致性能不如经过微调的模型。
为了解决这一挑战,本文提出了一个名为STAR(Simple Training-free Approach for Recommendation)的新框架。STAR利用现成的大模型,而无需复杂的训练过程,即可应用于多种推荐任务。本文的方法是两阶段的:首先通过检索(Retrival)阶段,结合大模型生成的语义嵌入和用户的协同信息来检索候选项目。另外,时间因素为用户最近的交互提供更高的优先级,评分因素用来对其用户的偏好,更详细信息如下图所示;然后在排序(Ranking)阶段,利用大模型的推理能力来调整候选项目的排序,以增强下一个项目的预测能力。
检索阶段流程,其使用评分策略来将语义与协同信息以及时间、权重和评分因素结合起来,对未见过的项目进行偏分,而无需任务微调操作
STAR框架
下图展示了本文所提的Star框架。其中使用表示语义关系得分和表示协同关系得分对用户历史中的项目进行评分,并与推荐的新项目进行比较。一个新项目的最终得分是语义关系和协同关系得分的加权平均值,加上用户评分的额外权重和时间衰减权重,其用来优先考虑最近的交互。检索到的得分最高的个项目被输入到大模型中进行排序,在那里可以使用逐点、成对或列表的排序方法来进一步提高推荐项目的得分。
Star框架图概述
STAR框架的工作原理是将语义信息和协同信息结合起来,为用户未见过的项目打分。具体操作分为了检索阶段和排序阶段。
检索阶段
在STAR框架中,检索阶段是整个推荐流程的第一步,其目的是从所有可能的项目中筛选出一小部分候选项目,这些项目最有可能符合用户的兴趣和偏好。这一阶段的核心在于结合语义信息和协同信息来为用户未见过的项目打分。下面,将深入探讨这一阶段的技术细节。
- 语义关系
语义关系的理解关键在于评估候选项目与用户历史交互项目之间的相似度。本文通过大模型生成的嵌入向量来实现这一点。具体来说,构建了一个基于项目信息和元数据的提示(prompt),包括标题、描述、类别、品牌、销售排名和价格等,然后将这些提示输入大模型以收集嵌入向量。具体的prompt如下所示。
对于每个项目,收集一个维度为的嵌入向量。然后,使用余弦相似度来计算两个项目之间的语义相似度,这为后续提供了一个数值表示,显示项目在语义空间中的相似程度。
- 协同关系
协同关系的理解则关注于用户对不同项目组合的交互频率。这些共享的交互模式可以提供强有力的指标,表明候选项目与具有相似偏好的更广泛受众的共鸣可能性。对于每个项目,构建一个表示用户交互的数组,形成一个稀疏的用户-项目互动矩阵。然后,通过计算这些稀疏数组之间的余弦相似度来计算两个项目之间的协同关系,捕捉项目的归一化共现。
- 评分规则
在STAR框架中,为用户历史中的每个项目和候选项目之间的语义和协同关系计算一个分数。这个分数是通过对语义分数和协同分数进行加权平均来得到的,同时还会考虑用户对项目的评分以及一个时间衰减因子,以优先考虑用户最近的交互。具体的评分公式如下:
其中,和分别代表项目和之间的语义和协同关系分数,是语义和协同信息的权重因子,是时间衰减因子,它根据项目在用户历史中的顺序对项目进行加权。
通过这种方式,STAR框架能够在不需要微调大模型的情况下,有效地从大量项目中检索出最有可能吸引用户注意的候选项目集合。这一阶段不仅减少了计算资源的需求,还提高了推荐系统的性能和效率。
排序阶段
在STAR框架的检索阶段之后,得到了一组候选项目,这些项目被认为是用户可能感兴趣的。排序阶段的目标是进一步优化这些候选项目的排名,以提高推荐系统预测用户下一个交互项目的准确性。以下是STAR框架中排序阶段的技术细节。
- 排序策略
排序阶段采用了三种主要的排序策略:点式(Point-wise)、成对(Pair-wise)和列表式(List-wise)。
点式(Point-wise):在这种策略中,每个候选项目独立于其他项目进行评估,基于用户的历史互动序列来确定用户与该项目互动的可能性。如果两个项目获得相同的分数,它们的排名将遵循检索阶段的初始顺序。
成对(Pair-wise):成对策略评估两个项目之间的偏好,通过比较用户历史互动序列中的项目来确定。这种方法采用滑动窗口方法,从列表底部的检索分数最低的项目开始。大模型比较并交换相邻的项目对,然后逐步将比较窗口向下一个元素移动。
列表式(List-wise):列表式策略评估多个项目之间的偏好,同样基于用户的历史互动序列。这种方法也使用滑动窗口方法,窗口大小为,步长为,窗口在整个列表上移动来细化排名。
- 项目信息表示
在排序阶段,以JSON格式在输入提示中表示用户历史中的每个项目和每个候选项目(待排序的项目)的元数据(例如项目ID、标题、类别等)。此外,还包括两种类型的信息来帮助大模型更好地理解用户偏好和上下文:
流行度(Popularity):计算与项目互动过的用户数量,通过在训练数据中计数出现次数来确定。这个流行度值被包括在用户历史项目和候选项目的提示中,格式为“Number of users who bought this item: ###”。
共现(Co-occurrence):计算与项目和用户历史中的项目互动过的用户数量。这个值被包括在候选项目的提示中,格式为“Number of users who bought both this item and item X: ###”。
- 排序流程
排序流程开始于检索阶段输出的候选项目列表,这些项目已经根据检索框架的分数进行了排序。然后,大模型被用来进一步细化这些项目的排名。具体来说,构建一个提示,包括用户的历史项目、候选项目以及排序策略的指令。每个项目都以JSON格式表示,包括其元数据和额外的细节,如流行度和共现。
排序阶段的提示概览
假设有一个用户历史,包含三个项目,以及四个候选项目。将使用窗口大小为4和步长为2的列表式排序策略。系统将提示大模型分析用户的历史购买记录,识别偏好和购买模式,然后根据这些偏好和其他上下文因素对候选项目进行排名。大模型的输出将是候选项目的排名列表,格式为[1] > [2] > [3] > [4],其中每个[]是一个项目标识符。
通过这种排序策略,STAR框架能够有效地利用大模型的推理能力,以更准确地预测用户的下一个交互项目,从而提高推荐系统的整体性能。
实验结果
下图展示了所提方法在多种数据集和对比方法上的优越性。
特别可以看出,本方法仅利用检索阶段就可以实现较优的性能。另外,本文发现在排序阶段使用成对排序策略相比于点对和列表式的策略效果更优。
更多技术细节请阅读原始论文。