吴文俊人工智能科学技术奖
疫情时代生物医药

《药物研发中的深度图学习》

2021年05月20日   来源:中国人工智能学会     

10211


2021年4月10日-12日,吴文俊人工智能科学技术奖十周年颁奖盛典暨2020中国人工智能产业年会在北京和苏州同期圆满成功举办。亚马逊云科技上海人工智能研究院李牧非受邀在苏州工业园区希尔顿酒店,2020中国人工智能产业年会—疫情时代生物医药前沿论坛上发表主题报告《药物研发中的深度图学习》。


以下为演讲实录:


亚马逊云科技上海人工智能研究院是比较新的机构,现在主要做的重点是图上的深度学习,所以更多从计算机角度跟大家分享一下。

图是一类非常常见的数据结构,它可以很好地描述不同对象之间的关系。我们可以用一个节点来表示一个对象,每条边表示相邻节点之间存在某种关系。

我们发现药物研发中的很多数据可以用图来表示,比如小分子、蛋白质、生物网络、知识图谱。

首先小分子的建图是相对比较直观的,一般都会用分子图,其中节点就是分子里的原子,边可以表示化学键或原子对间距离接近。

我们也可以用图来对蛋白质建模,这个图是剑桥一个博士做的工作,就是如何对蛋白质构建各种图。点可以是蛋白质里面的原子或者氨基酸,边可以是化学键或者距离接近或者分子内接触。

第三类是生物网络,比如说蛋白质-蛋白质相互作用网络,每个节点表示一个蛋白质,边表示一对蛋白质间存在某种相互作用又比如基因-基因共表达网络。

我们可以进一步把生物网络做一个拓展,主要是加入一些临床相关的信息就可以得到一个生物医药知识图谱,可以表示丰富的知识信息,比如药物-疾病关系、药物-药物关系、疾病-症状关系。最早魏老师提到DDI,也可以用知识图谱来表示。

药物研发中的图学习任务,比如说点分类任务,在生物网络中进行蛋白质功能预测。链接预测,在生物医药知识图谱中预测潜在的药物-药物相互作用。

还可以进行整图预测任务。

图机器学习的核心想法其实是学习高质量的节点嵌入,怎么理解这个节点嵌入呢,我们用一个向量表示一个节点,比如说我们可能希望图上距离接近的节点之间向量在某些距离函数情况下也是接近的,比如说希望节点对之间內积是比较接近的,或者我们可能会希望这个节点嵌入可以包含节点的语义信息。

以前比较流行的图机器学习方法是网络嵌入,这类学习方法缺点是没有考虑可能已经有的初始节点特征。比如现在NLP自然语言处理里面有很多预训练模型,这些预训练模型可以对文本提取非常丰富的嵌入表示。比如这样就可以在一个比较丰富的包含蛋白质的网络里面去用这些嵌入表示作为初始输入。

最近几年非常流行的一种图机器学习方法就是图神经网络,图神经网络核心想法是比起之前网络嵌入只能够捕捉在网络结构上节点的相似度,我们还希望同时捕捉在语义上的相似度,核心思想就是消息传递。为了更新一个节点目前的表示,我们首先从节点相邻的所有邻居节点那边收取一个信息。就是这样一个消息函数,这个消息函数可以是某种可以学习的神经网络,输入是我想要更新的节点表示、边表示和邻居节点表示。当我得到所有邻居节点消息以后,我需要对这些消息进行聚合。一般来说希望图上这样一个聚合操作和结点编号是无关的。比如所有消息拼接起来的话,这个拼接顺序跟节点顺序有关,我们希望做一些顺序无关的效果,所以我们常见是做一个求和的操作。


当最后得到一个聚合完的消息以后,可以跟原本特征进行结合,送到另一个神经网络里面得到更新后的节点表示。这个图神经网络是一层的图神经网络,实际使用当中一般会使用多层图神经网络,这个跟刚刚黄老师提到可能捕捉一个节点高阶的信息是一样的,而且非常巧合的是在图神经网络里面我们也观测到了图神经网络层不是越多越好的,太多层的时候可能所有节点信息都变得很像,反而消息传递没有任何作用了。

在生物医药领域非常常见的图机器学习任务就是分子性质预测。这个方面的工作很早,2015年就开始尝试在分子上用图神经网络做性质预测。大家发现一个非常巧合的地方是,我们以前做分子上的机器学习,其实是要手工构建一些分子特征,这个操作跟我们刚刚描述的消费传递操作是非常相似的,只是以前可能需要手工设计一些哈希函数,但现在可能直接用神经网络基于数据驱动去学习一些函数。


在这篇工作里作者们提出一个新的图神经网络和传统的分子特征去做比较,他们在19个公开数据集和16个工业数据集上都取得了最好的表现。


同样的团队把这个模型也用到了抗体发现场景里面。我们可以构建某些打分函数,认为分数比较高的分子更可能是一个好的抗体。他们发现和传统抗体结构差异比较明显的侯选抗体。


我们也可以做更丰富的图的构建,大家会发现很多图神经网络的工作,最后在玩的就是怎么构建一个图的结构,包括怎么准备一个初始图的特征。这篇文章就是在图结构构建上花了更多心思。比起在分子里面用一个节点表示一个原子,其实可以用一个节点表示多个原子的组合。实际上在一个节点表示两个原子的时候已经可以表示更丰富的信息,比如说表示键角的信息。


今天我们最后会讨论到分子预测里面经常遇到的问题。实际上有标注的分子是很少的,这是因为我们做分子标注的时候是需要做实验,人力物力投入是非常巨大的。所以经常我们会发现有标注的分子量是非常少的。有可能的做法是一些在大规模没有标签的分子上预训练一个图神经网络。我们知道类药的分子可能是十的几十次幂的规模。如果我们有一个非常强大的模型,它可以在非常大规模的没有标注的分子上去做一个预训练的话,最后我们可能就会得到一个非常好的综合分子表征。这篇工作是在200万分子上预训练一个图神经网络,在8个数据集上平均取得了7.2%ROC-AUC的提升。其实这个领域现在也是非常火热,有很多图神经网络预训练的新工作,他们也都是在分子上做的。


另外一个任务是反应预测,就是我有一些反应物然后我要预测它的产物是什么。这篇工作他们也是用图来表示反应物,反应预测分两步,第一步是预测哪些原子对可能有一个成键或者破键的变化。它可能本来是相连的原子对,但是它失了这个化学键;或者说它要去形成一个新的单键/双键/三键或者芳香键。当我们得到可能成键或者破键的原子对以后,我们可以把其中分数比较高的去做枚举得到可能的产物,然后再训第二个模型对它们进行打分。

反过来我们实际工作当中更加多遇到的是分子逆合成的场景,也就是说,我可能先有对先导化合物做一些优化,可能有很多化学家先去改变了一个药物的结构,他不知道怎么去合成这样一个药物结构。比如说药明康德做一个合成的公司就会对这些方法很感兴趣。而且我知道李成涛老师跟宋乐老师他们做了一个很好的工作,是条件的图逻辑网络,是做了一个逆合成工作。


我们也可以做基于图的分子生成,可以是化学分子图。但是图神经网络的一个问题不善于捕捉非常规整的结构,比如说一条链,每个节点只跟另外两个节点相连,或者我有一个环,我可能需要很多层图神经网络让环和链中所有节点之间都有一个消息交互。


一个潜在可能性就是构建更好的图结构,这联合树结构,可以把一个环看成一个节点,这样就可以更好地利用图神经网络表达能力,我们也可以做一个蛋白质设计。给定一个图结构,我需要对它的序列做一个标注。


我也可以做药物-靶标结合亲和力的预测。除了药物内的连接,靶标内的连接之外,我还会看药物和靶标对接后,哪些原子比较接近,也可以给它们加边。


更进一步可以做二阶图机器学习建模,也就是说有一个图,但这里面每一个节点本身是另外一个图,这样我们就可以训练两个不同层次的模型,首先一个模型是对低层次的分子或者蛋白质做一个建模,我有一个高层次的模型是基于低层次模型输出进一步建模。


我们组除了跟其他研究组一样做一些研究工作以外,另一个做的是开发了很多开源的项目和框架,这里介绍一些我们组做的深度图学习工具包。


首先我们组做了一个Deep Graph Library(DGL),比如说如果训练一个很大的图,这个图可能没有办法放到GPU机器,这样可以做图采样或者图划分的操作;或者有小分子图的时候,不同小分子图节点数量和边的数量是不一样的,可以做补零操作,加空的节点和边,另一个可能性是拼凑一个很大的图,小图都是这个大图里面的连通块,这里有批次化处理的支持。同时针对生成式模型我们还支持结构变化。对于异构图,我们支持显式的节点类型和边类型。


非常感谢社区各个小伙伴的支持,我们目前在Github有7000多星星,80多个模型例子,有121个贡献者,感兴趣的可以使用我们的工具,有任何问题的话给我们提出更多的需求。


基于DGL我们也做了一些小分子上面常用模块的支持。这里有一个DGL-Life Sci,它是对性质预测、分子生成、反应预测的模型有些内置的支持。我们想的一个事情是,有些用户可能想试一试,但又不愿意花很大时间精力去学习,比如说机器学习、编程或者图神经网络,那我们可以提供比较好的界面,可以让用户直接处理好某种格式的数据,他就可以直接调用这些命令行去做训练和建模。


我们也做了知识图谱嵌入的工具包,刚刚提到了网络嵌入的模型和方法,在知识图谱情况下,因为我们有不同类型的节点和边,我们需要把网络嵌入做进一步拓展,考虑不同节点和边类型的信息,DGL-KE就是一个做知识图谱嵌入的工具,它支持多GPU和分布式的训练,比其他常用工具可以提速2-5倍左右。


最后我们跟曾老师组和其他研究人员做了比较大规模知识图谱DRKG,药物重定位知识图谱,其实你也可以用它去到其他任务做一些建模,我们整合了很多公开的数据库

组织机构

主管单位
中华人民共和国科学技术部
国家科学技术奖励工作办公室
主办单位
中国人工智能学会

奖励资质