一、ChatGPTRec [2023]

《Uncovering ChatGPT’s Capabilities in Recommender Systems》

  1. ChatGPT 的首次亮相最近引起了自然语言处理(natural language processing: NLP )领域及其他领域的极大关注。现有研究已经证明,ChatGPT 在一系列下游 NLP 任务中表现出显著的进步,但 ChatGPTrecommendations 方面的能力和局限性仍不清楚。在本研究中,我们旨在通过将 ChatGPT 与传统的信息检索(information retrieval: IRranking 能力(包括 point-wise rankingpair-wise rankinglist-wise ranking )对齐,来增强 ChatGPT 的推荐能力。为了实现这一目标,我们将上述三种推荐策略重新表述为专门针对当前领域的 prompt 格式。通过在来自不同领域的四个数据集上进行的大量实验,我们分析了这三种推荐策略之间的区别。我们的研究结果表明,当配备 list-wise ranking 时,ChatGPT 在成本和性能之间达到了最佳平衡。这项研究揭示了将 ChatGPT 与推荐任务对齐的一个有前景的方向。为了促进这一领域的进一步探索,完整代码和详细的原始结果已在 https://github.com/rainym00d/LLM4RS 上开源。

  2. 大型语言模型(Large language Models: LLMs),例如 OpenAI 开发的 ChatGPT,最近引起了自然语言处理领域及其他领域的极大关注。这些 LLM 具有多功能性和广泛的世界知识,不仅可应用于各种 NLP 任务,还可应用于教育、医学、搜索和法律等领域。

    同时,先前的研究表明,通过使用 prompts 将推荐任务改编为 multi-token 完形填空任务,现成的 pre-trained 语言模型可以直接用作推荐器(《What does bert know about books, movies and music? probing bert for conversational recommendation》《Zero-Shot Recommendation as Language Modeling》《Language models as recommender systems: Evaluations and limitations》)。因此,一个自然的研究问题出现了:如何有效地将 LLM 与推荐能力对齐?

    推荐系统的主要目标是通过为用户提供个性化的 top-K item ranking lists 来减轻信息过载。在信息检索(information retrieval: IR)中,先前的研究通常使用三种方法来构建这些 ranking listspoint-wisepair-wiselist-wise《Learning to rank for information retrieval》《Deep learning for matching in search and recommendation》)。因此,在本文中,我们特别关注通过将 LLM 与这三种 ranking 视角对齐来探究 LLM 的推荐能力。

    为了从这三种 ranking 视角研究 LLM 在推荐任务中的潜力,我们首先将这三种能力重新表述为 prompts;这些 prompts 针对特定领域并用于 LLMsinput。然后,我们对来自 OpenAIChatGPT 和其他流行的 LLM 在来自不同知识丰富领域的四个广泛使用的 recommendation benchmarks 上进行了实证分析。据我们所知,这是首次从不同 ranking 视角探究 ChatGPT 在推荐系统中能力的实证研究。

    主要发现。总之,经过实证实验,我们有以下主要发现:

    • ChatGPT 在所有三种排序能力上相比其他 LLM 表现出一致的优势。

    • ChatGPT 擅长 list-wise rankingpair-wise ranking,而在 point-wise ranking 上稍弱。

    • ChatGPT 在训练数据有限的情况下可以超越传统推荐模型。

    • 考虑到成本、以及所带来的改进,对于 LLM-based recommenders,我们推荐在实际中采用 list-wise ranking

    • ChatGPTexplainable recommendations、以及对 item similarity 的良好理解方面展现出潜力。

    我们希望这次对 ChatGPT 在推荐中的初步 evaluation 能为评估 LLM 的能力、以及利用 LLM (如 ChatGPT )来增强推荐系统提供新的视角。

1.1 探究 ChatGPT 的推荐能力

  1. 在本节中,我们利用 prompts 来适配 point-wise rankingpair-wise rankinglist-wise ranking 任务,使现成的 LLM 能够有效地处理这些任务。

1.1.1 推荐系统中的三种 Ranking 能力

  1. 个性化推荐的核心目标是基于用户偏好对 candidate items 进行排序。为了实现这一点,当前的 learning-to-rank: LTR 方法通过相应的 loss 函数赋予推荐系统不同的能力,包括 point-wise 排序能力、pair-wise 排序能力和 list-wise 排序能力(《Learning to rank for information retrieval》)。

    形式上,给定一个用户 uUkcandidate items {i1,i2,,ik}I,每个 user-item pairrepresentation 被编码为 xu,i。上述三种能力可以表述如下:

    • 定义 1point-wise 排序能力):推荐系统学习通过一个 point-wise 评分函数 Φpoint() 来预测每个用户 u 对每个 item i 的偏好分数 s(iu),即 s(iu)=Φpoint(xu,i)。然后使用偏好分数 s 为每个用户对 items 进行排序。

      point-wise ranking 中常用的 loss 函数包括均方误差(mean squared error: MSE)和二元交叉熵(binary cross entropy: BCE)。

    • 定义 2pair-wise 排序能力):推荐系统学习为每个用户 u 比较 pairs of items imin,并通过一个 pair-wise 评分函数 Φpair() 预测哪个 item 更受偏好,即 s(iminu)=Φpair(xu,im,xu,in)。然后系统根据相对偏好分数(relative preference scoresitems 进行排序。

      pairwise hinge loss《Optimizing Search Engines Using Clickthrough Data》)或 Bayesian personalized ranking loss: BPR《BPR: Bayesian personalized ranking from implicit feedback》)是 pair-wise ranking 中使用的典型 loss 函数。

    • 定义 3list-wise 排序能力):推荐系统学习通过一个 list-wise 评分函数 Φlist() 直接为每个用户 u 预测 a list of items {i1,i2,,ik} 的偏好分数,即 s(i1u),s(i2u),,s(iku)=Φlist(xu,i1,xu,i2,,xu,ik)。然后系统根据 predicted scoresitems 进行排序。

      list-wise loss,例如,sampled softmax loss《Deep Neural Networks for YouTube Recommendations》) ,被用于优化推荐模型。

1.1.2 用 Prompts 重新表述和适配 Recommendation

  1. 为了获得上述推荐能力,当前的推荐模型采用相应的 loss 函数进行 supervised learning。然而,supervised learning 模式在数据稀疏场景(例如,冷启动问题 《A survey on solving cold start problem in recommender systems》long-tailed items 《The long tail of recommender systems and how to leverage it》)中常常失败。相比之下,LLM 在这些数据稀疏场景中具有更强的泛化能力,并在 few-shot 任务甚至 zero-shot 任务中取得了有前景的性能。在这项实证研究中,我们假设 LLM 已经具备上述三种能力,我们只需要通过 prompt tuning 来触发这些能力。为此,我们采用了近期成功的 in-context learning《Language models are few-shot learners》)和 instruction tuning《Scaling instruction-finetuned language models》)实践,并将上述三种能力表达为具有 domain-specific prompts 的三个任务。

    Figure 1 说明了我们如何使用 prompt tuningLLM 中激发三种排序能力。如 Figure 1 (left) 所示,我们的 prompt 由三个部分组成:

    • (i) Task description II 指的是使 LLM 能够理解特定领域的过程,其中在这个领域中需要执行推荐任务。task description 被设计为具有 domain-aware,这增强了 LLM 对相关知识的感知。

    • (ii) Demonstration examples DD={f(h1,c1,y1),,f(hN,cN,yN)}(即,Nin-context learning),其中:

      • h 表示用户的 historical interacted items

      • c 表示需要排序的 candidate items

      • y 表示 LLM 给出的 predictions

        注意:y 就是 labels

      • f() 是将 examples 转换为 designed prompt templates 的函数。

      demonstration examples 有助于 LLM 理解当前任务。

    • (iii):对于给定用户的一个 new input query f(h,cu),这个 query 是需要 LLM 回答的。

    对于三个排序任务,相应的 candidate items c 构造如下:

    c={{i}for point-wise ranking capability{im,in}for pair-wise ranking capability{i1,i2,,ik}for list-wise ranking capability

    Figure 1 (right) 所示,LLM 将利用通过不同 prompts 所激发的不同排序能力来得到 prediction y^

    y^i=LLMpoint(I,D,f(h,cu))y^imin=LLMpair(I,D,f(h,cu))y^i1,y^i2,,y^ik=LLMlist(I,D,f(h,cu))

    然后,the output answer 将被手动检查,有效的答案将用于进一步评估,而无效的答案将被排除。有关 prompts 的更多详细信息,请参阅链接 https://github.com/rainym00d/LLM4RS/blob/main/assets/prompts.pdf

    logit_bias 方法参考这里:https://platform.openai.com/docs/api-reference/completions/create#completions/create-logit_bias

1.2 实验

  1. 在本节中,我们进行实验以评估 ChatGPTGPT-3.5s,以回答以下研究问题:

    • RQ1:这些 LLM 在不同的推荐领域的各种排序能力上表现如何?

    • RQ2:基于 LLMrecommenders 与传统的协同过滤(collaborative filtering)方法相比如何?

    • RQ3:这些基于 LLMrecommenders 在不同排序能力上的成本是多少?

  2. 实验设置:为了更好探究 ChatGPTGPT-3.5stext-davinci-002text-davinci-003)在个性化推荐上的不同能力,我们在来自四个不同领域的数据集上进行了评估,包括 Movie, Book, Music, and News。关于数据集的描述和处理细节,请参阅我们的 GitHub 仓库。

    处理后,由于成本高昂,我们在每个数据集上随机采样了 500 条记录进行评估。对于所有实验,我们遵循现有实践(《Zero-Shot Recommendation as Language Modeling》),将一个 positive item 与四个随机采样的 negative items 配对作为 candidate item list。我们将 pair-wiselist-wise 的示例数(shots)设置为 1,将 point-wise 的示例数设置为 2

    我们报告 top-K Normalized Discounted Cumulative Gain: NDCG@KMean Reciprocal Rank: MRR@K,其中 K=3。此外,考虑到 LLM 可能生成一些非法输出(illegal output),即不在 candidate set 中的结果,我们引入指标“合规率” ("Compliance Rate")来比较不同模型之间的合规率,其定义为所生成的有效结果数量占所有测试样本的比例,即:

    Number of Valid AnswersNumber of Test Samples

    这些数据集和评估方法距离工业界实际场景很远,因此该论文的方法距离实际应用很远。

1.2.1 RQ1: 整体表现

  1. Table 1 显示了不同 LLM 在四个不同领域的结果。我们有以下观察和结论:

    • ChatGPTGPT3.5s 在几乎所有情况下的表现都远优于随机推荐。具体来说,在四个领域上,所有三种 LLM 都比随机推荐策略有显著的改进,例如,在 Movie 数据集上,point-wise 任务的 NDCG@3 平均提高了 24.71%。此外,由于 in-context learning 的能力,LLM 的大多数答案都是合规的。这些结果表明,LLM 有潜力从而促进推荐系统。

    • text-davinci-002text-davinci-003 相比,ChatGPT 在几乎所有评估指标上对所有三种排序能力都表现出更好的性能。例如,ChatGPT24 次比较中的 22 次中优于其他 LLM,这包括两个排序指标、三种排序能力和四个领域数据集。仅有的两个例外是新闻领域中 point-wise rankingtext-davinci-003 的比较。我们将 ChatGPT 的强大性能归因于其卓越的语言理解和推理能力,这使其能够有效地理解 item similarity 并做出明智的排序决策。

    • ChatGPT 在除电影领域外的 list-wise 排序上表现更好。另一方面,text-davinci-002text-davinci-003 在大多数情况下在 pair-wise 排序上表现更好。为了提供清晰的比较,我们在 Table 2 中总结了三种 LLM 在不同排序能力下的排名。注意,在大多数情况下(12 次中的 11 次),pair-wise ranking 往往优于 point-wise ranking;尽管由于需要 pair-wise comparisons,其推理成本更高。我们将在 RQ3 中深入分析成本。

    • 所有基于 LLMrecommenders 在推荐电影、书籍和音乐方面都优于 popularity 推荐策略,但在新闻领域表现不佳。这种现象可以解释为新闻推荐更依赖于 popularity ,而其他领域更个性化。新闻传递的速度是另一个可能的因素。由于新闻推荐的时效性和快速变化性,LLM 训练语料库中通常没有足够的每个新闻的交互数据。相反,在其他三个领域,item 描述和交互数据更丰富,使得 LLM 在其上工作得更好。总的来说,这一观察表明,虽然现成的基于 LLMrecommenders 在许多领域可能有效,但它们可能不适用于某些领域,可能需要进一步探索。

    我们还使用 zero-shot prompts(即没有示例)进行了实验。然而,使用原始的 zero-shot prompt,我们发现超过 50% 的案例是无效的且难以评估。为了解决这个问题,我们利用 logit_biashttps://platform.openai.com/docs/api-reference/completions/create#completions/create-logit_bias)来控制 output tokens。由于篇幅限制,我们在链接 https://github.com/rainym00d/LLM4RS/blob/main/assets/Supplementary_Material.pdf 中提供了详细结果。

    总的来说,结果突出了 LLM 作为推荐系统的潜力,因为它们在 zero-shot setting 下优于随机策略和基于 popularity 的策略。此外,正如预期的那样,few-shot settings 下的 LLM 在大多数情况下优于 zero-shot settings 下的 LLM,证明了 few-shot prompts in-context learning 的有效性。

    注意,论文并未给出 zero-shot setting 的结果,而是在补充材料里提供的。

    注意,baselinerandom/pop 策略,太弱了。 LLM-based 方法效果并没有比它们强太多,因此 LLM-based 方法也比较弱。

1.2.2 RQ2: 与协同过滤模型的比较

  1. 考虑到先前实验中使用的 LLM 没有在推荐数据上进行训练,我们研究了传统推荐模型需要多少训练数据才能达到与 LLM 相当或更好的性能。具体来说,我们选择了最具代表性的传统推荐模型,矩阵分解(Matrix Factorization: MF)(《Matrix factorization techniques for recommender systems》)以及神经协同过滤(Neural Collaborative Filtering: NCF)(《Neural collaborative filtering》),并评估了它们在训练不同比例数据后的性能。为了公平比较,我们仔细调优了 MFNCF 的超参数。然后我们将它们的性能与 LLM 进行了比较。所有实验在 Movie 数据集上进行了 5 次,平均结果及其 95% 置信区间的 NDCG@3Figure 2 所示。

    • 正如预期,MFNCF 的性能随着训练数据量的增加而提高。

    • 此外,我们可以观察到,当只有少量训练数据可用时,即少于完整训练集的 40% 时,现成的基于 LLM 的模型优于 MFNCF(对于 ChatGPT 在所有三种排序能力上)。请注意,基于 LLM 的推荐模型不需要训练数据,而是在 prompt 中需要少量样本来帮助理解推荐任务。

    因此,我们得出结论,基于 LLM 的推荐模型可以在实践中应用以缓解冷启动问题。

1.2.3 RQ3: Performance Scaling by Cost

  1. 尽管如 Table 1 所示,LLMpair-wise rankinglist-wise ranking 上具有更好的性能,但我们需要考虑与这些性能改进相关的成本。具体来说,我们计算每个 LLM 的每单位成本改进:

    VLLMVrandomcostLLM

    其中:

    • VLLM 表示 LLM 的指标值,Vrandom 表示随机推荐的指标值。

    • costLLM 表示对一个用户的 candidate item list 进行排序的成本。

    参考 Figure 1 (left),我们定义 costLLM

    • 对于 list-wise ranking,只需要一个 prompt input 即可获得 LLM 对所有 candidate items 的排序。

    • 对于 point-wise ranking,需要 Nprompt inputs 才能获得 LLM 对所有 candidate items 的排序。其中 Ncandidate items 的数量。

    • 对于 pair-wise ranking,需要 N(N1)2prompt inputs 才能获得所有排序结果。

    在我们的实验设置中,N=5point-wise rankingpair-wise rankinglist-wise ranking 的成本分别表示为 5x10x1xFigure 3 展示了每个 LLM 的每单位成本改进。

    • 可以发现:几乎所有三个 LLMlist-wise ranking 中都具有最佳的每单位成本改进,除了 text-davinci-002Book 数据集上。

    • 此外,point-wise rankingpair-wise ranking具有相似的每单位成本改进。尽管 pair-wise ranking 在绝对指标上可能比 point-wise ranking 取得更好的性能,但为 pair-wise ranking 运行 multiple prompts 的需求导致了额外的成本。

    总的来说,我们建议在实践中对推荐任务采用 list-wise ranking,因为它具有不错的性能和较低的成本。

1.2.4 异常案例的研究

  1. 值得注意的是,即使在 few-shot in-context learning 下,LLM 也可能生成一些无效答案,导致合规率可能低于 100%,如 Table 1 所示。例如,Table 3 突出了来自 ChatGPT with pair-wise ranking 的两个异常案例,这两个案例都缺乏正确答案,因为它们是 the pair of two negative samples。令人惊讶的是,ChatGPT 并没有像在 in-context learning examples 中看到的那样简单地回答 "A""B"。相反,它识别出这两个 items 是不相关的且与 user history interactions 不相似。例如,在 case 1 中,用户的观看历史都是科幻电影,但答案选项都是卡通片。这些响应表明 ChatGPT 理解如何根据 user interaction histories进行推荐以及 items 之间的相似性是什么。然而,受限于我们现有的评估方法,这些答案被认为是不合规的。因此,我们建议从 learning to rank 之外的其他角度来探索评估 LLM 作为 recommenders 的方法,因为 LLM 有可能在 explainable recommendation 中发挥更大的作用。

1.3 结论

  1. 在本文中,我们对从 point-wisepair-wiselist-wise 角度探究现成 LLM 进行推荐进行了初步评估。具体来说,我们将上述排序能力重新表述为相应的 domain-aware prompts,并评估了 ChatGPT 在不同领域的每种排序能力上的表现。在四个数据集上的结果表明,ChatGPT 在所有三种排序能力上在推荐方面都具有优越性。我们还观察到,LLM 擅长 list-wise rankingpair-wise ranking,但在大多数情况下不擅长 point-wise ranking。此外,ChatGPT 显示出缓解冷启动问题和 explainable recommendation 的潜力。