图
大多数的数据结构可以看做是一种图数据结构,包括链表,树等。深入的研究的话可以看下图论
图(Graph)就是节点(Vertices/Nodes)以及边(Edge)
G = ( V , E ) G = (V, E) G=(V,E)
注:一般情况下,我们认为图(graph)和网络(network)两种术语可交替使用。通常我们称为图。
图的分类
- 无向图和有向图:节点之间有无方向,如果是无方向说明双边都能直接访问,如果是有方向,只能按照单边方向访问
- 无权图和有权图:连接边是否有权重,如果没有权重的话认为每条边的权重一样,有权重的话按照权重来判断连接的重要性
- 同构图和异构体:节点和边是否属于同一类型,如果是统一类型即为同构图,如果是不同类型,则为异构图
图的度和邻居
- 使用V表示节点,E表示边,则图可以用G=(V, E)表示
- 对于有向图和无向图而言,边不一样,无向图相当于双边有向图
- 度:与之相联的节点个数
- 入度:到达该节点的节点个数
- 出度:从该节点出去到别节点的个数
对于节点4:邻居有三个,度数为3,出度为2,入度为1
图的表示
- 邻接矩阵:n个节点, n x n nxn nxn的矩阵,表明节点之间的关系,如果节点i和节点j之间有边,则 A i j = 1 A_{ij}=1 Aij=1,或者边的权重值,如果没边 A i j = 0 A_{ij}=0 Aij=0, 无向图的邻接矩阵是对称矩阵。
-
邻接表: 类似于哈希表,每个节点作为key,后面跟的值是一个列表,表明相连的节点。
-
边集:类似于pair对样式,给出每条边的起点和终点
- 结构特征,节点特征,边特征
实际例子
图是一种统一描述复杂事物的语言。比如社交网络,互联网,推荐系统,化学分子等。
社交网络
-
节点:人
-
边:人与人之间的各种联系,如父母关系、 朋友关系、同事关系等等。
互联网
- 节点:网页
- 边: 网页与网页之间的超链接关系
推荐系统
- 节点:用户和商品
- 边: 用户、商品之间的购买、点击等关系
化学分子
- 节点:原子
- 边: 原子之间的相互作用力,也称为化学键
图学习
数据对象是图
像语音、图像、文本具有整齐规则的数据结构:
而现实中的图是不规则的,难以直接建模的:
图学习的优势
- 一般深度学习:大多数处理的是规则数据,难以处理不规则数据。
- 图学习:可以方便地处理不规则数据(图),充分利用图结构信息。
图学习的应用
- 节点级别任务
- 边级别任务
- 图级别任务
节点级别任务
- 金融诈骗检测
节点分类任务,基于节点的特征与关联,判断该节点(人或进件)是否是欺诈类别还是非欺诈类别
参考文章:《A semi-supervised Graph Attentive Network for Financial Fraud Detection》
- 目标检测
不同于一般的目标检测图像数据,一般是3D点云数据,通过激光雷达等方式获得的离散数据。
参考文章: 《Point-GNN: Graph Neural Network for 3D object Detection in a Point Cloud》
边级别任务
- 推荐系统
推荐系统是经典的Link Prediction任务
图级别任务
- 气味识别
参考文章:《Learning to Smell: Using Deep Learning to Predict the Olfactory Properties of Molecules》