[图神经网络]图特征工程
创始人
2025-05-30 14:42:48

一、图的特征

        图点本身就具备的特征称为属性特征(如:连接权重、节点类型等),属性特征大部分时候都是多模态的。

        图中一个节点和其他节点之间的连接关系称为连接特征(结构信息)

        人工提取并构造的特征称为特征工程。(将图变为向量)特征工程一般针对图的连接特征进行构造

二、节点层面的特征工程

        一般而言,节点层面连接特征分为:

                ①节点的连接数

                ②节点的重要度

                ③节点的聚集系数(某节点与其相邻节点之间是否有联系)

                ④节点的子图信息(某节点周围有多少人工定义的子图)

        1.节点连接数

                         若求节点连接数,直接按某行/某列求和即可;或将邻接矩阵与一个值为1的向量相乘即可。但节点连接数不考虑连接的质量,所以引入下面三个指标来衡量节点连接的质量。

        2.节点重要度

                ①特征向量重要度(Eigenvector Centrality)

                某节点的重要度=与其相邻节点的重要度之和,公式表示为:

                        c_v=\frac{1}{\lambda}\sum c_u        其中\lambda仅用于归一化

                因为其是一个递归算法,实际计算转换为求邻接矩阵A矩阵的特征向量的问题

                        \lambda c=Ac        其中c为邻接矩阵A的特征向量(由与该节点相连的所有节点的重要度组成);邻接矩阵A用以表示这些节点的连接属性;\lambda即为目标节点的重要度。

                ②介数重要度(Betweennness Centrality)

                用以衡量一个节点是否处在交通咽喉处;计算方法为:对连通域中除了要求的节点外的所有节点,求其最短距离中有多少个必须经过该节点。如下图:

                 c_A=c_B=c_E=0,而c_C=3(路径为:A-C-B、A-C-D、A-C-D-E)c_D=3

        3.集群系数(Clustering Coefficient)

                计算方法为:该节点的周围节点之间相连数 / 该节点与周围节点相连数,值域为[0,1]...(简单点理解就是三角形的个数)。详见下图示例:

           

                 计算结果分别为:e_v=\frac{6}{c_{4}^{2}}=1e_v=\frac{3}{c^2_4}=\frac{3}{6}=0.5e_v=\frac{0}{c^2_4}=0

                 这种三角形连接被称为:自我中心网络(ego-network)

        4.graphlet

                相同样的节点数构成非同形子图(类似同分异构体),例如4个节点可以构成6种graphlet。

                 提取某节点周围的graphlet个数即可构成一个称为Graphlet Degree Vector(GDV),如下图所示:

                 节点u可能出现的子图形式有三种,分别列出含有u节点的子图类型

                 GDV可以描述节点u的局部邻域拓扑结构信息

三、连接层面的特征工程

        目的:通过已知连接补齐未知连接。可以通过两种方法来获取D维向量:

                ①直接提取连接的特征

                ②将连接两端节点的D维向量拼在一起(但这种方法会丢失link本身的连接信息)

        连接预测的一般方法为:

                ①获取连接的D维向量

                ②将D维向量送入机器学习中进行计算,获得分数c(x,y)

                ③将分数c(x,y)进行排序,选出最高的n个新连接

                ④计算这n个预测结果与真实值

        1.连接特征

                连接特征一般分为:①节点间的距离;②节点局部连接信息;③节点在全图的连接信息

                ①最短路径长度

                即两个点之间经过节点最少的路径上的节点数,但是其与节点连接数一样只看数量不看权重。

                ②基于两节点的局部连接信息

                共同相邻节点个数;交并比等。但若两个节点不存在局部连接,则其交并比和共同相邻节点个数均会为0。例如下图中A和E就不存局部连接。

                 ③卡兹系数(Katz index)

                表示节点u和节点v之间的长度为k的路径个数。计算方法:使用邻接矩阵的幂来计算,如下:

                        P_{uv}^{(2)}=\sum A_{ui}*P_{iv}^{(1)}=\sum_i A_{iv}=A_{uv}^2

                此式的实际意义为:A_{ui}=与u隔1步的邻居i;P_{iv}^{(1)}=i是否与v隔1步

                 由数学归纳法可知:长度为 l 的矩阵为A_{uv}^l矩阵A_{uv}的 l 次方中第u行第v列的元素

                卡兹系数公式可以通过矩阵几何级数化简为:

                        s=\sum \beta^iA^i=(I-\beta A)^{-1}-I        其中\beta为折减系数,位于0到1之间;I为单位矩阵。

四、全图层面的特征工程

        目的是提取整张图的特征,将其变为D维向量,反映全图结构特点。

        实际就是在计算不同特征在图中存在的个数(将图视为文章,节点视为单词--Bag-of-Nodes)

                但这种方法有一个缺陷,就是只看是否存在第 i 个节点而不关心连接结构,如下图中两个图编码的D维向量一致,均为[1 1 1 1]

         还可以使用Bag-of-Node-degrees,但是同样的只看node dgree,不看节点也不看连接结构

         Bag-of-xxx可以推广到之前提到的任意特征中,比如将全图的graphlets作为应用场景,其相较于节点层面的graphlets有如下区别:①可以存在孤立节点;②计数对象为全图,而不是特定节点邻域。

         将两张图的graphlet进行数量积则可得到Graphlet Kernel(一个标量),该指标可以反映两张图是否相近/匹配,公式记作:

                K(G,{G}')=f_g^Tf{G}'

                若两张图尺寸不一致则需要对其进行归一化

        但是这种做法对算力的消耗极大。故一般采用Weisfeiler-Lehman Kernel算法,采用的是颜色微调的思想(Color refinement),其具体做法如下:

                        ①将图初始化一个有一个编码

                         ②根据具体节点的连接数量,对其编码进行调整

                         ③将不同的编码以不同的颜色代替(Hash)

                                

                以上步骤可以重复进行,最后两个相同结构的节点颜色始终相同

                 这样就将每张图变成了一个维度较低的向量。将这两张图的向量求内积即可得到Weisfeiler-Lehman kernel

                 上述操作可以记作:c^{(k+1)}(v)=HASH(\{c^{(k)}(v),\{c^{(k)}(u)\}_{u \in N(v)}\}), k 表示上述编码过程进行了 k 步,表示捕获了图中 k 跳个连接

相关内容

热门资讯

【C语言】你真的了解结构体吗 引言✨我们知道C语言中存在着整形(int、short...),字符型(char)&#x...
一人一世界一叶一菩提什么意思,... 一人一世界一叶一菩提什么意思目录一人一世界一叶一菩提什么意思一花一世界,一叶一菩提的意思是什么?佛家...
国家的含义是什么 极速百科网 ... 国家的含义是什么目录国家的含义是什么国家的含义是什么对国家最本质的解释是什么?国家的含义是什么?国家...
如何用word制作宣传单,wo... 如何用word制作宣传单目录如何用word制作宣传单word业务传单在哪如何利用word排版制作广告...
怎么练习穿高跟鞋,很多女生穿不... 怎么练习穿高跟鞋目录怎么练习穿高跟鞋很多女生穿不惯高跟鞋,该如何舒适的驾驭高跟鞋呢?请问一下..怎么...
linux交换分区和逻辑卷 交换分区 查看交换分区: [root@localhost ~]# free ...
AGV小车的运动是怎么控制的呢... 随着市场的竞争加剧,有一家位于城市中心的酒店开始引入一些新的科技设备来提高服务水平&#...
火车票开售时间,火车票早上几点... 今天给各位分享火车票开售时间,火车票早上几点开售的知识,其中也会对火车票预订早上几点开始发售进行解释...
康熙容妃历史原型 极速百科网 ... 康熙容妃历史原型目录康熙容妃历史原型康熙容妃历史原型康熙大帝里面的容妃是历史上的真人真事吗?死后被追...
怎么鉴别镀银和纯银,纯银和镀银... 怎么鉴别镀银和纯银目录怎么鉴别镀银和纯银纯银和镀银怎么区别怎么能看出是纯银还是镀银如何鉴别银饰物品是...
麻辣烫的菜单有哪些,麻辣烫的菜... 麻辣烫的菜单有哪些目录麻辣烫的菜单有哪些麻辣烫的菜单麻辣烫的菜品有哪些?麻辣烫菜单(尽享中国特色小吃...
dhtmlx.Gantt 8.... 最新消息 如果您的当前版本的 dhtmlxGantt 早于 2.0,请查看从旧版本迁...
docker版jxTMS使用指... 本文讲解docker版jxTMS的数据查询,整个系列的文章请查看:doc...
Class文件解析 目录 Class文件格式总览 常量池(Constant Pool) 数据类型描述规则 成员变量描述规...
瑞士是什么之国,瑞士是什么之国... 瑞士是什么之国目录瑞士是什么之国瑞士是什么之国?意大利,加拿大,日本,瑞士,泰国的别称是什么?瑞士是...
带坏字的成语,带“坏”字的成语... 带坏字的成语目录带坏字的成语带“坏”字的成语有哪些?表示坏的成语?坏字开头的成语带坏字的成语 ...
伤痕累累怎么读,伤痕累累的拼音... 伤痕累累怎么读目录伤痕累累怎么读伤痕累累的拼音是什么伤痕累累的意思伤痕累累的累发什么音?伤痕累累怎么...
随车电话的咨询方法(随车电话是... 本篇文章极速百科给大家谈谈随车电话的咨询方法,以及随车电话是什么意思对应的知识点,希望对各位有所帮助...
九九乘法表-第14届蓝桥杯ST...  [导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成࿰...
DS1307 RTC模块使用 主要特性DS1307是Maxim的串行、I2C实时时钟芯片。主要特性有:工作电压&#x...
Vue学习之Vue的生命周期详... Vue学习之Vue的生命周期详细解释概览详细解释每个生命周期的应用beforeCreate(创建前)...
手机键盘输入法怎么设置,手机输... 方法一: 2. 找到并点击“系统设置”。 3. 在“系统设置”中,点击“键盘与输入法”。...
水泥由什么组成,水泥组成材料有... 水泥由什么组成目录水泥由什么组成水泥组成材料有哪些水泥的主要成份是什么?它是用什么做的?水泥的主要成...
一个银行卡可以绑几个微信,银行... 一个银行卡可以绑几个微信目录一个银行卡可以绑几个微信银行卡能绑定几个微信号一张银行卡可以绑几个微信一...
表结构是什么(表结构是啥) 表... 本篇文章极速百科给大家谈谈表结构是什么,以及表结构是啥对应的知识点,希望对各位有所帮助,不要忘了收藏...
微信小程序实现多语言方案|中英... 不管哪个系统,多语言方案套路都是一样的 1、建立多语言映射库 2、记录并存储用户选...
管理技术债 管理技术债 Philippe Kruchten, Robert Nord, Ipek Ozkaya ...
Matlab中exp(x)函数... 目录1.语法2.说明3.示例e的数字表示形式欧拉恒等式为指数函数绘图4.参考来源: 1...
拯救会议纪要!快用这三个音频转... Hello,大家好,我是指尖科技君~不知道小伙伴们平时有录音的习惯吗&#...
八个字的成语励志,奋斗的八字成... 八个字的成语励志目录八个字的成语励志奋斗的八字成语有哪些励志的8字成语八个字的成语励志 志存高...