【CS224w图机器学习】第一章 图机器学习导论

一.前言

笔记参考b站同济子豪兄的视频而成,源于斯坦福CS224W

学完本章,你将会对图神经网络有初步的了解,同时对于应用层面也有初步的印象

1.1关键词

图机器学习、图数据挖掘、图神经网络(GNN)、图卷积神经网络(GCN)、知识图谱、知识计算、对话问答、推荐系统、社会计算、媒体计算、网络智能、搜索引擎、社交网络、情感计算

1.2 学习路径

斯坦福CS224W(子豪兄的中文精讲版)、知识图谱实战

1.3 必读论文
  • Deepwalk、Node2vec
  • PageRank
  • GNN、GCN、Gragh-SAGE、GIN、GAT
  • Trans-E、Trans-R

二.图

2.1 为什么要做图神经网络?

在大自然当中图无处不在,很多自然现象都可以用图中的结点以及结点之间的的连接来表示。由于我们获取的大部分数据中,存在数据与数据之间的关联现象,我们称之为关联数据,关联数据表示数据之间是存在联系的,而就可以用来描述关联数据,简言之,图:描述关联数据的通用语言

在传统机器学习以及数据挖掘中,每一个数据相互之间都是独立的,我们称其满足独立同分布(iid),同时每一个数据彼此之间都是无关的,例如每一朵鸢尾花之间,每一个手写数字图像之间,每一张猫狗图像之间,这些图像本身是没有任何关系的

在这里插入图片描述

但是现在我们用图将这些数据联系起来

2.2 身边的图

在这里插入图片描述

例如事件关系图,计算机网络之间形成的关系,病毒的传播路径,食物链,地铁站

在这里插入图片描述
社交网络,经济网络,通信网络,论文之间的引用网络,互联网中各个网页形成的网络,以及人脑神经元之间形成的网络

在这里插入图片描述

医疗知识图谱(疾病和某些药物、手术、甚至营养物质等进行关联)、基因与蛋白质的调控网络、场景图(比如蔡徐坤、背带裤之间的联系,一个人的各个关节如头,肩膀等之间的联系推断出这个人在做什么)、代码中的操作、运算、函数等抽象为图(例如神经网络中的计算图,包含卷积池化等)、分子抽象为一个图(元素之间以化学键以及相互作用力为连接,应用于药物设计)、3D建模等

2.3 图论

图论最早起源于哥尼斯七桥问题

在这里插入图片描述

本质是将现实中复杂的问题抽象为结点与连线的简单形式,易于理解

3.如何用图数据进行数据挖掘?

3.1 传统机器学习方法

![[Pasted image 20230211193856.png]]

传统机器学习里面分类和回归中,数据与数据之间不知道彼此的存在,例如猫狗图像分类,这张猫的图片是不知道另外一张狗的图片的存在的,因为不需要关注这些。在图像分类中,只需要一条直线或者曲线形状的决策边界来划分类别,而不需要考虑数据与数据之间的关系。回归中也是如此,我们只需要一条线来拟合数据,至于挖掘出数据之间的关系对于回归任务来说是不重要的。

3.2 神经网络在数据中的应用

我们知道卷积神经网络(CNN)可以用于处理图像数据,图像数据本质上是矩阵数据(一张图像实际上就是由一个个像素点组成)。而循环神经网络(RNN)用来处理文本或者语音这种序列数据.2017年提出的transformer则在图像、语音、文本数据方面都有应用,例如图像处理的swintransformer,文本语音的bert、gpt等,都是transformer的应用。

我们知道上述神经网络可以用来处理矩阵、表格、序列数据,那么有没有一种神经网络可以用来处理图这种关联数据呢?那就是图神经网络

2018年比较热火的有元学习、连续学习等,直到2020年,图神经网络已经成为新的大热门,图神经网络已经变得更加重要了

3.3 图深度学习为何如此难?
  • 难点一:图是任意尺寸的,例如全国的社交网络和全村的社交网络,这需要图神经网络能兼容任意尺寸的输入以及复杂的拓扑结构。与文本或者图像数据不一样的是,一张图片的大小或者一个句子的长度总是有限的,而图则是任意尺寸的,想一想全国的社交网络,这得有多大,一次性全输进去,爆炸~。
  • 难点二:对于一个图来说,它没有固定的结点顺序(所以应该先输入哪个结点?)也没有参考的锚点(对于图像来说,我们是知道卷积要从上到下从左到右,序列数据也是从句子的第一个字/词到最后一个来处理的,这个最先处理的部分叫做参考的锚点,而图是任意的,没有锚点的)
  • 难点三:图是动态变化的(对于全国社交网络而言,每时每刻都在动态变化,不断有新的结点加入)
  • 难点四:图是多模态的,对于音乐app中的一首歌,又有音频,又有评论,又有歌手的图片、mv视频等等等,如何充分利用这些多模态特征也是传统的神经网络无法解决的

我们需要图神经网络能解决以上挑战,以兼容复杂而带关联的数据类型

3.4 图神经网络简图

![[Pasted image 20230211202425.png|500]]

我们仍然把它先当作一个黑箱模型,输入是一个图,输出可以是结点的类别、某两个结点的新的连接、一个新的图或者子图。

而中间的黑箱模型包含图卷积操作、激活函数、正则化、DropOut等操作,这一点在后面再进行详细介绍

这个黑箱模型可以实现端到端的表示学习,而不需要我们人为去提取图数据的某一个特征,与传统神经网络一样,图神经网络也可以帮我们自动筛选特征。这里的端到端就是说不需要我们去辅助,一个黑箱,硬train一发就能解决

这里表示学习意味着一个结点可以被映射为一个d维的向量,而这个d维的向量就包含了这个节点的语义信息,整个将图映射为嵌入向量的过程叫做图嵌入,例如一个图有256个结点,那么该图经过图嵌入,转换为256行d维的向量

4.课程概述

4.1 课程概述
  • 1.传统方法:Graphlets,Graph Kernels
  • 2.结点嵌入方法(node embedding):DeepWalk,Node2Vec
  • 3.图神经网络(GNN):GCN(图卷积),GraphSAGE,GAT,Theory of GNNs(GNN的理论、表示能力、潜在的缺陷、如何改进等等)
  • 4.知识图谱和推理(Knowledge graphs and reasoning):TransE,BetaE
  • 5.生成图的深度模型(Deep generative models for graphs):GraphRNN
  • 6.图数据挖掘在生物医学、科学、工业中广泛的应用
4.2 课程大纲

课程大纲如下
![[Pasted image 20230211213929.png]]

主要有20讲

  • 第一讲:图机器学习导论
  • 第二讲:图机器学习传统方法
  • 第三讲:图嵌入(结点嵌入)
  • 第四讲:谷歌:PageRank算法
  • 第五讲:结点分类
  • 第六、七、八、九讲:GNN的表示能力、背后的理论、在各行各业的应用
  • 第十、十一讲:知识图谱的嵌入、推理和补全
  • 第十二、十三讲:社群检测,对子图层面进行挖掘
  • 第十四、十五讲:图生成
  • 第十六、十七讲:图神经网络的高阶应用
  • 第十八、十九讲:课程的一些讲座

5. 图机器学习编程工具

5.1 一些图机器学习的库
  • PyG:斯坦福大学自制图神经网络的库,向pytorch一样可以搭积木
  • NetworkX:“瑞士军刀”,和sklearn一样有各种各样的工具和算法,可以自行构建知识图谱
  • DGL:复现了很多顶会的论文,比较适合学术研究
5.2 辅助库
  • 图数据可视化
    • AntV
    • Echarts:百度和阿帕奇联合制作
5.3 图数据库

图数据库是用来存储、推理、索引图数据的数据库

![[Pasted image 20230211215258.png|400]]

第一名是Neo4j,一般就用这个Neo4j就可以了

6.图机器学习应用

6.1 应用层面分类
6.1.1 任务层面

![[Pasted image 20230211215712.png]]

  • 1.最短途径的搜索与查找(Pathfinding & Search)
    • 例如高德地图的导航
  • 2.结点重要性(Centrality Importancce)
    • 衡量各个节点的重要性,例如某个大客户和一个普通用户的区别
    • 著名的PageRank算法用来解决这个问题(谷歌搜索里面哪个网页比较重要,就会排在前面)
  • 3.社群检测(Community Detection)
    • 比如一群结点会有一个共同的祖先结点(可以理解为树干是祖先,树枝是子结点),这个由祖先结点领导的群体就叫做一个社群
    • 比如在银行卡信用欺诈里面,可以把一整个老赖村找出来
  • 4.联系预测(Link Prediction)
    • 社交平台里面,会推荐你可能认识的人
    • 推荐系统:我给一个商品点赞,这个商品可能会推荐给我身边的人
  • 5.结点相似度分析(Similarity)
    • 可能在知识图谱中两个结点哥的6很远,但是可能会有相似性
  • 6.嵌入(Embeddings)
    • 将结点映射为向量
6.1.2 结构层面

![[Pasted image 20230211221140.png|500]]

  • 结点层面(Node level):对某一个结点进行分类,分析用户是否信用卡欺诈?
  • 连接层面(Edge-level):例如社交网络推荐你可能认识的人、推荐一些商品、推荐一些短视频
  • 社群层面(Community level):对用户进行聚类等
  • 图层面(Graph-level):分子是否有毒,生成新的分子等等

在这里插入图片描述

6.2 原理
6.2.1 结点层面

由已知结点推断未知结点
![[Pasted image 20230211221537.png|400]]

6.2.2 连接层面
  • 最常见的是推荐系统
    • A和B同时购买了a商品,而A又购买了b商品,因此系统可能会把b商品也推荐给B
    • 本质上是由已知的连接推断出未知的连接
    • 当你购买了某一个商品,会推荐给你相似的商品
  • 药物联合副作用
    • 由于不同的药物一起服用可能会产生额外的副作用,而不同药物的服用组合太多而不可能一一验证,只有通过已知的药物同时服用的副作用,以及组成该药物的蛋白质,来推断出未知组合药物的副作用
6.2.3 子图层面
  • 导航
    • 结点:将一条条道路作为结点
    • 连接:道路与道路之间的连通性
    • 从A到B会产生不同的子图,选择距离最短和通行时间最少的子图作为导航路段,同时通过其他用户的数据来实时预测该路段的拥挤程度,进而综合预测通行时间
6.2.4 图层面
  • 药物设计
    • 结点:原子
    • 连接:化学键
    • 潜在未知抗生素的种类是天文数字,我们不可能一个一个画出可能的结构然后合成并尝试,可以用图机器学习先选出一些有潜力的分子
  • 物理模拟
    • 游戏、元宇宙等等都要进行粒子的模拟,比例流体力学、土壤、粘土等
    • 把每一个粒子都当成是一个结点,粒子之间的距离和相互作用力作为连接,由图神经网络来预测下一粒子的位置和速度,然后不停的迭代这个过程,就可以实现粒子的模拟
  • 预测蛋白质空间结构
    • 最近爆火的AlphaFold
    • 通过氨基酸多肽链的一维结构来得到三维结构

7.扩展学习与继续学习

刘焕勇 http://liuhuanyong.github.io

公众号:老刘说NLP

8.其他

开源排行榜:http://open-leaderboard.x-lab.info
通过开源项目的活跃度等信息计算综合排序,也可以通过项目的热度来发现风头

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值