github连接:https://github.com/bytedance/HLLM
探讨问题:
推荐LLM的三个关键问题:
- LLM预训练权重通常被认为是对世界知识的概括,其对于推荐系统的价值?
- 对推荐任务进行微调的必要性?
- LLM是否可以在推荐系统中表现出与在其他领域相同的可扩展性优势?越大效果越好吗?
本文结论:
- 不管是从文本到embed的部分(Item LLM),还是从embed到embed的部分(User LLM)作者认为预训练权重都是对于这一部分有益的
- 非常必要
- 理论上可行
实验方法:
模型架构
分为两个模块
Item LLM:对于单个item做特征提取(单个item的文本序列 --> [ITEM] 的emb )
提出了提取项目特征的方法。 它将item的文本描述作为输入,并输出嵌入表示。 llm在文本理解方面表现出了出色的性能,在项目文本描述的末尾添加一个特殊的令牌[ITEM]来提取特征,类比与Bert的放在末尾的[CLS]。
loss 1:InfoNCE Loss
User LLM:对于多个历史点击做用户建模( 用户的多个历史item的[ITEM] --> emb)
其中因为输入时候emb,所以直接丢弃了tokenizer,但是其他层的权重值留下了,作者说是很有用,不知道真的假的
loss 2 :cross Loss
总的loss = x*loss 1 + loss 2
loss都很常规,就不多说明了,论文里面也就3行,可以自行去看
训练方式
训练有两种主流模型:
1.生成式:主要是flow的meta家的HSTU工作,看过的小伙伴,欢迎补充信息
这里贴一篇帖子,做的实验证明HSTU的效果和ID_base的模型比较可能不占优势:
BaseModel vs HSTU for sequential recommendations
欢迎大家讨论自己的看法
2.判别式:
判别式又分成两个变体
Early fusion训练的时候,直接把待预测的样本的embedding E_target 放在序列结尾
Late fusion 后期用一个【user】代替,同时把E_target的和【user】一起输入预测层
实验结果
RQ1: LLM的一般预训练和带推荐目标的微调是否提高了最终的推荐性能?
实验说明,微调是非常有必要的
RQ2:与其他最先进的模型相比,HLLM的优势是否显著?
结论数据上看还是很华丽的
related work
目前推荐系统与大模型的结合:
这些探索可以分为三种类型:
- llm用于总结或补充用户或项目的信息(RLMRec)
- llm还用于生成冷启动项目的增强训练信号
- 将推荐方式转化为对话任务
个人感悟
本篇文章,主要的创新点其实在与2步走的分层训练,使得训练参数的大小减少