IntentGC:a Scalable Graph Convolution Framework Fusing Heterogeneous Information for Recommendation

本文主要是介绍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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/179062

相关文章

Spring Framework系统框架

序号表示的是学习顺序 IoC(控制反转)/DI(依赖注入): ioc:思想上是控制反转,spring提供了一个容器,称为IOC容器,用它来充当IOC思想中的外部。 我的理解就是spring把这些对象集中管理,放在容器中,这个容器就叫Ioc这些对象统称为Bean 用对象的时候不用new,直接外部提供(bean) 当外部的对象有关系的时候,IOC给它俩绑好(DI) DI和IO

图神经网络框架DGL实现Graph Attention Network (GAT)笔记

参考列表: [1]深入理解图注意力机制 [2]DGL官方学习教程一 ——基础操作&消息传递 [3]Cora数据集介绍+python读取 一、DGL实现GAT分类机器学习论文 程序摘自[1],该程序实现了利用图神经网络框架——DGL,实现图注意网络(GAT)。应用demo为对机器学习论文数据集——Cora,对论文所属类别进行分类。(下图摘自[3]) 1. 程序 Ubuntu:18.04

SIGMOD-24概览Part7: Industry Session (Graph Data Management)

👇BG3: A Cost Effective and I/O Efficient Graph Database in ByteDance 🏛机构:字节 ➡️领域: Information systems → Data management systemsStorage management 📚摘要:介绍了字节新提出的ByteGraph 3.0(BG3)模型,用来处理大规模图结构数据 背景

A Comprehensive Survey on Graph Neural Networks笔记

一、摘要-Abstract 1、传统的深度学习模型主要处理欧几里得数据(如图像、文本),而图神经网络的出现和发展是为了有效处理和学习非欧几里得域(即图结构数据)的信息。 2、将GNN划分为四类:recurrent GNNs(RecGNN), convolutional GNNs,(GCN), graph autoencoders(GAE), and spatial–temporal GNNs(S

Neighborhood Homophily-based Graph Convolutional Network

#paper/ccfB 推荐指数: #paper/⭐ #pp/图结构学习 流程 重定义同配性指标: N H i k = ∣ N ( i , k , c m a x ) ∣ ∣ N ( i , k ) ∣ with c m a x = arg ⁡ max ⁡ c ∈ [ 1 , C ] ∣ N ( i , k , c ) ∣ NH_i^k=\frac{|\mathcal{N}(i,k,c_{

计算机视觉中,什么是上下文信息(contextual information)?

在计算机视觉中,上下文信息(contextual information)是指一个像素或一个小区域周围的环境或背景信息,它帮助模型理解图像中对象的相对位置、大小、形状,以及与其他对象的关系。上下文信息在图像中提供了全局的语义和结构线索,使模型不仅依赖局部细节,而且能够考虑整个场景或图像的大局。 上下文信息的具体含义 局部与全局信息的结合: 局部信息:这是指某个小区域或某个像素点的特征。通过小

【tensorflow 使用错误】tensorflow2.0 过程中出现 Error : Failed to get convolution algorithm

如果在使用 tensorflow 过程中出现 Error : Failed to get convolution algorithm ,这是因为显卡内存被耗尽了。 解决办法: 在代码的开头加入如下两句,动态分配显存 physical_device = tf.config.experimental.list_physical_devices("GPU")tf.config.experiment

boost.graph之属性

相关宏 BOOST_INSTALL_PROPERTY #define BOOST_INSTALL_PROPERTY(KIND, NAME) \template <> struct property_kind<KIND##_##NAME##_t> { \typedef KIND##_property_tag type; \} 最终形式为 template <> struct proper

安卓aosp14上自由窗口划线边框Freeform Caption实战开发-千里马framework实战

背景: 上一篇文章也分享过aosp14版本上自由窗口的Caption栏的显示原理,今天来讲解一下aosp14版本上如何实现对自由窗口的划线边框功能,相关功能已经在aosp13上面进行实现,具体可以看我的分屏自由窗口专题哈。 就是想要在aosp14上面实现如下功能: 即自由窗口在被触摸放大缩小时候,边框要被画成红色的线条,表示选中。 尝试aosp13老方案: 因为aosp13是在acti

【ZOJ】3874 Permutation Graph 【FFT+CDQ分治】

传送门:【ZOJ】3874 Permutation Graph 题目分析: 容易知道一个个连通块内部的标号都是连续的,否则一定会有另一个连通块向这个连通块建边,或者这个连通块向另一个连通块建边。而且从左到右左边的连通块内最大的标号小于右边连通块内最小的标号。 然后我们可以构造dp方程: dp[n]=n!−i!∗dp[n−i] \qquad \qquad dp[n] = n! - i! *