「工业落地」阿里异质图神经网络推荐:19KDD IntentGC
IntentGC: a Scalable Graph Convolution Framework Fusing Heterogeneous Information for Recommendation
背景介绍
文章核心思想?
文章收集大量user-item信息,比如说用户购买品牌、用户偏好的类别、用户浏览的商店、用户搜索的记录;item的品牌、item类别、item店铺、item性质等,利用这些信息构造异构图,提出了IntentGC模型,可以结合不同类型关系学习。在IntentGC中,还设计了快速GCN模型:IntentNet,避免不必要的特征交互,减少模型复杂度。本文提出的模型在大规模真实数据中表现良好。
本文工作:
1. 充分利用辅助信息。文中把一阶关系转化为二阶关系构图。一阶相似性:如果用户1搜索了Spiderman,那么可以认为用户1和Spiderman直接相连,认为他们有一阶相似性。二阶相似性:如果用户1和用户2都搜索了Spiderman, ironman, thor,我们认为这两个用户的关系更强,有二阶相似性。文章根据不同节点类型,产生二阶相似性的异构关系,并对二阶关系赋予权重,实验表示学习这种二阶相似度可以改善模型的表现。
2. 快速图卷积。为了减少模型复杂度,我们提出了IntentNet快速图卷积方法,此方法将图卷积划分为两个部分:1)vector-wise邻居卷积部分;2)节点特征交互的全连接部分。通过此种方法避免了无意义的特征交互,此种方法比GraphSAGE更高效。
3. 异构网络中二部图卷积:分别利用两个IntentNet来学习用户和item的向量表示,将二者全连接映射到同一个向量空间后,显式学习用户和item的相关性
user-item 推荐问题定义
用户节点 , item节点
,其他类型节点
(品牌、搜索、店铺等),边
,其中
是用户和item节点之间的边,
表示其他类型的边。推荐问题是要根据用户的历史行为来预测用户可能偏好的item,可以 把user-item推荐问题看作是链路预测问题,即预测用户和item之间是否有边相连。
算法原理
模型分为三个部分:
Network Translation 把原始图转化为user-user, item-item, user-item图
Faster Convolution Network: IntentNet 快速卷积算法学习用户和item的向量表示
Dual Graph Conbolution in HIN: 学习用户和向量的链接关系
Network Translation
网络中有多种信息,下图为电子商务网络中有多种信息的异构图。左边为用户,右边为item,节点有多种类型:品牌、商店、类别、搜索、性质等;边也有多种类型:购买、浏览、搜索、偏好、属于、共现等,利用如此多的信息进行建模时,复杂度很高,然而在推荐系统中,我们只需要考虑user和item的关系,因此我们希望把原始复杂的图转化为user-user, item-item,user-item关系图。
具体来说,比如说当两个用户购买过同一个品牌时,则这两个用户有一条边相连(二阶关系);两个item属于同一家店铺时,则这两个item有一条边相连(二阶关系)。
我们首先只考虑 其中
表示用户节点,
表示item节点,
表示其他任意一种类型节点,通过上述思想针对
添加新的二阶关系,并且移除除user和item的其他类型节点,得到简化图
,其中U和V是user和item节点,
是上述产生的user-user,item-item二阶关系,
是原始边,
表示
的边权重,
表示根据边权重得到的top
个同种类型的邻居节点。
现在考虑所有R种类型节点 ,我们利用上述步骤分别产生user-user/item-item边,由于
为用户和item,所以一共可以产生
种异构图,每个图的边为
(或
),权重矩阵为
(或
),节点邻居为
(或
)。
通过上述translated产生图G为user-item HIN,我们的目的就是给定user-item HIN图预测用户和item之间的交互关系
Faster Convolution Network: IntentNet
类似于GraphSAGE聚合邻居的操作进行卷积,先只考虑一种异构关系:
Bit-wise convolution operation(传统的GraphSAGE操作)
首先聚合邻居信息:
然后把邻居信息聚合到当前节点:
Vector-wise convolution operation
在表示学习种,卷积操作有两个任务:一方面是学习节点和邻居之间的交互,学习每个邻居对当前节点的影响;另一方面是学习向量空间中不同维度的交互,自动提取有用的特征组合。然而,用户第i维和第j维的交互可能很少,比如说当前用户行为只和部分特征(如年龄和职业)有关,而和其他特征无关,所以没有必要像上式一样考虑所有特征之间的交互关系。基于以上考虑,本文提出针对向量维度进行加权学习:
其中 和
表示节点第i个自身和邻居交互的权重,多个局部的过滤器是共享的,有点类似于CNN的思想,下图为两种学习方法的比较:
IntentNet
通过上述卷积层后,再利用三个全连接层,来学习向量空间不同维度特征的交互。因此IntentNet分成两个部分:
vector-wise convolution 学习邻居节点
fully-connected layers 提取节点水平的聚合特征
这种IntentNet模型比传统的GCN方法更高效,可以避免无效的特征交互,且不容易过拟合。
复杂度分析
假设向量维度为m,采样p个邻居,L个局部过滤器 ( )
IntentNet:
GraphSAGE:
Heterogeneous relationships
现在考虑所有R-2种user-user关系,模型可以泛化为:
即学习不同类型邻居的贡献。下图为两层的IntentNet 模型,其中Convolve可以看作上文提到的 ,利用不同类型异构图的邻居信息计算而来。
Dual Graph Convolution in HIN
为了学习用户和item的交互关系,我们提出二部卷积图
Step1:对每个user-item link 采样负样本,生成三元组
Step2:分别利用IntentNet学习用户和item的embedding:
Step3:最小化损失函数
,核心思想就是用户和item的相似性应该大于用户和负样本的相似性,user-item相似度较高的组合会有边相连
IntentGC Framework
综上所述,IntentGC网络分为三个部分:
Network Translation
把原始的异构网络转化为user-item异构网络
2. Training
Step1:初始化所有参数
,得到user和item的特征矩阵
Step2:对每个batchnum采样三元组
Step3:对每个三元组利用IntentNet学习向量表示:
Step4:最小化损失函数,更新参数
3. Inference
通过上述得到所有user和item的向量 ,利用K近邻算法得到每个user对应的邻居连接
参考文献
Zhao, J., Zhou, Z., Guan, Z., Zhao, W., Ning, W., Qiu, G., & He, X. (2019, July). IntentGC: a Scalable Graph Convolution Framework Fusing Heterogeneous Information for Recommendation. In Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining (pp. 2347-2357).