基于 LLM 主干网络文本编码器提取的语义表示,双重动态索引生成器将其中的语义信息压缩为离散索引。由于双重动态索引的离散性,下游的 LLM 主干推荐器能够直接生成推荐结果的索引,从而充分激发 LLM 主干的自然语言生成能力。
通常,每个用户/物品都与一个唯一标识符(如
、
)相关联。一种朴素的策略是将所有唯一标识符直接添加到 LLM 词表中,但这种方法会导致词表大小随用户和物品数量线性增长。
借鉴序列量化(sequential quantization)技术,我们在设计双重动态索引生成器式采用了分层架构,通过 M 个索引标记(每个标记有 N 种可能取值)的组合来表示每个用户、物品。
例如,如图 2 中双重动态索引生成阶段所示,物品
可表示为
=
,其中 M=4,N=8。在该分层索引机制下,表达空间随索引长度 M 指数级增长。
一个长度为 M 基数为 N 的分层索引理论上可以表示
个不同的对象,而新引入的索引标记总数仅为 N×M。以物品
为例,量化过程将以残差方式执行 M 次,其数学表达如下:
最终,物品
的语义索引可表示为:
.
3.1.3 生成式序列推荐
为了让 LLM 主干网络理解序列推荐任务,我们通过自然语言指令将双重动态索引与用户交互序列进行聚合。具体而言,交互序列中的原始用户索引
和物品索引
被替换为相应的双重动态索引。由此,交互记录被重组为一个由自然语言 Token 和双重动态索引 Token 组成的异构序列。在我们的实现中,一条异构自然语言指令的示例如下:
“You are an expert in sequential recommendation. Based on the historical interaction sequence:
, could you please predict the most suitable item for user
?”
记异构自然语言指令为
,LLM 主干网络首先将自然语言指令
转换为隐藏表示
。然后,在 LLM 主干网络的基础上附加一个扩展的语言模型头,用于将隐藏状态
投影到索引标记词表,表示如下,
其中,
是推荐结果的索引表示。若有需要,可以通过逆查找操作(inverse look-up)将索引转换回原始物品 ID。基于异构指令提示的序列推荐任务可以自然地转化为语言生成任务,其优化目标定义为负对数似然(Negative Log-Likelihood, NLL),具体如下: