论文:https://llmrec.files.wordpress.com/2023/10/llmrec-2.pdf
代码:github.com/HKUDS/LLMRec
一、简要介绍
1.1 动机
现代推荐系统(比如:推特, Netflix, 微博)很大程度依赖于平台的内容。即,比起只使用用户-物品交互的通用协同信息,一个有效的推荐系统还依赖于文本,图片,甚至是音频的内容。这些辅助的内容能够缓解稀疏交互导致的用户-物品关系建模不足的问题。但是,辅助信息的引入不可避免地还带来了其他问题,比如:噪声,辅助信息的可得性与完整性, 辅助信息的质量问题。这些问题的存在会损伤用户偏好的建模,恶化推荐的结果。
大语言模型(LLMs)惊人的自然语言理解能力和真实世界的知识为解决上述问题提供了可能性。因此,一个新的推荐框架LLMRec被提出以利用大语言模型有效地协助推荐系统。具体地,LLMRec提出使用三种基于大语言模型的数据增强策略来强化使用辅助信息的推荐系统,这三种数据增强策略是: i) 隐式反馈的增强 ii) 物品属性的增强 iii) 用户画像的增强。
这三种数据增强的方式不仅充份地利用了数据集的文本信息和大语言模型的知识储备,还借助了大语言模型的自然语言理解能力从现实语义(并非数字ID)的角度建模用户偏好。除此之外,LLMRec为了保证被增强数据的可靠性,还设计了增强数据的去燥机制:针对i)的噪声边修剪和针对ii)和iii)的基于掩码自编码器的特征增强策略。
1.2 推荐系统的数据增强范式
原始的拥有side information的推荐系统的输入包括: i) 由side information编码而成 feature F ii) 隐式反馈:
LLMRec的数据增强同时增强了F和隐式反馈:
二、存在的挑战
挑战1—如何让LLM进行推荐?
首先,LLMs没有在推荐任务和推荐相关的数据集上训练过;其次,LLMs的’max_token_length’受限,这使得LLMs无法像正常的推荐系统一样进行all-item rank或者为包含许多items的数据集进行推荐任务。
为了解决这个问题,我们提出利用基础模型(比如:LightGCN)为每个user提供item candidates, 以解决LLMs的输入受限问题。同时,我们通过让LLMs从item candidates中选出liked item和disliked item来数据增强BPR训练数据,以让LLMs能够参与增强推荐系统。
挑战2—如何确保增强的数据的可靠性?
从外部引入的知识不可避免地存在着噪声,即,不能保证增强得到的数据是对最终任务有效的。为应对这个问题,我们专门针对上述提到的边的增强i)和节点feature的增强ii)iii)进行去燥。具体地,对于i)我们直接刨除了可能存在影响的部分,对于ii)iii)我们引入MAE使得模型不敏感于feature, 并拥有较强的鲁棒性。
三、方法框架与细节
对于模型框架的具体设计,我们主要针对解决以下问题:
- 如何让LLMs预测u-i交互边?
- 如何让LLMs生成有用的side information?
- 如何让增强的数据整合进推荐系统的框架?
- 如何让模型更鲁棒于被增强的数据?
3.1 LLM增强隐式反馈
LLMRec通过直接增强潜在的交互的方式应对推荐系统数据稀疏性的问题。做法是LLMRec将LLMs作为knowledge-aware采样器以增加pair-wise的BPR训练数据。这种方式充份利用了数据集中的文本信息和LLMs的优势,从自然语言的角度建模用户偏好,而不是仅仅只依赖于ID-based的交互。具体地,LLMRec首先为每个user构造prompt, 它是由每个user u的历史交互和candidates组成。这里,我们引入candidates,因为LLMs不能对所有item rank。而使用MMSSL, MICRO替代地先提供有限的有效的candidates可以作为解决方案。
用LLM进行隐式反馈的数据增强可以分为以下步骤:
- 对每个user u生成用以增强u-i边的prompt。
- 将生成的prompt输入LLM为每个user选出一个正样本和一个负样本作为伪BPR训练数据。
- 将生成的训练数据取一定数量与原始的训练数据进行合并。
- 将最终合并的推荐数据用推荐系统的训练。
除此之外,用LLM从语义的角度增强u-i交互能够一定程度地缓解增强隐式反馈中“false positive”和“false negative”的问题。具体来说,user历史交互过的item可能不是真的用户偏好,比如新闻推荐系统中被文本标题或者图片误导进而进行的,而未交互过的item虽然会被作为负样本,但是其实不一定代表用户不喜欢。而用LLMs利用真实已有的信息从自然语言的角度重新选出用户可能偏好或者不偏好的item能够一定程度地缓解上述问题。
3.2 LLM增强Side Information
在以往的使用side information的推荐系统中,辅助信息往往是以item attributes的形式存在的,他们可能存在着信息不全,低质量和难以获得等问题。并且,user profile往往因为隐私问题难以获得。LLMs拥有着丰富的knowledge base和令人印象深刻的reasoning capabilities, 因此十分适合用来增强side information。对于item, side information可以直接通过item原有的side information直接进行增强;对于user, side information则是可以通过与item的历史交互,通过总结交互过的item的特点进行增强,比如总结出用户喜欢的内容,使用的语言,所在的国家和可能的年龄。
对user和item的side information增强的过程可以总结如下:
- 为每个user/item生成用以进行数据增强的prompt。
- 将生成的prompt输入LLM为每个user/item生成额外辅助的side information。
- 将生成的side information输入有编码能力的LM(如:text-embedding-ada-002, Sentence-BERT)进行embedding。
- 将生成的embedding送入推荐系统encoder作为feature辅助user/item表征的学习。
3.3 模型训练与增强的数据的去燥
得到了增强的数据,我们将它们使用在模型的inference和训练中。但是,增强的数据并不一定都是有效的,噪声甚至可能损害推荐的结果。为此,LLMRec设计了noise pruning和MAE分别用于u-i交互和u/i feature的去燥。
隐式反馈去燥的具体过程是将负号之前的loss value进行生序排序,取前top-N。这样可以避免不可靠的梯度回传有较大影响,进而使优化更加稳定有效:
Feature去燥的具体过程是先用mask token掩码掉一定数量的feature, 然后使用回归loss重构这些被mask掉的feature。这里,mask token可以是可学习的向量,也可以用mean pooling。
四、原始的数据集与增强的数据集
4.1 原始数据集的文本属性
- 对于Netflix数据集,原始的文本信息只包含item的‘year’, ‘title’
- 对于MovieLens数据集,原始的文本信息只包含‘title’,‘year’和‘genre’
- 两个原始的数据集并不包含user的任何内容。
4.2 增强数据集的文本属性
Netflix和MovieLens都使用了同样的数据增强策略。
- 对于user,生成的内容有’age’, ‘gender’, ‘liked genre’, ‘disliked genre’, ‘liked directors’, ‘country’, and ‘language’.
- 对于item生成的attibute有,’director’, ‘country’, ‘language’.
五、制作并公开的多模态数据集
该工作制作并公开了Netflix和MovieLens两个多模态数据集。
- Netflix数据集: Netflix是使用Kaggle网站上发布的原始Netflix Prize数据集制作的多模态数据集。数据格式与多模态推荐的最新方法(如MMSSL、LATTICE、MICRO等)完全兼容。对于文本模态,基础的信息包括‘title’,‘year’;视觉模态的图片则是根据电影的信息从网络爬取的海报。
- MovieLens数据集: MovieLens数据集是由明尼苏达大学的GroupLens发布的。该工作收集了 ‘title’、’year’ 和 ‘genre’ 作为基本的与项目相关的文本信息,而视觉内容是通过MovieLens上的每个项目的URL获取的。该工作同样提供了一个经过预处理的MovieLens数据集,可直接供LLMRec、MMSSL、LATTICE和MICRO等baseline使用,无需额外的数据预处理,包括(1)原始图像和文本,(2)基本用户-项目交互和多模态信息,(3)以及LLM增强的内容。
5.1 文本模态
以下三幅图片代表了(1)Kaggle网站上描述的有关Netflix的信息,(2)来自原始Netflix Prize数据的文本信息,以及(3)由LLM增强的文本信息。
5.2 视觉模态
视觉信息通过网络爬虫得到。以下图片展示了通过使用Netflix Prize Data中的项目信息进行网络爬虫获取的海报。
5.3 多模态数据的Encoder
CLIP-ViT和 Sentence-BERT分别是视觉和文本信息的编码器。
六、增强的数据
6.1 增强的隐式反馈
对于每个被增强的user, 0代表正样本,1代表负样本。
6.2 增强的user profile
对于每个被增强的user, 字典里存储了增强的’age’, ‘gender’, ‘liked genre’, ‘disliked genre’, ‘liked directors’, ‘country’, and ‘language’。
6.3 增强的item attribute
对于每个被增强的item, 字典里存储了增强的’director’, ‘country’, ‘language’。
七、实验结果
7.1 主实验结果
LLMRec对比的baseline主要general CF和多模态推荐的方法。更细致地可以划分为general CF, 有side information的推荐系统,有数据增强的推荐系统,自监督推荐系统。我们的LLMRec通过显式增强用户-物品交互边缘和提升辅助信息的质量,优于基准模型。值得一提的是,我们的模型基于LATTICE的编码器,包括ID对应编码器和特征编码器。这一改进凸显了我们框架的有效性。
7.2 消融实验:数据增强&数据去燥
消融实验主要针对数据增强和去燥两个部分。w/o-u-i在消去LLM增强的隐式反馈的情况下,结果显著下降。这表明LLMRec通过包含上下文知识增加了潜在的监督信号,从而更好地把握用户的偏好。w/o-u移除我们的用户建模增强器会导致性能下降,这表明我们基于LLM的用户辅助信息能够有效地通过历史交互和物品端知识总结有用的用户偏好概况。w/o-u:去除噪声剪枝会导致性能下降。这表明去除嘈杂的隐式反馈信号的过程有帮助。
7.3 参数实验:Text Generation&Recommendation
7.4 Model-agnostic 实验
欢迎干货投稿 论文宣传 合作交流
推荐阅读
由于公众号试行乱序推送,您可能不再准时收到机器学习与推荐算法的推送。为了第一时间收到本号的干货内容, 请将本号设为星标,以及常点文末右下角的“在看”。
喜欢的话点个在看吧👇