本文主要是介绍IntentGC:a Scalable Graph Convolution Framework Fusing Heterogeneous Information for Recommendation,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这是阿里巴巴发表在KDD2019的论文,主要是融合了异构信息网络中的许多辅助信息进行推荐。
【原文链接】
【摘要】从常见的用户行为和项目信息中收集了大量的关系,并提出了一个新的框架IntentGC,在图卷积网络上利用显式偏好和异构关系,并减少了不必要的特征交互。
【原理】
1.捕获了大量的异构关系来提高推荐的性能。
2.为了方便操作和提高鲁棒性,将一阶近似的辅助关系转化为二阶近似的更鲁棒性的加权关系。例如,如果user1提交了一个查询词“Spiderman”,我们认为user1和“Spiderman”之间存在联系(一级接近度)。如果user1和user2都提交查询词“蜘蛛侠”、“钢铁侠”,
“雷神”,我们认为在user1和user2之间有一个更强大的关系(二级接近度),因为他们可能是漫威的粉丝。
【模型框架】
该模型分为三个部分:
1.Network Translation
该部分是将原始的复杂的图翻译成一个特定的HIN(异构信息网络)
ps:异构信息网络可简单理解为具有各自性质的许多节点相互连接,如下图:
回到正题,如何将原始网络翻译成HIN呢
由于在推荐系统中只关心用户和项的表示,可将原始的辅助关系转换为用户-用户关系或项目-项目关系。直观上,如果用户u1和u2都通过一个辅助节点连接,那么u1和u2之间也存在着间接的关系。在该文中,利用二阶近似来捕捉两个用户(或项目)之间的相似性,即通过它们共享的同一类型的公共辅助邻居的数量来度量相似性。原始图中的User-Item连接仍然保留。
2.Faster Convolutional Network: IntentNet
1)Bit-wise and vector-wise graph convolution
GCNs的核心思想是通过局部过滤器对邻域特征信息进行迭代聚合。由于计算复杂度较高,不适用于大规模的图中,因此许多专家学者提出了不同的方法,但这些方法都是基于同构信息图,在异构信息图中并不具有很好的效果,因此本文提出了Vector-wise的方法。在说这个之前,先看下文中提及的Bite-wise方法:
上式表示将k-1次迭代的邻居节点嵌入进行聚合,AGGREGATE函数是一个池化函数,可用平均池化函数等
在聚合之后,通过一个卷积函数来结合节点和邻域的信息,然后通过全连接神经网络层与非线性激活σ:
注意到没有必要学习连接向量中每一对特征之间的所有特征交互,因此提出了按向量的卷积:
每个局部滤波器(3)式可以看作是学习自节点和邻域如何以向量方式相互作用,再通过卷积函数将不同过滤器的聚合结果进行聚合:
2)IntentNet
其核心思想是将图形卷积的工作分解为两个部分:用于学习邻域效用的向量向卷积和用于提取节点级组合特征的全连通层。
可以通过建立堆叠的卷积层来形成一个网络,这个网络具有很高的效率,并且能够从邻域传播中学习有用的相互作用。再通过三个全连通的层来进一步提供最后一个卷积层的输出表示,以了解嵌入空间不同维度之间的特征交互。
3.Dual Graph Convolution in HIN
使用xu和xv分别表示用户u和项目v的输入特征向量。此外,我们还为每个用户-项链接抽样一个负项,以形成一个完整的训练元组(xu, xv, xneg),其中负项作为训练过程中正项的对比。这个过程是通过构造训练元组,利用IntentNet获得三个节点的最终表示,为了训练模型的参数,最小化以下三重损失函数(最大化边界法):
算法如下:
【总结】
融合了多种信息,并不局限与user-item交互,利用了电商体系下用户的许多信息。同时通过vector-wise的方法提升了运算的效率。
这篇关于IntentGC:a Scalable Graph Convolution Framework Fusing Heterogeneous Information for Recommendation的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!