首页 > 其他分享 >CLLM4Rec论文阅读笔记

CLLM4Rec论文阅读笔记

时间:2024-06-01 20:55:04浏览次数:12  
标签:嵌入 mathbf 项目 CLLM4Rec 论文 用户 笔记 LLM 标记

Collaborative Large Language Model for Recommender Systems论文阅读笔记

Abstract

提出存在的问题:

​ 自然语言和推荐任务之间的语义差距仍然没有得到很好的解决,导致了多个问题,如用户/项目描述符的虚假相关、对用户/项目数据进行的语言建模无效、通过自动回归的低效推荐。

解决方案:

​ 在本文中,我们提出了CLLM4Rec,这是第一个紧密集成了LLM范式和ID范式的生成式RS,旨在同时解决上述挑战。我们首先使用用户/项目ID令牌扩展预先训练的llm的词汇表,以忠实地建模用户/项目协作和内容语义。因此,我们提出了一种新颖的 "软+硬 "提示策略,通过在 RS 特定语料库上进行语言建模,有效地学习用户/项目协作/内容标记嵌入,其中每篇文档都分为由异构软(用户/项目)标记和硬(词汇)标记组成的提示和由同构项目标记或词汇标记组成的正文,以促进稳定有效的语言建模。

​ 此外,我们还引入了一种新颖的相互正则化策略,以鼓励 CLLM4Rec 从嘈杂的用户/项目内容中捕捉与推荐相关的信息。最后,我们为 CLLM4Rec 提出了一种新颖的以推荐为导向的微调策略,即在预训练的 CLLM4Rec 主干网中添加一个具有多叉似然的项目预测头,以根据从被遮蔽的用户与项目交互历史中建立的软+硬提示来预测留出的项目,从而在不产生幻觉的情况下高效地生成多个项目的推荐。

Introduction

​ 已经进行了一些初步的研究来探索LLMs对RSs的适应性。通常,这些方法可以概括为两个步骤:

​ (i)首先,将具有连续ID嵌入的用户/项目,推理用户兴趣和生成建议所需的相关信息,例如交互项、用户/项目特性和候选项,转换为离散的基于自然语言的提示。

​ (ii)然后,使用Prompt查询LLM,从LLM的文本输出中检索到与推荐相关的信息,生成推荐(直观的示例见图1)

pk8kwfe.png

​ 上述过程可以以零镜头方式执行,其中推荐决策直接从预先训练的LLM获得(例如,我们将关于用户和一个项目的所有相关信息输入到ChatGPT的聊天框中,并询问用户是否将与项目交互),或者,如果可以对预先训练的LLM对交互和特性数据进行微调,以便可以合并rs特定的知识以获得更准确的推荐。

​ 然而,基于描述的方法对用户项语义相似性引入了很强的归纳偏差,这可能不能忠实地捕获真实的语义。引入真正的用户/项目ID令牌,不幸的是,通常被认为是不可行的,因为直接进行语言建模(LM)序列与异构的令牌可能是无效的和不稳定的,特别是当大多数LLMs的词汇表可以稀释由大量随机初始化的用户/项目嵌入。

​ 即使可以通过 LLM 有效地学习用户/项目 ID 标记嵌入,但仍存在更多的挑战,阻碍了使用 LLM 进行有效和高效的推荐。首先,由于交互顺序对于直接推荐通常并不重要,而人类语言自然有顺序,因此在将用户历史交互转化为文本句子时,可能会为放置在不同位置的项目引入虚假的时间相关性。此外,对于内容建模而言,由于预训练的 LLM 并不以推荐为导向,因此它们很容易捕捉到与推荐目的无关的用户/项目文本特征中的噪声。

​ 此外,由于llm以自回归的方式生成下一个标记,与基于id的方法相比,通过基于llm的RSs进行多个推荐可能会低效。最后,对于基于伪id和基于描述的索引方法,通常需要在提示中显式地提供候选项,以避免产生幻觉。这些问题阻碍了基于llm的RSs的实际应用。因为在这种情况下,候选项库规模很大,而低延迟非常重要。

​ 为了解决上述挑战,我们提出了CLLM4Rec,这是第一个将RS的ID范式与基于llm的范式紧密结合的生成式RS。我们首先使用用户/项目ID令牌扩展预训练的llm的词汇表,以忠实地建模用户/项目协作/内容语义,其中令牌嵌入分两个阶段学习。

​ 预训练阶段包括相互正则化的协作式或内容式 LLM,这些 LLM 通过对根据用户/项目交互和文本特征建立的 RS 特定语料库进行语言建模来学习用户/项目标记嵌入。具体来说,为了对具有异构标记的文档进行有效的语言建模,提出了一种新颖的 "软+硬 "提示策略,即每篇文档被分解为由软标记(用户/项目)和硬标记(词汇)组成的提示和由同构项目标记(用于协作建模)或词汇标记(用于内容建模)组成的主文本。通过这种策略,两个 LLM 的预测头可以只关注协作信息和内容信息,从而大大提高语言建模的稳定性和有效性。此外,还提出了一种针对协同LLM的随机项目重排序策略,即忽略项目标记的顺序,而不对词汇标记产生负面影响。最后,我们为 CLLM4Rec 提出了一种新颖的以推荐为导向的微调策略,即在预训练的协作 LLM 骨干上添加一个具有多项式似然的项目预测头,以根据从屏蔽的用户交互历史中建立的软+硬提示来预测留出的项目,从而在不产生幻觉的情况下高效地生成多个项目的推荐。

​ 本文的主要贡献如下:

  • 我们提出了CLLM4Rec,这是第一个紧密结合ID范式和LLM范式的生成RS,其中引入了与LLM vocab空间对齐的用户/项目ID令牌嵌入,以很好地捕获用户的内在兴趣和项目属性。
  • 提出了一种新的软+硬提示策略,有效地对相互规范的异构令牌的CLLM4Rec进行预训练,其中用户/项目令牌嵌入可以有效地学习协作和内容信息。
  • 提出了一种面向推荐的微调策略,该策略基于通过多项可能性项目预测头从掩码交互建立的软+硬提示预测保留项目,可以有效地生成多个项目的推荐而不产生幻觉。

Method

​ 我们的目标是设计一种新的生成式 RS,通过引入用户/物品 ID 标记(和标记嵌入),将 LLM 与推荐任务紧密结合起来,从而准确地模拟用户/物品语义(如用户对物品的兴趣),实现高效的推荐,同时充分利用预训练 LLM 的编码知识和推理能力。

用户/项目令牌的扩展

vocab的扩展

​ 这里就是通过添加用户/项目ID令牌来描述内在的用户/项目语义来扩展LLM的词汇表

Token embedding

​ 这部分就是把上个部分引入的用户项目令牌(token)转换为嵌入,并且对于新引入的令牌,引入两种类型的令牌嵌入。具体方法如下:

​ 首先采样用户/物品协作令牌的嵌入

​ \(\mathbf{z}_i^{l,u},\mathbf{z}_j^{l,v}\sim\mathcal{N}\left(\mathbf{0},\lambda_l^{-1}\cdot\mathbf{I}_K\right),\)

​ 为了将内容语义与面向推荐的内容建模的协作语义对齐,我们从以下条件先验对用户/项目内容标记嵌入进行采样:

​ \(\mathbf{z}_i^{c,u}\sim\mathcal{N}\left(\mathbf{z}_i^{l,u},\lambda_c^{-1}\cdot\mathbf{I}_K\right),\mathbf{z}_j^{c,v}\sim\mathcal{N}\left(\mathbf{z}_j^{l,v},\lambda_c^{-1}\cdot\mathbf{I}_K\right)\)

​ 最后我们获取了几个令牌嵌入的矩阵,分别是vocab的,协作的和基于内容的:

​ \(\mathbb{Z}^t,\mathbb{Z}^{l,\{u,v\}},\mathrm{~and~}\mathbb{Z}^{c,\{u,v\}}\)

CLLM4Rec的基础模型

​ 也就是将一个token序列映射为一个隐空间。这里只有用户/项目标记嵌入是可训练的,而vocab嵌入Z

标签:嵌入,mathbf,项目,CLLM4Rec,论文,用户,笔记,LLM,标记
From: https://www.cnblogs.com/anewpro-techshare/p/18226389

相关文章

  • 今日指数day01学习笔记
    1、项目概述    该项目是基于股票实时交易的数据分析产品,为用户和机构提供个性化的股票数据分析和展示服务    核心功能:数据分析和展示为主,功能涵盖了A股大盘实时指数展示、涨幅榜、个股涨跌、个股秒级行情、实时日K线行情等2、股票相关名词    股......
  • Redis笔记——底层数据结构之压缩列表
    是什么?        本质上就是紧凑的列表。        压缩列表在Redis中有两种编码方式,分别是ZIPLIST与LISTTPACK。LISTPACK从Redis5.0引入,直至Redis7.0完全替换了ZIPLIST,可以看作是ZIPLIST的进阶版。有什么作用?        在List文章中,提......
  • STM32学习笔记(二)流水灯
    STM32学习笔记(二)流水灯一、原理部分1.1LED原理1.2GPIO原理二、工程部分三、加入宏定义这次我们来实现LED流水灯成为点灯大师。使用的核心板的MCU型号为STM32F103ZET6,使用标准库函数来实现。一、原理部分1.1LED原理其中PWR是系统电源指示灯,为蓝色。LED0......
  • 《C++primer》读书笔记---第九章:顺序容器
    9.1顺序容器概述下表列出了标准库的顺序容器,所有容器都提供了快速顺序访问元素的能力:多种容器中,通常使用vector是最好的选择,除非你有很好的理由选则其他容器。以下是一些选择容器的基本原则:除非你有很好的理由选择其他容器,否则选择vector如果你的程序有很多小的元素,且空......
  • 【Python爬虫--scrapy+selenium框架】超详细的Python爬虫scrapy+selenium框架学习笔记
    六,selenium想要下载PDF或者md格式的笔记请点击以下链接获取python爬虫学习笔记点击我获取Scrapy+selenium详细学习笔记点我获取Python超详细的学习笔记共21万字点我获取1,下载配置##安装:pipinstallselenium##它与其他库不同的地方是他要启动你电脑上的浏览器......
  • 【Python--openCV图像处理】Python学习-OpenCV图像处理基础超详细的学习笔记(黑马程序
    一,openCV基础说明:笔记是跟着B站黑马程序员的openCV课程时做的课程资料可以在黑马程序员评论区获取1,图像基本操作1-1图像基础操作1-1-1安装相关库pipinstallopencv-pythonpipinstallopencv-contrib-python##尽量保持两个库安装的版本,比如我都是4.9.0.80ope......
  • [论文速览] Design and Development of a Framework For Stroke-Based Handwritten Gu
    1.Pretitle:DesignandDevelopmentofaFrameworkForStroke-BasedHandwrittenGujaratiFontGenerationsource:arXiv2024paper:https://arxiv.org/abs/2404.03277code:None关键词:fontgeneration,handwritten,gujarati,stroke阅读理由:刷新鲜论文ing2.Mo......
  • CSS(4)(学习笔记)
    一、定位1.1为什么需要定位有些效果,标准流或浮动都无法快速实现,此时需要定位来实现。(浮动不会压住文字和图片,浮动指挥影响后面的盒子不会影响前面的盒子)比如:所以:1.浮动可以让多个块级盒子一行没有缝隙排列显示,经常用于横向排列盒子。2.定位则是可以让盒子自由的在某个盒......
  • 吴恩达 机械学习笔记1
    机械学习的两个主要模型:笔记右下角有页码1.监督学习......
  • 期末复习笔记
    常规1.基本输入输出:一般用cin型输入输出即可,主要包括一下几种类型:inta;doublea;floata;//一般需要用浮点数的变量直接用double就行cin>>a;cout<<a;:(特殊的题目要求我们保留几位小数)printf("%.3lf",a);//注:里面的.3是根据需要保留几位小数而写的,这里是保留3位小数......