背景
DLRM to GR works?
推荐系统是 近十年来兴起的话题,大模型近两年快速兴趣,如何将大模型应用于推荐系统领域,通过LLM生成式推荐的思路。通过 Meta 工业界首个万亿级别参数的生成式推荐模型,分析下 “生成式推荐” 是否可行。
https://arxiv.org/pdf/2402.17152
模型结构
输入是用户交互过的历史item序列,只考虑稀疏特征,放弃连续特征;新设计encoder模型HSTU,相比DLRM模型,模型复杂度提升285倍;训练和推理都采用内存、计算优化的方案;
应用场景
在召回、排序场景,线上指标召回+6.4%,排序+12.4%;
性能基线
8192的序列长度上HSTU比FlashAttention2加速5.3x-15.2x,推理通过成本分摊M-FALCON方式在DLRM同等资源配置下吞吐提升1.5倍。
区别改造
输入数据构造
将用户行为定义为“新模态”,无损信息直接输入类LLM模型。
Categorical(’sparse’)特征:进行序列化
选取最长的时间序列(通常是将用户交互的 item 合并)作为主要的时间序列。
其余的特征是随着时间缓慢变化的时间序列,例如用户关注的创作者等。通过保留每个连续片段最早的条目来压缩这些时间序列,并将结果合并到主序列中。
Numerical(’dense’)特征:直接丢弃
这类特征变化更为频繁,从计算和存储的角度将这些特征完全序列化是不可行的。
这些数值特征是由类别特征聚合而来,而这些类别特征我们已经编码入了模型。
通过这种设计,可以有效降低序列的长度。
召回任务
训练:基于历史行为序列,随机mask掉一些item,预测这些item,计算loss;
推理:基于历史行为序列,需要一次预测一批item,基于模型输出embedding,映射到全量item库(会有采样策略);
排序任务
训练:基于历史行为序列,随机mask掉一些item的action,预测这些item的action,计算loss;
推理:基于历史行为序列,将待排序的item append到用户历史行为序列里,预测action位置的embeding,再外接NN模型适配多任务,输出具体结果;
总结
scaling law在参数高达1.5万亿时还能scaling,而作为对比的DLRMs在参数达到2000亿的时候性能就开始下降;