文章链接:https://arxiv.org/pdf/2402.17152
机构:Meta
发布时间:2024.02
参考文献:
https://agijuejin.feishu.cn/wiki/WbuuwuGO3iD9Z7kRb0bc3LFvnjg
https://datawhalechina.github.io/fun-rec/chapter_4_trends/3.generative.html
Copyright (c) Wang-Luning. All Rights Reserved.
传统深度学习推荐模型(DLRM)在计算上难以扩展,因此希望能引入万亿参数级别的大模型来更深层次理解用户行为。
在简单的物品ID序列基础上,HSTU试图给模型提供一个信息更丰富的序列,将用户属性、行为类型、时间等所有异构信息都融合成一个统一且更复杂的“事件流”作为输入,增强了模型对行为上下文的理解能力,也即深化对输入的理解。
本文致力于解决如下3个在推荐系统中引入LLM的难点,从而实现scaling:
推荐系统中的特征是异质的,缺乏统一的结构描述(如交叉特征、id特征、统计特征等,其中有些是sparse的,有些是dense的)
物料池规模巨大且更新快,相当于需要处理十亿级别的动态词表
算力开销巨大使得难以部署大规模序列模型,推荐系统每天处理的token数量比GPT3一个月处理量还要高若干个数量级
本文贡献:
首先提出了新的生成式推荐范式(GR),将异质的特征空间进行统一和序列化,从而能够将召回和排序都reformulate成序列生成问题,使得能在同等算力下在更大量的数据上训练。
为了解决计算开销问题,提出一种改进的attention结构HSTU(Hierarchical Sequential Transduction Units),其致力于处理大型且非平稳的词表。
注:“预测下一个物品”这种自回归生成式的范式只体现在训练阶段,用于得到更好的用户历史与偏好表征/用户表征和候选物品的特征交叉。而推理阶段用于召回、排序时都不是直接生成下一个物品,仍为利用模型产生的表征来进一步做ANN或做CTR预测等,并不是像TIGER那样真的直接预测下一个物品是什么。
因此,HSTU更像SASRec的加强版而不是TIGER,其并没有对于推理阶段的召回和排序结果产出提供范式级的革新。相比于SASRec仅将推荐序列视为由物品ID组成的序列,HSTU将推荐场景下的所有信息(用户画像、行为、物品、上下文等)都融入到序列中,极大丰富了模型的输入,且使用改进后的HSTU结构进行处理,从而实现对于用户行为的更深层次理解。
1、统一DLRM中的异质特征空间
在GR中,将sparse和dense特征都统一到一个时间序列中:
sparse特征:类别特征,例如:用户的语言、用户关注的创作者的类别、用户点赞的物品等。
首先选取时间跨度最长的序列作为主时间序列(main time series),它通常就是用户交互过的item的历史序列。
其余的特征通常是随时间变化较慢偏静态的特征,它们的变化可以看成一些辅助时间序列(auxiliary time series),例如人口统计特征或关注的创作者等。对于这些变化较慢的特征进行压缩,在一段时间内只保留最早的特征取值,然后合并到主时间序列中。
如图所示,主时间序列为用户交互物品的历史序列
总结来看,也即把用户历史交互物品序列作为主序列,然后把这段时间内的其他离散特征按照它们在各个时刻的取值状态也压缩到这个序列中,从而得到一个综合了历史交互和其他用户画像特征变化的序列,而不是像传统工作那样把用户历史序列和用户画像特征分开处理。由于那些用户画像特征通常变化很慢,因此不会造成序列变得过长。
dense特征:数值特征,例如各种计数值和比率,如一个特征可以表示用户对于某类商品的CTR。相比于类别特征,这种数值特征变化频率更高,甚至在每次user-item交互后都会改变,因此它们序列化的成本过高。由于很多dense特征的信息在sparse的时间序列特征中或多或少都已经携带了,因此作者认为在sparse特征序列已经足够丰富的情况下可以舍弃dense特征部分的编码,让模型隐式地自动推断。
2、将召回和排序任务重定义为序列直推任务
给定
使用
召回任务:
召回任务是在给定时间步
事实上,这和标准的自回归有一定差异:
可见,给定的训练序列中每个位置的下一个token并不一定是正样本,甚至可能不是样本而是特征,这就导致它不应被作为这个位置的自回归训练label。因此使用mask
在线上推理时,并非直接生成下一个物品,而是生成user表征向量(也即预测的下一个token向量)后做ANN召回。预测下一个物品是训练时的目标,目的仍为得到具有丰富表征的用户历史向量,并没有像TIGER那样直接做到在推理阶段预测下一个物品。
排序任务:
排序任务中通常需要涉及“target aware”建模,例如CTR预测模型中把用户历史序列和候选item一起输入模型中使得它们的特征进行交叉,且目标候选物品
因此,把历史items和actions交替嵌入一个序列
最终会把
综上可见,“预测下一个物品”这种自回归生成式的范式主要体现在训练阶段,用于得到更好的用户历史与偏好表征/用户表征和候选物品的特征交叉,而推理阶段用于召回、排序时都不是直接生成下一个物品,仍为利用模型产生的表征来进一步做ANN或做CTR预测等。
3、HSTU模块
HSTU模块是针对推荐情景改进后的一种transformer模块:
设输入序列为
pointwise投影层:
其中,
pointwise空间聚合层:
该部分类比于传统的QKV attention,其中
和普通attention最大的区别在于没有softmax机制,也即把序列维度的聚合权重
例如,假设目标是推荐一部科幻电影。用户A的历史记录中有10部科幻片和1部喜剧片,而用户B只有1部科幻片和1部喜剧片。对于用户A,其对科幻的强烈偏好是一个非常强的信号。然而,Softmax归一化可能会迫使这10部科幻片瓜分注意力权重,从而削弱“大量观看科幻”这一整体信号的强度,使其与用户B的信号差异不再显著。HSTU的点向聚合(通过SiLU激活)独立计算每个历史物品的相关性得分,不进行跨项归一化。这使得模型能够保留偏好的原始强度——用户A历史中的科幻片可以共同产生一个非常高的激活总分,这对于准确预估点击率、观看时长等具体数值至关重要,而不仅仅是进行排序。
pointwise转换层:
该部分使用
(事实上如果
工程优化部分:留坑,详见:https://agijuejin.feishu.cn/wiki/WbuuwuGO3iD9Z7kRb0bc3LFvnjg