用于药物反应预测的自适应大小的子结构学习

子结构学习的引言

药物化学的理论表明,药物是一个简单的实体,其由不同的官能团(或者化学子结构)组成,这些子结构决定了药代动力学特性(生物体如何处理它)和药效学特性(它如何影响生物体),以及最终的交互反应。为此,研究人员提出了基于子结构学习的DDI预测方法。

  • 首先,药物在分子图表示的基础上被表示成一个graph,为了从药物的graph中提取子结构,作者提出一个消息传递网络,其中,边具有可学习的权重,权重值约束在0到1之间。这些权重可以被认为是划分子结构的门限(gates),具有产生灵活尺寸和不规则形状子结构的效果。
  • 其次,两种药物之间的 DDI 预测是基于它们学习到的子结构之间的相互作用分数,每个相互作用分数都使用共同注意机制(co-attention)由可学习的权重加权得到。对于副产物,作者提出的方法可以提示哪些子结构可能是导致 DDI 发生的原因。
  • 最后,作者在两个数据集上评估了方法:1.Drugbank数据集,包含药物1704种,191808个DDI对(DDI pairs),86种反应类型;2.Twosides数据集,645种药物,4649441个DDI对,1317种反应类型。
    实验在两种设置下进行,一种是transductive,DDI对的训练和测试集共享相同的药物;另一种是inductive(也称为冷启动),测试集和训练集中的药物是不同的(测试集里的药物不在训练集中出现,训练集中的药物也不在测试集中出现)。Inductive更困难更具挑战性。
    两个数据集都被使用到transductive设置中,对于inductive设置,只使用Drugbank进行实验。

相关工作的回顾

相关工作主要是回顾以往的DDI预测任务的两个方面:1.药物是如何表示的;2.实际预测是如何进行的。

药物的表示

过去大多数DDI预测方法都是利用分子指纹表示药物,或者是其他的药物概况,比如副作用,结合靶标,转运蛋白,酶,通路或这些特征中的两个或多个的组合。分子指纹是二进制向量,其元素表示特定化学子结构的存在 (1) 或不存在 (0)。药物概况类似地表示为二进制向量,表示特定概况的存在或不存在,例如,特定的副作用或结合靶标。

一些方法通过将药物表示为相似性向量来执行进一步的预处理,该向量使用相似性度量(例如余弦相似性,Jaccard similiart)表示它与同一表示空间下的其他药物的相似程度。这是由相似/不同的药物可能具有相似/不同的生物活性的假设指导的。这种表达的缺点是它们是人工设计的,受限于专家的知识水平,缺乏可扩展性,不能编码新的药物。

近年来,GNN被用于化学分子的可学习表示,并提高了分子相关任务的性能。然而,在不过多考虑DDI主要因素(官能团或化学子结构)情况下,这种方法通常用于表示一个整体的药物。最近的一些方法在DDI中考虑了子结构信息。然而,节点在每个GNN层的隐层表达被离散地视为药物的子结构。这种方法产生的子结构形状规则,其大小由GNN的层数以及感受野决定(比如SSI-DDI)。

DDI预测

预测DDI的方法可以分为两类:一类是药物来自于知识图谱,另一类是药物被认为是相互独立的。在后者,通常我们将两个药物的表达进行聚合(求和或者拼接),然后使用分类器进行预测。对于network based方法(第一类),假设药物形成一个相互连接的系统,其中药物是节点,边表示节点之间的 DDI 或药物之间的相似性。我们通常将不同的图处理方法包括标签传播、矩阵分解、图自编码器应用于这些药物知识图以进行预测或首先学习药物的低维表示,然后执行 DDI 预测。

基于药物知识图的方法可以考虑药物互联系统中的拓扑信息,但是这种方法不能用于inductive设置。作者认为应该把药物考虑为独立的实体才能用于inductive设置下的实验。

方法

方法的整体框架如下图:
fig1
给定一个DDI的元组 ( d x , r , d y ) (d_{x},r,d_{y}) (dx,r,dy) d x , d y d_{x},d_{y} dx,dy分别用分子图 G x = ( V x , E x ) , G y = ( V y , E y ) G_{x}=(V_{x},E_{x}),G_{y}=(V_{y},E_{y}) Gx=(Vx,Ex),Gy=(Vy,Ey)表示, r r r与可学习的矩阵 M r ∈ R b × b M_{r}\in R^{b\times b} MrRb×b建立联系,在子结构被提取后, G x G_{x} Gx生成 ∣ V x ∣ |V_{x}| Vx个子结构,节点代表每个子结构的中心。 G y G_{y} Gy遵循同样的过程。一个交叉的子结构注意力 γ i j \gamma_{ij} γij被计算,用于表示子结构之间的相关性。每个子结构都经过线性变换,最终的DDI预测为每对药物 d x , d y d_{x},d_{y} dx,dy的子结构之间的相互作用得分之和,每对子结构的相互作用的权重为注意力 γ i j \gamma_{ij} γij

问题描述

给一个药物集合 D D D,一个反应类型集合 R R R,DDI预测任务被看作找一个函数 f f f使得: D × R × D ⇒ [ 0 , 1 ] D\times R\times D\Rightarrow [0,1] D×R×D[0,1]换言之,给一个包含两个药物和一个具体反应类型的三元组,我们要预测这个DDI事件发生的概率。我们需要找到函数 f f f使得预测结果与数据集 M = { ( d x , r , d y ) i } i = 1 N ⊂ D × R × D M=\left\{(d_{x},r,d_{y})_{i}\right\}_{i=1}^{N}\subset D\times R\times D M={(dx,r,dy)i}i=1ND×R×D近似。

药物被表示为去氢的无向图 G = ( V , E ) G=(V,E) G=(V,E),其中 V V V为节点集合,表示原子, E ⊂ V × V E\subset V\times V EV×V为边集合,表示原子之间的键。每个节点 v i v_{i} vi都有一个对应的特征 x i ∈ R d \textbf{x}_{i}\in R^{d} xiRd,每个边 e i j = ( v i , v j ) e_{ij}=(v_{i},v_{j}) eij=(vi,vj)也对应一个向量 x i j ∈ R d ′ \textbf{x}_{ij}\in R^{d'} xijRd,由于初始阶段,边是无向的,所以 e i j = e j i , x i j = x j i e_{ij}=e_{ji},\textbf{x}_{ij}=\textbf{x}_{ji} eij=eji,xij=xji

门限消息传递网络提取子结构

给一个常规的图,以节点 v i v_{i} vi为中心的子结构的表达可以看作是所有可到达 v i v_{i} vi的节点群的聚合,为了精细表示子结构,我们将图中的边看作门限,即,值在[0,1]的权重。通往节点 v i v_{i} vi的路径上的一个节点 v j v_{j} vj的加权值是连接它到 v i v_{i} vi的路径上的权值的乘积。

我们假设 v j v_{j} vj v i v_{i} vi有多条路径,这种情况出现在环状的子图上,我们应该单独考虑每条路径。这里提出的用边值的乘积来衡量节点,最终会产生不同大小和形状的子结构。如果在路径上,有一条边的权重为0,则包含该边的路径权重乘积将为0,代表截断,从而得到不同形状的子结构。

图中的每个节点都可以作为一个子结构的中心,以便从图中提取尽可能多的子结构。这需要将每条边转换成双向边(每个方向都要自己的权重),因为一个节点既可以是目标节点(中心)也可以是源节点。下图是子结构提取的示例。
fig2
以图c为例,为了提取以节点v5(红色)为中心的子结构,生成从end-nodes开始到v5结束的所有路径(绿色),例子中,v5有4个end-nodes(v1,v6,v9,v10),即4条路径,在图d中,v5的向量s5表示为四条路径与节点本身的信息聚合。

现在,我们需要把无向的分子图表示 G = ( V , E ) G=(V,E) G=(V,E)转化为有向图,边 e i j e_{ij} eij和边 e j i e_{ji} eji成为两条分开的边。为了突出这个特点,我们重命名为 e i → j e_{i\rightarrow j} eij e j → i e_{j\rightarrow i} eji,每个有向边都分配一个可学习的权重,其值在[0,1]内。

对于一个图,上述的路径生成计算效率比较低,为此,作者提出门控消息传递网络G-MPNN模拟这个过程。MPNN是一种多层空间卷积GNN框架,每一层都包括三部分:消息传递,聚合,更新。 m j → i ( l ) = M ( l ) ( h j ( l − 1 ) , h i ( l − 1 ) , q j → i ) , ∀ j : v j ∈ N ( v i ) \textbf{m}_{j\rightarrow i}^{(l)}=M^{(l)}(\textbf{h}_{j}^{(l-1)},\textbf{h}_{i}^{(l-1)},\textbf{q}_{j\rightarrow i}),\forall j:v_{j}\in N(v_{i}) mji(l)=M(l)(hj(l1),hi(l1),qji),j:vjN(vi) a i ( l ) = A ( l ) ( { m j → i ( l ) } j : v j ∈ N ( v i ) ) \textbf{a}_{i}^{(l)}=A^{(l)}(\left\{\textbf{m}_{j\rightarrow i}^{(l)}\right\}_{j:v_{j}\in N(v_{i})}) ai(l)=A(l)({mji(l)}j:vjN(vi)) h i ( l ) = U ( l ) ( h i ( l − 1 ) , a i ( l ) ) \textbf{h}_{i}^{(l)}=U^{(l)}(\textbf{h}_{i}^{(l-1)},\textbf{a}_{i}^{(l)}) hi(l)=U(l)(hi(l1),ai(l))其中, h i ( l ) \textbf{h}_{i}^{(l)} hi(l)为节点 v i v_{i} vi在第 l l l层的特征, q j → i \textbf{q}_{j\rightarrow i} qji是节点 v j v_{j} vj v i v_{i} vi的边特征。简而言之,在每次迭代中,节点会从相邻节点传递消息。这样做的效果是,在迭代GNN第 l l l次时,一个节点将被更新的信息包括了在长度为 l l l的跳数范围内可到达的所有节点特征。这与子结构提取中沿着路径中节点聚合信息的思想是符合的。图的遍历具有访问节点的冗余(一个节点可以在遍历中出现多次,但在一条路径中最多出现一次,参考上图d),为了更接近图d的路径生成过程,作者使用了directed MPNN,即D-MPNN。为了减少MPNN节点计算的冗余,消息在边之间传递而不是节点之间,D-MPNN包含三个部分: m k → j ( l ) = M ( l ) ( h k , h j , q k → j ( l − 1 ) ) , ∀ k : v k ∈ N ( v j ) \ { v i } \textbf{m}_{k\rightarrow j}^{(l)}=M^{(l)}(\textbf{h}_{k},\textbf{h}_{j},\textbf{q}_{k\rightarrow j}^{(l-1)}),\forall k:v_{k}\in N(v_{j})\backslash\left\{v_{i}\right\} mkj(l)=M(l)(hk,hj,qkj(l1)),k:vkN(vj)\{vi} a j → i ( l ) = A ( l ) ( { m k → j ( l ) } k : v k ∈ N ( v j ) \ { v i } ) \textbf{a}_{j\rightarrow i}^{(l)}=A^{(l)}(\left\{\textbf{m}_{k\rightarrow j}^{(l)}\right\}_{k:v_{k}\in N(v_{j})\backslash\left\{v_{i}\right\}}) aji(l)=A(l)({mkj(l)}k:vkN(vj)\{vi}) q j → i ( l ) = U ( l ) ( q j → i ( l − 1 ) , a j → i ( l ) ) \textbf{q}_{j\rightarrow i}^{(l)}=U^{(l)}(\textbf{q}_{j\rightarrow i}^{(l-1)},\textbf{a}_{j\rightarrow i}^{(l)}) qji(l)=U(l)(qji(l1),aji(l))MPNN和D-MPNN的区别在于前者更新节点特征,后者更新边的特征,比如为了更新边 e j → i e_{j\rightarrow i} eji,第一个公式从相邻边 e k → j e_{k\rightarrow j} ekj,其中 k : v k ∈ N ( v j ) \ { v i } k:v_{k}\in N(v_{j})\backslash\left\{v_{i}\right\} k:vkN(vj)\{vi} v j v_{j} vj被视为公共节点。在边特征更新后的最后一次迭代 L L L之后,节点被表示为所有进入边特征的集合。比如节点 v i v_{i} vi的最终特征 s i \textbf{s}_{i} si为: s i = ∑ j : v j ∈ N ( v i ) q j → i ( L ) \textbf{s}_{i}=\sum_{j:v_{j}\in N(v_{i})}\textbf{q}_{j\rightarrow i}^{(L)} si=j:vjN(vi)qji(L)现在,给出GMPNN的计算步骤,给一个图 G = ( V , E ) G=(V,E) G=(V,E)表示药物:

  • 对节点特征先进行非线性变换获得新的特征表达: h i = M L P i n i t _ n ( x i ) , ∀ v i ∈ V \textbf{h}_{i}=MLP_{init\_n}(\textbf{x}_{i}),\forall v_{i}\in V hi=MLPinit_n(xi),viV其中, h i ∈ R f \textbf{h}_{i}\in R^{f} hiRf是变换后的节点特征。
  • 边的特征同样经过非线性变换处理: h j → i = M L P i n i t _ e ( x j i ) , ∀ e j → i \textbf{h}_{j\rightarrow i}=MLP_{init\_e}(\textbf{x}_{ji}),\forall e_{j\rightarrow i} hji=MLPinit_e(xji),eji h i → j = M L P i n i t _ e ( x i j ) , ∀ e i → j \textbf{h}_{i\rightarrow j}=MLP_{init\_e}(\textbf{x}_{ij}),\forall e_{i\rightarrow j} hij=MLPinit_e(xij),eij其中, h j → i , h i → j ∈ R m \textbf{h}_{j\rightarrow i},\textbf{h}_{i\rightarrow j}\in R^{m} hji,hijRm分别是边 e j → i , e i → j e_{j\rightarrow i},e_{i\rightarrow j} eji,eij的新特征,注意,尽管边 e j → i , e i → j e_{j\rightarrow i},e_{i\rightarrow j} eji,eij是不同的边,但它们的特征目前是相同的,因为初始无向图限制了 x j i = x i j \textbf{x}_{ji}=\textbf{x}_{ij} xji=xij,边 e j → i e_{j\rightarrow i} eji的门限 w j → i ∈ [ 0 , 1 ] w_{j\rightarrow i}\in[0,1] wji[0,1]是根据关联节点进行初始化的: o j → i = 1 c ( h j → i T M L P w ( h j ∣ ∣ h i ) ) , w j → i = σ ( o j → i ) o_{j\rightarrow i}=\frac{1}{c}(\textbf{h}_{j\rightarrow i}^{T}MLP_{w}(\textbf{h}_{j}||\textbf{h}_{i})),w_{j\rightarrow i}=\sigma(o_{j\rightarrow i}) oji=c1(hjiTMLPw(hjhi)),wji=σ(oji)其中, ∣ ∣ || 表示拼接, c c c是一个常数。
  • 现在,我们有节点特征 h i \textbf{h}_{i} hi和边的权重 w j → i w_{j\rightarrow i} wji,我们应用D-MPNN机制模拟子结构的路径生成。消息在边之间传递而不是节点之间,边 e j → i e_{j\rightarrow i} eji的特征表示为: q j → i ( 0 ) = w j → i h j \textbf{q}_{j\rightarrow i}^{(0)}=w_{j\rightarrow i}\textbf{h}_{j} qji(0)=wjihj其中, q j → i ( 0 ) ∈ R f \textbf{q}_{j\rightarrow i}^{(0)}\in R^{f} qji(0)Rf,我们需要与前面提到的 h j → i \textbf{h}_{j\rightarrow i} hji进行区别, h j → i \textbf{h}_{j\rightarrow i} hji只是用于计算边的权重,而 q j → i ( 0 ) \textbf{q}_{j\rightarrow i}^{(0)} qji(0)将在消息传递中使用,因为它包含了节点信息和边的权重信息。
  • 应用D-MPNN机制: m k → j ( l ) = w j → i q k → j ( l − 1 ) , ∀ k : v k ∈ N ( v j ) \ { v i } \textbf{m}_{k\rightarrow j}^{(l)}=w_{j\rightarrow i}\textbf{q}_{k\rightarrow j}^{(l-1)},\forall k:v_{k}\in N(v_{j})\backslash\left\{v_{i}\right\} mkj(l)=wjiqkj(l1),k:vkN(vj)\{vi} a j → i ( l ) = ∑ k : v k ∈ N ( v j ) \ { v i } m k → j ( l ) \textbf{a}_{j\rightarrow i}^{(l)}=\sum_{k:v_{k}\in N(v_{j})\backslash\left\{v_{i}\right\}}\textbf{m}_{k\rightarrow j}^{(l)} aji(l)=k:vkN(vj)\{vi}mkj(l) q j → i ( l ) = q j → i ( l − 1 ) + a j → i ( l ) \textbf{q}_{j\rightarrow i}^{(l)}=\textbf{q}_{j\rightarrow i}^{(l-1)}+\textbf{a}_{j\rightarrow i}^{(l)} qji(l)=qji(l1)+aji(l)注意到,边的特征每次都会根据权重进行缩放,这样的效果是实现了节点特征乘以连接它与子结构中心节点的边的权值的乘积。
  • 最后,得到节点 v i v_{i} vi为中心的子结构信息: s i = f s u b ( h i + ∑ j : v j ∈ N ( v i ) q j → i ( L ) ) \textbf{s}_{i}=f_{sub}(\textbf{h}_{i}+\sum_{j:v_{j}\in N(v_{i})}\textbf{q}_{j\rightarrow i}^{(L)}) si=fsub(hi+j:vjN(vi)qji(L))其中, f s u b f_{sub} fsub是一个非线性函数。

G-MPNN是可以用于inductive设置的,因为分子总是有原子和键的特征表示,即我们总是可以得到节点和边的特征,从而可以使用G-MPNN提取自适应大小的子结构。

DDI预测的过程

给一个DDI元组 ( d x , r , d y ) (d_{x},r,d_{y}) (dx,r,dy),预测该事件的概率: P ( d x , r , d y ) = σ ( ∑ i ∣ V x ∣ ∑ j ∣ V y ∣ γ i j ( s ^ i ( x ) ) T M r s ^ j ( y ) ) P(d_{x},r,d_{y})=\sigma(\sum_{i}^{|V_{x}|}\sum_{j}^{|V_{y}|}\gamma_{ij}(\widehat{\textbf{s}}_{i}^{(x)})^{T}M_{r}\widehat{\textbf{s}}_{j}^{(y)}) P(dx,r,dy)=σ(iVxjVyγij(s i(x))TMrs j(y))其中, s ^ i ( x ) , s ^ j ( y ) \widehat{\textbf{s}}_{i}^{(x)},\widehat{\textbf{s}}_{j}^{(y)} s i(x),s j(y)分别是药物 d x d_{x} dx的子结构 i i i,和 d y d_{y} dy的子结构 j j j经过线性变换后的表达: s ^ i ( x ) = W s i ( x ) , s ^ j ( y ) = W s j ( y ) \widehat{\textbf{s}}_{i}^{(x)}=W\textbf{s}_{i}^{(x)},\widehat{\textbf{s}}_{j}^{(y)}=W\textbf{s}_{j}^{(y)} s i(x)=Wsi(x),s j(y)=Wsj(y)其中, W ∈ R b × b W\in R^{b\times b} WRb×b是可学习的参数。 M r ∈ R b × b M_{r}\in R^{b\times b} MrRb×b是反应类型 r r r的可学习的参数,并且是对角矩阵: M r = d i a g ( m r ) M_{r}=diag(\textbf{m}_{r}) Mr=diag(mr) m r ∈ R b \textbf{m}_{r}\in R^{b} mrRb是反应类型 r r r的可学习向量。

交叉的子结构注意力 γ i j \gamma_{ij} γij为: γ i j = s o f t m a x ( M L P γ ( s i ( x ) ∣ ∣ s j ( y ) ) ) \gamma_{ij}=softmax(MLP_{\gamma}(\textbf{s}_{i}^{(x)}||\textbf{s}_{j}^{(y)})) γij=softmax(MLPγ(si(x)sj(y)))现在,DDI预测被分解为DDI元组的二元预测。DDI数据集 M M M中的样本都是正样本,我们还需要构造负样本,通过破坏元组 ( d x , r , d y ) (d_{x},r,d_{y}) (dx,r,dy)即可,比如将 d x d_{x} dx d y d_{y} dy替换成别的药物。

通过最小化BCE Loss优化目标,损失函数为: L = − 1 ∣ M ∣ ∑ i : ( d x , r , d y ) i ∈ M ( l o g ( p i ) + l o g ( 1 − p i ′ ) ) L=-\frac{1}{|M|}\sum_{i:(d_{x},r,d_{y})_{i}\in M}(log(p_{i})+log(1-p_{i}')) L=M1i:(dx,r,dy)iM(log(pi)+log(1pi))其中, p i , p i ′ p_{i},p_{i}' pi,pi分别为正负样本的预测概率。

结果

直推式学习Transductive设定下的模型比较。下表加粗了每项指标的最优值。论文所提方法对每个指标的改进情况显示在最后一行。
fig3
下图可视化展示亚硝酸戊酯和西地那非这两种药物之间的DDI prediction。 p = 0.82 p=0.82 p=0.82是预测输出值。灰色填充的两个原子是所关心的子结构的中心点。(红色虚线框中的硝酸基团在这两个药物关联之间起了重要作用,根据文献,这两个药不能同时服用)
fig4
归纳式学习Inductive设定下的模型表现比较。下表加粗了每项指标最优值。
fig5
作者从药物集合 D D D中划分药物,随机选取五分之一药物作为 D n e w D_{new} Dnew D n e w D_{new} Dnew不参与训练,即对模型来说是陌生的, M s 1 M_{s1} Ms1表示数据集中的 d x , d y d_{x},d_{y} dx,dy都来自 D n e w D_{new} Dnew M s 2 M_{s2} Ms2表示数据集中的 d x d_{x} dx来自 D n e w D_{new} Dnew d y d_{y} dy来自 D o l d = D − D n e w D_{old}=D-D_{new} Dold=DDnew

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值