本小节的示例均围绕以下知识图展开:
- 该示例数据描述了疾病、药物、不良事件和蛋白质之间的相互关系
1 推理的类型
常见的三种知识图推理类型:
- 单跳查询(one-hop queries),从起始节点经过一条边是否可以达到终止节点,即预测两个节点之间是否有边连接(示例:Fluvestrant 这种药物可能导致哪些不良反应?)
- 路径查询(path queries),从起始节点经过 n 条边是否可以达到终止节
分类目录归档:机器学习
本小节的示例均围绕以下知识图展开:
常见的三种知识图推理类型:
知识图(Knowledge graph):以图的形式存储知识
知识图示例:生物知识图(蛋白质/药物/疾病/不良事件)
知识图应用:信息检索服务、问答和对话
常见的开源 KG :知识图数据资源
这类知识图一般是百万级别的,存在很多边的缺失(考虑补齐)
比
异构图(Heterogeneous Graph),存在不同类型的节点和边
即节点和边至少有一个具有多种类型,常见于知识图谱的场景
举例:引文网络
从异构图到标准图:
one-hot
形式的特征,以此区分类型[1, 0]
附加到每个“作者节点”;将特征 [0, 1]
附加到每个“纸节点”关键问题:GNN 节点嵌入能否区分不同节点的局部邻域结构?
GNN 通过邻域定义的计算图生成节点嵌入:
由于 GNN 主要依赖节点特征,而不考虑节点 ID
因此 GNN 无法区分位置同构的节点(节点 1 和节点 2)
图训练的完整 Pipeline:
不同的任务级别需要不同的预测头(Prediction head)
$$ \widehat{\boldsymbol{y}}_v=\mathrm{Head}_{\mathrm{node}}(\mathbf{h}_v^{(L)})=\mathbf{W}^{(H)}\mathbf{h}_v^{(L)} $$
图神经网络(GNN)的通用框架:
所以单层 GNN 的计算过程可表示如下: $$ \begin{aligned} \mathbf{m}_u^{(l)}&=\mathrm{MSG}^{(l)}\left(\math
图数据的复杂性:
直接将邻接矩阵或节点特征输入到传统神经网络的问题:
置换不变性 vs 置换等价性
传统图机器学习 VS 图表示学习
嵌入表示的好处:
课程内容大纲:
背景要求:机器学习、算法和图论、概率论与数理统计、Python/PyTorch
其他推荐工具: