Text-like Encoding of Collaborative Information in Large Language Models for Recommendation论文阅读笔记
Abstract
现存的问题:
在调整用于推荐的大型语言模型(LLMRec)时,整合协作信息至关重要。现有的方法通过从头开始学习 LLM 潜在空间中的协作嵌入或通过外部模型的映射来实现这一目标。但是,这些方法无法以类似文本的格式表示信息,而这种格式可能无法与 LLM 达到最佳匹配。
提出问题:
为了弥补这一缺陷,我们引入了 BinLLM,这是一种新颖的 LLMRec 方法,可通过类文本编码无缝整合协作信息。BinLLM 可以将外部模型的协作嵌入转换成二进制序列--一种 LLM 可以理解并直接操作的特定文本格式,从而方便 LLM 直接使用类文本格式的协作信息。此外,BinLLM 还提供了使用点十进制符号压缩二进制序列的选项,以避免长度过长。
Introduction
由于大语言模型(LLMs)的强大功能,人们越来越关注将其应用于推荐系统(LLMRec),在过去的一年中,这一研究取得了重大进展。在推荐中,协作信息(描述了用户与项目之间互动的共现模式)已成为用户兴趣建模的重要组成部分,尤其是对活跃用户和项目而言。然而,这些信息的存在方式与文本数据不同,因此在像文本信息那样直接被 LLM 利用时面临着挑战。要提高推荐质量,将协作信息无缝整合到 LLM 中无疑至关重要。
迄今为止,出现了两种整合策略。第一种策略类似于潜在因素模型,在 LLMs 中加入额外的标记和相应的嵌入来表示用户和项目,随后拟合交互数据以隐含地捕捉嵌入中的协作信息。然而,由于信息固有的低等级性质,这种方法的学习效率较低,导致 LLMs 中的标记化冗余。为了应对这些挑战,另一种方法是利用外部潜在因素模型来捕捉信息,然后将其映射到 LLM 标记嵌入空间,从而避免了从头开始学习的需要。这种方法虽然有效,但却带来了训练映射模型的额外开销。
无论是直接在 LLM 标记嵌入空间中从头开始学习协作信息,还是从外部模型中映射协作信息,所产生的表征都与 LLM 的原始文本级编码存在很大差异。这在一定程度上阻碍了 LLM 能力的充分发挥,因为 LLM 最初是根据文本数据训练的,擅长处理文本编码信息。例如,引入新的标记会改变 LLM 的生成空间,可能会影响其原有功能,更不用说发挥其能力了。因此,在 LLMs 中探索类似文本的协作信息编码大有可为。然而,由于文本和协作信息模式之间的固有差异,这也带来了挑战。
在本研究中,我们深入探讨了在 LLM 中编码协作信息以进行推荐这一核心主题,这是 LLMRec 尚未探索的一个前景广阔的领域。关键在于将协作信息转化为类似文本格式的序列。我们认为,这种类似文本的序列不一定要能被人类理解;相反,它应该能被 LLMs 解释,以便有效利用,例如通过序列比较来促进推理任务,如辨别用户和项目的相似性。因此,这种文本序列并不一定要遵循传统的自然语言模式。
为此,我们引入了 BinLLM,这是一种创新的 LLMRec 方法,它使用类似文本的编码策略将协作信息整合到 LLM 中。我们将从外部模型获得的协作嵌入转化为二进制序列,将其视为 LLM 可直接使用的文本特征。这种设计主要出于两个考虑: 1) 在不影响性能的情况下对协作嵌入进行二进制化的可行性;2) LLMs 可以自然地执行位操作或在指令调整后执行位操作,从而能够比较二进制化序列之间的相似性。
再进一步,我们探索用点-十进制符号来表示二进制序列,从而获得更短的表示方法,类似于将二进制序列转换为 IPv4 地址。通过使用包含此类编码协作信息的推荐指令数据对 LLM 进行微调,我们可以在不修改 LLM 的情况下利用文本语义和协作数据进行推荐。
本文的主要贡献如下:
- 我们强调在 LLMRec 中对协作信息进行文本式编码的重要性,以增强与 LLM 的一致性。
- 我们介绍了 BinLLM,这是一种新颖的方法,通过将协作嵌入转换为二进制序列,以文本形式为 LLM 高效编码协作信息
Method
在本节中,我们将介绍我们的 BinLLM 方法,首先介绍模型结构,然后介绍微调方法。
模型架构
图 1 描述了 BinLLM 的模型架构,包括两个主要部分:提示生成和 LLM 预测。与之前的方法类似,我们将推荐数据转换成提示,然后直接输入 LLM 进行预测。不过,BinLLM 的主要区别在于,它通过将协作嵌入转换为二进制序列,以类似文本的格式表示协作信息。接下来,我们将深入探讨这两个组件的具体细节。
提示构建
如图 1 所示,我们使用以空字段为特征的模板来构建提示,其中包括文本字段(如“
协作信息的类文本编码
为了更好地与 LLM 集成,我们的目标是将协作信息编码成类似文本的格式。为此,我们将协作信息转换为二进制序列,使 LLM 能够执行位操作进行推理。编码模型包括两个部分: 1) 协作模型,这是一个传统的潜在因子模块,能够将协作信息编码为数字潜在向量(即协作嵌入)。2) 二进制化和压缩模块,用于将协作嵌入转化为二进制序列或进一步压缩格式。
协作模型
给定一个用户 u 和一个物品 i,协作模型会为它们生成相应的嵌入,分别记为 eu 和 ei。形式上:
\(\boldsymbol{e}_u=f_c(u;\theta)\\\boldsymbol{e}_i=f_c(i;\theta),\)
其中\(f_c\)代表协作模型
二值化和压缩
获得协作嵌入后,该组件用于将其转换为二进制序列,并可选择压缩序列。
二值化
为了对协作嵌入进行二值化处理,首先,我们使用全连接层将协作嵌入变换到一个合适的空间,然后应用符号函数得到二值化结果。形式上,对于用户 u 和项目 i 的协作嵌入点 eu 和 ei,它们被转换成二进制序列如下:
\(\boldsymbol{h}_u=sign(\sigma(W\boldsymbol{e}_u+b))\\\boldsymbol{h}_i=sign(\sigma(W\boldsymbol{e}_i+b)),\)
其中,hu和 hi 分别表示所获得的用户和项目协作信息的二进制表示。
通过这种方法,我们可以将数字协作嵌入转换为二进制序列(如 “010110....”)。这些序列可以直接输入 LLM,并用于计算逻辑 “AND ”等操作,从而帮助用户进行偏好推理。
压缩
二进制序列的局限性在于其相对较长的长度,这对不擅长处理长序列的 LLM 来说是一个挑战。此外,长序列还会限制 LLMRec 的推理效率。因此,我们考虑对二进制序列进行压缩,同时保持它们可被 LLM 利用。鉴于 IPv4最初是由二进制序列编码的,而且网络中包含足够的 IPv4 知识,因此在网络数据上训练的 LLM 有可能理解 IPv4 使用的点十进制符号。因此,我们考虑用点-十进制符号压缩二进制嵌入。我们将每八位二进制数转换成十进制数,范围从 0 到 255,并使用句号(点)作为分隔符。
LLM预测
一旦提示模板中的空字段被填满,生成的提示信息就会被送入 LLM 进行预测。与之前的研究类似,鉴于 LLMs 中缺乏特定的推荐预训练,我们引入了一个额外的 LoRA 模块来进行推荐预测。形式上,对于生成的提示 p,预测可表述为:
\(\hat{y}=LLM_{\hat{\Phi}+\Phi^{\prime}}(p),\)
其中,\(\hat{\boldsymbol{\Phi}}\)表示预训练的 LLM 参数,Φ ′ 表示 LoRA 模型参数,y 表示预测结果,根据任务的不同,可以是预测的下一个项目,也可以是预测的喜欢某个候选项目的可能性。
训练
在我们的模型架构中,有两个模块需要训练:类文本编码模块和 LoRA 模块。类文本编码模块的调整重点是学习如何生成二进制序列以获取协作信息,而与 LLM 无关。LoRA 的调整旨在指导 LLM 利用协作信息提出建议。现在我们分别介绍这两种调整范式。
类文本编码的预训练
为了训练类文本编码模块,我们直接利用二值化表示来拟合训练数据。形式上,让 D 表示训练数据,(u, i, t) ∈ D 表示用户 u 与标签为 t 的项目 i 之间的交互。我们通过最小化以下优化问题来训练该模块:
\(minimize\sum_{\theta,W,b}\ell(t,\boldsymbol{h}_u^\top\boldsymbol{h}_i),\)
hu和hi表示前面得到的二进制表示形式,
值得注意的是,符号函数缺乏平滑性,其梯度也没有定义为零,这对反向传播提出了明显的挑战。为了以端到端的方式训练模型,我们使用直通估计器(STE)对梯度进行近似。也就是说,我们直接使用输出的梯度作为符号函数输入的梯度。
LoRA微调
为了调优LoRA模块,我们考虑了两种调优方法:直观的调优和两步调优。
直观调优
这种方法可直接从头开始调整 LoRA 模块,并使用包含协作信息的提示。
两步调优
在直观调整方面,潜在的挑战出现在评级预测任务等场景中,在这些场景中,二进制表征可以作为高效特征,学习复杂度相对较低 。从头开始纳入协作信息可能会导致模型过度依赖这些特征,从而可能忽略其他属性,如学习捷径特征。为了解决这个问题,我们提出了一个额外的两步调整策略。首先,我们使用排除协作信息的提示来训练模型。随后,我们使用包含协作信息的完整提示对模型进行微调,从而进一步完善模型。
总结
这篇文章主要要解决的问题就是推荐系统产生的协作表示与LLM的一些表示有较大的差距,要做的事情就是让这两个表示对齐,增强两个表示的一致性。
具体来说就是提出了一种编码方式,对协作表示进行进行二进制编码,然后再进行压缩至类ipv4的序列
得到协作表示之后,将其输入到prompt中,进行推荐,最后又介绍了一下微调的策略。