SAID论文阅读笔记

Enhancing Sequential Recommendation via LLM-based Semantic Embedding Learning论文阅读笔记

Abstract

现存的问题:

​ 直接根据项目的文本特征从 LLM 中提取表征并将其输入顺序模型,并不能保证文本的语义信息能在这些表征中得到保留。此外,将项目序列中所有项目的文本描述串联成一个长文本,并将其输入 LLM 进行推荐,会产生冗长的标记序列,这在很大程度上降低了实际效率。

解决方案:

​ 在本文中,我们将介绍 SAID,这是一个利用 LLM 来明确学习基于文本的语义对齐项目 ID 嵌入的框架。对于每个条目,SAID 都会使用一个投影模块将条目 ID 转换为嵌入向量,然后将其输入 LLM,以获得该条目所附带的确切描述性文本标记。项目嵌入会强制保留文本描述的细粒度语义信息。此外,学习到的嵌入可以与轻量级的下游顺序模型集成,以获得实用的推荐。

Introduction

​ SRS 中对 LLM 的利用可大致分为两种模式:LLM 增强方法和以 LLM 为中心的方法。

​ 在 LLM 增强范式中,从 LLM 中提取项目文本描述的嵌入,并将其视为项目的特征。这些特征随后会与其他推荐模型整合,如 GRU 或 Transformer。

​ 以 LLM 为中心的方法将项目转换为文本表述,并将其串联成一个长文本序列,然后输入 LLM。之后,LLM 可以直接生成项目描述作为预测,也可以提取序列特征来发现相似项目。

pAVt5lt.png

​ 尽管 LLMs 在顺序推荐领域大有可为,但目前将 LLMs 与 SRS 相结合的研究却表现出一定的局限性。首先,对于 LLM 增强方法而言,通过 LLM 获得的文本嵌入通常是粗粒度的,这对捕捉项目的细微词级属性以表示用户偏好具有挑战性。换句话说,从 LLM 中提取的文本嵌入无法保证保留细粒度的项目文本信息。

​ 其次,以 LLM 为中心的方法在处理冗长的标记序列时会遇到困难,LLM 众所周知的计算复杂性也会造成效率瓶颈。由于 LLM 的推理成本很高,现有的以 LLM 为中心的方法很难达到效率标准。

​ 鉴于上述局限性,本文旨在高效利用 LLM 在 SRS 中的能力。SAID 的主要思想是学习项目嵌入,这些项目嵌入与 LLM 嵌入空间内的项目文本描述准确一致,并能有效地与现成的轻量级序列模型一起使用。为此,SAID 采用了两阶段训练方案。需要注意的是,在推荐场景中,一个项目通常由一个数字 ID 表示,并伴有若干文字描述,如品牌、类别等。

​ 在第一阶段,受面向 LLM 的对齐学习的启发,SAID 利用投影仪模块将项目 ID 转换为嵌入,并将其输入到 LLM 中,从而从 LLM 中明确获得项目的文本标记序列。通过这种方式,SAID 明确地将项目文本描述的细粒度语义保留到嵌入中,即语义对齐嵌入。只有投影器在进行训练,而 LLM 保持固定,梯度通过它传播。

​ 在第二阶段,GRU 或 Transformer 等下游序列模型将利用学习到的条目嵌入来提取整个序列的表示,以便进行推荐。在这一阶段,序列模型将从头开始训练,并对第一阶段学到的嵌入进行微调。训练完成后,下游序列模型和微调后的项目嵌入将用于实际推理。

​ 由于 LLM 不参与第二阶段,而且下游序列模型可以是轻量级的,因此 SAID 实现了卓越的推理效率。此外,得益于基于 LLM 的对齐学习,与以往模型中使用的随机初始化嵌入相比,学习到的项目嵌入大大提高了 SRS 的性能。

​ 本文的主要贡献如下:

  • 我们提出了一种基于 LLM 学习语义项目嵌入的顺序推荐框架。与随机初始化项目嵌入或直接从 LLMs 中提取表示不同,所提出的框架在学习到的嵌入中保留了细粒度的项目文本信息,从而提高了 SRS 的性能。
  • 我们提出了一种对齐学习方案,利用投影仪模块在 LLM 的嵌入空间内学习项目嵌入。固定的 LLM 与轻量级下游序列模型一起,简化了训练和推理过程,增强了其在工业场景中的实用性。

Method

SAID 框架

​ SAID的示意图如下:

pAVNtjP.png

​ SAID 采用两个阶段的训练过程,即(1)语义一致的嵌入学习和(2)与模型无关的顺序推荐训练。在第一阶段,SAID 利用投影仪模块和现成的 LLM 学习生成每个项目的嵌入。每个属性的学习嵌入大小相当于特定 LLM 的单个标记嵌入大小。在第二阶段,利用第一阶段获得的嵌入作为项目的初始特征,然后将其输入下游模型(如 RNN 或 Transformer)以进行顺序推荐。值得注意的是,SAID 与推荐过程中使用的下游模型的具体选择无关,因此赋予了该框架极大的适应性和灵活性。在随后的章节中,我们将分别对上述两个阶段进行详细阐述。

语义对齐的嵌入学习

​ 让 𝑓𝜃 表示参数集 𝜃 的投影模块,那么项目 𝑖 的嵌入 𝑥𝑖 可以表示如下:

\(x_i=f_\theta(D_i[id])\)

​ 如上所述,在 SAID 中训练投影器的目的是在投影表示𝑥𝑖 中保留文本信息𝜏𝑖,从而在 LLM 的嵌入空间中产生语义对齐的嵌入。具体来说,如图 2 的阶段 1 所示,我们将投影学习表述为 LLM 的条件文本生成任务,其目标是从 LLM 中获取文本序列𝜏𝑖,并将投影嵌入𝑥𝑖 作为其输入。

​ 投影器的优化目标为:

\(\arg\max_\theta\log\mathcal{P}_\phi(\tau|f_\theta(v_0))\)

​ 我们采用回归的方法生成文本序列𝜏,并据此将$$\arg\max_\theta\log\mathcal{P}\phi(\tau|f\theta(v_0))$$定义为:

\(\mathcal{L}_{\mathrm{proj}}(P_{\phi},f_{\theta}(v_{0}),\tau)\triangleq\log\mathbb{P}_{\phi}(\tau|f_{\theta}(v_{0}))=\sum_{l=1}^{|\tau|}\log\mathbb{P}_{\phi}(\tau^{l}|f_{\theta}(v_{0}),\tau^{0:l-1})\)

模型无关的序列推荐训练

​ 在第一阶段完成投影训练后,我们可以得到每个项目的语义对齐嵌入𝑥𝑖。如图 2 的第二阶段所示,这些来自投影仪的嵌入可以与下游的顺序模型无缝集成,用于推荐。SAID 的这一特性使其与所采用的特定下游推荐模型无关。

​ 根据下游顺序模型的不同,嵌入𝑥𝑖 还可以加上位置嵌入𝑝𝑖,以明确标识项目𝑖 在序列中的位置。这种做法在使用类似 Transformer 的模型进行序列推荐时尤为重要。RNN 类模型不需要位置嵌入,因为它们本身就在模型架构中包含了序列信息。我们将输入到序列模型中的项目序列的整体表示表示为 𝑋𝑠,即

\(X_s=[x_1,\cdots,x_{n-1},x_n]\)

​ 设𝑔Φ表示一个由Φ参数化的下游模型。从𝑔Φ得到的序列表示记为h𝑠,表示转换后的序列。

\(\mathbf{h}_s=g_\Phi(X_s)\)

​ 值得注意的是,为了进一步提高训练和推理效率,我们将𝑥𝑖 用作单个项目的表示,而不是通过序列模型 𝑔Φ来进行传递。我们希望 h𝑠 与地面实况项表示 𝑥𝑖 之间的相关性能够自动学习。

​ 获得序列表示 h𝑠 后,我们利用 h𝑠 与 所有项目的表示I之间的余弦相似度来预测下一个项目:

\(r_{s,i}=\frac{\mathbf{h}_s^Tx_i}{\|\mathbf{h}_s\|\cdot\|x_i\|}\)

​ 为了预测下一个项目,我们选择与序列相似度最高的一个作为预测

\(\hat{i}_{s}=\arg\max_{i\in I}(r_{s,i})\)

​ 在这一阶段的训练过程中,我们采用了项-项对比学习目标,其中负项来自整个项集 I。需要注意的是,只有顺序模型 𝑔Φ 和投影器 𝑓𝜃 将被训练,而 LLM P𝜙 不参与这一阶段。项目-项目对比学习所采用的优化目标如下:

\(\mathcal{L}_{\mathrm{rec}}=-\log\frac{\exp\{\sin(\mathbf{h}_s,x_i^+)\}}{\exp\{\sin(\mathbf{h}_s,x_i^+)\}+\sum_{j\in\mathcal{I}}\exp\{\sin(\mathbf{h}_s,x_j)\}}\)

总结

​ 这篇文字的主要想法就是进行一个两阶段的训练,第一个阶段就是训练一个投影器,将ID转化为文字描述的嵌入,然后将嵌入输入到LLM中生成对应的文本序列。第二阶段就是用生成的物品表示输入到序列模型中用于最后的推荐。

posted @ 2024-09-03 17:31  ANewPro  阅读(101)  评论(0编辑  收藏  举报