文章目录
两大类Graph
自然的图结构
如社交网络、通信网络、生物图、大脑神经元连接(如果我们想对大脑建模,图结构是少不了的)
用图来表示relation structure(即用图表示知识等)
本课程关键:如何利用好这些关系,来做更好的预测
复杂的领域有丰富的关系结构(relation structure),可以用graph来分析。
现代ML工具不适用于图
因为ML工具擅长处理规则数据,如序列、网格数据。但是图数据有三个特性,使得传统工具不太适用:
- 大小不固定,拓扑结构不固定
- 没有特定的参考点,没有特定的顺序
- 动态特性、多重特征
本课程关键着眼点
如何扩展NN使得其适用于处理图数据?
使其不需要人工干预,end to end训练?
关键点还是在于学习表示。
本课大纲
1.2 Applications of Graph
四种级别的任务
1.2.1 Node-level例子:蛋白质折叠位置预测
给定氨基酸序列,预测蛋白质结构。因为氨基酸的位置是固定的,因此预测折叠结构变成了预测每一个氨基酸的位置。
这个问题在2020年12月解决了,好像有巨大的影响,DeepMind解决的。
1.2.2 Edge-level
也叫Link prediction链路预测
例子:推荐系统(就不写了)
例子:药物互相作用的预测
这个例子中,药物用三角表示,蛋白质用圆表示。药物间副作用用r1等表示,蛋白质间互相作用也用连边表示。问题是,这个图是不完整的。目标是将缺失的链路(药物间作用)补上。
模型预测结果,和真实的医学数据对照,发现是正确的:
1.2.3 Subgraph-level
地图的流量预测。
1.2.4 Graph-level
- 抗生素的效用预测。也是最近有了很大的突破。能提示人们那些药物可能是有用的,然后再去做实验。这确实很有用啊。
- graph Generation:
生成新的分子、药物结构 - Physics Simulation:
模拟粒子的运动。预测下一时刻所有粒子的位置,也就预测了一群物体的下一时刻的形状。
1.3 Choice of represention
图的优势在于,其提供了一个通用的语言,用来描述现实世界中的事情。用同一些underlying math语言描述。
1 如何定义图
图的表示是很关键的。如引文图中,若用“标题中是否使用了同一个关键词”作为边,则这个图质量会很差,结果也会很差。因此,如何选择边和节点,是首要的问题。有些领域中有统一的图表示方法,但是通常领域并不是这样的。如何定义图结构,决定了模型学习的nature(应该是属性吧)。
2. 图的一些术语
- 有向图无向图
- 度
- 二部图
- Folded/Projected Bipartite Graphs
这是定义在二部图上的。两个节点之间有连接等价于二部图中,两者至少 有一个共同邻居。如co-合作图
- 图的表示:
- 邻接矩阵很稀疏,如下图:
- 边的序列:这种好存储但是难以分析
- 邻接表
- 节点和边的属性,可选项:
- 多重图:节点之间多个连边
- 连通性:连通图和非连通图的邻接矩阵有区别: