工业界推荐系统通常有两个阶段组成:召回(Matching)和排序(Ranking)。召回阶段我们根据用户的兴趣从海量的商品中去检索出相关候选 Item,满足推荐相关性和多样性需求。而排序阶段,依据用户兴趣会对候选集进行打分排序截取TopN Item,最终给用户产生推荐。
因此,在推荐过程最重要的一环就是如何对用户不同阶段的兴趣进行有效表达。大多数目前的深度网络模型中,都是构建一个用户和Item 统一的向量空间中去获取用户的兴趣表达。如 DIN 模型 (Deep Interest Network):通过挖掘用户的历史行为,利用Attention 机制捕获用户兴趣分布,表达用户多种多样的兴趣爱好。这类模型都是将用户映射为单个向量以表达用户兴趣,通常不足以捕获用户不同阶段、不同性质的兴趣分布。
本文主要工作:
- 通过Mulit-Interest Extractor Layer 获取多个向量表达用户兴趣的不同方面;
- 提出了具有动态路由的多兴趣网络(MIND),利用Dynamic Routing 以自适应地聚合用户历史行为到用户表达向量中,以处理用户的不同兴趣;
- 开发 Label-Aware Attention 标签感知注意力机制,以帮助学习具有多个向量的用户表示。
具体而言,我们设计了一种基于胶囊路径机制的多兴趣提取层,适用于聚类历史行为,提取不同的兴趣。
二、网络结构:
Multi-Interest Network with Dynamic Routing (MIND) 是通过构建用户和商品向量在统一的向量空间的多个用户兴趣向量,以表达用户多样的兴趣分布。然后通过向量召回技术,利用这多个兴趣向量去检索出TopK个与其近邻的商品向量,得到 TopK个 用户感兴趣的商品。
传统 DeepMatch 方法为每个用户生成一个兴趣向量,但在实际的购物场景中,用户的兴趣是多样的,不同兴趣之间甚至可能是不相关的。比如用户可能同时期望购买服装、化妆品、零食,而一个长度有限的向量很难表示用户这样的多个兴趣。我们的 MIND 模型通过 Dynamic Routing 的方法从用户行为和用户属性信息中动态学习出多个表示用户兴趣的向量,更好的捕捉用户的多样兴趣,来提升召回的丰富度和准确度。
2. Embedding & Pooling Layer
MIND 的输入由三部分组成:用户属性 Pu 、用户行为序列 Iu 、和目标 Item Fi 。每组输入都包含了极其稀疏的离散id 类特征,如item id 可能高达10亿维。因此我们采用广泛使用的embeding 技术将这些id特征映射为低维稠密的向量,从而可以显著减少了参数的数量和简化学习过程。对于user id 如年龄、性别等embedding 后通过concat 后作为用户侧特征输入,item id 如类目id、店铺id embedding 后统一经过pooling 层得到item 侧特征输入,而多个item embedding&pooling 后,得到用户行为序列输入 Eu={ei,j∈Iu} 。
3. Multi-Interest Extractor Layer
如果把与用户兴趣各种相关的信息都压缩成为一个表达向量,这会成为用户多样兴趣表达的瓶颈,在推荐召回阶段召回候选集时,对用户不同兴趣的所有信息混合在一起使用,会导致召回Item 的相关性大大降低。因此,我们采用多个向量来表达用户不同的兴趣,将用户的历史行为分组到多个 interest capsules 的过程, 期望属于同一个capsules 的相关Item 共同表达用户兴趣的一个特定方面。