前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BinLLM:让LLM理解用户-商品协同信息的编码方式

BinLLM:让LLM理解用户-商品协同信息的编码方式

作者头像
秋枫学习笔记
发布2024-06-18 17:56:59
530
发布2024-06-18 17:56:59
举报
文章被收录于专栏:秋枫学习笔记秋枫学习笔记

标题: Text-like Encoding of Collaborative Information in Large Language Models for Recommendation 地址:https://arxiv.org/pdf/2406.03210 学校:中科大 代码:https://github.com/zyang1580/BinLLM 会议:ACL 2024

1. 导读

LLMRec如何集成用户-item的交互信息?常见的方式是从头训练LLM或者从其他模型来映射协作信息。但这些方法无法以类似文本的格式表示信息,这可能无法与LLM最佳对齐。本文提出BinLLM,通过类似文本的编码无缝集成协作信息。BinLLM将来自外部模型的协作emb转换为二进制序列——一种LLM可以直接理解和操作的特定文本格式,有助于LLM直接使用类似文本格式的协作信息。同时,BinLLM可以使用点小数表示法压缩二进制序列,以避免过长的长度。

2.方法

2.1 模型结构

BinLLM包括两个部分:提示生成和LLM预测。与以前的方法类似,将推荐数据转换为自然语言的提示词,然后将其直接输入到LLM中进行预测。但BinLLM通过将协作emb转换为二进制序列,以类似文本的格式表示协作信息。

2.1.1 提示词构造

如图所示为提示词模板,基于用户的信息在对应位置填上数据得到当前用户的提示词。

2.1.2 协作信息的类文本编码

为了更好地与LLM集成,以类似文本的格式对协作信息进行编码。本文将协作信息转换为二进制序列,使LLM能够执行逐位运算进行推理。编码模型包括两个部分:协同模型以及二进制化和压缩模块

2.1.3 协同模型

常规的基于用户交互信息构建协同模型从而获得协同emb。给定用户u和商品i,协作模型生成相应的emb,表示为下式,

2.1.4 二进制化&压缩

二进制化。为了将协作emb二进制化,首先使用全连接层将协作emb转换到合适的空间中,然后应用符号函数来获得二进制结果。表达如下,其中表示tanh激活函数,然后针对emb中的每个位置判断是否大于0

这些二进制序列可以直接输入到LLM中,并用于计算逻辑“与”等操作,从而有助于用户偏好推理。

压缩。二进制序列的问题是它们的长度相对较长,而LLM对于太长的序列不擅长推理,并且长序列会限制LLMRec的推理效率。因此,需要压缩二进制序列,同时保持它们可被LLM利用。作者这里采用dot-decimal notations(笔者不知道翻译成什么比较合适,就直接用英文吧,这个压缩形式就是类似ip地址的方式),文中将每八位二进制数字转换为十进制数字,范围从0到255,并使用点作为分隔字符。类似xxx.xxx.xxx吧,作者考虑这样编码的原因是IPv4最初是由二进制序列编码的,并且Web包含了关于IPv4的足够知识,在Web数据上训练的LLM可以潜在地理解IPv4使用的小数点表示法。(不知道这里采用LSH这类方法会不会有效),例子:

2.1.5 预测

由于LLM中缺乏特定的推荐预训练,引入一个额外的LoRA模块用于推荐预测。对于生成的提示p,表示为下式,

其中,表示预训练的LLM的参数,表示LoRA模型参数,根据任务的不同,预测结果可以是预测的下一个item或喜欢候选item的预测概率。

2.2 训练

对类文本编码模块的训练侧重于学习为协作信息生成二进制序列,而与LLM无关。LoRA的训练指导LLM通过利用协作信息进行推荐。

2.2.1 预训练类文本编码

为了训练类文本编码模块,令D表示训练数据,表示用户u和label为t的商品i之间的交互。通过最小化以下优化问题来训练,其中h是二进制化后得到的表征,是常用的推荐损失,如交叉熵损失。简单来说就是用构建常规的协同模型且二进制化后,通过二进制化的表征来构建损失函数。

需要注意的是,符号函数缺乏平滑性,其梯度被定义为零,因此采用STE使得模型可以端到端的训练,对于STE可以参考https://blog.csdn.net/m0_37400316/article/details/105996240

2.2.2 训练LoRA

要训练LoRA模块,考虑两种方法:Intuitive tuning和Two-step tuning。

Intuitive tuning:此方法通过包含协作信息的提示词直接从头开始训练LoRA模块。

Two-step tuning:第一种方式在rating预测任务中存在一定问题,因为模型只需参考二进制表示的学习过程,对给定用户和候选项的协同表示执行逐位“与”运算,就可以获得不错的结果。从头开始训练可能会导致模型过度依赖这些特征,从而可能忽略类似于学习其他属性。因此,本文采用两阶段训练,首先使用排除协作信息的提示来训练模型。然后使用包含协作信息的完整提示对模型进行微调,从而进一步完善模型。

3 实验

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 秋枫学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 导读
  • 2.方法
    • 2.1 模型结构
      • 2.1.1 提示词构造
      • 2.1.2 协作信息的类文本编码
      • 2.1.3 协同模型
      • 2.1.4 二进制化&压缩
      • 2.1.5 预测
    • 2.2 训练
      • 2.2.1 预训练类文本编码
      • 2.2.2 训练LoRA
  • 3 实验
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档