2-传统的图机器学习如何进行特征工程

图机器学习(传统的图机器学习如何进行特征工程)

1. Traditional Feature-based Methods: Node

1.半监督学习任务

​ 如(figure 13)所示案例,任务是预测灰点属于红点还是绿点。区分特征是度数(红点度数是1,绿点度数是2)

请添加图片描述

2.特征抽取目标:找到能够描述节点在网络中结构与位置的特征
3. 用节点度作为特征只计算了相连节点的个数,缺点是没有办法描述节点在图中的重要性。
4. 点度中心性(Degree centrality)(当前节点的度/(总节点数量-1))

k i ∑ j ∈ n n k j − 1 \frac{k_i}{\sum_{j\in n}^{n}{k_j}-1} jnnkj1ki

1. 特征向量中心性‎(Engienvector centrality):认为如果节点邻居重要,那么节点本身也重要

​ 因此节点 v 的中心性是邻居中心性的加总:(λ 是某个正的常数)
c v = 1 λ ∑ u ∈ N ( v ) c u c_v= \frac{1}{\lambda}\sum_{u\in N(v)}{c_u} cv=λ1uN(v)cu
​ 这是个递归式,解法是将其转换为矩阵形式:λ c = A c A 是邻接矩阵,c是中心性向量。 根据 Perron-Frobenius Theorem可知最 大的特征值max(λ)总是为正且唯一,对应的前导特征向量max©就是中心性向量

2. ‎中介中心性‎(Betweenness centrality):认为如果一个节点处在很多节点对的最短路径上,那么这个节点是重要的。(衡量一个节点作为bridge或transit hub 的能力。)如(figure 14)

c v = ∑ s ≠ v ≠ t s 和 t 之间包含 v 的最短路径 s 和 t 之间的最短路径 c_v=\sum_{s\neq v\neq t}\frac{s和t之间包含v的最短路径}{s和t之间的最短路径} cv=s=v=tst之间的最短路径st之间包含v的最短路径

请添加图片描述

3.接近中心性(Closeness centrality):如果一个节点跟其他所有节点的距离越近,该节点的中心性就高。

c v = 1 ∑ u ≠ v u 和 v 之间的最短距离 c_v=\frac{1}{\sum_{u\neq v}{u和v之间的最短距离}} cv=u=vuv之间的最短距离1
请添加图片描述

5.聚类系数(clustering coefficient):描述一个图中的节点之间结集成团的程度的系数。例如:社交网络中,我的朋友之间相互认识的程度。(figure 16)

e v = 当前节点的邻居节点之间的边的数量 ( k v 2 ) ∈ [ 0 , 1 ] e_v=\frac{当前节点的邻居节点之间的边的数量}{{k_v\choose 2}}\in[0,1] ev=(2kv)当前节点的邻居节点之间的边的数量[0,1]

请添加图片描述

用例子来说,对于中间的图,v有4个朋友,4个朋友两两组合应该有6个朋友对,但是实际上只有3个朋友对,因此,其聚集系数是3/6=0.5
请添加图片描述

6. graphlets :一系列连通的非同构子图

请添加图片描述

3个节点的时候 , G 1 G_1 G1中1号和2号节点为根是不同的图,是不同构的。

请添加图片描述

那么如图,可以包含v的子图有三种,且列出不同构的形态Graph Degree Vector (GDV),就是能够包含节点v匹配的到的graphlets的个数,得到Graphlet instances,GDV可以用来判定两个结点的局部网络拓扑结构是否类似。

小结:考虑2-5个节点的graphlets,我们得到一个长度为73个坐标‎坐标‎(就前图所示一共73种graphlet)的向量GDV,描述该点的局部拓扑结构‎节点邻域的拓扑‎,可以捕获距离为4‎hops的互联性‎互连性‎。相比节点度数或‎聚类系数‎,GDV能够描述两个节点之间更详细的节点局部拓扑结构相似性‎局部拓扑‎‎相似‎。

7. Node Level Feature: Summary
1. Importance-based features: 捕获节点在图中的重要性(例如:可以用于社交网络中的重要人物识别)
  1. 节点度(node degree):简单的计算相邻节点的数量

  2. 节点中心性(node centrality) :模型的邻接节点在图中的重要性;不同的建模选择(特征向量中心性、中介中心性、接近中心性)

2.Structure-based features: 捕获节点附近的拓扑属性(例如:可以用于类似固定结构的蛋白质网络预测任务)
  1. 节点度:统计相邻节点个数。
  2. 聚类系数:测量相邻节点的链接程度
  3. Graphlet 度向量:计算不同graphlet的出现次数
8. 讨论:

请添加图片描述

通过上述的公式得出:传统节点特征只能识别出结构上的相似,不能识别出图上空间、距离上的相似


2.Traditional Feature-based Methods: Link

1. 预测任务是基于已知的边,预测新链接的出现。测试模型时,将每一对无链接的点对进行排序,取存在链接概率最高的K个点对,作为预测结果。(figure 21)

请添加图片描述

2. 特征在点对上
3. 有时你也可以直接将两个点的特征合并‎连接‎起来作为点对的特征,来训练模型。但这样做的缺点就在于失去了点之间关系的信息。
4. 链接预测任务的两种类型:随机缺失边;随时间演化边

​ 第一种假设可以以蛋白质之间的交互作用举例,缺失的是研究者还没有发现的交互作用。(但这个假设其实有问题,因为研究者不是随 机发现新链接的,新链接的发现会受到已发现链接的影响。在网络中有些部分被研究得更彻底,有些部分就几乎没有什么了解,不同部 分的发现难度不同)

​ 第二种假设可以以社交网络举例,随着时间流转,人们认识更多朋友。

5. 基于相似性进行链接预测:计算两点间的相似性得分(如用共同邻居衡量相似性),然后根据得分将点对进行排序,得分最高的n组点对就是预测结果,与真实值作比(figure 21)
6.distance-based feature:两点间最短路径的长度

如图(figure 22)这种方式的问题在于没有考虑两个点邻居的重合度,所以这个方法对于领域的特征表示并不明显,如B-H有2个共同邻居,B-E和A-B都只有1个共同邻居。

请添加图片描述

7. local neighborhood overlap:捕获节点的共同邻居数

请添加图片描述

如图(figure 23)可知common neighbors的问题在于度数高的点对就会有更高的结果,Jaccard’s coefficient是其归一化后的结果。Adamic-Adar index在实践中表现得好。在社交网络上表现好的原因:有一堆度数低的共同好友比有一堆名人共同好友的得分更高。
但是这个衡量方式有缺点:当两个点之间没有共同邻居 ∣ N ( v 1 ) ∩ N ( v 2 ) ∣ = ϕ ∣ N ( v 1 ) ∩ N ( v 2 ) ∣ = ϕ N(v1)N(v2)∣=ϕ则该特征为0,但是实际上二者未来还是可能有边的。例如上图中的节点A和E,二者从图中看是有间接关系,但是Local neighborhood overlap没法表示这种关系。

8. Global neighborhood overlap:捕获节点的全局邻居数(Katz index)

Katz index:计算步骤如下

请添加图片描述

请添加图片描述
请添加图片描述

请添加图片描述

公式:
s = ∑ i = 1 ∞ β i A i = ( I − β A ) − 1 − I 【 1 】 s=\sum_{i=1}^{\infty}{\beta}^{i}A^{i}=(I-{\beta}A)^{-1}-I【1】 s=i=1βiAi=(IβA)1I1

【1】β 是权重衰减因子,为了保证数列的收敛性,其取值需小于邻接矩阵A最大特征值的倒数。(具体原因见参考资料⑤)
该方法权重衰减因子的最优值只能通过大量的实验验证获得,因此具有一定的局限性。

解析解推导过程:
矩阵形式的表达式为:S=βA+β2A2+β3A3…
( I − β A ) ( I + S ) = ( I + β A + β 2 A 2 + β 3 A 3 … ) − ( β A + β 2 A 2 + β 3 A 3 … ) = I (I-βA)(I+S)\\ =(I+βA+β^2A^2+β^3A^3…)-(βA+β^2A^2+β^3A^3…) =I (IβA)(I+S)=(I+βA+β2A2+β3A3)(βA+β2A2+β3A3)=I

所以 s + I = ( I − β A ) − 1 所以s+I=(I-{\beta}A)^{-1} 所以s+I=(IβA)1

9.总结:
  1. Global neighborhood overlap可以解决local neighborhood overlap上没有共同邻居的问题。
  2. Katz index:计算点对之间所有长度路径的条数。(计算方式:邻接矩阵求幂)
  3. 使用全局图形结构对两个节点进行评分
  4. ‎Katz 索引对两个节点之间所有长度的paths进行计数。

3. Traditional Feature-based Methods: Graph

1. 图级别特征构建目标:找到能够描述全图结构的特征
2. Background: Kernel Methods(核方法)

请添加图片描述

这个 ϕ \phi ϕ是个表示向量,可能不需要被显式地计算出来

3.graph kernel: key idea
  1. bag-of-words相当于是把文档表示成一个向量,每个元素代表对应word出现的次数。
  2. 特征抽取方法也将是bag-of-something的形式,将图表示成一个向量,每个元素代表对应something出现的次数(这个something可以是node, degree, graphlet, color)光用node不够的话,可以设置一个degree kernel,用bag-of-degrees来描述图特征.
    请添加图片描述

  1. Key idea: Count the number of different graphlets in a graph.
  2. 图的Graphlet 和节点级别的Graphlet 有2点不一样
    1. 这里的小图中的节点不需要连接(允许隔离的节点)‎
    2. 这里的小图不是根的。‎

请添加图片描述

  1. graphlet count vector:每个元素是图中对应graphlet的数量

请添加图片描述

​ 那么给定一个图G,求其k = 3的graphlets的数量个数组成向量表示(figure 26),写成 f G = ( 1 , 2 , 6 , 0 ) T f_G=(1,2,6,0)^T fG=(1,2,6,0)T

  1. graphlet kernel就是直接点积两个图的graphlet count vector得到相似性。对于图尺寸相差较大的情况需进行归一化

​ 1. graphlet的表达式为 K ( G , G ′ ) = f G T f G ′ K(G,G^′)= f_G^Tf_G^′ K(G,G)=fGTfG,

​ 2. 这里如果两个图大小相差较大,那么得到的相似度也会差很大,大图包含的Graphlet数量肯定会比较多。改进加上归一化后:
h G = f G ∑ ( f G ) K ( G , G ′ ) = h G T h G ′ h_G=\frac{f_G}{\sum(f_G)}\\ K(G,G^′)= h_G^Th_G^′ hG=(fG)fGK(G,G)=hGThG
缺点:Graphlet计算复杂度较高,在n个节点的图中计算k 个节点大小的Graphlet,时间复杂度高达: n k n^k nk(属于NP-hard问题)
​ 如果图的节点度小于d ,那么计算k个节点大小的Graphlet,时间复杂度为: O ( n d k − 1 ) O(nd^{k-1}) O(ndk1)

  1. Weisfeiler-Lehman Kernel:相比graphlet kernel计算代价较小,效率更高。

    1. 用节点邻居结构迭代地来扩充节点信息,实际上就是将Bag of node degrees(只包含一跳信息)扩展到多跳信息。

    2. 算法实现:

    3. 为所有节点设置一个初始颜色 c ( 0 ) ( v ) c^{(0)}(v) c(0)(v)

    4. 使用如下公式迭代更新节点的颜色:
      c v ( k + 1 ) = H A S H 【 2 】 ( c ( v ) ( k ) { c ( u ) ( k ) } u ∈ N ( v ) ) c_{v}^{(k+1)}=HASH^{【2】}({c_{(v)}^{(k)}\{c_{(u)}^{(k)}\}_{u\in N(v)}}) cv(k+1)=HASH2(c(v)(k){c(u)(k)}uN(v))

【2】颜色HASH函数如下(figure 27):

请添加图片描述

​ 3. 具体计算步骤:

​ 1. 两个要比较的图,初始化节点的颜色值为1(figure 28)

请添加图片描述

​ 2. 使用sum的方式来汇聚邻居信息(k=1):(figure 29)

请添加图片描述

​ 3. 对照颜色的hash函数得到:(figure 30)

请添加图片描述

​ 4. 再次使用sum的方式来汇聚邻居信息(k=2):(figure 31)

请添加图片描述

​ 5. 对照颜色的hash函数得到:

请添加图片描述

​ 6. 至此,color refinement算法介绍,接下来使用kernel得到各个图的表征,就是计算每个颜色对应的个数(figure 33),最后 求两个图的相似度,可以直接转置后求乘法得50.这个算法的好处是,算法是线性的,计算时间复杂度和边成正比关系。整 个算法的思想相当于bag of color。

请添加图片描述


4. 总结

‎1. 传统 ML流程:

​ 手工制作的功能+ ML模型‎

‎2. 图形数据手工制作的功能‎
  1. ‎节点级:‎
    ‎ 节点度、中心性、聚类系数、graphlets

  2. ‎链路级别:‎
    ‎基于距离的特征提取‎
    ‎局部、全局邻域节点捕获

  3. ‎图形级别:‎
    ‎Graphlet kernel, WL kernel‎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值