机器之心编辑
参与:思源
图是一种非常神奇的表示方式,生活中绝大多数的现象或情境都能用图来表示,例如人际关系网、道路交通网、信息互联网等等。正如马哲介绍事物具有普遍联系性,而图正好能捕捉这种联系,所以用它来描述这个世界是再好不过的方法。
但图这种结构化数据有个麻烦的地方,我们先要有图才能进行后续的计算。但图的搭建并不简单,目前也没有比较好的自动化方法,所以第一步还是需要挺多功夫的。只要各节点及边都确定了,那么图就是一种非常强大且复杂的工具,模型也能推断出图中的各种隐藏知识。
不同时期的图建模
其实,我们可以将图建模分为图神经网络与传统的图模型。其中以前的图建模主要借助GraphEmbedding为不同的节点学习低维向量表征,这借鉴了NLP中词嵌入的思想。而图神经网络借助深度学习进行更强大的图运算与图表征。
GraphEmbedding算法聚焦在如何对网络节点进行低维向量表示,相似的节点在表征空间中更加接近。相比之下,GNN最大的优势在于它不只可以对一个节点进行语义表示。
例如GNN可以表示子图的语义信息,将网络中一小部分节点构成的语义表示出来,这是以前GraphEmbedding不容易做到的。GNN还可以在整个图网络上进行信息传播、聚合等建模,也就是说它可以把图网络当成一个整体进行建模。此外,GNN对单个节点的表示也可以做得更好,因为它可以更好地建模周围节点丰富信息。
在传统图建模中,随机游走、最短路径等图方法会利用符号知识,但这些方法并没有办法很好地利用每个节点的语义信息。而深度学习技术更擅长处理非结构文本、图像等数据。简言之,我们可以将GNN看做将深度学习技术应用到符号表示的图数据上,或者说是从非结构化数据扩展到了结构化数据。GNN能够充分融合符号表示和低维向量表示,发挥两者优势。
图建模论文与代码
在GitHub的一项开源工作中,开发者收集了图建模相关的论文与实现,并且从经典的GraphEmbedding、GraphKernel到图神经网络都有涉及。它们在图嵌入、图分类、图表征等领域都是非常重要的论文。
项目地址:
该项目主要收集的论文领域如下所示:
1.Factorization
2.SpectralandStatisticalFingerprints
3.GraphNeuralNetwork
4.GraphKernels
因式分解法
LearningGraphRepresentationviaFrequentSubgraphs(SDM2018)
DangNguyen,WeiLuo,TuDinhNguyen,SvethaVenkatesh,DinhPhung
Paper:
Python:
AnonymousWalkEmbeddings(ICML2018)
SergeyIvanovandEvgenyBurnaev
Paper:
Python:
Graph2vec(MLGWorkshop2017)
AnnamalaiNarayanan,MahinthanChandramohan,LihuiChen,YangLiu,andSanthoshkumarSaminathan
Paper:
PythonHighPerformance:
PythonReference:
Subgraph2vec(MLGWorkshop2016)
AnnamalaiNarayanan,MahinthanChandramohan,LihuiChen,YangLiu,andSanthoshkumarSaminathan
Paper:
PythonHighPerformance:
PythonReference:
Rdf2Vec:RDFGraphEmbeddingsforDataMining(ISWC2016)
PetarRistoskiandHeikoPaulheim
Paper:
PythonReference:
DeepGraphKernels(KDD2015)
Paper:
PythonReference:
SpectralandStatisticalFingerprints
ASimpleYetEffectiveBaselineforNon-AttributeGraphClassification(ICLRRLPM2019)
ChenCai,YusuWang
Paper:
PythonReference:
NetLSD(KDD2018)
AntonTsitsulin,DavideMottin,PanagiotisKarras,AlexBronstein,andEmmanuelMüller
Paper:
PythonReference:
ASimpleBaselineAlgorithmforGraphClassification(RelationalRepresentationLearning,NIPS2018)
NathandeLaraandEdouardPineau
Paper:
PythonReference:
Multi-GraphMulti-LabelLearningBasedonEntropy(EntropyNIPS2018)
ZixuanZhuandYuhaiZhao
Paper:
PythonReference:
HuntForTheUnique,Stable,SparseAndFastFeatureLearningOnGraphs(NIPS2017)
SaurabhVermaandZhi-LiZhang
Paper:
PythonReference:
JointStructureFeatureExplorationandRegularizationforMulti-TaskGraphClassification(TKDE2015)
ShiruiPan,JiaWu,XingquanZhuy,ChengqiZhang,
Paper:
JavaReference:
NetSimile:AScalableApproachtoSize-IndepentNetworkSimilarity(arXiv2012)
MicheleBerlingerio,DanaiKoutra,TinaEliassi-Rad,andChristosFaloutsos
Paper:
Python:
图神经网络
Self-AttentionGraphPooling(ICML2019)
JunhyunLee,InyeopLee,JaewooKang
Paper:
PythonReference:
VariationalRecurrentNeuralNetworksforGraphClassification(ICLR2019)
EdouardPineau,NathandeLara
Paper:
PythonReference:
CrystalGraphNeuralNetworksforDataMininginMaterialsScience(Arxiv2019)
TakenoriYamamoto
Paper:
PythonReference:
ExplainabilityTechniquesforGraphConvolutionalNetworks(ICML2019)
FedericoBaldassarre,HosseinAzizpour
Paper:
PythonReference:
Semi-SupervisedGraphClassification:AHierarchicalGraphPerspective(WWW2019)
JiaLi,YuRong,HongCheng,HelenMeng,WenbingHuang,andJunzhouHuang
Paper:
PythonReference:
CapsuleGraphNeuralNetwork(ICLR2019)
ZhangXinyiandLihuiChen
Paper:
PythonReference:
HowPowerfulareGraphNeuralNetworks?(ICLR2019)
KeyuluXu,WeihuaHu,JureLeskovec,StefanieJegelka
Paper:
PythonReference:
WeisfeilerandLemanGoNeural:Higher-orderGraphNeuralNetworks(AAAI2019)
ChristopherMorris,MartinRitzert,MatthiasFey,,JanEricLenssen,GauravRattan,andMartinGrohe
Paper:
PythonReference:
CapsuleNeuralNetworksforGraphClassificationusingExplicitTensorialGraphRepresentations(Arxiv2019)
MarceloDanielGutierrezMallea,PeterMeltzer,andPeterJBentley
Paper:
PythonReference:
Three-DimensionallyEmbeddedGraphConvolutionalNetworkforMoleculeInterpretation(Arxiv2018)
Paper:
PythonReference:
LearningGraph-LevelRepresentationswithRecurrentNeuralNetworks(Arxiv2018)
Paper:
PythonReference:
GraphCapsuleConvolutionalNeuralNetworks(ICML2018)
SaurabhVermaandZhi-LiZhang
Paper:
PythonReference:
GraphClassificationUsingStructuralAttention(KDD2018)
JohnBoazLee,RyanRossi,andXiangnanKong
Paper:
PythonPytorchReference:
GraphConvolutionalPolicyNetworkforGoal-DirectedMolecularGraphGeneration(NIPS2018)
JiaxuanYou,BowenLiu,RexYing,VijayPande,andJureLeskovec
Paper:
PythonReference:
HierarchicalGraphRepresentationLearningwithDifferentiablePooling(NIPS2018)
ZhitaoYing,JiaxuanYou,ChristopherMorris,XiangRen,WillHamiltonandJureLeskovec
Paper:
PythonReference:
ContextualGraphMarkovModel:ADeepandGenerativeApproachtoGraphProcessing(ICML2018)
DavideBacciu,FedericoErrica,andAlessioMicheli
Paper:
PythonReference:
MolGAN:AnImplicitGenerativeModelforSmallMolecularGraphs(ICML2018)
NicolaDeCaoandThomasKipf
Paper:
PythonReference:
DeeplyLearningMolecularStructure-PropertyRelationshipsUsingGraphAttentionNeuralNetwork(2018)
SeongokRyu,JaechangLim,andWooYounKim
Paper:
PythonReference:
Compound-proteinInteractionPredictionwith-to-LearningofNeuralNetworksforGraphsandSequences(Bioinformatics2018)
MasashiTsubaki,KentaroTomii,andJunSese
Paper:
PythonReference:
PythonReference:
PythonAlternative:
LearningGraphDistanceswithMessagePassingNeuralNetworks(ICPR2018)
PauRiba,AndreasFischer,JosepLlados,andAliciaFornes
Paper:
PythonReference:
EdgeAttention-basedMulti-RelationalGraphConvolutionalNetworks(2018)
ChaoShang,QinqingLiu,Ko-ShinChen,JiangwenSun,JinLu,JinfengYiandJinboBi
Paper:
PythonReference:
CommonsenseKnowledgeAwareConversationGenerationwithGraphAttention(IJCAI-ECAI2018)
HaoZhou,TomYang,MinlieHuang,HaizhouZhao,JingfangXuandXiaoyanZhu
Paper:
PythonReference:
ResidualGatedGraphConvNets(ICLR2018)
XavierBressonandThomasLaurent
Paper:
PythonPytorchReference:
An-to-DeepLearningArchitectureforGraphClassification(AAAI2018)
MuhanZhang,ZhichengCui,MarionNeumannandYixinChen
Paper:
PythonTensorflowReference:
PythonPytorchReference:
MATLABReference:
PythonAlternative:
PythonAlternative:
SGR:Self-SupervisedSpectralGraphRepresentationLearning(KDDDLDay2018)
AntonTsitsulin,DavideMottin,PanagiotisKarra,AlexBronsteinandEmmanuealMüller
Paper:
PythonReference:
DeepLearningwithTopologicalSignatures(NIPS2017)
ChristophHofer,RolandKwitt,MarcNiethammer,andAndreasUhl
paper:
PythonReference:
DynamicEdge-ConditionedFiltersinConvolutionalNeuralNetworksonGraphs(CVPR2017)
MartinSimonovskyandNikosKomodakis
paper:
PythonReference:
DerivingNeuralArchitecturesfromSequenceandGraphKernels(ICML2017)
TaoLei,WengongJin,ReginaBarzilay,andTommiJaakkola
Paper:
PythonReference:
ProteinInterfacePredictionusingGraphConvolutionalNetworks(NIPS2017)
AlexFout,JonathonByrd,BasirShariatandAsaBen-Hur
Paper:
PythonReference:
GraphClassificationwith2DConvolutionalNeuralNetworks(2017)
AntoineJ.-,GiannisNikolentzos,PolykarposMeladianosandMichalisVazirgiannis
Paper:
PythonReference:
CayleyNets:GraphConvolutionalNeuralNetworkswithComplexRationalSpectralFilters(IEEETSP2017)
RonLevie,FedericoMonti,XavierBresson,
Paper:
PythonReference:
Semi-supervisedLearningofHierarchicalRepresentationsofMoleculesUsingNeuralMessagePassing(2017)
HaiNguyen,Shin-ichiMaeda,KentaOono
Paper:
PythonReference:
KernelGraphConvolutionalNeuralNetworks(2017)
GiannisNikolentzos,PolykarposMeladianos,AntoineJean-PierreTixier,KonstantinosSkianis,MichalisVazirgiannis
Paper:
PythonReference:
DeepTopologyClassification:ANewApproachForMassiveGraphClassification(IEEEBigData2016)
StephenBonner,JohnBrennan,GeorgiosTheodoropoulos,IbadKureshi,AndrewStephenMcGough
Paper:
PythonReference:
LearningConvolutionalNeuralNetworksforGraphs(ICML2016)
MathiasNiepert,MohamedAhmed,KonstantinKutzkov
Paper:
PythonReference:
GatedGraphSequenceNeuralNetworks(ICLR2016)
YujiaLi,DanielTarlow,MarcBrockschmidt,RichardZemel
Paper:
PythonTensorFlow:
PythonPyTorch:
PythonReference:
ConvolutionalNetworksonGraphsforLearningMolecularFingerprints(NIPS2015)
DavidDuvenaud,DougalMaclaurin,JorgeAguilera-Iparraguirre,RafaelGómez-Bombarelli,TimothyHirzel,AlánAspuru-Guzik,
Paper:
PythonReference:
PythonReference:
PythonReference:
PythonReference:
GraphKernels
MessagePassingGraphKernels(2018)
GiannisNikolentzos,MichalisVazirgiannis
Paper:
PythonReference:
MatchingNodeEmbeddingsforGraphSimilarity(AAAI2017)
GiannisNikolentzos,PolykarposMeladianos,andMichalisVazirgiannis
Paper:
GlobalWeisfeiler-LehmanGraphKernels(2017)
ChristopherMorris,KristianKerstingandPetraMutzel
Paper:
C++Reference:
OnValidOptimalAssignmentKernelsandApplicationstoGraphClassification(2016)
NilsKriege,Pierre-LouisGiscard,RichardWilson
Paper:
JavaReference:
EfficientComparisonofMassiveGraphsThroughTheUseOf‘GraphFingerprints’(MLGWorkshop2016)
StephenBonner,JohnBrennan,
Paper:
pythonReference:
TheMultiscaleLaplacianGraphKernel(NIPS2016)
RisiKondorandHoracePan
Paper:
C++Reference:
FasterKernelsforGraphswithContinuousAttributes(ICDM2016)
ChristopherMorris,,KristianKerstingandPetraMutzel
Paper:
PythonReference:
PropagationKernels:EfficientGraphKernelsFromPropagatedInformation(MachineLearning2016)
Neumann,MarionandGarnett,RomanandBauckhage,ChristianandKersting,Kristian
Paper:
MatlabReference:
HaltingRandomWalkKernels(NIPS2015)
Paper:
C++Reference:
ScalableKernelsforGraphswithContinuousAttributes(NIPS2013)
AasaFeragen,NiklasKasenburg,JensPetersen,MarleeBruijneandKarstenBorgwardt
Paper:
SubgraphMatchingKernelsforAttributedGraphs(ICML2012)
NilsKriegeandPetraMutzel
Paper:
PythonReference:
NestedSubtreeHashKernelsforLarge-ScaleGraphClassificationoverStreams(ICDM2012)
BinLi,XingquanZhu,LianhuaChi,ChengqiZhang
Paper:
PythonReference:
Weisfeiler-LehmanGraphKernels(JMLR2011)
NinoShervashidze,PascalSchweitzer,ErikJanvanLeeuwen,KurtMehlhorn,
Paper:
PythonReference:
PythonReference:
C++Reference:
FastNeighborhoodSubgraphPairwiseDistanceKernel(ICML2010)
FabrizioCostaandKurtDeGrave
Paper:
C++Reference:
PythonReference:
ALinear-timeGraphKernel(ICDM2009)
ShoheiHidoandHisashiKashima
Paper:
PythonReference:
Weisfeiler-LehmanSubtreeKernels(NIPS2009)
NinoShervashidze,PascalSchweitzer,ErikJanvanLeeuwen,KurtMehlhorn,
Paper:
PythonReference:
PythonReference:
C++Reference:
FastComputationofGraphKernels(NIPS2006)
,,
Paper:
PythonReference:
C++Reference:
Shortest-PathKernelsonGraphs(ICDM2005)
Paper:
C++Reference:
CyclicPatternKernelsForPredictiveGraphMining(KDD2004)
TamásHorváth,ThomasGärtner,andStefanWrobel
Paper:;rep=rep1type=pdf
PythonReference:
ExtensionsofMarginalizedGraphKernels(ICML2004)
PierreMahe,NobuhisaUeda,TatsuyaAkutsu,Jean-LucPerret,andJean-PhilippeVert
Paper:
PythonReference:
MarginalizedKernelsBetweenLabeledGraphs(ICML2003)
HisashiKashima,KojiTsuda,andAkihiroInokuchi
Paper:
PythonReference:
不同时期的图建模
其实,我们可以将图建模分为图神经网络与传统的图模型。其中以前的图建模主要借助GraphEmbedding为不同的节点学习低维向量表征,这借鉴了NLP中词嵌入的思想。而图神经网络借助深度学习进行更强大的图运算与图表征。
GraphEmbedding算法聚焦在如何对网络节点进行低维向量表示,相似的节点在表征空间中更加接近。相比之下,GNN最大的优势在于它不只可以对一个节点进行语义表示。
例如GNN可以表示子图的语义信息,将网络中一小部分节点构成的语义表示出来,这是以前GraphEmbedding不容易做到的。GNN还可以在整个图网络上进行信息传播、聚合等建模,也就是说它可以把图网络当成一个整体进行建模。此外,GNN对单个节点的表示也可以做得更好,因为它可以更好地建模周围节点丰富信息。
在传统图建模中,随机游走、最短路径等图方法会利用符号知识,但这些方法并没有办法很好地利用每个节点的语义信息。而深度学习技术更擅长处理非结构文本、图像等数据。简言之,我们可以将GNN看做将深度学习技术应用到符号表示的图数据上,或者说是从非结构化数据扩展到了结构化数据。GNN能够充分融合符号表示和低维向量表示,发挥两者优势。
图建模论文与代码
在的一项开源工作中,开发者收集了图建模相关的论文与实现,并且从经典的GraphEmbedding、GraphKernel到图神经网络都有涉及。它们在图嵌入、图分类、图表征等领域都是非常重要的论文。
项目地址:benedekrozemberczki/awesome-graph-classification
该项目主要收集的论文领域如下所示:
1.Factorization
2.SpectralandStatisticalFingerprints
3.GraphNeuralNetwork
4.GraphKernels
因式分解法
·LearningGraphRepresentationviaFrequentSubgraphs(SDM2018)
·DangNguyen,WeiLuo,TuDinhNguyen,SvethaVenkatesh,DinhPhung
·Paper:
·Python:nphdang/GE-FSG
·AnonymousWalkEmbeddings(ICML2018)
·SergeyIvanovandEvgenyBurnaev
·Paper:
·Python:nd7141/AWE
·Graph2vec(MLGWorkshop2017)
·AnnamalaiNarayanan,MahinthanChandramohan,LihuiChen,YangLiu,andSanthoshkumarSaminathan
·Paper:
·PythonHighPerformance:benedekrozemberczki/graph2vec
·PythonReference:MLDroid/graph2vec_tf
·Subgraph2vec(MLGWorkshop2016)
·AnnamalaiNarayanan,MahinthanChandramohan,LihuiChen,YangLiu,andSanthoshkumarSaminathan
·Paper:
·PythonHighPerformance:MLDroid/subgraph2vec_gensim
·PythonReference:MLDroid/subgraph2vec_tf
·Rdf2Vec:RDFGraphEmbeddingsforDataMining(ISWC2016)
·PetarRistoskiandHeikoPaulheim
·Paper:
·PythonReference:airobert/RDF2VecAtWebScale
·DeepGraphKernels(KDD2015)
·
·Paper:
·PythonReference:pankajk/Deep-Graph-Kernels
SpectralandStatisticalFingerprints
·ASimpleYetEffectiveBaselineforNon-AttributeGraphClassification(ICLRRLPM2019)
·ChenCai,YusuWang
·Paper:
·PythonReference:Chen-Cai-OSU/LDP
·NetLSD(KDD2018)
·AntonTsitsulin,DavideMottin,PanagiotisKarras,AlexBronstein,andEmmanuelMüller
·Paper:
·PythonReference:xgfs/NetLSD
·ASimpleBaselineAlgorithmforGraphClassification(RelationalRepresentationLearning,NIPS2018)
·NathandeLaraandEdouardPineau
·Paper:
·PythonReference:edouardpineau/A-simple-baseline-algorithm-for-graph-classification
·Multi-GraphMulti-LabelLearningBasedonEntropy(EntropyNIPS2018)
·ZixuanZhuandYuhaiZhao
·Paper:https://.com/TonyZZX/MultiGraph_MultiLabel_Learning/blob/master/
·PythonReference:TonyZZX/MultiGraph_MultiLabel_Learning
·HuntForTheUnique,Stable,SparseAndFastFeatureLearningOnGraphs(NIPS2017)
·SaurabhVermaandZhi-LiZhang
·Paper:
·PythonReference:https://.com/vermaMachineLearning/FGSD
·JointStructureFeatureExplorationandRegularizationforMulti-TaskGraphClassification(TKDE2015)
·ShiruiPan,JiaWu,XingquanZhuy,ChengqiZhang,
·Paper:
·JavaReference:https://.com/shiruipan/MTG
·NetSimile:AScalableApproachtoSize-IndepentNetworkSimilarity(arXiv2012)
·MicheleBerlingerio,DanaiKoutra,TinaEliassi-Rad,andChristosFaloutsos
·Paper:
·Python:https://.com/kristyspatel/Netsimile









