PinnerSAGE、ENSFM、MHCN、FFM…你都掌握了吗?一文总结推荐系统必备经典模型(二)(2)

简介: PinnerSAGE、ENSFM、MHCN、FFM…你都掌握了吗?一文总结推荐系统必备经典模型(二)

3、 MHCN

MHCN(Multi-Channel Hypergraph Convolutional Network)是一个多通道超图卷积网络,利用高阶用户关系来增强社交推荐。从技术上讲,网络中的每个通道都通过超图卷积来编码一个超图,该超图描绘了一个常见的高阶用户关系模式。通过聚合多个通道学习到的嵌入信息,可以得到全面的用户表示,从而生成推荐结果。然而,聚合操作也可能掩盖不同类型的高阶连接信息的固有特征。为了弥补聚合损失,将自监督学习融入超图卷积网络的训练中,以获得层次互信息最大化的连通性信息。

MHCN引入超图模拟社交关系中的高阶关系。超图推广了边的概念,使其连接到两个以上的节点,为建模用户之间复杂的高阶关系提供了一种自然的方法。尽管超图在用户建模方面比简单图有很大的优势,但是在社交推荐方面,超图的优势还没有得到充分的开发。本文通过研究超图建模和图卷积网络的融合潜力,填补了这一空缺,提出了一种多通道超图卷积网络(MHCN),通过利用高阶用户关系来增强社交推荐。从技术上讲,通过统一形成特定三角形关系的节点来构造超图,这些三角关系是具有底层语义的三角主题的实例(如图3所示)。

图3. 三角图案的应用。绿色圆圈表示用户,黄色圆圈表示物品
文中定义了多种类型的图,这些图具体化了不同类型的高阶关系,如“拥有共同的朋友”,“朋友购买相同的物品”,以及在社交推荐系统中“陌生人购买相同的物品”。提出的超图卷积网络的每个通道都承担编码不同图的超图的任务。通过对多通道学习到的多个用户嵌入信息进行聚合,可以得到包含多种类型高阶关系信息的全面用户表示,利用项目嵌入生成更好的推荐结果。

然而,尽管多通道设置有好处,但聚合操作也可能掩盖不同类型的高阶连接信息的固有特征,因为不同的通道会学习不同超图上分布的嵌入。为了解决这一问题并充分继承超图中丰富的信息,本文在多通道超图卷积网络的训练中集成了一个自监督任务,提出通过利用超图结构来构造自监督信号,全面用户表示应该反映不同超图中用户节点的局部和全局高阶连接模式。具体来说,利用了超图结构中的层次结构,并分层最大化了用户表示、以用户为中心的子超图和全局超图之间的互信息。互信息度量了子超图和整个超图的结构信息量,通过减少局部和全局结构不确定性来推断用户特征。最后,在主&辅学习框架下,将推荐任务和自监督任务统一起来。通过联合优化这两个任务并利用所有组件的相互作用,推荐任务的性能获得了显著提高。

图4. MHCN模型(1层)概述。左图中的每个三角形都是一个hyperedge,也是一个定义的图案的实例。𝐺𝑠、𝐺𝑗和𝐺𝑝分别表示基于社会、联合和购买主题构建的三个motif-induced hypergraphs。三个虚线椭圆中的𝑠𝑠、𝑠𝑗和𝑠𝑝表示以𝑢2为中心的三个ego-networks,它们分别是𝐺𝑠、𝐺𝑗 和 𝐺𝑝 的子图超图构建。首先引入Motif作为涉及多个节点的特定局部结构。它已被广泛用于描述各种网络中的复杂结构。在本文中,只关注三角形的图,因为三元组在社交网络中无处不在,而实际上本文所提出的模型可以无缝扩展,以处理更复杂的图。图4给出了三角图案。研究表明,M1~M7对社交计算至关重要,作者进一步设计了M8~M10以融入用户-物品交互来进行补充。已知图M1 ~ M10,我们根据其隐含的语义将其分为三组。M1−M7概括了显性社交网络中所有可能的三角关系,并描述了高阶社交连接,比如“有一个共同的朋友”,称之为“社交图”。M8~M9表示联合关系,即“朋友购买同一件物品”。这种类型的关系可以看作是加强联系的信号,将M8 ~ M9命名为“联合图”。最后,还应该考虑那些没有显性社交关系的用户。因此,M10是非封闭的,它定义了没有社交关系但购买了相同物品的用户之间的隐性高阶社会关系。将M10命名为“购买图”。在这三种模态的约束下,可以构造出包含不同高阶用户关系模式的三个超图。分别使用矩阵𝑯𝑠、𝑯𝑗和𝑯𝑝来表示这三个图induced的超图,其中这些矩阵的每一列都表示一个超边。

多通道超图卷积。本文使用了三种通道设置,包括“社交通道(s)”、“联合通道(j)”和“购买通道§”,以应对三种类型的三角形主题,但通道的数量可以调整,以适应更复杂的情况。每个通道负责编码一种高阶用户关系模式。因为不同的模式可能会对最终的推荐性能表现出不同的重要性,所以直接将整个基本的用户嵌入p(0)提供给所有通道是不明智的。为了控制从基本的用户嵌入p(0)到每个通道的信息流,设计了一个具有自门控单元(SGU)的预过滤器,其定义为:

将超图卷积定义为:


令𝑩=s⊙sT和𝑼=𝑺 - B分别表征双向和单向社交网络的邻接矩阵。我们用A_Mk表示图诱导的邻接矩阵,(A_Mk)_ i,j =1是指顶点𝑖和顶点𝑗出现在M_k 的一个实例中。因为两个顶点可以出现在M_k 的多个实例中,(A_Mk)_ i,j计算公式如下:
对A_Mk去冗余后,得到变换后的超图卷积:

学习用户表示。在通过𝐿层传播用户嵌入后,平均每一层获得的嵌入,以形成最终的特定于通道的用户表示:

为了避免过度平滑问题,利用注意力机制对不同通道的用户嵌入信息进行选择性聚合,以形成全面的用户嵌入。对于每个用户𝑢,学习一个三元组(𝛼𝑠、𝛼𝑗、𝛼𝑝)来测量三个特定于通道的嵌入对最终推荐性能的不同贡献。注意力函数f_att的定义为:
以及全面的用户表示:

需要注意的是,由于显性的社交关系是嘈杂的,孤立的关系并不是亲密关系的强烈信号,丢弃那些不属于以上定义的图的实例。因此,不能直接对显式社交网络𝑺做卷积操作。此外,在用户-物品交互图上进行简单的图卷积,对购买信息进行编码,并补充多通道超图卷积。简单图卷积定义为:
最后,我们得到了最终的用户和项目嵌入𝑷和𝑸,定义为:
为了学习MHCN的参数,使用了贝叶斯个性化排序(Bayesian Personalized Ranking,BPR)损失,这是一个成对的损失,它使得了一个监测到的条目比未观察到的条目更高:
通过自监督学习增强MHCN。遵循主、辅范例,设置一个自监督的辅助任务来增强推荐任务(主任务)。对于MHCN的每个通道,建立邻接矩阵𝑨𝑐,以捕获高阶连接信息。𝑨𝑐中的每一行都表示以行索引表示的用户为中心的相应超图的子图,然后我们可以引出一个层次结构:“用户节点←以用户为中心的子超图←超图”,并从该结构创建自监督信号。自监督任务的目标是,全面的用户表示应该反映用户节点在不同超图中的局部和全局的高阶连接模式,可以通过分层最大化用户表示、以用户为中心的子超图和每个通道中的超图之间的互信息来实现这一目标。互信息测量子图和整个超图的结构信息量,以通过降低局部和全局结构的不确定性来推断用户偏好。为了获得子超图的表示,而不是平均用户在子超图中的嵌入,设计了一个函数𝑓out1,它的序列是不变的,并表述为:

这样,就考虑了子超图中每个用户的权重,形成子超图嵌入z_u。类似地,定义了另一个函数𝑓out2,这实际上是一个平均池化,将获得的子超图嵌入到一个图级表示中:
遵循DGI,使用InfoNCE作为我们的学习目标,以最大化层次互信息。但作者发现,与二元交叉熵损失相比,成对排序损失(在互信息估计中也被证明是有效的)更适合推荐任务。因此定义自监督任务的目标函数如下:
图5说明了分层互信息最大化。这实际上是一个平均池化,将获得的子超图嵌入到一个图级表示中:
图5. 超图上的分层互信息最大化最后,将推荐任务的目标(主要的)和最大化层次互信息的任务(辅助的)统一起来进行联合学习。总体目标定义为:
当前 SOTA!平台收录 MHCN 共 2 个模型实现资源。


项目SOTA!平台项目详情页



MHCN 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/mhcn


、排序模型

1、 FFM

点击率(Click-through rate,CTR)的预测在计算广告中起着重要作用。基于二度多项式映射和因数机(factorization machines,FMs)的模型是这项任务中的一个常用技术。最近,在一些世界范围内的CTR预测比赛中,FMs的一个变体(场感知分解机(fieldaware factorization machines,FFMs)),效果超过了现有模型。基于上述启发,本文构建了FFMs作为分类大型稀疏数据的有效方法,特别是针对来自CTR预测的数据。

FFM是在FM的基础上引入了filed的概念,把几个相同性质的特征归结为一个filed。如,不同的日期属于一个field,不同的年龄属于一个filed。不同field中的特征单独进行one—hot。FFM认为,一个特征和另一个特征的关系,不仅仅由这两个特征决定,还应该和这两个特征所在的field有关。因此,每个特征,应该针对其他特征的每一种field 都学一个隐向量,也就是说,每个特征都要学习 f 个隐向量,那么FFM的二次项,有nf个隐向量。

文中使用的样例如下:
在FFM中,每个特征都有几个潜在的向量。根据其他特征的领域,其中一个特征被用来做内积。在本文例子中,φFFM(w, x)表述为:
为了学习(ESPN, NIKE)的潜在效应,使用w_ESPN,A是因为耐克属于广告商领域,而使用w_Nike,P是因为ESPN属于发布者领域。同样,为了了解(EPSN, Male)的潜在效应,使用w_ESPN,G是因为Male属于字段Gender,而使用w_Male,P是因为ESPN属于字段Publisher:
对于FFM的输入格式,参考LibSVM输入格式,将FFM定义为:
因此,需要为每个特征分配相应的字段。对于某些类型的特征来说,分配是很容易的,但对于其他一些特征来说就不可能了。作者在文中考虑了几种典型的输入特征,包括类别特征、数值特征、field特征等,具体讨论了分配字段的问题。以类别特征为例,对于线性模型,一个分类特征通常被转换为几个二进制特征。对于一个数据实例:
生成如下LIBSVM格式:
根据分类特征中可能的值的数量,生成相同数量的二进制特征,每次都只有一个值是1。在LIBSVM格式中,零值的特征不存储。对所有的模型采用相同的设置,每一个分类特征都被转化为几个二进制表征。为了增加字段信息,我们可以将每个类别视为一个字段。那么上述实例就变成了:
当前 SOTA!平台收录 FFM 共 2 个模型实现资源。



项目SOTA!平台项目详情页



FFM 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/ffm-2

2、 FNN

预测用户的反应,如点击率和转换率,在许多网络应用中是至关重要的,包括网络搜索、个性化推荐和在线广告。与我们通常在图像和音频领域发现的连续原始特征不同,网络空间的输入特征总是多领域的,而且大多是离散的和分类的,而它们的依赖关系却鲜为人知。主要的用户反应预测模型要么仅限于线性模型,要么需要手动建立高阶组合特征。前者失去了探索特征相互作用的能力,而后者则导致在大的特征空间中的计算量很大。为了解决这个问题,本文提出了两个新的模型,使用深度神经网络(DNNs)从分类特征互动中自动学习有效模式,并对用户的广告点击进行预测。为了使DNN有效地工作,作者建议利用三种特征转换方法:因式分解机(FMs)、受限玻尔兹曼机(RBMs)和去噪自动编码器(DAEs)。
图6. 4层FNN结构

第一种模型是FNN结构。输入的分类特征是由字段组成的独热编码。对于每个字段,例如城市,有多个单元,每个单元代表这个字段的一个特定值,例如,城市=伦敦,只有一个正的(1)单元,而其他的都是负的(0)。编码的特征,表示为x,是许多CTR估计模型以及本文DNN模型的输入,如图6的底层所描述的。从图16可以看出,FNN的思想非常简单——直接在FM上接入若干全连接层。利用DNN对特征进行隐式交叉,可以减轻特征工程的工作,同时也能够将计算时间复杂度控制在一个合理的范围内。

最底层是field-wise one-hot的。文中从上到下对整个模型进行了说明。最上面一层用sigmoid来输出预估的CTR值:
w_0(1维)是全局bias,对应FM中的w0。n是field的个数。z_i(k+1维)是FM中第i个域的参数向量。(z_i其实就是特征域i对应的嵌入向量加上一个w_i):
x[start_i : end_i]确定了第i个域中的所有特征。W_0((k+1) * (end_i-start_i+1)维)为特征域i对应的所有权重。(W_0)i由FM中的w_i(1维实数,特征域是几维的就有几个)和FM中的v_i(k维向量,特征域是几维的就有几个)来初始化。通过训练一个FM模型完成了对z的初始化:
FM中的w_i是一个数,每个特征x_i对应一个w_i,用FM中的w_i来初始化FNN中特征与w相连的权重。FM中的v_i是k维向量,每个特征x_i对应一个v_i,用FM中的v_i(k维)来初始化FNN中特征x_i与该特征域中v向量相连的权重。同时文中提出,hidden layer的权重可以用对比散度做逐层的RBM预训练。完成预训练后,用back-pop做fine-tuning,目标函数为:
SGD的过程中,只有input不为0对应的参数需要更新。


图7. SNN结构

第二种模型是SNN结构。SNN和FNN的不同之处在于最底层的结构和训练方法不同,如图7。SNN的最底层是全连接的,使用的是sigmoid激活函数:

初始化最底层的权重,本文采用了RBM和DAE来做预训练。对于每个field,只有1维是1,然后采样m个负单元,图中黑色的单元是没有被采样到的,因此在预训练的过程中将被忽略。用对比散度来训练RBM,用SGD来训练DAE,然后将训练好的dense vector作为剩余网络部分的输入。与FNN一样,也使用back-pop来fine-tuning模型。为了防止过度拟合,将L2正则化项添加到损失函数中,损失函数如下:
当前 SOTA!平台收录 FNN 共 2 个模型实现资源。



项目SOTA!平台项目详情页



FNN 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/fnn-2
相关文章
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习应用篇-推荐系统[12]:经典模型-DeepFM模型、DSSM模型召回排序策略以及和其他模型对比
深度学习应用篇-推荐系统[12]:经典模型-DeepFM模型、DSSM模型召回排序策略以及和其他模型对比
深度学习应用篇-推荐系统[12]:经典模型-DeepFM模型、DSSM模型召回排序策略以及和其他模型对比
|
12月前
|
机器学习/深度学习 人工智能 搜索推荐
Wide&Deep、DCN、xDeepFM、DIN、GateNet、IPRec…你都掌握了吗?一文总结推荐系统必备经典模型(三)(3)
Wide&Deep、DCN、xDeepFM、DIN、GateNet、IPRec…你都掌握了吗?一文总结推荐系统必备经典模型(三)
192 0
|
12月前
|
机器学习/深度学习 搜索推荐
Wide&Deep、DCN、xDeepFM、DIN、GateNet、IPRec…你都掌握了吗?一文总结推荐系统必备经典模型(三)(2)
Wide&Deep、DCN、xDeepFM、DIN、GateNet、IPRec…你都掌握了吗?一文总结推荐系统必备经典模型(三)
158 0
|
12月前
|
机器学习/深度学习 搜索推荐 算法
Wide&Deep、DCN、xDeepFM、DIN、GateNet、IPRec…你都掌握了吗?一文总结推荐系统必备经典模型(三)(1)
Wide&Deep、DCN、xDeepFM、DIN、GateNet、IPRec…你都掌握了吗?一文总结推荐系统必备经典模型(三)
146 0
|
12月前
|
机器学习/深度学习 人工智能 移动开发
PinnerSAGE、ENSFM、MHCN、FFM…你都掌握了吗?一文总结推荐系统必备经典模型(二)(3)
PinnerSAGE、ENSFM、MHCN、FFM…你都掌握了吗?一文总结推荐系统必备经典模型(二)
187 0
|
12月前
|
机器学习/深度学习 分布式计算 搜索推荐
PinnerSAGE、ENSFM、MHCN、FFM…你都掌握了吗?一文总结推荐系统必备经典模型(二)(1)
PinnerSAGE、ENSFM、MHCN、FFM…你都掌握了吗?一文总结推荐系统必备经典模型(二)
150 0
|
12月前
|
机器学习/深度学习 人工智能 搜索推荐
DSSM、Youtube_DNN、SASRec、PinSAGE…你都掌握了吗?一文总结推荐系统必备经典模型(一)(3)
DSSM、Youtube_DNN、SASRec、PinSAGE…你都掌握了吗?一文总结推荐系统必备经典模型(一)
196 0
|
12月前
|
机器学习/深度学习 自然语言处理 算法
DSSM、Youtube_DNN、SASRec、PinSAGE…你都掌握了吗?一文总结推荐系统必备经典模型(一)(2)
DSSM、Youtube_DNN、SASRec、PinSAGE…你都掌握了吗?一文总结推荐系统必备经典模型(一)
283 0
|
12月前
|
机器学习/深度学习 自然语言处理 搜索推荐
DSSM、Youtube_DNN、SASRec、PinSAGE…你都掌握了吗?一文总结推荐系统必备经典模型(一)(1)
DSSM、Youtube_DNN、SASRec、PinSAGE…你都掌握了吗?一文总结推荐系统必备经典模型(一)
256 0
|
4月前
|
搜索推荐 算法 前端开发
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
114 4
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】