PinnerSage: Multi-Modal User Embedding Framework for Recommendations at Pinterest
https://dl.acm.org/doi/pdf/10.1145/3394486.3403280
背景
和阿里那篇多兴趣推荐论文相似,出发点都是单一的用户embedding没法很好的表示用户的多个兴趣,所以提出了一个多模式的用户嵌入方式,使用层次化聚类的方法将用户行为历史的点击物品聚为k个类别来表示用户的兴趣。
如上图所示,用户关注的三个类别分别是绘画、鞋子和科技,但是单一的用户embedding在对上述三个物品embedding进行mean pooling操作后得到的用户embedding映射是食物,偏离了用户的真实兴趣。
PinnerSage的设计选择
物品的向量是固定的:基于推荐实时性和一致性的考量。
用户的表示向量数目不固定:为了更好的建模用户的多兴趣。
用Medoids方法表示用户聚类:不是对聚类取均值,而是根据策略选取类中的某个物品embedding表示这个类。
Medoid采样得到推荐候选集:从某个用户所有的聚类表示中选择3个最为集中的代表这个用户兴趣。
处理实时更新的两步策略:1.根据用户的长期交互历史推断用户的medoid。2.根据用户的当天点击信息得到实时的medoid。
最近邻系统:根据一个查询在embedding空间中得到最接近查询的物品。
PinnerSage算法
第一步:聚类用户行为。具体要求是:类中的物品尽可能相似,并且聚类数目是由算法决定并不是人为规定的。所以选择了Ward层次化聚类算法来达到上述目标。
第二步:表示每个聚类结果。为了使表示结果更具有鲁棒性,对于每个聚类表示并不是取所有embedding的均值,而是选择类中的某个物品,使这个物品与类中的其他物品距离最小,具体优化目标如下:
第三步:类别重要性。使用时间衰减的重要性估算方法。
实验
可视化结果:可以看到用户最为关注的三个类别是球鞋、音响和食物,所以在推荐时根据这三个类别得到用户的推荐列表。
A/B测试:用户使用PinnerSage和单一embedding方法的对比,表明文中方法的有效性:
对比不同的选择聚类策略,表明了PinnerSage的优势:
总结
PinnerSage提出了一种基于多嵌入的用户表示方案。提出的聚类方案确保充分了解用户的需求并给出个性化的推荐结果。