论文阅读与分析:Few-Shot Graph Learning for Molecular Property Prediction

论文阅读与分析:Few-Shot Graph Learning for Molecular Property Prediction

  • 论文地址和代码地址
  • 1 摘要
  • 2 主要贡献
  • 3 基础知识
  • 4 细节问题
    • 问题定义
    • 分子图神经网络
  • 5 META-MGNN
    • 模型框架图
    • Meta-learning Setup
    • 元训练
      • 梯度下降
      • 损失函数(自监督模块)
      • 任务感知注意力模块
    • 元测试
  • 6 实验
    • 数据集
    • 模型比较结果

论文地址和代码地址

论文地址:https://arxiv.org/pdf/2102.07916
代码地址:https://github.com/zhichunguo/Meta-MGNN

1 摘要

图神经网络最近的成功显着促进了分子特性预测, 推进了药物发现等活动。现有的深度神经网络方法 通常需要每个属性都需要大量的训练数据集,在实验数据有限的情况下(特别是新的分子属性)会损害其性能,这在现实情况中很常见。为此,我们提出了 Meta-MGNN,一种用于小样本分子特性预测的新模型。 Meta-MGNN应用分子图神经网络来学习分子表示,并构建用于模型优化的元学习框架。 为了利用未标记的分子信息并解决不同分子特性的 任务异质性,Meta-MGNN进一步结合了分子结构、基于属性的自学习-将监督模块和自注意力任务权重纳入到前一个框架中,强化了整个学习模型。 对两个公共多属性数据集的大量实验表明,MetaMGNN 优于各种最先进的方法。

2 主要贡献

(1)三大挑战

  • 第一个挑战是设计一个深度神经网络,可以从少量数据中发现有效的分子表示。
  • 由于只有有限数量的标记分子属性数据可用,第二个挑战是利用分子数据中有用的未标记信息,并进一步开发有效的学习程序来转移其他属性预测的知识,
  • 以便模型可以用有限的数据快速适应新的分子特性 不同的分子性质可能代表完全不同的分子结构。因此,在知识转移过程中应该区别对待他们的数据。第三个挑战是在执行有效的学习过程时区分分子属性的不同重要性

(2)解决挑战
为了解决挑战,提出了一种称为 Meta-MGNN 的新模型,用于小样本分子属性预测

  • 利用图神经网络与预训练过程融合异构分子图信息作为分子嵌入
  • 开发了一个元学习框架来转移来自不同性质预测任务的知识,并获得一个初始化良好的模型,该模型可以快速适应有限数据的 新分子性质。
  • 为了利用和捕获分子数据中的未标记信息,我们设计了一个自监督模块,该模块由键重构损失和原子类型预测损失组成,并伴有主要属性预测损失。
  • 考虑到不同的属性预测任务对少样本学习器的贡献不同,我们进一步引入了自我关注任务权重 来衡量它们的重要性。自监督模块和自注意力任务权重都被纳入元学习过程中,以加强模型

(3)主要贡献

  • 我们将分子性质预测问题定义为少量样例学习问题,它利用各种特性的丰富信息来解决每个特性缺乏实验室数据的问题。
  • 为了应对小样本的挑战,我们提出了一种称为元的新模型MGNN 通过探索图神经网 络、自监督学习和任务权重感知元学习。
  • 我们在两个公共数据集上进行了广泛的实验,评估结果表明 Meta-MGNN 的性能优于最先进的方法。每个模型组件的有效性也得到了验证。

3 基础知识

Meta Learning

1 介绍

  • 工业界:大量GPU同时训练多组可能的超参数,找到结果较好的参数配置
  • 学术界:定义一组好的参数
  • Meta-learning:learn to learn,希望自己学会超参数、网络架构……,帮助学术界解决问题

在这里插入图片描述
对于机器学习,三大步骤如下:
在这里插入图片描述
“学习算法”可以看做一个函数F,它的输入是训练数据,输出是model

  • 一般的ML中,F是人想出来的(hand-crafted)
  • Meta Learning 自动学习“学习算法”F
    在这里插入图片描述

2 学习算法

Step 1: What is learnable in a learning algorithm?

确定要学习的架构,从而让机器来学习,这个叫:learnable components,也称为 ϕ \phi ϕ,里面一般有:

  • 网络架构
  • 初始化参数 θ 0 \theta_{0} θ0
  • 学习率 η
  • ……

不同的Meta Learning,会学习不同的learnable components
在这里插入图片描述

Step 2:Define loss function for learning algorithm F ϕ F_{\phi} Fϕ

此时开始定义损失函数:

  • 损失函数为: L ( ϕ ) L(\phi) L(ϕ),学习算法为: F ϕ F_{\phi} Fϕ
  • L ( ϕ ) L(\phi) L(ϕ)的值越小,就说明学习算法 F ϕ F_{\phi} Fϕ越好
    在这里插入图片描述

在Meta Learning中,所需的数据有:

  • 训练数据→训练任务(训练任务里的训练数据+测试数据)
  • 测试数据→测试任务(包含训练数据+测试数据)

例如,想要训练一个二元分类器,则需要准备二元分类任务,每个任务中有训练集和测试集,如下所示:
在这里插入图片描述
有了训练任务,接下来就要定义 L ( ϕ ) L(\phi) L(ϕ)。使用学习到的学习算法 F ϕ F_{\phi} Fϕ ,针对某一个特定任务的训练数据开始训练,得到模型 f θ 1 ∗ f_{\theta^{1*}} fθ1

  • 模型 f θ 1 ∗ f_{\theta^{1*}} fθ1性能越好,学习算法 F ϕ F_{\phi} Fϕ就越好, L ( ϕ ) L(\phi) L(ϕ)就越低

在这里插入图片描述
因此接下来需要评估模型 f θ 1 ∗ f_{\theta^{1*}} fθ1的性能,因此使用测试数据(带标签)来测试模型,计算输出跟正确结果之间的差异,从而算出Cross Entropy,最终加和Cross Entropy,最终得到 l 1 l^{1} l1

  • l 1 l^{1} l1表示 f θ 1 ∗ f_{\theta^{1*}} fθ1的性能如何, l 1 l^{1} l1越小,性能越好
  • 在一般的机器学习中,loss是根据“训练数据”来计算的;而在元学习中,loss根据训练任务中的“测试数据”进行计算。
    在这里插入图片描述
    要想测试其性能,还需拿其它二元分类的任务来测试它,将该“学习算法”在所有的“学习任务”上的损失求和,得到总的 L ( ϕ ) L(\phi) L(ϕ)
    在这里插入图片描述
Step 3:Optimazation

此时已经得到了学习算法 F ϕ F_{\phi} Fϕ的损失函数 L ( ϕ ) L(\phi) L(ϕ),接下里进行优化:

  • ∂ L ( ϕ ) ∂ ϕ \frac{\partial L(\phi)}{\partial\phi} ϕL(ϕ),可导,则可以使用梯度下降法
  • 若不可导,则使用强化学习或者进化算法进行训练
  • 最终得到学习而来的学习算法 F ϕ F_{\phi} Fϕ
    在这里插入图片描述
框架总流程

在Meta Learning中,所需的数据有:

  • 训练数据→训练任务(训练任务里的训练数据+测试数据)
  • 测试数据→测试任务(包含训练数据+测试数据)

框架总流程如下:

  1. 使用训练任务的数据按照上述三大步骤得到学习过的学习算法 F ϕ F_{\phi} Fϕ
  2. 使用测试任务的数据中的训练数据让学习过的学习算法 F ϕ F_{\phi} Fϕ**训练出模型 f θ ∗ f_{\theta^*} fθ
  3. 将模型 f θ ∗ f_{\theta^*} fθ用在测试任务的数据中的测试数据上,得到最终结果

所以我们可以得知:

  • 训练任务是找出学习算法 F ϕ F_{\phi} Fϕ
  • few-shot learning(小样本学习):利用meta-learning的技术,可以达到“few-shot learning”的目的。
    在这里插入图片描述

3 ML和Meta的区别

二者目标
  • ML:找到一个能完成任务的函数f
  • Meta:找到一个学习算法F,能够找到f
    在这里插入图片描述
训练数据
  • ML:完成一个任务即可,使用这个任务中的“训练数据”进行训练
  • Meta:使用若干个任务进行训练,每个“训练任务”中都有“训练数据+测试数据”
  • Support set(支持集):任务里的训练数据
  • Query set(查询集):任务里的测试数据
    在这里插入图片描述
框架

训练时:

  • ML:学习算法是人工设定的,即Within-task Training(任务内训练)

  • Meta:学习算法是在多个任务上训练得到的,即Across-task Training(跨任务训练)
    在这里插入图片描述
    测试时:

  • ML:直接使用训练得到的模型在任务中使用测试数据进行测试(Within-task Testing:任务内测试)

  • Meta:测试学习算法(Across-task Testing:跨任务测试)

    1. 将测试任务的训练数据给学习算法,训练得到该任务的模型(任务内训练)
    2. 将测试任务的测试数据给模型,得到最终结果(任务内测试)
    3. 这样一个流程叫Episode
      在这里插入图片描述

对于损失函数:

  • ML:对一个任务中所有的测试数据的损失之和
  • Meta: l l l是一个任务的损失, L L L是所有任务的损失之和

在这里插入图片描述
此时,要注意的是:

  • 内循环:计算一个 l l l需要经历即下面的Training Examples+Testing Examples
  • 外循环:需要多个任务进行

在这里插入图片描述

MAML

MAML聚焦于学习一个最好的初始化参数 ϕ \phi ϕ,MAML的目标是找到最优的初始参数 ϕ \phi ϕ,是所有任务的测试损失值最小,这样在遇到新任务时,只需基于少量标签对初始化参数进行微调就可以获得很好的效果。

  • MAML的N-way K-shot:任务的类别为N,每个类别的Support set为K,query
    set人为进行选择

在这里插入图片描述
假设采样了一个batch的任务,对伪代码进行解析:

  • 第5,6行对任务的支持集求损失并将参数 θ \theta θ更新为 θ ′ \theta^{'} θ,假设一个batch有5个任务,则此时参数 θ ′ \theta^{'} θ有10个
  • 第8行,使用 θ ′ \theta^{'} θ参数,对所有任务的查询集计算出各自的loss,将这些loss求和,计算出梯度,利用该梯度更新初始参数。( θ ′ \theta^{'} θ和每个任务的查询集一一对应)

在这里插入图片描述

4 细节问题

问题定义

(1)图的定义
G = ( V , E ) G = (\mathcal{V},\mathcal{E}) G=(V,E)是分子图, V \mathcal{V} V是节点集, E \mathcal{E} E是边集。分子图中的节点代表化学原子,边代表两个原子之间的化学键。
(2)学习映射函数
给定一组分子图 G = { G 1 , ⋯ , G N } \mathcal{G}=\{G_{1},\cdots,G_{N}\} G={G1,,GN}及其标签 Y = { y 1 , ⋯ , y N } \mathcal{Y}=\{y_{1},\cdots,y_{N}\} Y={y1,,yN},分子性质预测的目标是学习一个分子表示向量预测每一个 G i ∈ G G_{i}∈G GiG的标签(分子属性),也就是学习一个映射函数: f θ : G → Y f_{\theta}:\mathcal{G}\to\mathcal{Y} fθ:GY
(3)问题定义
少样本分子性质预测:给定分子性质 Y = { y 1 , ⋯ , y N } \mathcal{Y}=\{y_{1},\cdots,y_{N}\} Y={y1,,yN}和相应的少样本分子图集 { G 1 ∈ y 1 , ⋯ , G N ∈ y N } \{G_{1}\in y_{1},\cdots,G_{N}\in y_{N}\} {G1y1,,GNyN}(训练数据),任务是设计一个机器学习模型来预测只有少数样本(测试数据)的新特性的分子图。

分子图神经网络

在本节中,我们将介绍使用 GNN 获取分子表示的细节。GNN 模型能够利用图结构和节点/边特征信息来学习每个节点 v ∈ V v∈V vV的表示向量 h v h_{v} hv,经过 l l l次迭代后,节点表示 h v l h_{v}^{l} hvl能够捕获 l l l跳邻域内的信息。
作为GNN的输入层,首先使用分子图中的属性来初始化节点和边的表示。

  • 节点属性包括原子数(AN)和手性标签 (CT)、
  • 边属性包括键类型(BT)和键方向(BD)

我们将节点表示初始化: h v ( 0 ) = v A N ⊕ v C T \mathbf{h}_{v}^{(0)}=\mathbf{v}_{AN}\oplus\mathbf{v}_{CT} hv(0)=vANvCT;将边表示初始化: h e ( 0 ) = e B T ⊕ e B D \mathbf{h}_{e}^{(0)}=\mathbf{e}_{BT}\oplus\mathbf{e}_{BD} he(0)=eBTeBD

  • 其中 v , e v,e v,e分别表示节点和边
  • ⊕是串联运算符

在第 l l l层GNN中,节点表示 h v l h_{v}^{l} hvl的公式为:
h N ( v ) ( l ) = A G G l ( { h u ( l − 1 ) : ∀ u ∈ N ( v ) } , { h e ( l − 1 ) : e = ( v , u ) } ) , ( 1 ) h v ( l ) = σ ( W ( l ) ⋅ C o N C A T ( h v ( l − 1 ) , h N ( v ) ( l ) ) ) , ( 2 ) \mathbf{h}_{\mathcal{N}(v)}^{(l)}=\mathrm{AGG}_{l}(\{\mathbf{h}_{u}^{(l-1)}:\forall u\in\mathcal{N}(v)\},\{\mathbf{h}_{e}^{(l-1)}:e=(v,u)\}),\quad(1)\\\mathbf{h}_{v}^{(l)}=\sigma(\mathbf{W}^{(l)}\cdot\mathrm{CoNCAT}(\mathbf{h}_{v}^{(l-1)},\mathbf{h}_{\mathcal{N}(v)}^{(l)})),\quad(2) hN(v)(l)=AGGl({hu(l1):uN(v)},{he(l1):e=(v,u)}),(1)hv(l)=σ(W(l)CoNCAT(hv(l1),hN(v)(l))),(2)
其中:

  • N ( v ) N(v) N(v) v v v的邻居集合
  • A G G AGG AGG是邻居聚合函数

有许多 A G G AGG AGG的架构,如GCN,GAT,GIN等。在这里,选择使用GIN。
我们可以学习到分子图中每个节点的表示:
h v = h v l / ∣ ∣ h v l ∣ ∣ h_{v}=h_{v}^{l} / ||h_{v}^{l}|| hv=hvl/∣∣hvl∣∣
最终使用最后一层的平均节点嵌入来代表整个分子图的图集表示 h G h_{G} hG,如下:
h G = MEAN ( { h v ( l ) : v ∈ V } ) , ( 3 ) \mathbf{h}_G=\text{MEAN}(\{\mathbf{h}_v^{(l)}:v\in V\}),\quad(3) hG=MEAN({hv(l):vV}),(3)
h G h_{G} hG,进一步输入分类器(例如,多层感知)进行分子属性预测。

5 META-MGNN

模型框架图

在这里插入图片描述
(a)META-MGNN的总体框架:

  1. 对一批训练任务进行采样。 对于每个任务,支持集中都有一些数据示例。这些示例被输入到由 θ \theta θ参数化的 GNN 中。
  2. 计算支持集损失 L s u p p o r t \mathcal{L}_{support} Lsupport并将其用于将 GNN 参数更新为 θ ′ \theta^{\prime} θ
  3. 相应查询集中的示例被输入到由 θ ′ \theta^{\prime} θ参数化的 GNN中,并计算该任务的损失 L q u e r y ′ \mathcal{L}_{query}^{\prime} Lquery。对于其他训练任务重复相同的过程。
  4. 计算所有采样任务的 L q u e r y ′ \mathcal{L}_{query}^{\prime} Lquery 的总和,并用它来进一步更新 GNN 参数以进行测试。

(b)自监督模块
包括键重构和原子类型预测:

  • 橙色部分显示我们对两个原子进行采样并使用 GNN 来预测它们之间是否存在键。
  • 绿色部分显示我们随机屏蔽了几个原子并使用 GNN来预测它们的类型。

(c)任务感知注意力
它计算同一任务的査询集中所有分子嵌入的平均值来表示该任务。通过嵌入每个任务,我们设计了一个自注意力层来计算每个任务的权重,然后将其合并到元训练过程中以更新模型参数 θ \theta θ

Meta-learning Setup

构建了基于MAML的元学习框架。给定一个模型 f θ f_{\theta} fθ θ \theta θ是可学习参数。该模型可将分子图映射到具体的属性(例如毒性),即: f θ : G → Y f_{\theta}:\mathcal{G}\to\mathcal{Y} fθ:GY

  • 在𝑘-shot元学习中,对于从分布 p ( T ) p(\mathcal{T}) p(T)采样的每个任务 T τ \mathcal{T}_{\tau} Tτ,模型仅使用 k k k数据样本训练,并在 T τ \mathcal{T}_{\tau} Tτ的剩余样本中进行测试。

因此,将每个任务对应的训练集和测试集称为支持集和查询集,表示为 T τ = { G τ , Y τ , G τ ′ , Y τ ′ } \mathcal{T}_{\tau}=\{G_{\tau},\mathcal{Y}_{\tau},\mathcal{G}_{\tau}^{\prime},\mathcal{Y}_{\tau}^{\prime}\} Tτ={Gτ,Yτ,Gτ,Yτ}

  • G τ , Y τ G_{\tau},\mathcal{Y}_{\tau} Gτ,Yτ是支持集的输入分子图和属性标签
  • G τ ′ , Y τ ′ \mathcal{G}_{\tau}^{\prime},\mathcal{Y}_{\tau}^{\prime} Gτ,Yτ是查询集的输入分子图和属性标签

元训练期间,其步骤如下:

  1. 模型首先使用每个任务的支持集更新为特定任务的模型
  2. 使用训练数据中所有任务的查询集的预测损失进一步优化为任务无关模型

元测试期间,其步骤如下:

  1. 充分的元训练
  2. 学习到的模型可以进一步利用 k k k数据样本作为支持集来预测新的任务(新的分子性质)

元训练

梯度下降

元训练的目标是获得初始化良好的参数 θ \theta θ,参数需具备如下要求:

  1. 该参数可以普遍适用于不同的任务
  2. 在新任务上使用少量数据进行少量梯度下降更新后表现良好

对于任务 T τ \mathcal{T}_{\tau} Tτ,首先将支持集输入模型并计算损失 L T τ \mathcal{L}_{T_{\tau}} LTτ,通过梯度下降将参数 θ \theta θ更新:
θ τ ′ = θ − α ∇ θ L T τ ( θ ) , ( 4 ) \theta_{\tau}'=\theta-\alpha\nabla_{\theta}\mathcal{L}_{\mathcal{T}_{\tau}}(\theta),\quad(4) θτ=θαθLTτ(θ),(4)

  • 其中 α \alpha α是步长
  • 该式子仅显示了一步梯度更新,而实际上我们可以采取多步梯度更新

损失函数(自监督模块)

L T τ \mathcal{L}_{\mathcal{T}_{\tau}} LTτ由下游任务的监督信号计算。由于样本数量少,简单使用监督信号可能并不有效;分子的复杂性带来了结构和属性方面的有用的未标记信息。因此,需要利用分子图中的未标记信息(设计了自监督模块)。

  • 自监督模块:键重建损失、原子类型预测损失和属性预测损失组成

(1)分子预测损失
对于图级分子表示 h \mathbf{h} h(式子3),引入了多层感知机,即 y ^ = M L P ( h ) \hat{y}=\mathrm{MLP}(\mathbf{h}) y^=MLP(h),预测损失定义为预测标签和真实标签之间的交叉熵损失:
L l a b e l ( θ ) = − 1 k ∑ i = 1 k C R o s s E N T R O P Y ( y i , y ^ i ) ( 5 ) \mathcal{L}_{label}(\theta)=-\frac{1}{k}\sum_{i=1}^{k}\mathrm{CRossENTROPY}(y_{i},\hat{y}_{i})\quad(5) Llabel(θ)=k1i=1kCRossENTROPY(yi,y^i)(5)

  • k k k是数据样本的数量

(2)键重建损失

在分子图中,通过有边的节点对采样一组正边(有键),然后通过没有边的节点对采集一组负边(没有键)。将 ε s \varepsilon_{s} εs表示为采样的正边和负边的并集。

  • 设置 ε s = 10 \varepsilon_{s}=10 εs=10,表示5个正样本和5个负样本

对于选中的任意节点对,将节点映射为嵌入,分别为: h u \mathbf{h}_{u} hu h v \mathbf{h}_{v} hv,对其内积,根据其内积判断其是否有键,其公式为: e ^ u v = h v ⊤ ⋅ h u \hat{e}_{uv}=\mathbf{h}_{v}^{\top}\cdot\mathbf{h}_{u} e^uv=hvhu

  • 若两节点越相似,则说明越可能存在键,内积值越高

键重建损失定义为:真实键和预测键之间的二元交叉熵损失。公式如下:
L e d g e ( θ ) = − 1 ∣ E s ∣ ∑ e u v ∈ E s BINARYCROssENTROPY ( e u v , e ^ u v ) ( 6 ) \mathcal{L}_{edge}(\theta)=-\frac{1}{|\mathcal{E}_{s}|}\sum_{e_{uv}\in\mathcal{E}_{s}}\text{BINARYCROssENTROPY}(e_{uv},\hat{e}_{uv})\quad(6) Ledge(θ)=Es1euvEsBINARYCROssENTROPY(euv,e^uv)(6)

(3)原子类型预测损失
在分子中,不同的原子以一定的方式连接(例如碳-碳键、碳-氧键),导致不同的分子结构。原子类型决定了分子图中的节点如何与相邻节点连接。因此,利用节点(原子)的上下文子图来预测其类型。

首先对分子图的一组节点进行采样,表示为: V c t ⊆ V \mathcal{V}_{ct}\subseteq \mathcal{V} VctV。对于每一个在 V c t \mathcal{V}_{ct} Vct中的节点 v v v,其上下文子图被定义为在 l l l跳内的邻居。公式化为:
G s u b = ( U s u b , E s u b ) G_{sub}=(\mathcal{U}_{sub},\mathcal{E}_{sub}) Gsub=(Usub,Esub)

  • 其中, U s u b = { v } ∪ N l ( v ) \mathcal{U}_{sub}=\{v\}\cup\mathcal{N}_{l}(v) Usub={v}Nl(v)
  • E s u b ⊆ U s u b × U s u b \mathcal{E}_{sub}\subseteq\mathcal{U}_{sub}\times\mathcal{U}_{sub} EsubUsub×Usub
  • N l ( v ) N_{l}(v) Nl(v)代表节点 v v v的邻居节点集合
  • 一般选择 l = 1 l=1 l=1
  • V c t \mathcal{V}_{ct} Vct为图中节点的15%

接着在上下文子图中所有节点的均值池化之上使用多层感知器(MLP),不包括中心节点。原子类型预测损失被表示为预测节点类型和真实节点类型之间的交叉熵损失:
v ^ i = MLP ( MEAN ( { h u : u ∈ N l ( v ) } ) ) , ( 7 ) \hat{v}_i=\text{MLP}\left(\text{MEAN}(\{\mathbf{h}_u:u\in\mathcal{N}_l(v)\})\right),\quad(7) v^i=MLP(MEAN({hu:uNl(v)})),(7)
L n o d e ( θ ) = − 1 ∣ V c ∣ ∑ i = 1 ∣ V c ∣ CRossENTROPY ( v i , v ^ i ) , ( 8 ) \mathcal{L}_{node}(\theta)=-\frac{1}{|\mathcal{V}_{c}|}\sum_{i=1}^{|\mathcal{V}_{c}|}\text{CRossENTROPY}(v_{i},\hat{v}_{i}),\quad(8) Lnode(θ)=Vc1i=1VcCRossENTROPY(vi,v^i),(8)
(4)联合损失
任务 T τ \mathcal{T}_{\tau} Tτ的损失公式如下:
L T τ ( θ ) = L n o d e ( θ ) + λ 1 L e d g e ( θ ) + λ 2 L l a b e l ( θ ) ( 9 ) \mathcal{L}_{\mathcal T_{\tau}}(\theta)=\mathcal{L}_{node}(\theta)+\lambda_{1}\mathcal{L}_{edge}(\theta)+\lambda_{2}\mathcal{L}_{label}(\theta)\quad(9) LTτ(θ)=Lnode(θ)+λ1Ledge(θ)+λ2Llabel(θ)(9)

  • 其中 λ 1 \lambda_{1} λ1 λ 2 \lambda_{2} λ2是控制不同损失重要性的参数,设置为 λ 1 = λ 2 = 0.1. \lambda_{1}=\lambda_{2}=0.1. λ1=λ2=0.1.

任务感知注意力模块

根据公式 θ τ ′ = θ − α ∇ θ L T τ ( θ ) \theta_{\tau}'=\theta-\alpha\nabla_{\theta}\mathcal{L}_{\mathcal{T}_{\tau}}(\theta) θτ=θαθLTτ(θ)获得了参数 θ τ ′ \theta_{\tau}' θτ,接下来模型会进一步更新,如下式子:
θ ← θ − β ∇ θ ∑ T τ ∼ p ( T ) η ( T τ ) ⋅ L T τ ′ ( θ τ ′ ) , ( 10 ) \theta\leftarrow\theta-\beta\nabla_\theta\sum_{\mathcal{T}_\tau\sim p(\mathcal{T})}\eta(\mathcal{T}_\tau)\cdot\mathcal{L}_{\mathcal{T}_\tau}^{\prime}(\theta_\tau^{\prime}),\quad(10) θθβθTτp(T)η(Tτ)LTτ(θτ),(10)

  • β \boldsymbol{\beta} β是元学习率
  • L T τ ′ \mathcal{L}_{\mathcal{T}_\tau}^{\prime} LTτ是任务 T τ \mathcal{T}_{\tau} Tτ的查询集的联合损失

创新点
元学习方法(例如,MAML)在优化元学习器时以相同的权重对待每个任务,即 η ( T τ ) \eta(\mathcal{T}_{\tau}) η(Tτ)对于所有任务都是相同的。但不同的属性预测任务对元学习器优化的贡献不同,因此使用自注意力机制来计算每个任务的重要性:
η ( T τ ) = exp ⁡ ( M L P ( H T τ ) ) ∑ T τ ′ ∈ T exp ⁡ ( M L P ( H T τ ′ ) ) , H T τ = M E A N ( { h T τ , i } i = 1 k ) , ( 11 ) \eta(\mathcal{T}_{\tau})=\frac{\exp(\mathrm{MLP}(\mathrm{H}_{\mathcal{T}_{\tau}}))}{\sum_{\mathcal{T}_{\tau^{\prime}}\in\mathcal{T}}\exp(\mathrm{MLP}(\mathrm{H}_{\mathcal{T}_{\tau^{\prime}}}))}, \mathrm{H}_{\mathcal{T}_{\tau}}=\mathrm{MEAN}(\{\mathbf{h}_{\mathcal{T}_{\tau},i}\}_{i=1}^{k}),\quad(11) η(Tτ)=TτTexp(MLP(HTτ))exp(MLP(HTτ)),HTτ=MEAN({hTτ,i}i=1k),(11)

  • T \mathcal{T} T是所有任务的集合
  • H T τ \mathrm{H}_{\mathcal{T}_{\tau}} HTτ是任务嵌入,通过对 T τ \mathcal{T}_{\tau} Tτ中所有的分子嵌入进行平均计算得出

元测试

在元测试期间,我们首先利用新任务的少样本支持集,通过使用式4来更新Meta-MGNN 的参数 θ \theta θ,然后评估查询集的功能。

6 实验

数据集

使用 Tox21 和 Sider 数据集,在每个任务中,分子被分为正实例和负实例(即二元标签)。正实例意味着分子具有特定属性,负实例意味着分子不具有该属性。

  • Tox21:是一个用于毒性预测的生物信息学资源,有 7,831 个实例,有 12 种不同的任务(12个生物靶标的毒性)。
  • Sider:是一个用于药物-副作用关系的生物信息学资源,有 1,427 个实例, 有 27 个不同的任务(27个系统器官类别)。
  • 拆分了 Tox21 中的 3 个任务和 Sider 中 的 6 个任务用于元测试

模型比较结果

(1)评估标准
使用 ROC-AUC 评估每个模型的性能。我们将每个分子属性视为小样本学习的独立任务。我们分别使用3个和6个任务作 为Tox21和 Sider 的测试任务。每个任务都是一个二元标签分类任务。
(2)实验结果

  • 最后一列报告了 MetaMGNN 在不同任务中相对于最好结果的平均改进
  • 加深字体表示模型的最好结果
  • 下划线表示用于与MetaMGNN 比较的模型中最佳的结果
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1539318.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

论文阅读-《Attention is All You Need》

注意力就是一切 【要点】:论文提出了一种全新的网络架构——Transformer,完全基于注意力机制,无需使用循环和卷积,实现了在机器翻译任务上的性能提升和训练效率的显著提高。 【方法】:通过构建一个仅使用注意力机制的…

内存管理(C++版)

C/C内存分布 程序经过编译生成可执行的二进制程序,我们可以把虚拟进程地址分为以下四个空间:栈,堆,常量区,静态区。这四个区里面存贮的也是不一样的内容。 各个区域所存储内容的说明 栈/堆栈:用于建立函…

项目实现:云备份服务端①(文件操作、Json等工具类实现)

云备份 前言文件操作实用工具类设计文件属性的获取文件的读写操作文件压缩与解压缩的实现文件目录操作 Json 实用工具类设计编译优化 前言 如果有老铁不知道当前项目实现的功能是什么的话,可以先移步这篇文章内容: 云备份项目的介绍 其中介绍了云备份项…

代码管理-使用TortoiseGit同步项目到Github/Gitee

1 什么是TortoiseGit TortoiseGit下载地址 TortoiseGit是Git的Windows桌面可视化工具,通过软件的操作来实现Git命令的效果,使所有的操作都能用图形化实现。TortoiseGit安装很简单,这里不对安装流程进行讲解。下载之后即可按照普通软件的方式…

[vue2+axios]下载文件+文件下载为乱码

export function downloadKnowledage(parameter) {return axios({url: /knowledage/download,method: GET,params: parameter,responseType: blob}) }添加 responseType: blob’解决以下乱码现象 使用触发a标签下载文件 downloadKnowledage(data).then((res) > {let link …

Linux配置静态IP详细步骤及联网问题,以及更改主机名问题

一,Linux配置静态IP详细步骤及联网问题 我的Linux操作系统版本是是CentOS7/CentOS8 1.网络适配器:NAT模式点击设置-网络适配器-网络连接 (选择NAT模式)-点击确定 2.查看网关相关配置点击 编辑-虚拟网络编辑器-选择VMnet8-点击更…

JZ2440开发板——S3C2440的存储控制器

以下内容源于韦东山课程的学习与整理,如有侵权请告知删除。 课程中说的“内存控制器”,准确来说是“存储控制器”,其配套书籍写的也是“存储控制器”。 另外“Nor Flash控制器”,说的也是“存储控制器”,或者“存储控…

深入剖析大模型原理——Qwen Blog

1. 输入部分 Text:原始输入文本,模型需要处理的自然语言数据。Tokenizer:分词器,将输入文本转换为词汇表中的索引(ID),便于后续处理。Input_ids:经过分词处理后的ID序列&#xff0c…

如何借助项目管理系统实现审批流程的自动化与标准化?

在快节奏的项目申报领域中,繁琐的审批流程往往成为制约项目推进速度的瓶颈。传统的人工审批方式不仅耗时耗力,还容易因人为因素导致审批效率低下、结果不一致等问题。为此,一款能够支持在线审批流程、实现审批自动化与标准化的项目管理系统显…

MATLAB基本语句

MATLAB语言为解释型程序设计语言。在程序中可以出现顺序、选择、循环三种基本控制结构,也可以出现对M-文件的调用(相当于对外部过程的调用)。 由于 MATLAB开始是用FORTRAN语言编写、后来用 C语言重写的,故其既有FORTRAN的特征,又在许多语言规…

小琳AI课堂:机器学习

大家好,这里是小琳AI课堂,今天我们要聊的是机器学习,它是人工智能(AI)的一个分支,主要研究如何让计算机系统通过数据学习,从而做出决策或预测。 下面我们就从四个角度来详细解释一下“什么是机器…

感知笔记:ROS 视觉- 跟随红球

- 目录 - 如何在 ROS 中可视化 RGB 相机。如何作为机器人切换主题。如何创建 blob 检测器。如何获取要跟踪的颜色的颜色编码。如何使用 blob 检测数据并移动 RGB 相机以跟踪 blob。 机器人技术中最常见的传感器是不起眼的 RGB 摄像头。它用于从基本颜色跟踪(blob 跟…

把设计模式用起来!(4) 用不好模式?之原理不明

(清华大学出版社 《把设计模式用起来》书稿试读) 上一篇:把设计模式用起来!(3)用不好模式?之时机不对 为什么用不好设计模式?——原理不明 难搞的顾客:“抹这种霜&#…

学习ROS2第一天—新手笔记(humble版本)

————今早七点达到实验室,吃了早饭收拾了一下现在07:24开始学习———— 1. RO2与ROS1的不同架构: ROS1架构下,所有节点都是Master进行管理 ROS使用基于DDS的Discovery机制,和Master说再见 API的重新设计 编译…

数集相等的定义凸显初等数学几百年重大错误:将无穷多各异数集误为同一集

黄小宁 创造型人才的突出特征:敢于独立思考,不愿人云亦云随大流做分数的奴隶。初数中定义域为R的一次函数ykx(正常数k≠1)的值域问题是师生们不屑一顾的初数中的初数,然而数集相等的定义凸显初数一直搞错了y的值域而将…

MD5、SHA256哈希值生成验证工具-生成文件的“指纹ID”-调用了微软.Net Framework里的加密工具来生成哈希值

MD5、SHA256等哈希值生成工具通常用来验证文件的完整性,或者说是生成文件的“指纹ID”。 Windows系统下调用哈希工具,要用命令提示符cmd调用,生成和比较不太方便。我编写了一个小工具,将文件拖拽到软件界面即可生成比较。 下载地址…

前端——表格、列表标签

今天我们来学习一下web开发里面的表格标签、列表标签 常用快捷键&#xff1a; shift alt 下 复制粘贴选中内容 表格标签 table HTML 表格由 <table> 标签来定义。 HTML 表格是一种用于展示结构化数据的标记语言元素。 每个表格均有若干行&#xff08;由 <tr>…

Qt实战案例(60)——利用QTimer类实现实时时间功能

目录 一、项目介绍二、项目基本配置三、UI界面设置四、主程序实现4.1 widget.h头文件4.2 widget.cpp源文件 五、效果演示 一、项目介绍 本文介绍利用QTimer类实现实时时间功能并在状态栏中进行显示。 二、项目基本配置 新建一个Qt案例&#xff0c;项目名称为“TimeTest”&am…

【北京迅为】《STM32MP157开发板使用手册》- 第三十八章 任务管理实验

iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器&#xff0c;既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构&#xff0c;主频650M、1G内存、8G存储&#xff0c;核心板采用工业级板对板连接器&#xff0c;高可靠&#xff0c;牢固耐…

解决【WVP服务+ZLMediaKit媒体服务】加入海康摄像头后,能发现设备,播放/点播失败,提示推流超时!

环境介绍 每人搭建的环境不一样&#xff0c;情况不一样&#xff0c;但是原因都是下面几种&#xff1a; wvp配置不当网络端口未放开网络不通 我搭建的环境&#xff1a; WVP服务&#xff1a;windows下&#xff0c;用idea运行的源码 ZLM服务&#xff1a;虚拟机里 问题描述 1.…