作者 | 宋从智 审核 | 刘帅
今天为大家介绍的是美国研究组合作发表在Bioinformatics上的一篇文章“SumGNN: multi-typed drug interaction prediction via efficientknowledge graph summarization”。在这项工作中,作者整合了DDI信息以及生物医学KG数据,并提出了有效的聚合机制以进行DDI预测。实验结果表明,该模型具有良好的预测性能。
1.摘要
Motivation:由于药物-药物相互作用(DDI)数据集和大规模生物医学知识图谱(KGs)的可用性不断提高,使用机器学习模型准确预测不良DDI成为可能。如何有效地利用大规模且高噪声的生物医学KGs进行DDI预测仍然是一个有待解决的问题。大多数现有的方法完全忽略了KGs这一部分信息。有些方法试图通过图神经网络将KGs与其他数据直接进行集成,但收效甚微。此外以往的研究大多集中在DDI的二元关系预测上,而多类型DDI药理效应预测更有意义。
Results:在本文中作者提出了一种新的方法SumGNN.该方法主要包含三个部分,1.可以有效锚定KG相关子图的子图提取模块,2.基于自注意力的子图汇总策略,以在子图中生成推理路径,3.多通道的知识和数据集成模块,该模块利用大量的外部生物医学知识来显着改善多类型DDI预测。作者还进行了一系列实验,实验结果表明SumGNN的性能比最佳基线高出5.54%。此外SumGNN通过为每个预测生成的推理路径提供可解释的预测。
2.方法
SumGNN由三个模块组成:子图锚定,知识汇总和多通道神经编码。对于给定的药物对,我们将锚定在与KG中的药物对接近的潜在生物医学实体的子图上。之后作者提出了一个新的图神经网络,该网络具有一个汇总方案,为推理药物相互作用机理提供了一个简缩途径。给定该路径图,通过使用多通道神经编码,以集成各种来源的可用信息以产生充分的药物对表示。最后使用一个解码分类器来预测结果。
局部子图提取模块
为了理解药物相互作用,作者重点关注给定药物对周围KG中的局部子图。具体来说,对于药物对u和v,作者提取u和v的k阶邻居节点
以及
。然后根据这些k阶邻居节点的交点获得封闭子图
。
知识汇总模块
由于药物相互作用通常是由于多种生物医学实体之间复杂的相互作用而形成的稀疏子图。因此在汇总时需要保留对药物相互作用最有用的边,同时去除那些不重要的路径。为此作者采用了一个与层无关的、关系感知的自注意力模块来为每条边分配权重。具体公式如下
SumGNN只依赖于第一层嵌入来对边进行剪枝。它为模型的可解释性提供了明确的途径。由于许多生物网络是通过文本挖掘构建的,其中许多边可能是假阳性的,这种剪枝机制可以在一定程度上进行降噪。
多通道集成模块
通道1 总结知识
使用上面描述的知识总结方法,可以确定一个对输入药物对很重要的总结子图。为了生成利用此子图作为输入药物对的潜在表示。作者使用以下消息传递模式来集成它。
通道2 子图特征
为了得到子图的嵌入表示,作者首先使用一个线性投影变换,之后取所有节点的平均值作为子图的特征。具体公式如下:
通道3 药物分子指纹
药物的分子指纹信息已经被证明是关于药物相互作用强有力的预测指标。因此作者还获得了每一个药物的摩根分子指纹
。
逐层通道聚合
为了聚合每层产生的各种表示,作者使用层聚集机制。具体作者把每一层的节点或者子图表示进行拼接。另外为了集成药物分子指纹,作者将化学表示进行拼接来更新层聚合嵌入
。最终获得输入的药物对表示
。
为了预测药物对的关系,作者获得了一个预测概率向量
,其中向量中的每个值对应于一种关系的可能性。计算方式如下:
3.实验
方法比较
作者在DrugBank和TWOSIDES两个数据集上与多种基准方法进行比较,实验结果图下表所示。可以发现SumGNN在两个数据集中都取得了最好的预测表现。另外作者还进行了消融分析来验证各个模块的有效性。
调参分析
作者进一步分析了邻居子图的阶数k对性能的影响。对于DrugBank数据集,当k较小时,模型表现首先随着k的增大而提升。然而当k从3增大到4时,F1分数降低。这说明子图越大,可以带来更多有用的信息,而当k太大时,也可能带来一些噪声损害性能。对于TWOSIDES数据集,发现在不同k取值条件下结果都非常稳定,这说明即使是1阶子图也能为DDI预测任务提供足够的信息。
更多实验结果和分析请参考原文。
4. 结论
在本文中,作者提出了一种新的方法SumGNN:用于多类型DDI预测的知识汇总图神经网络,该方法主要由可有效锚定KG的相关子图的局部子图模块,基于自注意力的可以在子图中生成推理路径的子图汇总方案,以及利用大量外部生物医学知识来显着改善多类型DDI预测的多通道知识和数据集成模块实现。在真实数据集上的实验证明了SumGNN的强大性能。
参考文献
文章地址
https://doi.org/10.1093/bioinformatics/btab207
代码地址
https://github.com/yueyu1030/SumGNN