正文
利用Group LayerNorm以及动态混合掩码策略,实现用统一的HSTU架构针对不同语义空间的Token信息进行编码。
我们设计了三种不同尺寸的模型(
MTGR-small、MTGR-middle、MTGR-large
),验证了离在线效果的Scaling Law,并使用MTGR-large在美团核心业务中取得显著受益,并完成全量。
下面,我们将对MTGR的数据、特征以及模型架构逐一展开介绍。
图2 MTGR模型架构图
在数据与特征上,我们首先对齐DLRM的特征,保留了全部的交叉特征以减少信息损失,其次针对训练数据按用户粒度实施压缩来实现MTGR高效训练,具体的:
对齐DLRM的特征使用策略
:在我们的场景下,如表1结果所示,采用生成式方案完全抛弃交叉特征会极大的损害MTGR模型性能,为了尽可能的减少信息损失,我们所使用的特征与DLRM基本一致,这些特征包括:
-
User Profile
:用户统计信息,如登陆频次/购买频次等。
-
Context
:用户当前请求的场景信息,如哪个场景,时间,地点。
-
User Behaviour Sequence
:用户历史点击/曝光序列,其中每个item为有用户交互行为的商家,此外还包含了大量side info,包含了商家的各种属性信息(
tag、品牌等
)、历史统计信息(
历史点击、订单数量等
)、当次交互的细分行为(
例如停留时长、子页面点击数量等
)等,不同请求(
用户
)的序列长度不同。
-
Target item
:待打分商家信息,如商家ID、各种该商家的side info以及大量的基于统计的交叉特征。
表1 交叉特征对于MTGR性能影响
-
按用户粒度压缩训练数据
:如图3所示,左图表现了传统DLRM数据组织方式,针对用户的N个曝光,在数据组织中需要存N行,在处理不同长度的序列数据时,往往使用padding进行补全。在DLRM训练时,对同一个用户的N行样本存在大量重复编码,导致计算效率较低,甚至需要结合负采样降低样本量和训练成本。为了解决这一问题,对于训练数据,MTGR针对用户粒度进行压缩,如图3右所示,将同一用户N行样本压缩成一行,同时我们采用稀疏化存储,配合JaggedTensor以及变长的HSTU算子,抛弃了全部padding操作以降低无效存储和冗余计算。额外的,为了避免训练穿越,对于用户行为序列以及target item,我们在数据中保存了其发生的原始时间戳,以用于生产掩码保证正确的因果性,具体的掩码细节将在下一节展开介绍。
图3 DLRM与MTGR数据组织形式
在模型架构上,我们首先将输入信息Token化,再针对不同类型Token进行Group LayerNorm,并设计了一种特殊的动态混合掩码策略,以实现用统一的HSTU架构针对不同序列、用户信息、Target信息进行统一编码。具体的:
-
输入信息Token化
:我们将样本信息拆分成一个个Token。其中对于User Profile每一个特征都表示为一个Token,对于用户行为,则将每一个具体行为对应的item ID以及多个side info的Embedding表征拼接在一起再通过非线形映射组装成一个Token。同理,对于每一个曝光,我们则将item ID、对应的side info、交叉特征、时空等Context信息拼接在一起组成一Token。
-
采用HSTU架构统一建模多个序列
:我们利用HSTU架构针对Token化的输入进行统一编码,对比原方法,我们对每一层的输入都做了额外的LayerNorm以保证深层次训练的稳定性,考虑到不同与传统的LLM,我们的数据可以分组为多种类型的Token,因此,我们将LayerNorm拓展为Group LayerNorm,针对不同类别的Token采用不同的LayerNorm参数,以实现不同语义空间下Token的对齐,下表展现了采用Group LayerNorm的离线效果。
表2 Group LayerNorm对于MTGR性能影响
-
引入动态混合掩码
:我们将Token简单分为历史静态特征(
User Profile & Sequence
),当日实时行为(
Real-Time Sequence
),以及曝光样本(
Targets
)三个部分。我们采用一种动态混合掩码,具体掩码策略如下图所示,对于历史静态特征我们不进行任何掩码操作,对于当日实时行为采用Causal mask,并结合时间戳过滤未来事件。具体来说,在训练时我们按照用户一天曝光数据进行聚合,并取最后一条实时行为。实时行为/曝光样本按照时间近至远进行排列,更远发生的实时行为看不到更近发生的实时行为。同Targets中存在部分曝光出现在某些实时行为之前,因此需要结合两者时间戳计算掩码,保证较早发生的Targets看不到较晚发生的实时行为。我们以图4为例展开说明:
-
标有颜色表示可以被看见,每一行表示该Token可以看到哪些Token,每一列表示该Token可以被哪些Token看到。
-
实时行为/曝光样本按照时间近至远进行排列:最近发生的曝光样本可以看到全部的实时行为,但较早发生的曝光样本只能看到部分实时行为。
-
对于Target 1,因为它出现的时间较晚,因此它可以看到全部的User Profile & Sequence以及Real-Time Sequence;对于Target 2,有一部分Real-Time Sequence出现在其之前,因此它只能看到部分Real-Time Sequence。
图4 MTGR动态混合掩码示意图
表3展示了采用动态混合掩码对比传统因果掩码的离线效果,采用动态混合掩码可以更好的发挥HSTU作为encoder的学习能力。
表3 动态混合掩码对于MTGR性能影响