网络嵌入(图嵌入)在真实世界中已经有了非常大规模的应用,然而现存的一些网络嵌入(图嵌入)相关的方法主要还是集中在同质网络的应用场景下,即节点和边的类型都是单一类型的情况下。但是真实世界网络中每个节点的类型都多种,每条边的类型也有多种,而且每一个节点都具有不同且繁多的属性。所以本论文提出了一种在Attributed Multiplex Heterogeneous Network中进行嵌入学习的统一框架,并提供了充分了数学理论分析,还在数据集Amazon, YouTube, Twitter, and Alibaba上进行了大量的实验。实验结果表明,利用此框架学习到的嵌入有惊人的性能提升,F1 scores可提高5.99-28.23%,而且该框架还成功地部署在全球领先的电子商务公司阿里巴巴集团的推荐系统上。对产品推荐进行离线A/B测试的结果进一步证实了该框架在实践中的有效性和效率。
https://github.com/cenyk1230/GATNE
网络嵌入或网络表示学习是一种在保持网络结构和固有属性的同时,将网络中的节点映射到低维连续空间的一种很有前景的方法。最近,由于下游网络学习任务如节点分类、链路预测和社区检测的显著进步,它引起了极大的关注。Deepwalk、LINE和Node2VEC,是将深度学习技术引入网络分析以学习节点嵌入的开拓性工作。NetMF[29]对不同的网络嵌入算法给出了等价的理论分析,之后的NetSMF[28]通过稀疏化给出了可扩展的解决方案。尽管如此,它们被设计成只处理具有单一类型节点和边缘的同构网络。现实世界的网络结构应用,如电子商务,则要复杂得多,不仅包括多类型的节点和或边缘,还包括一组丰富的属性。由于其重要性和挑战性的要求,在研究复杂网络嵌入学习的文献中进行了大量的尝试。根据网络拓扑结构(同质或异构)和属性(有无属性),我们对六种不同类型的网络进行了分类,并分别总结了它们的相对综合发展,分别在表1中分为不带属性的同质网络(或HUN)、带属性的同构网络(或AHON)、不带属性的异构网络(或HEN)、带属性的异构网络(或AHEN)、多重异构网络(或MHEN)和属性复用异构网络(或AMHEN)。可以看出,最后一种,即对节点多类型、边多类型且带权重的异质网络的研究最少。
例如,在电子商务系统中,用户可以与项目进行多种类型的交互,如单击、转换、添加到购物车、添加到首选项。图1说明了这样一个例子。显然,“使用者”和“物品”具有本质上不同的性质,不应受到平等对待。此外,不同的用户项交互意味着不同的兴趣水平,应该给予不同的待遇。否则,系统无法精确地捕获用户的行为模式和偏好,不足以实际使用。
挑战:
左边举例说明了一个属性化多工异构网络的示例。图形左边的用户与属性相关联,包括性别、年龄和位置。同样,图中左边的项目包括价格和品牌等属性。用户和项之间的边缘类型来自四个交互,包括单击、加载项首选项、添加到购物车和转换。中间的三个子图代表了三种不同的图形设置方式,包括自下而上的HUN、MHEN和AMHEN。右边部分展示了在阿里巴巴数据集上所提出的模型在深度行走上的性能改进。可以看到,与深度行走相比,Gatne-I的性能提升了28.23%。
此图总结了当前研究领域中的6大网络类型,以及每一种网络类型对应的经典的研究方法。(非常重要)清楚地告诉我们当前的研究领域中,哪些研究领域还研究得不够,便于我们深入研究和学习。
=====================================================================
最近更新(2020年2月21日)
=====================================================================
针对网络嵌入的相关工作主要有两大部分构成,一部分是图嵌入,一部分是图神经网络。图嵌入方面的相关代表有Deepwalk、LINE、Node2vec以及NetMF,Deepwalk源于NLP(自然语言处理)方面的Word2vec,将Word2vec应用到社交网络体现出了良好的效果,LINE主要是针对大规模网络,Node2vec是在Deepwalk的随机游走上进行了改进,使得游走不再变得那么随机,使得其概率可控,具体就不做过多赘述。对于图神经网络,GCN通过卷积神经网络结合了邻居节点的特征表示融入到节点的表示中,GraphSAGE它就是一个典型的生成式模型,且它结合了节点的结构信息,而且,它不是直接为每个节点生成嵌入,而是生成一个可以表示节点嵌入的函数表示形式,这样的模型,也就是这种生成式模型,有助于它在训练期间对未观察到的节点进行归纳和判断。
异构网络具有各种类型的节点和/或边缘的场景。众所周知,这种网络很难挖掘,因为异质内容和结构的组合是很多的。创建这样的数据的多维嵌入,为多种现成的多维数据挖掘技术打开了大门。尽管这一问题很重要,但在嵌入动态和异构数据的可伸缩网络方面所做的努力有限。HNE就在网络中加入了内容信息以及网络拓扑结构信息来表示异质网络中的不同节点,PTE是从标记信息和不同层次的单词共现信息构建大规模异构文本网络,然后再嵌入到低维空间中,metapath2vec中又提出了一种基于异质网络的元路径的随机游走法则,根据人为规定的Pattern(模式)进行游走,再使用异质的skip-gram对元路径上的每个节点嵌入表示,HERec提出了基于随机游走策略产生一个有一定意义的节点序列,然后再去学习首先由一组融合函数转换并随后集成到扩展矩阵因式分解(M F)模型中的网络嵌入
现有的方法,通常研究节点之间只具有单一关系的网络,且它只捕获网络的单个视图。然而,在现实中,节点之间通常存在多种类型的关系,产生具有多个视图的网络,或者多重网络嵌入。PMNE就提出了一个方法,此方法能将一个Multiplex network投影到一个连续的向量空间,MVE则引入了注意力机制协助嵌入具有多个视图的网络,MNE则为每个节点使用一个常见的嵌入和几个附加的基于每种不同边类型的嵌入,这是由一个统一的网络嵌入模型共同学习的。Mvn2vec探讨了通过同时建模、保存和协作分别在不同视图中表示边缘的语义意义来实现更好的嵌入结果的可行性。
带属性的网络嵌入的目标是找一个低维向量来表示网络中的节点,且最大化这个低维向量能够保存原网络结构的拓扑结构以及属性的能力,TADW这个方法,是在矩阵分解框架下,将节点的文本特征纳入网络表示学习,LANE将标签信息集成到属性网络嵌入中,同时还保持了它们的相关性,AANE提出了一个联合学习过程,其能够以分布式方式进行加速属性网络嵌入,SNE提出了一种通过捕捉结构邻近性和属性邻近性来嵌入社交网络的通用框架,DANE能够捕捉高度非线性且能够既在网络拓扑结构和节点属性上,保留多种邻近性特征,ANRL使用了 neighbor enhancement autoencoder(邻居增强自动编码器)来对节点属性信息进行建模,再使用基于属性信息编码的attribute-aware skip-gram model模型来捕捉网络结构。
(因为这一部分不是重点,问题定义部分截图表示,具体描述请参考原论文)
=============================== 重点!! ==========================================
=============================== 重点!! ==========================================
=============================== 重点!! ==========================================
这一部分,我们重点解释一下本论文提出来的GATNE模型,一个是Transductive Model: GATNE-T、一个是Inductive Model: GATNE-I。同时,这篇论文也与最近很流行的模型MNE进行了理论对比,因为一个网络中,现实中的真实情况是社交网络只能观察到部分而不是全部都能观察到,那么为了解决部分观察的问题,那么本论文又在GATNE-T的模型上做了一个延伸,生成了一个新模型,叫作:GATNE-I
从上面这张图中,我们来详细谈谈GATNE-T模型,这个模型的应用对象是带有属性的多重异质网络,GATNE-T将每个节点的整体嵌入分离成“基本嵌入”和“边嵌入”两部分,如上图中间部分的上下两个部分——“base embedding”和“edge embedding”。其中base embedding的目的是分离出网络的拓扑特征,edge embedding(边嵌入)是针对某一特定节点在不同的边类型上嵌入表示,以这个节点为例,我们想要计算它的边嵌入,就首先要观察跟它相连的边类型有几种,我们可以发现跟它相连的边类型有2种:橙色和蓝色,那么我们针对这个节点分别将橙色类型的边和蓝色类型的边分离出来就形成了新的2个网络结构,和,通过公式分别将邻居节点进行聚合,其中k表示与节点i相连的k阶邻居(更新:这里有人提出k表示k次递归而不是k阶邻居,我在这里简单说一下,k阶代表k次迭代的边嵌入,它的思想参照了graphSAGE的思想,对节点进行递归聚合,我所表达的k阶邻居的意思是以此节点为中心,迭代的最远距离为k,所以我把其称为k阶邻居,当它在递归的过程中它始终在向外延伸,在选择邻居节点时很关键,我们也可以借鉴node2vec思想避免其在选择邻居时往回走陷入死环,如果不存在这种情况那么每次递归都是在向外延伸),比如上图,上图就只采用了一阶邻居描述方式,表示基于节点i且与节点i相连的边类型为r的网络的聚合嵌入表示,表示节点i在边类型r上的邻居集合,那么最开始的边嵌入是随机初始化的。那么我们通过参考GraphSAGE模型可以计算出每种边类型的嵌入表示,有两种方式,如果采用平均池化则为:,如果采用最大池化则为:。
接下来,我们将基于不同边类型网络各自生成的某一特定节点i的边嵌入表示为,等等,我们将基于不同边类型网络生成的不同边嵌入合并为一个矩阵为:,U的shape为s x m,其中m表示边类型的数目,s表示每个边嵌入的维度。由于不同的边类型具有不同的重要性,在这里引入了“自注意力机制”,来计算不同类型的边嵌入的重要系数为,其计算公式为:,其中的和都是基于边类型r的可训练的参数,因此,节点i在边类型r上上的整体嵌入为:,其中为超参数(人为定义),为可训练的转换矩阵。公式进行变化可表示为:,自注意力系数通过softmax算出为。
总的来说,GATNE-T模型对每个节点的嵌入表示,没有融合节点属性,而是针对与节点相连的不同类型的边类型分别聚合邻居节点生成各自的边嵌入表示,然后再引入自注意力机制进行计算各自的注意力系数(即各自不同的重要性)来进行一个融合,从而得到节点的整体嵌入表示。此模型充分地考虑了异质边类型对节点嵌入的影响,但是并未考虑节点附加属性对节点嵌入表示的影响,于是,在此模型的基础上进行延伸扩展,提出了GATNE-I模型。
在现实的社交网络中,通常存在一些观察不到的数据,那么GATNE-T模型的局限性就是不能处理那么观测(观察)不到的数据,然后,在现实生活大量的应用中,被网络化的数据常常是部分被观测到,于是提出了模型GATNE-I,此模型能够更好地处理那些不能被观测到的数据部分。
GATNE-I模型与GATNE-T其中的一个区别就在对的定义上,然而GATNE-I对的初始化提出了另外一种方式,就是通过将节点i的属性向量通过一个函数转换后再作为bi进行运算,,xi为节点i的属性向量,hz()函数为转换函数,z的意思就是节点i所对应的节点类型,针对不同的节点类型生成函数hz()也不同(h()也可能为多层感知机),因为不同类型的节点对应的属性也具有不同的维度。
其中GATNE-T模型中采用随机初始化的方式,然后GATNE-I模型也采用了函数变换的方式,通过函数变换节点属性得到预处理后的值作为,记作。对于GATNE-I更特别的一点是,,在计算整体嵌入的过程中,加入了额外的属性字段,其中是超参,是对于不同类型节点的一个转换矩阵。
从以上我们可以看出,GATNE-T和GATNE-I最大的区别就在和的初始化生成方式。在GATNE-T模型中,和都是直接参与节点嵌入运算且不能处理那些在训练中看不到的节点,然而对于GATNE-I,它模型不再为每一个节点直接训练和,而是通过训练两个函数,将节点属性xi分别通过两个函数生成,这样有助于在训练过程中哪怕看不到这个节点,但是只要这个节点有它所对应的原特征就可以。
这部分我会讲一下如何去优化和学习这两个模型。首先,我们通过随机游走生成节点序列,然后利用skip-gram模型针对生成的节点序列进行学习嵌入表示,但是由于我们输入的网络形式为异质网络形式,所以这里我们采用的是metapath2vec中的基于元路径的随机游走模式,给定一个pattern:,游走定义:
(具体论文可参照metapath2vec)
因为基于元路径的随机游走方式可以保障不同类型节点之间的语义关系,然后进而可以更好地与skip-gram模型进行融合,那么我们假设在边类型为r的网络上随机游走的长度为l,,我们取出其中一个节点对,其中C为的上下文节点集合,其中c是此节点的上下文窗口半径。
因此我们知道了节点vi以及它的上下文节点集合C,那么我们的目标就是去优化这个函数:
其中表示所有可优化的参数,然后我们根据metapath2vec利用异质的softmax函数来计算在已知vi的情况下,vj出现的概率:
其中是节点的上下文节点,是在边类型为r的节点i的整体嵌入表示。
最后再采用异质的负样本采样,针对每一个节点对,去近似这个函数:
其中的激活函数为:(sigmoid函数)
具体算法如下:
实验主要采用链接预测的方式进行比较本论文提出的方法和之前一个state-of-the-art方法进行对比,以及参数的敏感性、收敛性、以及其规模,最后将介绍此方法运用到阿里巴巴推荐系统上的测试结果。
数据集:
Amazon:在这个数据集中,我们只使用电子产品类别的产品元数据,包括产品属性和产品之间的共同购买链接,产品属性包括价格、销售等级、品牌和类别
YouTuBe:YouTube数据集是一个多路双向网络数据集,由15088个YouTube用户之间的五种类型的交互组成,边缘的类型包括用户之间的联系人、共享朋友、共享订阅、共享订阅者和共享最喜欢的视频
Twitter:推特数据集是关于2012年7月1日至7日发现希格斯玻色子的推特,它由450,000多个Twitter用户之间的四个方向关系组成,这些关系是Twitter用户之间的关系、回复、提及和友谊/追随者关系。
Alibaba:阿里巴巴数据集由四种类型的交互组成,包括单击、添加到首选项、添加到购物车,以及用户和项目两种类型节点之间的转换。抽样的阿里巴巴数据集被表示为阿里巴巴-s,还在阿里巴巴的分布式云平台上提供了整个数据集的评估,完整的数据集被表示为阿里巴巴。
链接预测是学术界和工业界共同的任务。对于学术界来说,它被广泛用于评估不同方法获得的网络嵌入的质量。在这个行业中,链接预测是一项非常艰巨的任务,因为在现实世界中,我们通常面临部分链接的图表,特别是对于依赖用户和项目之间的链接进行推荐的电子商务公司。我们从原始图中隐藏一组边/非边,并在剩余的图上进行训练。
本论文的实验创建了一个验证/测试集,其中包含5%/10%的随机选择的正边,每个边缘类型的随机选择负边的等效数,且验证集还用于超参数调优和早期停止,测试集用于评估性能,并且只在调好的超参数下运行一次,本论文还在实验中使用了一些常用的评估标准,即Roc曲线下的面积(Roc-auc)和Pr曲线(Pr-auc)。并且,还使用了F1分数作为评估的另一个度量。
为了避免阈值效应[37],假设还给出了测试集中的隐藏边数。所有这些度量都是在选定的边缘类型之间统一平均的。
三个公共数据集和Alibaba-s的实验结果如上表所示,GATNE的性能优于各种数据集中的各种基线。由于节点属性有限,GATNE-t在Amazon数据集上获得了比GATNE-i更好的性能。阿里巴巴数据集的节点属性丰富,使GATNE-I获得最佳性能。ANRL对节点属性是否丰富非常敏感,在Amazon数据集上得到了最糟糕的结果。用户和项目的不同节点属性也限制了ANRL在Alibaba-s数据集上的性能。在youtube和twitter数据集上,非常敏感GATNE-I的表现与GATNE-T类似,因为这两个数据集的节点属性是deepwalk的节点嵌入,这是由网络结构生成的。
阿里巴巴数据集上的体现:上表,列出了阿里巴巴数据集的实验结果。在阿里巴巴数据集上,GATNE的性能非常好,并达到了最好的性能,PR-auc的性能提升率为2.18%,Roc-auc的性能提升率为5.78%,F1分数为5.99%,与以前最好的算法相比,效果最好。在大规模数据集中,GATNE-I的性能优于GATNE-T模型,这表明归纳方法在大规模属性多重异构网络上工作得更好,这在现实世界中通常是如此。
收敛性:本论文也分析了模型在阿里巴巴数据集上的收敛性。结果如图(a)所示,表明GATNE-I收敛得更快,而且,在极大规模的真实世界数据集上获得比GATNE-T更好的性能。
可伸缩性分析:论文研究了GATNE的可伸缩性,它已经部署在多个工作人员上进行优化。(b)显示了阿里巴巴数据集上的工人数量。图中显示,GATNE在分布式平台上是相当可伸缩的,当我们将工人数量相加时,培训时间显著减少,最后,诱导模型需要不到2小时才能与150名分布式工人收敛。我们还发现,随着工人数量的增加,GATNE-I的训练速度几乎呈线性增加,但小于150。而GATNE-T收敛较慢,当工人数量大于100时,它的训练速度即将达到极限。除了最佳的性能外,GATNE也是可扩展的,足以在实践中采用。
参数敏感性:我们研究了GATNE中不同超参数的灵敏度,包括整体嵌入维数d和边缘嵌入维数s。上图说明了GATNE从默认的(d=200,s=10)改变base嵌入维d或边缘嵌入维数s时的性能。我们可以得出结论,在较大的基边嵌入尺寸范围内,GATNE的性能相对稳定,当base边嵌入尺寸过小或过大时,性能下降。
在阿里巴巴的分布式云平台上为其推荐系统部署了归纳模型GATNE-I。培训数据集约有1亿用户和1000万项,每天有100亿次交互。我们使用该模型为用户和项目生成嵌入向量。对于每个用户,我们使用具有欧几里德距离的k最近邻(KNN)来计算用户最有可能单击的top-n项。实验目标是最大限度地提高顶级命中率。在a/b测试的框架下,我们对gatne-i、mne和Deepwalk进行了离线测试。结果表明,与MNE和Deepwalk相比,Gatne-I的命中率分别提高了3.26%和24.26%。
在本论文中形式化了属性多重异构网络嵌入问题,并提出了GATNE来解决它的传输和感应设置。我们将Gatne-I的整体节点嵌入分为三个部分:基嵌入、边缘嵌入和属性嵌入。基嵌入和属性嵌入在不同类型的边缘之间共享,而边缘嵌入是通过邻域信息的聚集和自我注意机制来计算的。与以前最先进的方法相比,我们提出的方法在多个具有挑战性的数据集上实现了更好的性能。该方法已在阿里巴巴的推荐系统上成功地部署和评估,具有良好的可扩展性和可扩展性。