【图神经网络】——“斯坦福CS224W”课程笔记(一)

本文是我在学习斯坦福大学2019年秋季课程 “图机器学习”(图神经网络) 时所记录的笔记。课程资源如下列出,其中slides都可在官网找到;另斯坦福CS224w课程的学生记录了部分笔记在github上开源,可以作为学习参考。

  • 官网:http://snap.stanford.edu/class/cs224w-2019/
  • 课程视频:http://snap.stanford.edu/class/cs224w-videos-2019/
  • 课程笔记(英文):https://snap-stanford.github.io/cs224w-notes/

1 图的应用

这里介绍了非常详细的图应用模型,可以参考slides有图文说明。初看可以暂时略过,需要找某些应用场景时可以作为参考,这里不做详细说明。

2 图基础

图可以看作实体及其关系的组成

实体:又称结点,N
关系:又称边,E
系统:又称网络或图,G ( N , E )

网络通常表示真实系统,图是网络的一种数学表示。实际上很多情况我们并不区分这两个概念。

在解决不同问题的时候,选择最适合的、正确的网络表示。

如何来定义一个图

  • 无向图。例如社交软件中的好友,双向关系;
  • 有向图。例如github中Follower,是单向关系。
  • 。无向图中只包含度的概念,即和某个node相连的边的个数;有向图中包含出度和入度的概念,出度就是从这个结点出发指向其他结点边的个数,而入度是其他结点指向本结点的边的个数。
    这里还有一个平均度的概念,即所有结点度之和。对于无向图平均度为2E/N,因为每条边会count两个度;有向图的出平均度=入平均度,这也很好理解,一个结点的出度肯定对应另个结点的入度。如下图所示就很清楚啦。
    【图神经网络】——“斯坦福CS224W”课程笔记(一)_第1张图片
  • 完全图。直观来看就是每两个Node都会有一条边,严格定义是一个有N(N-1)/2条边的无向图是完全图。平均度为N-1。
  • 二分图。二分图是一种特殊的图模型,他将图结点分为两个互不相交的集合U和V,每一条边由集合U连向集合V(或相反)。二分图有很多实际场景应用,例如滴滴匹配用户和司机所用的算法就有二分图匹配。这里包含的概念和算法非常多,可以参考《算法导论》中图论部分关于“最大流算法”的论述。这篇博文也可参考。

如何来表示一个图

我们需要从计算的角度来表示一个图,而不只是结点和边。

  • 邻接矩阵。无向图邻接矩阵是一个对称矩阵,对应有边的位置置为1;
    这里可以通过邻接矩阵来计算度,更进一步可以通过一个图的邻接矩阵来得到图的度矩阵。如下图方式给出了如何在邻接矩阵上计算某个结点的度。
    【图神经网络】——“斯坦福CS224W”课程笔记(一)_第2张图片
  • 邻接链表。通过链表的方式来存储边。这两种方式在图论中都有介绍。

具体使用哪种方式来表示一个图,取绝于这个图的稀疏/稠密程度。简单来说,图越稠密,用矩阵来表示会划算一点;图越稀疏,则用链表的方式表示会划算一点。如果图比较小的话,我们一般都用矩阵的方式,因为实现比较简单。

但是对于实际应用中的图,大多数是稀疏的,并且稀疏程度非常大。此时如果用邻接矩阵表示,会发现很多位置都是0,这会造成极大的空间和计算浪费。因此实际情况中我们一般都采用邻接链表的方式来表示图。

下图给出判断稀疏的标准,如果E远小于Emax(即完全图的边数量),或平均度远小于N-1(即完全图的平均度),那么就认为这个图是稀疏的。你会发现很多实际应用的图是极度稀疏的。
【图神经网络】——“斯坦福CS224W”课程笔记(一)_第3张图片

更多类型的图

  • 无权重图和有权重图。为每一条边加上权重。权重因实际应用而不同,体现关系的一种属性。

  • 自环边图和多路径图。这里都是针对无向图而言。
    【图神经网络】——“斯坦福CS224W”课程笔记(一)_第4张图片

  • 连通性(针对无向图)。任何两个点都可以通过某一条路径联通。非连通图由几个连通分量组成,其中最大的连通分量叫最大连通分量。如果在一个图中去掉一条边,这个图就变成非连通图,那这条边就是桥边;衔接结点同样的道理。
    【图神经网络】——“斯坦福CS224W”课程笔记(一)_第5张图片
    这里可以通过邻接矩阵来判断图的连通性。如果邻接矩阵能够分成区块对角化的形式,那么就是非连通图;如果不行,那么就证明有边联通(桥边)。如下图所示。
    【图神经网络】——“斯坦福CS224W”课程笔记(一)_第6张图片

  • 连通图(针对有向图)。强连通性是指图中任何两个结点之间都存在通往对方的一条路径(不一定是直接路径)。例如下图中E到D结点存在一条路径(E->A->D),但是反过来却不行,则这个图是弱连通图。(弱连通图可以看作是忽略边方向的连通无向图)
    【图神经网络】——“斯坦福CS224W”课程笔记(一)_第7张图片

几种图(网络)的类型

  • Email network(电子邮件网络) > directed multigraph with self-edges
  • Facebook friendships(社交网络,如facebook) > undirected, unweighted
  • Citation networks(论文引用网络) > unweighted, directed, acyclic
  • Collaboration networks(合作网络) > undirected multigraph or weighted graph
  • Mobile phone calls >(移动电话网络) directed, (weighted?) multigraph
  • Protein Interactions(蛋白质交互网络) > undirected, unweighted with self-interactions

你可能感兴趣的:(斯坦福CS224W课程笔记,图论,算法,机器学习,人工智能,python)