图神经网络(Graph Neural Networks)(1)

1,709 阅读3分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

通常现实生活中事物是复杂,我们无法用简单数据结构来表示这些复杂事物以及事物之间关系,这些关系可以用图来表示,通常用关系将一些孤立的实体联接起来形成网络。这样也就是引入今天我们要讨论的图这种可以通过节点和边之间关系来表示一些复杂事物、例如社交、分子结构或者交通网络

有哪些网络类型

  • 社会网络
  • 交通问题
  • 通讯系统
  • 化学和医学的应用
  • 基因/蛋白质
  • 分子结构

信息图

  • 信息/知识
  • 场景图
  • 相似网络

图的基本概念

图是一种数据结构,是定义在结点上数据结构。

图的基本组成部分

G(V,E)G(V,E)
  • 结点和边
  • 拓扑结构
  • 社交网络、购买记录、关系树,句子或者是图片
结点(Node)
  • 实体表达里的节点V{v0,v2,}V \{v_0,v_2,\cdots\}
  • 例如结点可以是人、商品、论文
  • 存在的事物都可以用结点来表示
边(Edge)
  • 关系表达里的 E{(v1,v2),(v2,v2),}E\{ (v_1,v_2),(v_2,v_2),\cdots\}
  • 人与人之间朋友关系、购买关系、引用关系
图定义
  • 是一种数学形式
  • 是一种数据结构

005.png

A=[a11a1nan1ann]n×naij=1(vi,vj)E0elseA = \begin{bmatrix} a_{11} & \cdots & a_{1n}\\ \vdots & \vdots & \vdots \\ a_{n1} & \cdots & a_{nn}\\ \end{bmatrix}_{n \times n} \, a_{ij} = \begin{aligned} 1 & (v_i,v_j) \in E\\ 0 & else \end{aligned}
  • 通过图形式挖掘数据自身以及其在图中价值

图分类

有向图(Directional)
  • 邻接矩阵 A 是没有约束的
  • 箭头所指结点就是图头,另一端为图尾,有点类似向量 <vi,vj><v_i,v_j> 有位置区分的,来表示有序对,
无向图(Undirectional)
  • aij=ajiA=ATa_{ij} = a_{ji}\, A = A^T 也就是邻接矩阵 A 是一个对称矩阵
  • 这里介绍一下无向边,也就是结点之间的边是没有方向的,这里用圆括号来表示无向边(vi,vj)(v_i,v_j) viv_ivjv_j 边,所有边的都是无向边的图就是无向图

001.jpg

权重

图可以分为有权图和无权图

006.png

左侧为无权图而右侧为有权图

有权重(Weighted)

每条边具有一定权重,通常是数字 aijR,e=(u(i),v(i),w(i))a_{ij} \in \mathbb{R} , e = (u^{(i)},v^{(i)},w^{(i)})

无权重图(Unweighted)

可以理解为权重为 1 的有权图 aij{0,1},e=(u(i),v(i))a_{ij} \in \{ 0,1 \} , e = (u^{(i)},v^{(i)})

简单图

  • 无重复的边
  • 不存在结点到自身的边

多重关系(Multi-relational)

  • 单个关系(Single-relational) ei=(u(i),v(i)),ARn×ne_i = (u^{(i)},v^{(i)}),A \in \mathbb{R}^{n\times n}
  • 多种关系 关联两个结点,边上所对应的类型,所有可能取的关系值的大小

ei=(u(i),v(i),τ(i)),ARn×n×{τ}e_i = (u^{(i)},v^{(i)},\tau^{(i)}),A \in \mathbb{R}^{n\times n \times |\{ \tau \}|}

结点ID(Node ID)和结点特征(Node Feature)

结点 ID(Node ID)

vi,VRn×1v_i,V\in \mathbb{R}^{n \times 1}

  • 只有下标 i 来表示一个结点
  • 在此情况下结点信息为序号
结点特征(Node Feature)

vi=(v1i,v2i,,vki)VRn×kv_i = (v_1^i,v_2^i,\cdots,v_k^i) \, V \in \mathbb{R}^{n \times k}

  • 用一个向量来描述一个结点
  • 向量每一个维度数值对应一个结点特征

抑制图(Heterogeneous)

具有多种关系类型图进行一些分类,可以清楚表示真实环境不同情景

009.png

  • G=(V,E)G=(V,E)
  • V=V1V2Vk,ViVj=ϕ,ijV = V_1 \cup V_2 \cup \cdots \cup V_k, V_i \cap V_j = \phi,\forall i \neq j
  • (u,v,τij)EuVi,vVj(u,v,\tau_{ij}) \in E \rightarrow u \in V_i, v \in V_j
  • 可以将结点集合分为若干没有交集的子集合,
  • 附加一个约束,特定类别边的类型就确定了该边连接两个子结点的类型 这里边τij\tau_{ij}的类型也就确定了其所连接的两个结点所属子集合

多重图(Multiplex)

  • 存在重复的边,和结点自身的边
  • G=(V,E)G=(V,E)
  • V=V1V2Vk,Vi=VjV = V_1 \cup V_2 \cup \cdots \cup V_k, V_i = V_j
  • E=E1E2EkE0,τEiτEj,ijE = E_1 \cup E_2 \cup \cdots \cup E_k \cup E_0,\tau_{E_i} \neq \tau_{E_j}, \forall i \neq j
  • (u,v,τij)E0u=v(u,v,\tau_{ij}) \in E_0 \rightarrow u = v
  • 结点子集合若干份 copy
  • 边集合 k 层中,边集合类型不同
  • 不同 k 层之间的边

网络和图(network and graph)

网络
  • 现实世界描述应用的特殊
  • 数据模型

015.jpg