本文设计了一种针对大规模非静态数据的推荐架构,上线后效果显著。
本文提出了一种完全不同的样本构造体系,抛弃了传统的 特征集合-物品 的绑定形式,转而用一种更加 生成式(行为序列 - 物品) 的形式描述用户的活跃行为。

这里主要看排序
| 传统特征(DLRM) | 生成式特征(GR) | |
|---|---|---|
| 范式 | 直推式 | 自回归式 |
| 样本输入 | 类别特征和数值特征分别处理后,属性特征、行为特征等多个特征进行拼接 | 只考虑类别特征; |
| 行为特征转化为单独的可交互item和对应的交互动作; | ||
| 属性特征转化为无动作的item | ||
| 输入空间 | 所有的特征空间集合 | 属性特征 + 动作 + 可交互的item |
| 样本输出 | 单个item的打分 | 与动作特征相关的动作序列 |
| 目标空间 | 有限的排序目标 | 用户的所有交互动作 |
| 符号表达 | $cocat(cat_1, cat_2, \dots,\\ num_1, num_2, \dots, \\act\_with_1, act\_with_2,\dots)\\ \to target$ | $cat_1,cat_2,\dots \\ item_1,act_1,item_2,act_2\dots \\ \to \phi,\phi,\dots,act_1, \phi, act_2, \dots,\phi$ |
数值特征主要指count、ratio之类的特征。与数值特征相关的item已经在历史输入item中体现了,而统计结果也暗含在了历史记录中。只要序列足够长,暗含的统计信息就足够精准,因此本文显式的丢掉了数值特征。
由于只在交互结束的时候生成一条样本,因此相对于直推式的样本,样本数量下降了O(N)的数量级(但是一条样本里有很多物品,但是鉴于特征形式也简化了,实际上还是在样本方面获得了显著的简化效果)

通过对 self-attention 结构的改进,对传统的特征抽取、特征交互、特征转换三个异构模块进行统一。
| traditional attention | HSTU attention |
|---|---|
| $Y(X)=softmax(\cfrac{Q(X)K(X)^T}{\sqrt{d_k}})V(X)$ | $U(X),V(X),Q(X),K(X)=Split(\phi_1(f_1(X))$ |
| pointwise projection |
$A(X)U(X)=\phi_2(Q(X)K(X)^T+rab^{p,t})V(X)$ spatial aggregation(pointwise aggregation)
$Y(X)=f_2(Norm(A(X)V(X))\odot U(X))$ pointwise transformation |
这里 $f$ 代表线性变换,$\phi$ 代表非线性变换(SiLU),Norm 是 Layer Norm。
去掉softmax
其中一个原因是历史数据点的数量也是一个表示用户偏好强度的重要特征,softmax归一化会使这个特征难以被捕捉。另一个原因是softmax对构造性噪声(?)鲁棒性好,但是不适合动态词表的流式计算。