Advertisement

论文阅读《Prompt Distillation for Efficient LLM-based Recommendation》

阅读量:

Prompt Distillation for Efficient LLM-based Recommendation

本文发表于第23届CIKM会议中,在分析大模型在推荐系统中的应用时发现了基于离散提示的两个挑战,并提出了相应的解决方法,并通过实验验证了该方法的有效性。

  • 问题1:用户的物品ID嵌入在推荐系统中不仅反映了用户对物品的偏好关系,同时也捕捉到了用户与物品之间的相似度信息;而离散提示模板中的词嵌入则主要捕获的是词之间的语义关联性。在模型微调的过程中,通常需要通过大量的特定领域微调任务来缩小这一潜在的差距;为此提出了提示蒸馏方法。
  • 问题2:针对不同下游任务(如TopN推荐、序列化推荐以及可解释性推荐)的学习效率问题,在现有研究中通常会采取以下措施:首先统一不同任务输入输出信息的标准;常用的方法是将不同长度的任务统一填充至相同长度;然而如果将这些任务的训练样本混合在一起直接进行统一训练,则可能导致效率大幅下降;为此提出了任务交替学习策略

方法论

三种典型推荐介绍

\mathcal U:用户集合,\mathcal I:物品集合,u,i:具体用户和物品

  1. 序列化推荐模型:每个用户的互动历史都是独特的序列特征,在给定用户的互动序列数据基础上,通过学习算法推断其下一阶段可能感兴趣的互动对象。
  2. 基于TopN的方法:系统会对选定的目标用户提供一个由高概率匹配的商品池,并从中提取出N个最具匹配度的商品集合进行精准推送。
  3. 可解释性推荐系统:针对特定的用户-商品配对(u,i),系统需要提供一个清晰的理由说明来论证为何选择该商品作为最优匹配建议(例如:基于价格优势)。

离散提示

在推荐系统领域中,用户标识符与物品标识符是区分不同个体的关键特征。传统的研究工作多以与id相关的文本片段(如用户的描述性语言或物品标题)作为补充材料,并将其整合到预先设计好的模板框架内。例如,在生成任务中,请为user_1234提供关于item_5678的解释。这类输入数据被称为离散提示序列,在模型训练时会被系统地处理。通常由多个独立的token单元构成。

提示蒸馏

提示蒸馏技术,在既不放弃大模型的性能的前提下,实现提示长度上的缩减。
精炼后的简洁提示符既可以采用自由文本形式出现,也可以以向量形式呈现。

提示蒸馏技术,在既不放弃大模型的性能的前提下,实现提示长度上的缩减。
精炼后的简洁提示符既可以采用自由文本形式出现,也可以以向量形式呈现。

作者认为离散提示可能不足以有效引导大模型。当两个不同任务的输入数据格式非常相似时,大模型可能无法识别出具体是哪个任务。例如,在序列推荐与TopN推荐中,每个输入都包含一个用户以及一组物品。另一个问题是当提示模板过长时可能会削弱关键信息的重要性,这也导致需要更多时间来完成训练与微调工作.为此,研究人员提出了POD提示蒸馏方法,将其提炼为多个连续向量表示形式.一个具体的蒸馏实例如下。

在这里插入图片描述

整体连续向量提示的提炼过程如下图所示:

在这里插入图片描述

具体的推理过程如下,省略了提示模板和单词分词。

在这里插入图片描述

流程的大致步骤如下:
输入序列X = [x₁,...,x_|X|]和输出序列Y = [y₁,...,y_|Y|]均为标量值。经过embedding层处理后得到一组token表示向量[\mathbf{x}_1,...,\mathbf{x}_{|X|}](矢量),随后将其附加在K个连续的提示向量[\mathbf{p}_1,...,\mathbf{p}_{k}]之后形成一个扩展后的提示序列[\mathbf{p}_1,...,\mathbf{p}_{k},\mathbf{x}_1,...,\mathbf{x}_{|X|}]。此组合由此形成一个完整的词表示[\mathbf{w}_1,...,\mathbf{w}_{|X|+k}]并标记为\mathbf{S} = [\mathbf{s}_1,...,\mathbf{s}_{|S|}]。随后通过LLM的双向编码器获得一个隐式向量表示\mathbf{H} = [\mathbf{h}_1,...,\mathbf{h}_{|S|}]。在此基础上LLM解码器开始自回归生成过程:具体而言,在每一轮时间步t(共进行|Y|次),解码器在词汇表上输出概率分布p(y_t|Y_{并选择最合适的单词完成生成任务。

在这里插入图片描述

整体流程与自然语言生成问题具有相似性。基于此,我们选用负对数似然函数作为损失函数,并将其表示为:

其中\mathcal{D}是所有输入输出对(X,Y)组成的训练集。

任务交替训练

考虑到各推荐任务的输入与输出长度存在差异

集束搜索生成

Beam search详情参考Beam search,个人理解就是如果将beam的大小设置为b,在结果生成的每个时间步长中,都从整个候选列表中选择b个具有最大似然估计的序列。对于b为2,具体例子如下:

在这里插入图片描述

实验

实验部分不过多介绍了,感觉和以往的差不多。值得一提有两点。

在消融实验中考察了"连续提示+离散提示"与单用连续提示在推荐性能及解释性能上的差异,在K值取不同数值时发现两者之间的差异影响较小;但值得注意的是,在移除离散提示的情况下显著提升了算法运行效率。
研究结果表明,在连续提示向量数量逐渐增大的情况下(其中K取值范围为[1, 3, 5, 10, 20, 50]),序列化推荐模型及其TopN推荐系统的性能表现出了明显的增长趋势;然而,在具体实现中发现,默认情况下仅当K取值为1或3时才可获得最佳的解释性推荐效果。

全部评论 (0)

还没有任何评论哟~