图机器学习

  • 1、图机器学习导论
    • 1.1图神经网络与普通神经网络的异同
  • 2、图的基本表示和特征工程
    • 2.1 图的基本表示
      • 2.1.1 图的本体设计
      • 2.1.2 图的种类
      • 2.1.3节点连接数(度)
      • 2.1.4图的基本表示(邻接矩阵)节点数量少使用
      • 2.1.5图的基本表示(连接列表和邻接列表)数量巨大采用
      • 2.1.6图的连通性
    • 2.2传统机器学习和特征工程
      • 2.2.1 传统机器学习
      • 2.2.2 节点层面的特征工程
        • A.节点连接数
        • B.节点中心性即考虑图中节点的重要性
        • C. Clustering coefficient
        • D.graphlet Degree Vector(GDV)——是一个根植于给定节点的子图的数量向量
        • 总结
      • 2.2.3 连接层面的特征工程
        • A.链路级预测任务:Recap
        • B.链接预测
          • a.基于两节点距离:
          • b.基于两节点局部连接信息:
          • c.基于两节点在全图的连接信息:
      • 2.2.4 全图层面的特征工程
        • 2.2.4.1背景知识:Kernel Methods
        • 2.2.4.2 概述
        • 2.2.4.3 Graph kernel:Key Idea
        • 2.2.4.4 Graphlet Feature
          • A 对每一种节点数,可选的graphlet:
          • B graphlet count vector:每个元素是图中对应graphlet的数量:
          • C graphlet kernel:
        • 2.2.4.5 Weisfeiler-Lehman kernel:
        • 2.2.4.6 总结
  • 3、图机器学习代码实战
    • 3.1、networkx基本说明
    • 3.2、nx.draw可视化
  • 4、图嵌入表示学习
    • 4.1、Traditional ML for Graphs的流程
    • 4.2、Graph Representation Learning(图表示学习)
    • 4.3、为什么要嵌入?(why embedding?)
    • 4.4、图嵌入-基本框架(编码器--解码器)
      • 4.4.1、具体流程:
      • 4.4.2、两个关键点:
      • 4.4.3、“shallow”embedding
      • 4.4.4、框架总结 Encoder+Decoder FrameWork
      • 4.4.5、Note on Node Embeddings
    • 4.5、随机游走
      • 4.5.1 定义
      • 4.5.2 随机游走的计算方法
      • 4.5.3 为什么选择随机游走?
      • 4.5.4 优化特征学习(feature learning as optimization)
      • 4.5.5 同类改进-node2vec:Biased walks
      • 4.5.6 随机游走的缺点
  • 5、PageRank
    • 5.1 PageRank—"Flow" Model
    • 5.2 随机邻接矩阵M
    • 5.3 M和Random Walk联系起来
    • 5.4 M和eigenvector centrality的联系
    • 5.5 总结
  • 6、半监督节点分类 Label Propagation

1、图机器学习导论

1.1图神经网络与普通神经网络的异同

传统神经网络
以往:随着机器学习、深度学习的发展,语音、图像、自然语言处理逐渐取得了很大的突破,然而语音、图像、文本都是很简单的序列或者网格数据,是很结构化的数据,深度学习很善于处理该种类型的数据。


图神经网络
现实世界:并不是所有的事物都可以表示成一个序列或者一个网格,例如社交网络、知识图谱、复杂的文件系统等,也就是说很多事物都是非结构化的。


2、图的基本表示和特征工程

2.1 图的基本表示

内容:
图的本体设计
图的种类(有向、无向、异质、二分、连接带权重)
节点连接数
图的基本表示-邻接矩阵
图的基本表示-连接列表和邻接列表
图的联通性


2.1.1 图的本体设计

  • 如何设计图的本体设计取决于将来想解决什么问题。
  • 从中心点出发,将所需要的要素根据中心点延伸。来判断节点种类和个数

2.1.2 图的种类

图的种类:(有向、无向、异质、二分、连接带权重)


异质图

同质图:只包含一类型节点和一类型边
一个异质图G由一组节点V和一组边E构成。其中每个节点和每条边都对应着一种类型.T就是表示节点类型集合,R表示边类型集合。

二分图:G={V,E}
节点集V可以分为两种不相交的子集V1,V2。而E中的每条边都连接着V1中的一个节点和V2中的一个节点。二分图广泛用于捕获不同对象之间的互动。


二分图展开


2.1.3节点连接数(度)


度:表示这个节点和其他相邻节点的次数


2.1.4图的基本表示(邻接矩阵)节点数量少使用


2.1.5图的基本表示(连接列表和邻接列表)数量巨大采用


只记录存在连接的节点对


只记录存在关系的节点对,每个节点依次排开,只记录与它有关系的节点


带权重的图


2.1.6图的连通性

  • 如果一个图任意两节点间,总有一条路可以触达,称为连通图
  • 否则称为非连通图,由多个连通域组成


2.2传统机器学习和特征工程

2.2.1 传统机器学习

这里的features包括两种类型:结构(structural)特征描述节点的属性(attribute)和properities特征

人工特征工程+机器学习

  • 图机器学习的基本任务:
  • 节点层面:信用卡欺诈
  • 连接层面:可能认识的人
  • 子图/全图层面:用户聚类、分子是否消毒

    Traditional ML Pipeline:首先获取nodes、links、graph的特征向量;然后训练一个ML model;最后在新的数据上(新的node link graph的特征向量)应用model,做出预测。Traditional ML Pipeline使用手工设计的特征。

2.2.2 节点层面的特征工程

通过已知节点补全未知节点

目标:构造网络中的特征以及节点的位置

  • 节点连接数
  • 节点中心性
  • 集群系数
  • 子图模式

A.节点连接数

节点v的度数 k v k_{v} kv是节点v的邻居节点数(与v相连的边数)
缺陷:将所有邻居节点同等对待,无法捕捉邻居节点的重要性。(如果几个节点的度数相同,则特征向量相同,则模型对它们做出的预测相同。没办法区分它们)

B.节点中心性即考虑图中节点的重要性

  • Eigenvector centrality
  • 如果节点v被重要的nodes包围 u ∈ N ( v ) u\in N(v) uN(v),则节点v是重要的(我的邻居都重要,那我应该也重要)。
    由于左式是递归的,我们如何求解呢?
    c m a x c_{max} cmax对应着 λ m a x \lambda _{max} λmax,即最大特征值对应的特征向量, λ m a x \lambda _{max} λmax总是正值且是唯一的

  • Betweenness centrality
    如果一个节点在许多其他成对节点的最短路径上,那么节点重要。(如果一个节点是重要的连接器交通枢纽,那很重要)
  • Closeness centrality
    值越大越好
    如果一个节点有到所有其他节点的最短路径,那么这个节点是重要的。

C. Clustering coefficient

  • 聚类系数用来评价节点周围邻居节点的连接程度
  • e v e_{v} ev=邻居节点真实存在边数➗最多可能存在边数

    观察到聚类系数计算的是ego-network中三角形的数量(在社交网络中我的朋友的朋友也可能是我的朋友,社交网络会随着三角形的闭合而发展)

D.graphlet Degree Vector(GDV)——是一个根植于给定节点的子图的数量向量

那能否对三角形进行扩展,一般化为计算给定节点附近预先指定的子图的数量——graphlets,将仅仅对三角形的计数扩展到任意结构的子图。
graphlets:rooted(基于给定节点)连通的异构子图与motifs区分

因为graphlets是诱导子图( induced subgraph 节点的所有连接都要包含在内),所以节点在位置c不行,另两个节点必须要连接。

GDV提供了一种测量节点局部网络拓扑的方法,通过比较两个节点的GDV提供了一种比node degree和聚类系数更细节的测量局部拓扑相似性的方法。

总结

node features可以分为:

  1. Importance-based features:捕获节点在图中的重要性
    node degree:只计算了节点邻居节点的数量
    Node centrality:可以区别对待邻居节点Models importance of neighboring nodes

  2. Structure-based features:捕获节点局部邻域的拓扑结构
    node degree:只计算了节点邻居节点的数量
    聚类系数:用来评价节点周围邻居节点的连接程度
    GDV:计数不同的graphlets的数量

2.2.3 连接层面的特征工程

通过已知连接补全未知连接

A.链路级预测任务:Recap

  • 任务:根据现有的链接预测新的链接。测试时,对无链路的节点对进行排序,预测top k节点对。关键是为一对节点设计特征。

  • 链接预测任务的两种公式:

  • 随机缺失边
    移除一组随机的链接,然后目标是预测它们的连接情况。类似于化学键研究,不同的化学键的功能不一样。

  • 随时间演化边
    现在有一个按照时间 t 0 ′ {t_0}' t0时候的边来定义的图 G [ t 0 , t 0 ′ ] G[t_0,{t_0}'] G[t0,t0],输出一个排序后的边列表,这里的边不是之前 t 0 ′ {t_0}' t0时候的边,而是按照时间预测出来的 G [ t 1 , t 1 ′ ] G[t_1,{t_1}'] G[t1,t1]。这个类似于人随着时间发展扩展自己的朋友圈。采用的评价方式是 [ t 1 , t 1 ′ ] [t_1,{t_1}'] [t1,t1]时间段内产生的新边期望和取L的最上面n个元素,并计算正确的边数。

B.链接预测

a.基于两节点距离:

两点间最短路径的长度 distance-based feature

缺点:这种方式的问题在于没有考虑两个点邻居的重合度(the degree of neighborhood overlap),如B-H有2个共同邻居,B-E和A-B都只有1个共同邻居。

b.基于两节点局部连接信息:


捕获两个节点

图机器学习【从理论到实战】相关推荐

  1. 白话机器学习算法理论+实战之PCA降维

    1. 写在前面 如果想从事数据挖掘或者机器学习的工作,掌握常用的机器学习算法是非常有必要的,比如我之前写过的一篇十大机器学习算法的小总结,在这简单的先捋一捋, 常见的机器学习算法: 监督学习算法:逻辑 ...

  2. 白话机器学习算法理论+实战之支持向量机(SVM)

    1. 写在前面 如果想从事数据挖掘或者机器学习的工作,掌握常用的机器学习算法是非常有必要的,比如我之前写过的一篇十大机器学习算法的小总结,在这简单的先捋一捋, 常见的机器学习算法: 监督学习算法:逻辑 ...

  3. 白话机器学习算法理论+实战之EM聚类

    1. 写在前面 如果想从事数据挖掘或者机器学习的工作,掌握常用的机器学习算法是非常有必要的,比如我之前写过的一篇十大机器学习算法的小总结,在这简单的先捋一捋, 常见的机器学习算法: 监督学习算法:逻辑 ...

  4. 白话机器学习算法理论+实战之K近邻算法

    1. 写在前面 如果想从事数据挖掘或者机器学习的工作,掌握常用的机器学习算法是非常有必要的,比如我之前写过的一篇十大机器学习算法的小总结,在这简单的先捋一捋, 常见的机器学习算法: 监督学习算法:逻辑 ...

  5. 2022图机器学习必读的11大研究趋势和方向: 微分方程/子图表示/图谱理论/非对称/动态性/鲁棒性/通用性/强化学习/图量子等...

    来源:智源社区 本文约6900字,建议阅读10+分钟 本文为你总结了图机器学习过去一年中的研究亮点,并对该方向在 2022 年的发展趋势进行了展望. [ 导读 ]几何机器学习和基于图的机器学习是当前最 ...

  6. 白话机器学习算法理论+实战番外篇之LightGBM

    1. 写在前面 如果想从事数据挖掘或者机器学习的工作,掌握常用的机器学习算法是非常有必要的,在这简单的先捋一捋, 常见的机器学习算法: 监督学习算法:逻辑回归,线性回归,决策树,朴素贝叶斯,K近邻,支 ...

  7. 图谱实战 | 斯坦福黄柯鑫:图机器学习在生物图上的应用

    转载公众号 | DataFunSummit 分享嘉宾:黄柯鑫 斯坦福大学 博士生 编辑整理:元玉蒲 西北大学 出品平台:DataFunTalk 导读:大家好,我叫黄柯鑫.我现在是斯坦福大学的计算机科学 ...

  8. 【干货书】图机器学习,带你学习图数据的机器学习处理技术与实战案例

    来源:专知 本文为书籍推荐,建议阅读5分钟读完这本机器学习的书,你将学习图论的基本概念和所有用于构建成功的机器学习应用程序的算法和技术. 图机器学习将向您介绍一组用于处理网络数据的工具,并利用实体之间 ...

  9. 深度学习语义分割理论与实战指南

    本文来自微信公众号[机器学习实验室] 深度学习语义分割理论与实战指南 1 语义分割概述 2 关键技术组件 2.1 编码器与分类网络 2.2 解码器与上采样 2.2.1 双线性插值(Bilinear I ...

最新文章

  1. 升级TortoiseSVN-1.9.0.26652-x64-svn-1.9.0导致错误提示
  2. 【C语言学习笔记】——1.起始
  3. Hackthissite realistic 6解密题后的记录
  4. 蓝牙核心规范5.1:革新精确定位技术
  5. 在linux下一般用scp这个命令来通过ssh传输文件
  6. HTML DOM 树形结构
  7. 初学者一些常用的SQL语句(一)
  8. 电脑计算机无法安3.5,Windows无法安装以下功能:.NET Framework 3.5(包括 .NET 2.0 和 3.0)解决方法...
  9. (转载)C#控件缩写规范
  10. SSE指令介绍及其C、C++应用 zz
  11. 广东电网公司大数据平台初步建成
  12. linux怎样使用小米线刷工具,在linux上怎么样线刷小米手机
  13. CText更新至V1.1.0
  14. php studay,studay是什么意思
  15. 计算机无法同步,在win7中,为什么电脑时间不能同步?
  16. Neo4j CQL高级
  17. 分享一个淘宝/天猫/京东/阿里 图片抓取工具
  18. 数学图形(2.2)N叶结
  19. QueryPerformanceCounter
  20. 河南省申请测绘资质保密人员要求

热门文章

  1. 详解WAVE音频文件格式
  2. 博睿数据App 3.0四大新功能来袭,大幅提升App用户体验可见性
  3. 内省java_Java中的内省
  4. 【Bitlocker篇】BitLocker无法加密系统盘,提示正在启动Bitlocker,系统找不到指定的文件的解决方案
  5. php记录访问保存数据库,php无需数据库访问者计数器(txt文本保存数据)
  6. Sql Server 修改表字段数据类型的长度
  7. 1.探花交友项目环境搭建
  8. PHP和Python混合编程技术-ppython
  9. Matlab 官网查询函数
  10. iOS平台的应用程序调试与分析(openssh + gdb)