为了更好地融合用户的内容行为序列和商品行为序列,我们设计了层级注意力机制。其中底层注意力机制可以聚焦到每个行为序列的内部,用于识别用户的兴趣,上层注意力机制负责行为序列特征间的融合。
- 底层注意力机制
我们对于内容行为序列和商品行为序列采用了不同的建模方式。对于内容行为序列,我们采用了MIND提出的动态路由(Dynamic Routing)算法来建模用户的多峰兴趣分布,因为与商品消费场景相似,用户在内容消费场景的浏览兴趣通常也会横跨多个类目,同时多兴趣召回对于提升内容场景的多样性等生态指标至关重要。与MIND不同的是,我们设计了UAT(user attention network)注意力机制,在内容进入动态路由进行聚类之前使用用户基础画像特征对内容行为序列进行attention,使得聚类出的多兴趣与用户更加匹配。对于商品行为序列,我们直接使用Transformer中的multi-head attention机制提取序列特征。我们对内容行为序列和商品行为序列区别对待的原因是内容行为序列是内容场景中的核心行为,刻画了用户的真实兴趣。而商品行为序列更多的是充当辅助内容序列学习的角色,因此需要一个能够完整提取用户商品域兴趣的建模方式。这里我们也尝试过使用动态路由方法对商品行为序列建模,发现效果不如multi-head attention机制。
- 上层注意力机制
我们需要融合两种用户行为序列内部生成的兴趣表征,这里我们通过attention机制设计了一种门控网络,用于融合用户的基础画像表征、内容兴趣表征和商品兴趣表征。这里的设计思想是不同的用户对于不同特征的依赖程度是不一样的。对于内容场景内的高活用户,场景内的内容消费行为应该发挥更关键的作用,而对于电商场景的高活用户同时是内容场景的低活用户,电商场景内的商品消费行为更为重要,最后对于两个场景的低活用户,用户基础特征可以起到一个基础的打底作用。门控网络的具体实现方式如图1,接收用户的基础画像表征、内容兴趣表征和商品兴趣表征作为输入,并为每种表征产出一个权重,最后三种表征加权合并成最终的用户兴趣表征。
▐ 模型训练
在抽取了多个用户兴趣之后, 我们使用MIND中采用的label-aware attention方式构建sampled softmax loss损失函数对多个兴趣向量进行学习,如公式(1)所示。在训练过程中,针对每个用户,在抽取出的多个兴趣中,根据每个兴趣与目标内容的相关性计算每个兴趣的权重,然后将多个兴趣加权平均进入到后续的训练。这里我们也尝试过hard attention方式,即只从用户的多