结论速递
本次task是图机器学习的导论,围绕了几个问题展开:
- 图机器学习的动机:图数据是有关联的数据,在现实生活中的例子;图机器学习与传统机器学习的区别,难点有哪些。
- 图机器学习的基本概念:图神经网络的基本形式,图嵌入。
- 图机器学习可以解决的任务:分为节点、边、子图、图四个层次,以及一些应用示例(其中AlphaFold,谷歌地图,和药物联合副作用预测的案例非常有趣)。
此外,还穿插了图机器学习的学习路线,和学习工具介绍。
目录
-
- 0 引言
-
- 0.1 学习路线
-
- 0.1.1 图机器学习关键词
- 0.1.2 学习路径与必读论文清单
- 0.2 CS224W课程概述
- 0.3 图机器学习工具
-
- 0.3.1 编程及可视化工具
- 0.3.2 图数据库
- 1 图机器学习动机
-
- 1.1 Why Graghs?
- 1.2 Why Graph Learning?
- 2 图机器学习的基本概念
-
- 3 图机器学习的应用
-
- 3.1 概述
- 3.2 应用举例
-
- 3.2.1 Node Level
- 3.2.2 Edge Level
- 3.2.3 Subgraph Level
- 3.2.4 Graph Level
- 3.3 项目推荐
- 3.4 思考
- 参考阅读
0 引言
0.1 学习路线
0.1.1 图机器学习关键词
图机器学习、图数据挖掘、图神经网络GNN、图卷积神经网络GCN、知识图谱、知识计算、对话问答、推荐系统、社会计算、媒体计算、网络智能、搜索引擎、社交网络、情感计算
0.1.2 学习路径与必读论文清单
必读课:斯坦福CS224W,知识图谱实战
必读论文:DeepWalk,Node2Vec,PageRank,GNN,GCN,Gragh-SAGE,GIN,GAT,Trans-E,Trans-R
0.2 CS224W课程概述
主讲人:Jure Leskovec
课程主页:https://web.stanford.edu/class/cs224w
参考书:Graph Representation Learning Book
- 传统方法:Graphlets,Gragh Kernels
- 节点嵌入:DeepWalk,Node2Vec
- 图神经网络层:GCN,GraphSAGE,GAT,GNN理论
- 知识图谱:TransE,BetaE
- 图深度生成(生成新图):GraphRNN
- 在生物医学、在AIScience、工业界的应用
0.3 图机器学习工具
0.3.1 编程及可视化工具
- PyG,GraphGym:搭神经网络
- NetworkX:处理图的瑞士军刀
- DGL:李沐推荐,复现了很多顶会论文,适合学术研究
- AntV图可视化工具Graphin、AntV图可视化工具G6:可视化图、节点渲染(蚂蚁)
- Echarts可视化:可视化图、节点渲染(百度)
0.3.2 图数据库
1 图机器学习动机
1.1 Why Graghs?
为什么我们需要图这种数据?什么数据可以表示为图的形式?
因为图是描述关联数据的通用语言。
Graghs are a general language for describing and analyzing entities with relations/interactions.
大自然的万事万物很多情况下都属于有关联的数据,不同数据的发生之间会有潜在的相互影响。
在图(Graph,有时也叫Network)中,我们可以使用节点(Node)描述数据,边(Edge)描述数据之间的关联。
现实生活中有什么例子可以描述为图?
- 交换机网络:Node:联网设备;Edge:联网关系。
- 新冠流行病学调查:Node:患者(及感染的毒株);Edge:传播链(及毒株变异情况)。
- 社交网络:Node:人;Edge:两人的社交网络关系(好友、特别关注等,多属性)。
- 场景图:Node:场景中的物体(如:人、篮球、背带裤);Edge:场景中物体的关系(如:人穿着背带裤在打篮球)
- 食物链、地铁站、经济网络、通信网络、论文间的引用网络、互联网引用、神经元网络、基因和蛋白调控网络、计算图、分子结构、三维建模中实体的关系等。
使用图描述数据有什么好处?
1.2 Why Graph Learning?
为什么我们需要图机器学习?它与传统的机器学习有什么不同?
与常规机器学习最大的不同是:数据之间存在关联。即数据形式的不同。
传统机器学习不同条目的数据之间往往需要服从独立同分布(i.i.d)假设,也就是说不同数据的发生应当彼此孤立无关,不能相互影响。可以理解为原来的数据都是Gragh中一系列孤立的Node,Node之间不存在Edge关联。
当前的机器学习和深度学习技术,处理的数据,主要是非结构化(序列类,image)和结构化(表格)数据,没有针对图数据(带关联的数据)的技术。
如何使用图数据进行数据挖掘,是图机器学习准备解决的问题。
图机器学习相较于传统机器学习的难点在于:
- 输入图数据的尺寸是任意的
- 没有固定的Node顺序,从哪个开始都可以
- Node常常具有多种模态的特征
2 图机器学习的基本概念
2.1 图机器学习的基本结构
图机器学习的通用结构和传统机器学习没有太大区别:
- 输入:图;
- 中间:一个黑箱,一系列的卷积、正则化等操作
- 输出:节点属性,边连接,图,子图等
2.2 图表示学习
和传统机器学习最大的不同在于数据形式的不同,所以如何将图数据转化为传统形式呢?
表示,指一个d维向量,该向量应能表示原有复杂数据在完成某些特定任务时需要用到的特征。
图表示学习,也叫图嵌入。指自动从原始数据中学习出需要的表示形式,如:将节点信息和边信息集合成一个向量。
图嵌入是图机器学习中的一个比较重要的问题,能将图机器学习变成传统的机器学习。
由于不需要做特征工程,图机器学习是端到端的。
3 图机器学习的应用
3.1 概述
可以列举出如下的一些应用类型:
- 路径寻找:寻找点与点之间的最短路径
- 分析节点的重要程度:度中心性评价(如PageRank,评价谷歌搜索中哪些页面比较重要应该放在前面)
- 社群检测:银行信用卡欺诈,识别风险村
- 连接检测:社交网络中推荐可能认识的人
- 相似性:找到一张图上虽然隔得很远但是可能很相似的节点,如两个没有关联但很相似的人
- 图嵌入
以上任务可以被分为几个层次:
- 节点层次Node Level:如分类用户是不是信用卡欺诈用户
- 边层次Edge Level:如判断用户之间是否相互认识
- 社群(子图)层次Subgraph Level:如用户聚类,识别欺诈风险村
- 整图层次Graph Level:如判断分子结构是否有毒
- 其他任务:
3.2 应用举例
3.2.1 Node Level
-
蛋白质的三维空间结构预测:AlphaFold(突破性进展)
从氨基酸序列,预测出蛋白质的空间结构,准确性相当高。(生成蛋白质的实验是非常昂贵的)
核心思路:空间图
Node:多肽链中的每一个残基,Edge:残基连接的角度和距离
AlphaFold官网:https://www.deepmind.com/research/highlighted-research/alphafold
AlphaFold蛋白质数据库:https://alphafold.ebi.ac.uk
大大加速了结构生物学的研究进展。
3.2.2 Edge Level
-
推荐系统中的应用:PinSage
判断用户是否喜欢某个商品,由已知边(已知的喜欢关系)推断未知边,PinSage:把商品推荐给潜在用户
-
药物之间是否存在联合副作用:https://arxiv.org/pdf/1802.00543.pdf
药物太多不可能逐一进行两两实验,于是从统计及已知数据入手
Node有两类:药物和蛋白质,Edge也有多类:不同的联合副作用
结果目前没有得到验证,但是有相应文献佐证
3.2.3 Subgraph Level
3.2.4 Graph Level
3.3 项目推荐
-
ReadPaper:文献的学术引用网络(connected papers也是类似的项目)
-
bios医疗知识图谱:从海量数据中构建的知识图谱,医学概念三元组(A,B有C关系)
-
刘焕勇老师Github:汇集了图数据挖掘在很多领域的应用
-
OpenRank:开源项目开源企业排行榜,还有OpenGalaxy
-
红楼梦人物知识图谱
-
公司组织结构分析
3.4 思考
(部分思考题已经在前文中有体现)
- 打开你的手机,里面那些APP用到了图机器学习和图神经网络的技术?
各类涉及到推荐系统的app,如社交app、购物app;涉及到人员社交网络的app,如社交app、求职信息app、科研信息app(如ResearchGate)、联机游戏app等。
- A股、港股、美股市值最高的上市公司,哪些公司的核心资产是图?
非制造类应该大部分都是。腾讯(社交关系),阿里(社交关系、商品推荐),银行类(风险评估),谷歌(如信息推荐),亚马逊(如商品推荐),脸书(社交关系)等等。
- 马化腾在2022年12月内部讲话提到,微信视频号是整个腾讯的希望,请从图的角度解释这句话。
微信视频号背靠微信潜在庞大的人员社交关系网络,在未来推荐信息上将会有很大的潜力。
- 在你自己的研究领域,哪些数据可以用图或者网络来表示,如何进行图数据挖掘?
- 大楼的空调系统结构可以用图来描述,Node为设备(如冷水机组、空气处理机组),Edge为连接关系;
- 风管水管路可以用图来描述,Node为管道,Edge为连接关系及风量信息;
- 楼宇能源管理系统可以用图来描述,Node为各个电表(属性可以为能耗),Edge表示电表间的关系;
- 楼里的传感器网络可以用图来描述,Node为各类传感器,Edge表示他们之间的关系,图数据挖掘应用可以为故障诊断。
参考阅读
- cs224w同济子豪兄Github
- 斯坦福CS224W图机器学习、图神经网络、知识图谱【同济子豪兄】_哔哩哔哩_bilibili