| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 第二章、传统方法在图机器学习的应用 -> 正文阅读 |
|
[人工智能]第二章、传统方法在图机器学习的应用 |
课程为斯坦福大学CS224W 2021年冬季课程。 斯坦福大学CS224W silide?2、traditional 目录 正文(本章的内容主要是特征提取) 传统机器学习在图中应用的一般路径
????????在使用特征的过程中,能够用到的模型包括随机森林,SVM,神经网络等。在传统的机器学习中,特征的提取是一个关键问题,在图机器学习中同样如此,本章的重点就是如何确定图的特征,包括节点层面,边层面以及图层面,除了特征提取之外还有一些与特征应用相对应的预测任务。为了简单起见,我们主要关注无向图。 下面开始吧! 节点层面特征节点特征的作用,即刻画图中节点的结构和节点的位置。 节点特征的分类:
节点度????????节点的度为节点拥有的边数。 ????????性质:将一个节点周围所有的边都平等对待。 节点中心度(Node Centrality)????????节点中心度将图中不同节点的重要性考虑进来。节点中心度(Node Centrality)的有以下三种重要的模型:
????????如果节点周围的节点是重要节点,那么节点也是重要的节点(有点递归的味了)。我们将节点的中心度建模为邻居节点的中心度的和,其中为正常数: ? 更确切些. 我们可以看到上式变成了求解矩阵特征向量的形式。根据Perron-Frobenius Theoremp[1]最大的特征值总是正数且唯一,那么对应的特征向量也是唯一的,我们可以将其作为中心度.?
????????如果一个节点位于其他节点之间的许多最短路径上,那么它就是很重要。
????????如果一个节点到所有其他节点的最短路径长度很小,那么这个节点就很重要。 集聚系数(Clustering Coefficient)?????????测量的邻居节点的连接程度 ???????? 集聚系数计算图中三角形的个数占的比例。 ?Graphlets????????现在将计算三角形个数(Clustering Coefficient)拓展到计算预先确定子图的个数,即Graphlets。 ????????Graphlet: 有根的连通非同构子图[2]。这里的根,在后面的例子中说明。 ????????有了Graphlet的定义,现在考虑Graphlet Degree Vector (GDV)的概念,即基于Graphlet的节点特征,具体计算以节点作为根的Graphlet的个数。 ????????如下图例子所示: ?????????一般来看3点的分同构连通子图的个数为2,但是这里是3,因为这里考虑了节点的根,graphlet集的c和d点分别作为根将导致不同的图。节点v的graphlet特征为[2,1,0,2]。 ????????Graphlet Degree Vector (GDV)提供了一个测量节点局部网络拓扑的方法,此方法提供了一个相较于节点度特征和集聚系数更加详细的测量两节点相似性的方法 ?????? 总结来看:此节提供了两中获取节点特征的策略,即为:
?边层面的预测概览????????主要目的是基于现有的边预测新的边。在测试阶段中所有的预测节点对都排好序,取前K个节点对作为预测结果。预测的关键是将对节点对设计好特征。 ????????下面是两个边预测任务的描述:
????????在边集中随机删除一个边,然后以预测该边作为任务目的。
????????给定图到时刻的边,利用这些已知的边,输出一个有序的边集序列L作为时刻的预测。 ????????评价标准:计算测试区间所有新生成的边数M,然后按照排序法则将M个边进行排序,取前n个作为预测结果,然后判断预测结果与真实值的差异。 ????????下面是具体方法,总体来看最重要的是如何给这些节点对排序。 重要的边特征
最短路径特征 ????????此特征没有捕捉到节点邻居的重叠程度。节点对(B, H) 共享两个邻居节点,(B, E) and (A, B)仅共享一个邻居节点。
目的:捕捉节点对 和之间共享的邻居节点。
????????局部邻居重叠的局限性:如果两个节点没有任何共同的邻居,Metric总是0。然而,这两个节点在可能有潜在的邻居节点,比如2阶邻居。 ????????全局邻居重叠通过考虑整张图来解决这个局限性。 全局邻居特征——Katz index方法 ????????Katz index:计算给定节点对之间所有长度的路径数。 ????????使用邻接矩阵的幂来计算两个节点对之间的所有路径。 证明:让表示节点和之间长度为K的路径的个数。表示节点和间长度为1路径个数,即节点和是直接邻居。 ????????计算: ????????Step 1: 计算所有节点𝒗邻居,即计算出𝒗一步能到达的所有节点,满足。 ????????Step 2:计算出一步到达𝒗邻居节点的路径数之后。 ????????按照此种方式可以证明. 因此节点和的Katz index的计算公式为: ????????Katz index 的闭式表达为(可以直接按照等比数列求合的方式计算) 边层面特征的总结为????????
图层面的特征目标:希望特征能够刻画整个图的结构。 有关核方法的介绍,没有看明白,直接贴上原PPT。感觉总体来看应该是一个二元函数,输入参数为两个数据(集),输出为相似度是一个实数。 图核图核:测量两个图之间的相似性。 包括:
图核的主要思路(Key Idea)????????目标:设计图特征向量 ????????主要思路:使用Bag-of-words(BoW)方法。 ????????方法简述:BoW仅仅使用单词在文档出现的次数作为该词的特征(不考虑顺序)。 ????????简单推广到图:将单词替换为节点。 ????????如下所示,因为所设置的仅仅考虑图中红色节点的个数,所以两张不同的图得到了相同的特征。 ??????? 如果使用bag-of-node degrees, 即使用节点度出现的次数作为特征。 能够区分出来这两张不同的图。 ????????Bag-of-word / node / node degrees 这里的观测特征都可以随意改变,即概括来看Bag-of-*,*表示任意观测特征。不过Graphlet Kernel 和 Weisfeiler-Lehman kernel均是使用bag-of-*. Graphlet Features????主要思路:计算不同的Graphlets在图中出现的次数。 ????注意:这里graphlets的定义有点不同于节点层的特征。
如下图所示: Graphlets Features实例计算 ?给定图 G和一个 Graphlet list ,定义graphlet计算向量 ?例如下图 ???????? Graphlet Kernel????????给定两个图和,graphlet 核表示为 是描述两个图的相似性。 Problem:如果两个图的大小不同(节点数量不同),那么这个核输出结果将有很大的偏差。 Solution:归一化取得的特征 局限性(Limitations):计算graphlets花费计算量巨大。
因此需要一种高效的算法! Weisfeiler-Lehman kernel?目标:设计一个高效的图特征描述算子 思路:使用邻居结构来迭代的丰富节点单词表。
实现算法:颜色细化(Color refinement) ????????Color refinement 给定带有个节点的图。?
???????迭代的细化每个节点的颜色,其中HASH将不同的输入映射成不同的颜色。
下面是具体实例 第一步初始化各个节点的颜色 ?第二步聚合邻居节点 聚合后的邻居节点使用HASH映射 一次新的迭代: 再一次迭代 ????????最终的Weisfeiler-Lehman kernel 特征为下图,其中counts表示在整个迭代过程中,颜色所出现的次数。 ? ????????WL核的最终结果由颜色计算向量的内积表示(如下图) 总结:
图层面特征总结
章末总结:
[1] https://zhuanlan.zhihu.com/p/80952693 [2] 同构图的概念: ????????对两个图,与,如果存在两个一一映射: 使得对任意,都有且则称图与同构,记为. 映射关系为,?,?,?,或者其他映射方式都行。 而非同构就是不满足同构映射的两个图。
[3] Shervashidze, Nino, et al. "Efficient graphlet kernels for large graph comparison." Artificial Intelligence and Statistics. 2009. [4] Shervashidze, Nino, et al. "Weisfeiler-lehman graph kernels." Journal of Machine Learning Research 12.9 (2011). |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 14:24:46- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |