PinnerSAGE、ENSFM、MHCN、FFM…你都掌握了吗?一文总结推荐系统必备经典模型(二)
机器之心 2023-03-26 12:38 发表于北京
以下文章来源于机器之心SOTA模型,作者机器之心SOTA模型
机器之心专栏
本专栏由机器之心SOTA!模型资源站出品,每周日于机器之心公众号持续更新。 本专栏将逐一盘点自然语言处理、计算机视觉等领域下的常见任务,并对在这些任务上取得过 SOTA 的经典模型逐一详解。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。
本文将分 3 期进行连载,共介绍 18 个在推荐系统任务上曾取得 SOTA 的经典模型。
- 第 1 期:DSSM、Youtube_DNN、SASRec、PinSAGE、TDM、MIMD
- 第 2 期:PinnerSAGE、ENSFM、MHCN、FFM、FNN、PNN
- 第 3 期:Wide&Deep、DCN、xDeepFM、DIN、GateNet、IPRec
您正在阅读的是其中的第 2 期。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。第 1 期回顾:DSSM、Youtube_DNN、SASRec、PinSAGE…你都掌握了吗?一文总结推荐系统必备经典模型(一)
本期收录模型速览
模型SOTA!模型资源站收录情况模型来源论文
PinnerSAGE | https://sota.jiqizhixin.com/project/pinnersage |
PinnerSage: Multi-Modal User Embedding Framework for Recommendations at Pinterest |
ENSFM | https://sota.jiqizhixin.com/project/ensfm收录实现数量:2支持框架:TensorFlow、PaddlePaddle | Eicient Non-Sampling Factorization Machines for Optimal Context-Aware Recommendation |
MHCN | https://sota.jiqizhixin.com/project/mhcn收录实现数量:2支持框架:TensorFlow、PaddlePaddle | Self-Supervised Multi-Channel Hypergraph Convolutional Network for Social Recommendation |
FFM | https://sota.jiqizhixin.com/project/ffm-2收录实现数量:2支持框架:TensorFlow |
Field-aware Factorization Machines for CTR Prediction |
FNN | https://sota.jiqizhixin.com/project/fnn-2收录实现数量:2支持框架:TensorFlow |
Deep Learning over Multi-field Categorical Data – A Case Study on User Response Prediction |
PNN | https://sota.jiqizhixin.com/project/pnn收录实现数量:2支持框架:TensorFlow | Product-based Neural Networks for User Response Prediction |
推荐系统是指利用电子商务网站向客户提供商品信息和建议,帮助用户决定应该购买什么产品,模拟销售人员帮助客户完成购买过程的系统。在广告、电商、信息流分发等业务场景中,推荐系统发挥了至关重要的作用,是帮助用户快速获得感兴趣的信息的关键,也是改进产品以吸引用户、提高用户粘性的关键。推荐系统把用户模型中的兴趣需求信息和推荐对象模型中的特征信息匹配,同时使用相应的推荐算法进行计算筛选,找到用户可能感兴趣的推荐对象,然后推荐给用户。为了实现精准推荐,首先要对用户进行画像。对用户画像打标签后,生成多维度、丰富、全面的用户标签,这些标签就是推荐系统中的特征,而这些特征就是推荐系统中的推荐算法/模型的输入数据。利用特征对推荐算法/模型进行离线训练,然后进行A/B测试后,获得最终的推荐算法/模型。后续还包括算法/模型的部署、冷启动等流程。
具体到推荐算法/模型部分,一般包括两大环节:召回和排序。
- 召回主要是指“根据用户的兴趣和历史行为,从海量的物品库里,快速找回一小部分用户潜在感兴趣的物品”。召回方法主要要求具备处理数据量大、处理速度快的能力。经典的召回方法包括基于统计的启发式召回和基于深度学习的向量召回方法。本报告主要聚焦于基于深度学习的召回方法。
- 排序则是指根据多类特征,使用模型进行个性化的推荐。排序环节还可以进一步细分为粗排、精排和重排。
推荐算法/模型在工业场景中应用主要面对下面这些问题:数据量庞大、训练环境低效、在线和离线环境的不一致、上线部署的困难等等。因此,一个好的推荐系统中一般会应用多个推荐算法/模型,而每个推荐算法/模型的最佳效果需要工程师在实践中摸索调试出来的,每个基础模型又有很多改良版本,针对不同的问题效果也可能不同。我们在这篇报告中总结的是能够在推荐系统中应用的必备的TOP基础推荐算法/模型。一、召回模型
1、 PinnerSage
PinnerSage的出发点是单一的用户嵌入无法很好的表示用户的多个兴趣,所以提出一个多模式的用户嵌入方式,使用层次化聚类的方法将用户行为历史的点击物品聚为k个类别来表示用户的兴趣。
PinnerSage的处理步骤具体如下:
第一步,聚类用户行为。具体要求是:类中的物品尽可能相似,并且聚类数目是由算法决定并不是人为规定的。所以选择了Ward层次化聚类算法来达到上述目标。首先,算法1将每个pin分配到它自己的集群。在随后的每一步,将集群内方差增加最小的两个集群合并在一起。假设经过一些迭代后,我们有集群{C1,C2,. .},集群Ci和Cj之间的距离表示为d_ij。那么,如果两个聚类Ci和Cj被合并,其距离将被更新如下:
第二步:表示每个聚类结果。为了使表示结果更具有鲁棒性,对于每个聚类表示并不是取所有embedding的均值,而是选择类中的某个物品,使这个物品与类中的其他物品距离最小,具体优化目标如下:
第三步:类别重要性。尽管一个用户的集群数量不多,但仍可能是几十到几百个的数量。由于信息成本的原因,我们不能利用所有的集群来查询最近的邻居系统;因此必须确定集群对用户的相对重要性,这样我们就可以根据它们的重要性得分对集群进行抽样。为此,考虑采用时间衰减平均模型:
其中,T[i]是用户对pin i的行动时间。一个最近被频繁互动的集群将比其他集群的重要性更高。算法2提供了一个PinnerSage模型的端到端概述。我们注意到,该模型对每个用户都是独立运行的,因此它可以在基于MapReduce的框架上相当有效地并行实现。
最后,PinnerSage推荐系统的完整流程如图1所示。
图1 PinnerSage推荐系统流程项目SOTA!平台项目详情页
PinnerSage | 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/pinnersage |
2、 ENSFM
现有的将深度学习应用于大推荐系统任务的工作主要集中在探索和引入不同的神经网络架构,在模型学习算法方面的研究相对较少。为了优化模型,现有的工作往往使用负采样策略(Negative Sampling)进行训练。虽然负采样方便并且易于实现,但是许多最近的研究表明负采样策略的鲁棒性较差,可能会忽略掉重要的训练样例从而导致模型无法收敛到最优的状态。清华大学信息检索课题组(THUIR)首次探索了将非采样策略(Non-Sampling, Whole-data based Learning)应用到基于神经网络的推荐系统中,提出了Efficient Non-Sampling Factorization Machines(ENSFM)。ENSFM整体架构如图2。
图2. ENSFM框架说明,显示了如何以矩阵分解的方式表示FM(为了清晰起见,图中没有显示一阶线性回归部分)ENSFM的目标是在没有负采样的情况下合理地学习FM(Factorization Machines )模型,从而实现情境感知推荐的最佳排名性能。ENSFM的预测功能遵循基于广义嵌入的FM,即:
(1) 情境输入通过嵌入转换为密集的向量表示。具体来说,用户背景和物品背景分别表示为eu和ev。输出yˆ_F M (x)是一个预测的分数,表示用户u对物品v的偏好。
(2) 通过记忆策略设计,我们将上式的调频得分重新表述为一个没有任何近似的广义矩阵分解函数:yˆ_F M (x) = (h_aux)^T (p_u⊙ q_v) ,其中,p_u、q_v和h_aux是辅助向量,分别表示用户u、项目v和预测参数。
(3) 本文提出了一种有效的mini-batch非采样算法来优化ENSFM框架,由于在每次参数更新中都考虑了所有的样本,因此更加有效和稳定。
上式中的二阶特征交互f(x),可以重写如下:
首先,重新组织f_BI(u)和f_BI(v)以达到线性时间复杂度。以f_BI(u)为例:
第二,p_u和q_v是相互独立的(也就是说,当u与不同的项目互动时,p_u不会改变)。因此,我们可以通过预先计算辅助向量以避免大量的重复计算来实现显著的速度提升。最后,在建立辅助向量后,将ENSFM的预测重新表述为一个MF函数。得到一批用户的非采样损失如下:
算法1总结了ENSFM的加速算法。
当前 SOTA!平台收录 ENSFM 共 2 个模型实现资源。
项目SOTA!平台项目详情页
ENSFM | 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/ensfm |