Traditional Methods of Machine Learing in Graphs
在本节我们可以了解到
- 如何在节点/边/图层面上提取特征,完成相应的任务
1、传统机器学习在图上应用
- 设计节点/关系/图的特征
- 获取包含特征的训练数据
- 应用传统的机器学习
2、传统的机器学习方法
3、Feature Design(特征提取)
- 好的特征是得到好结果的关键
- 传统的机器学习都是人工提取特征
4、图上的机器学习
-
目标:对objects进行预测
-
过程:
- 提取特征
- objects:Nodes,edges,sets of nodes,entire graphs
- objective function:取决于想要解决什么问题f:V\rightarrow R
1 Node-level Tasks(节点层面任务)
节点上的一些特征,能在网络中描述节点的位置以及节点间的结构
- Node degree(节点的度数)
- Node centrality(节点中心性):体现节点在图中的重要程度
- Clustering coefficient(聚集系数):聚类系数用于衡量节点聚集的程度
- Graphlets
1.1 Node centrality
- Engienvector centrality(特征向量中心性)
一个节点若是重要的,那么他就有重要的邻居
其中的等同于求的特征向量。
-
Betweenness centrality(中介中心性)
节点的中介中心性定义为:一个节点若他是重要的,那么他就位于许多最短路径上
- Closeness centrality(连接中心性)
连接中心性:一个节点如果是重要的,那么他有最短的路径到其他节点
1.2 Clustering coefficient(聚集系数)
测量节点与邻居节点的连接性
聚类系数可以找到图中的闭三角形
1.3 Graphlets
Graphlets:同类型的非同构子图
拓展:CS224W| 笔记3.1:网络的结构(Motifs and Graphlet) - 知乎 (zhihu.com)
一类特殊子图统称为motifs有以下特征:
- pattern:小的诱导子图
- recurring:循环,该子图在图中高频出现
- significant:重要指比预想(随机图)中出现的频率更高。
- 同一类motifs 之间,诱导子图的边必须完全一致。多一条边改个方向都不行
如何衡量motifs的重要性?
答:在真实网络出现的次数,要远远大于随机网络出现的次数。
其中为真实网络中i的motif出现次数,为随机网络中的motif出现次数
随机网络如何定义或生成?要求如下:
- 与真实图有相同的节点数,边数,度分布
- 给定一个度序列,生成一个随机图
Graphlets是对motif的拓展
- motif是从
全局的角度来描述图的。 用不同motifs来构成一个图的向量表示。 - 而Graphlet是从
局部(节点)的角度出发来描述节点。 用不同graphlet中的节点相对位置(局部信息),来形成一个节点的向量表示。
在描述Graphlets,我们需要做如下定义:
- 同构图:在图论中,假设和是两个图,如果存在一个双射,使得对所有的均有等价于,则称和是同构的。简单的说,两个同构图,节点和边一致,且存在一个一一映射使得每个节点相互对应。
- 非同构子图集:不同节点数的子图可以的非同构子图数量不同,节点越多,非同构子图数量呈指数增加。如下图, 可以看到,不同颜色的点,代表相对位置不同类型的点。
计算Graphlet Degree Vector(GDV):
对于一个节点,给定一个非同构子图集,将节点从非同构子图集上移动不同的位置,探究得到的子图在原图中是否出现,若出现则计数。
2 Link-Level Prediction Task
任务的关键是如何获取节点对的特征
任务形式:
- 连接的随机丢失:随机删除一些连接,然后用机器学习方法进行预测。
- 动态变化:给定一张图,表示和时刻出现的图,输出时刻的排序列表。
通用思想:
-
对于每个节点对 ,计算得到
- example:可以定义为x和y相同的邻居数
-
对降序排序,前n个节点为预测结果
特征提取方式:
- Distance-based feature:基于距离的特征
- Local neighborhood overlap:基于局部邻接节点重叠的特征
- Global neighborhood overlap:基于全局邻接节点重叠的特征
2.1 Distance-based feature
缺点:无法获取节点间有多少邻接节点的重叠
example:Node pair (B, H) has 2 shared neighboring nodes, while pairs (B, E) and (A, B) only have 1 such node.
2.2 Local neighborhood overlap
缺点:度量为0,如果两个节点没有任何共同的邻居,但该两个节点可能在未来会连接
example:如下图 ,,可得
2.3 Global neighborhood overlap
预备知识:
- 邻接矩阵,经过次运算得到,其中的表示到路径长为l的路径个数。
度量Katz index:给定一个节点,计算节点对上的所有路径以及其路径长度
其中表示衰减系数,表示路径越长,重要性越低。
在几何级数上近似计算如下:
3 Graph-Level Features
目标:分类识别一整张图
核函数:定义和SVM中核函数定义一样
- 给定两个图有
- 核函数一旦确定,就可以应用机器学习模型
Graph Kernels:关键思想为设计图上的特征矩阵
- Graphlet Kernel
- Weisfeiler-Lehman Kernel
- 其他的Random-walk kernel,Shortest-path graph kernel
NLP中的一个简单的思想,Bow-of-words:简单实用单词数来作为文本特征,可以把节点看做单词数,得到如下特征矩阵形式。加入其他信息改进为Bow-of-*,其中的*根据方法而定。
从下面我们可以知道:
- Graphlet Kernel is Bow-of-Graphlets
- Weisfeiler-Lehman Kernel is Bow-of-color
3.1 Graphlet Kernel
关键思想:计算图上不同graphlets的数量(代替words)
计算非同构图的数量
缺点:
- 计算量大
- 当一个图为另一个图的子图,无法避免NP难问题
- 若节点度有限,则算法复杂度大
3.2 Weisfeiler-Lehman Kernel
目标:设计更具效率的一个特征向量
- 第一步:给定每个节点一个初始颜色
- 第二步:迭代完善节点颜色
其中HASH是一个映射函数
- 在k步后颜色细化,总结了k-hop邻接的结构。
优点:
- 计算量更少,效率更高
- 包含了k步邻居节点的结构
example:
Hash是一个映射函数,将1,1映射为2,1,11映射为3,以此排序下去