Stanford_CS224W----Machine learning with graph

Stanford_CS224W----Machine learning with graph

开始学习GNN相关的内容,课程是YouTube上公开的Standford_CS224W,本文介绍了一些在节点程度上的图论知识点,

Node-level Tasks and Features

主要有四种描述网络中一个节点的结构和位置:

  • Node degree
  • Node centrality
  • Clustering coefficient
  • Graphlet

Node degree

就是普通的点的度
image

Node centrality

点的度没有刻画邻居的重要性,而点的中心性考虑了点在图中的重要性

  • Engienvector centrality
  • Betweenness centrality
  • Closeness centrality
  • others

Engienvector centrality

特征中心度,我们将节点的中心性建模为相邻节点的中心性之和。
image
可以发现,这样定义出的cv就是线性代数中的特征向量。

Betweenness centrality

间隙中心度,如果一个节点位于其他节点之间的许多最短路径上,它就是重要的。
image

Closeness centrality

紧密性中心度,如果一个节点与所有其他节点的最短路径长度较小,那么该节点就很重要。(最短路径之和的倒数)
image

Clustering coefficient

衡量v的邻接节点的连接程度。
image
分别是6/6 , 3/6 , 0/6

Graphlet

基于同构图的概念,获得邻居的拓扑结构特征,一个根植于给定节点的小图的计数向量。
image
在五个节点以内,一个节点可以有73不同位置有根连接的非同构子图。注意节点的位置。
image

Summary

  • Importance-based features:
    • Node degree
    • Different node centrality measures

对于这个特征,一个例子就是预测社交网络中的名人用户

  • Structure-based features
    • Node degree
    • Clustering coefficient
    • Graphlet count vector

对于这个特征,一个例子就是预测蛋白-蛋白相互作用网络中的蛋白功能。

对节点对的关系进行定量描述

  • Distance-based feature
  • Local neighborhood overlap
  • Global neighborhood overlap

Distance-based feature

这里是简化情况下,利用两个点之间的跳数作为距离。但是没有考虑到邻居节点的重叠程度
image

Local neighborhood overlap

利用节点对中两个节点的共有节点的特性来作为指标
image

Common neighbors

|N(v1)N(v2)|

example:|N(A)N(B)|=|{C}|=1

Jaccard’s coefficient

|N(v1)N(v2)||N(v1)N(v2)|

做一个类似标准化的操作,example:|N(A)N(B)||N(A)N(B)|=|{C}||{C,D}|=12

Adamic-Adar index

一个应用得比较好的系数,大概就是名人效应。如果共同邻居的度很大,说明是个名人只是和许多人有关系,但他认识的人不一定有关系。类似于小圈子往往都认识对方

uN(v1)N(v2)1log(ku)

Graph-Level Features and Graph Kernels

目标:描述整个图的结构的特征
方法:使用图核(graph kernel),测量俩个图之间的相似性
一点介绍

  • 图核衡量数据之间的相似度。
  • 核矩阵必须是半正定的
  • 存在一种特征表示ϕ() et: K(G,G)=ϕ(G)Tϕ(G)

一些常用的核方法,前两种利用了bags of * 思想

  • Graphlet Kernel
  • Weisfeiler-Lehman Kernel
  • Random-walk kernel
  • Shortest-path graph kernel
  • others

Graphlet Kernel

注意这里的子图和节点中子图定义不同

  1. 子图中的点不需要连接
  2. 这些子图没有根
    image

网课中给了个简单了例子,一看就会(可以使用标准化
image
但是!但是!这种计算方法属于NP-hard问题,计算量非常大,指数级增长

Weisfeiler-Lehman Kernel

对邻居节点度进行泛化,使用一种叫Color refinement的算法
步骤:
step1:对所有节点初始化一个颜色(颜色用数字表示)c(0)(v)
step2:迭代定义每个点的颜色c(k+1)(v)=HASH({c(k)(v),{c(k)(v)}uN(v)})
step3:迭代k次后,总结所有的颜色次数(还是看例子比较好)
第一次聚合
image
image
进行hash表建立
image
第二次聚合
image
进行hash表建立
image
最后获得的特征向量
image

这种方法的复杂性是#(edges)线性的

Summary

传统的机器学习流水线

  • 手工特征+ML模型
    对于图数据的手工特征
  • Node-level
    • Node degree, centrality, clustering coefficient, graphlets
  • Link-level
    • Distance-based feature
    • local/global neighborhood overlap
  • Graph-level
    • Graphlet kernel, WL kernel
posted @   iridescense  阅读(84)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示