原创 | 斯坦福Machine Learning with Graphs 学习笔记(第一讲)

作者:林夕

本文长度为2900字,建议阅读9分钟

本文为大家介绍图网络的基本概念、网络的应用以及图的结构。

标签:机器学习

目录

一、Why Networks

二、网络的应用

    2.1 应用领域

三、图的结构

    3.1 网络表示的选择

    3.2 点的度(Degree)

    3.3 图的表示方式

        邻接矩阵(Adjacency Matrix)

        边列表(Edge list)

        邻接列表(Adjacency list)

    3.4 图的连通性

参考资料

最近我们小组开始整理CS224W机器学习图网络的一些笔记,这是第一课对应的PPT。

课程相关PPT链接:

http://web.stanford.edu/class/cs224w/slides/01-intro.pdf

一、Why Networks

第一部分简单介绍下关于图网络的一些基本定义,应用和意义。

网络的定义:网络是描述一系列交互实体的复杂系统的一种通用语言。

网络(Network)和图(Graph)的一些区别:

  • 网络通常指真实的系统,eg.互联网、社交网络、信息网络、代谢网络、常用的表达有网络、节点、关系等;

  • 图是网络的数学表达方式,比如互联网图谱、社交图谱、知识图谱、场景图、分子图(分子预测模型)。常用表达有图、顶点、边等词;

  • 网络的概念比图的概念总体来看会大一点,但是总的来说network和graph区别也是比较模糊的,在实际中,这点区别也不会刻意强调,大家大致理解一下也就可以。

常见的网络比如有社会网络,通信网络,基因/蛋白质的互动网络,人脑神经元的连接网络。

原创 | 斯坦福Machine Learning with Graphs 学习笔记(第一讲)_第1张图片

现在学习图网络有什么意义呢。首先网络是一种描述复杂数据的通用语言,可以应用在众多领域,比如计算机,社会科学,物理学,经济学,生物都会涉及到对网络数据分析。其次网络数据关系能反应非欧式空间的数据关系,更能反应数据潜在的联系。另一方面,研究图网络将会对这些领域产生很大的影响

接下来看网络的一些实际应用。

二、网络的应用

网络分析方法角度来看,网络的应用可以分为以下几类:

  • 节点分类(Node classification):预测一个给定节点的类型;

  • 链路预测(Link prediction):预测两个节点是否是关联;

  • 社区发现(Community detection):识别密集的节点簇;

  • 网络相似度分析(Network similarity):节点或者网络相似度的测量。

2.1 应用领域

社交网络:研究人员从Facebook的数据中发现,人之间的平均距离实际是3.74。提出了新的4度社交网络。除此之外可以利用图聚类算法,识别社交圈。

原创 | 斯坦福Machine Learning with Graphs 学习笔记(第一讲)_第2张图片

基础建设(Infrastructure):通过网络分析可以识别基建网络中哪里出了问题。比如电力系统中,可以通过图网络分析哪些点受影响比较严重。

知识图谱:知识图谱是异构图很好的例子,图的每一个结点具有不同的含义。可以对给定领域的知识进行编码。

推荐系统:预测一个用户的偏好,可以抽象为在一个二部图中预测边是否存在。涉及到的算法有Embedding Node, Graph-based algorithm recommend system。

生物化学应用:最近几年,使用图卷积网络(GNN)来预测药物的作用,相比点云技术(point-cloud based)已经获得了巨大的进展。预测药物相互组合的作用可以通过异构图来进行建模。

三、图的结构

这部分主要介绍图的结构以及图的一些表示方式和性质,以及如何选择适当的网络表示方式。

了解图的结构是图的分析的前提,一个网络是由一系列用边连接的实体构成(objects)。网络中的基本元素包括实体、关系和系统。

  • 实体(objects):节点(nodes)或顶点(vertex)N;

  • 关系(interaction):连接(links)或边(edges)E;

  • 系统(system):网络(network)或者图(graph)G(N,E)。

定义一个网络第一步就是选择表示实体,这个会决定研究的结果是否有意义,所以选择一个适当的网络表示方式非常重要。

  • 比如当研究和工作有关系的人,可以构建一个职业网络;

  • 当研究和性别有关系的人,可以构建一个性别网络;

  • 当研究论文和引用的关系时,可以构建一个论文引用网络。

然后我们来看下如何定义一个网络。首先要知道如何构建一个图,构建一个图的两个关键是弄明白是什么,边是什么。对于一个给定问题能否选择一个合适的网络决定了能否成功使用网络。有时候表示是唯一的、明确的,有时候表示是不唯一的,连边的方式将会决定研究的问题的本质。

3.1 网络表示的选择

图网络存在多种表示方式,根据边的连接是否有方向,可以分为有向图和无向图,根据边是否有权重可以分为有权图和无权图。除此之外,还有有环图,多边图,完全图,二部图等多种形式。

有向图 Vs 无向图:

  • 无向图:边没有方向,例如,社交网络的关系;

  • 有向图:边有方向,例如,打电话,Twitter的Follow。

完全图(complete graph):

  • 无向图的最大边数:

  • 当一个无向图中每个节点都有最大的边数的图叫完全图

  • 平均度是 N-1;

二部图(Bipartite Graph):

二部图是一种可以将节点分成两个子集U和V(U和V是互相独立的集合),如果对于U集合中每个节点都有V的节点与之对应或者U中每个节点都有U的节点与之对应。这种图描述了两类对象之间的交互关系。以下几种关系可以构造二部图。

  • 作者和文章;

  • 演员和电影;

  • 用户和电影;

  • 菜谱和菜品之间的关系等。

无权图(unweighted):边没有权重,有边权重都是1,否则是0;

原创 | 斯坦福Machine Learning with Graphs 学习笔记(第一讲)_第3张图片

无权图(weighted):边上有权重,赋权值;

有环图(self-loops):某些点上有环;

原创 | 斯坦福Machine Learning with Graphs 学习笔记(第一讲)_第4张图片

多边图(Multi-graph):有的两点之间存在多条边;

3.2 点的度(Degree

点的度是网络的一个重要属性。无向图和有向图点的度有所不同,需要分开来考虑。

无向图:

  • 点的度 :和点相连的边数;

  • 平均度:每个点的度取平均。

原创 | 斯坦福Machine Learning with Graphs 学习笔记(第一讲)_第5张图片

有向图:

我们在有向图中定义了出度(in-degree) 和 入度(out-degree)。

  • :进入结点 i 的边数;

  • :离开结点 i 的边数;

  • :出入点的边数,

  • 平均度:

  • 出入度关系:

3.3 图的表示方式

常见的图的表示方式有三种,邻接矩阵,边列表和邻接表。邻接矩阵最常用。

邻接矩阵(Adjacency Matrix):

定义:如果点之间有边,矩阵对应位置为1,假设邻接矩阵即代表i和j有边相连,无向图的邻接矩阵是一个对称矩阵。如果是有向图的话,点i和点j之间存在有向边,则为1,则为0。接下来看一个例子,如何构建邻接矩阵。

原创 | 斯坦福Machine Learning with Graphs 学习笔记(第一讲)_第6张图片

左边无向图,对应的邻接矩阵为:

原创 | 斯坦福Machine Learning with Graphs 学习笔记(第一讲)_第7张图片

右边有向图,对应的邻接矩阵为:

原创 | 斯坦福Machine Learning with Graphs 学习笔记(第一讲)_第8张图片

邻接矩阵具有以下性质:

  • 无向图:

原创 | 斯坦福Machine Learning with Graphs 学习笔记(第一讲)_第9张图片

边数:

  • 有向图:

大部分真实世界的网络是稀疏的(),结果就是邻接矩阵被大量的0填充,所以邻接矩阵多是稀疏矩阵。

边列表(Edge list):

将图表示为一系列边的集合。

原创 | 斯坦福Machine Learning with Graphs 学习笔记(第一讲)_第10张图片

例如上图可以表示为:

(2,3)(2,4)(3,2)(3,4)(4,5)(5,2)(5,1)

邻接列表(Adjacency list):

当网络很大,并且很稀疏的时候,这样表示非常方便,通过这种方式能迅速获取到一个点邻接点。依然是上图,邻接列表可以表示为:

  • 1:

  • 2:3,4

  • 3:2,4

  • 4:5

  • 5:1,2

3.4 图的连通性

无向图的连通性:如果一个无向图的任何两个顶点(vertices)之间都有路径相连,那么认为这个图是连通的。反之,如果由两个或者更多的连通图构成则是非连通图。桥边(Bridge edge)是指删除以后能使图变成非连通图的边。在邻接矩阵中,非连通图,非0的部分被限制在块对角矩阵内,其他元素是0。

有向图的连通性:如果一个有向图的任意两个点存在路径,包括反向的,则认为是强连通的。不考虑边的方向,任意两个点存在路径则认为是弱连通的。另外,我们定义强连通组件(Strongly connectedcomponents-SCCs),它是指图的子图,并且是强连通的。

参考资料

官网:

http://web.stanford.edu/class/cs224w/

资料整理:

http://snap.stanford.edu/class/cs224w-2018/

bilibili搬运:

https://www.bilibili.com/video/BV1Vg4y1z7Nf?p=1

中文讲解

https://www.bilibili.com/video/av94230023/?spm_id_from=333.788.b_636f6d6d656e74.48

CS224W-Notes:

https://snap-stanford.github.io/cs224w-notes/

CS22W-Jingbo:

https://jingboyang.github.io/cs224w_notes.html

HomeWork-Answer1 Answer2:

https://github.com/zhjwy9343/CS224W

【斯坦福CS224W 图与机器学习(1-2)】:图模型基本介绍

https://zhuanlan.zhihu.com/p/138292637

编辑:黄继彦

校对:林亦霖

作者简介

林夕,电子科技大学硕士,主要研究方向:推荐系统、自然语言处理和金融风控。希望能将算法应用在更多的行业中。

数据派研究部介绍

数据派研究部成立于2017年初,以兴趣为核心划分多个组别,各组既遵循研究部整体的知识分享实践项目规划,又各具特色:

算法模型组:积极组队参加kaggle等比赛,原创手把手教系列文章;

调研分析组:通过专访等方式调研大数据的应用,探索数据产品之美;

系统平台组:追踪大数据&人工智能系统平台技术前沿,对话专家;

自然语言处理组:重于实践,积极参加比赛及策划各类文本分析项目;

制造业大数据组:秉工业强国之梦,产学研政结合,挖掘数据价值;

数据可视化组:将信息与艺术融合,探索数据之美,学用可视化讲故事;

网络爬虫组:爬取网络信息,配合其他各组开发创意项目。

点击文末“阅读原文”,报名数据派研究部志愿者,总有一组适合你~

转载须知

如需转载,请在开篇显著位置注明作者和出处(转自:数据派THUID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。

未经许可的转载以及改编者,我们将依法追究其法律责任。

点击“阅读原文”加入组织~

你可能感兴趣的:(网络,算法,大数据,编程语言,python)