【阅读笔记】Learning Graphs for Knowledge Transfer with Limited Labels-2021

论文地址:https://openaccess.thecvf.com/content/CVPR2021/papers/Ghosh_Learning_Graphs_for_Knowledge_Transfer_With_Limited_Labels_CVPR_2021_paper.pdfhttps://openaccess.thecvf.com/content/CVPR2021/papers/Ghosh_Learning_Graphs_for_Knowledge_Transfer_With_Limited_Labels_CVPR_2021_paper.pdf

代码地址:LearningGCNhttps://pallabig.github.io/LearningGraphsForGCN/


Abstract

固定输入图是利用图卷积网络(GCNs)进行知识转移的主要方法。标准范式是利用输入图中的关系,使用GCNs将信息从训练节点传递到图中的测试节点;例如,半监督、零样本和小样本的学习设置。我们提出了一个广义的学习框架和改进输入图作为标准的基于gcn的学习设置的一部分。此外,我们通过对中间层输出施加三重损失,对图中的每个节点使用相似和不相似邻居之间的附加约束。我们展示了Citeseer、Cora和Pubmed基准测试数据集上的半监督学习的结果,以及UCF101和HMDB51数据集上的零样本/少样本动作识别的结果,显著优于当前的方法。我们还将定性结果可视化地展示了我们的方法学习更新的图连接。


Introduction

到目前为止讨论的这些基于gcn的技术的一个关键限制是,由邻接矩阵捕获的输入图结构是固定的。从设计上看,基于gcn的方法严重依赖于输入图形,而噪声或低质量的图形对性能有很大的影响。

在这项工作中,我们探索了输入邻接矩阵随时间的自适应学习,与GCN训练的其余部分相结合;也就是说,用来训练底层任务的损失(例如,半监督学习或零/少镜头学习)也被用来更新输入邻接矩阵的结构。我们的经验表明,我们学到的图为下游任务产生了更好的结果。我们提出的方法是一个直接的算法,通过学习更好的节点表示并使用这些节点重新计算邻接矩阵来更新图的结构。注意,我们没有添加任何新的网络权重来学习。这与其他相关图学习作品[21,10]形成了鲜明的对比,这些作品都有单独的专用网络和特殊的loss函数来更新邻接矩阵。由于通过GCN学习到的节点表示捕获了与下游任务相关的更好的相关性,因此得到的图往往比来自外部源的输入图更好

图1展示了一个这样的更新,在这里我们学习了对于类“混合面糊”更好的连接。基于语言的知识图(KG)将“击球手”与动词“击球”(显示为“输入”)联系起来,我们的方法在更新时纠正了这一错误,并产生了更有意义的连接。

 对上述简单方法进行操作有两个关键问题。

首先,在没有任何其他约束的情况下,更新一个密集或全连接的图,通常倾向于提供对结构的任意更新,最终导致退化的解决方案(例如,所有边的权值相同)。其次,如果图连接是稀疏的(通常情况下),则没有机制来学习在学习过的图中添加或删除连接。

解决上述缺点,同时遵守特定于域的限制,我们提出在中间输出节点上利用三重损失公式,即节点在我们的图学习步骤之后,但在图被传递给GCN框架用于下游任务之前。我们的公式为每个节点选择正邻居和负邻居,并使用它们为节点的度添加约束。通过保证负邻域比正邻域远,可以避免简并解。因此,利用下游任务损失和三重损失对图学习步进行训练


GCN-framework Overview


Our Approach

 1、自适应更新邻接矩阵

设GCN1为原网络中给出中间输出的部分,原GCN的其余部分为GCN2。使用GCN1的输出重新计算邻接矩阵,其中边权值为GCN1输出节点值的余弦相似度。然后,从下一个epoch开始,我们使用新的邻接矩阵作为我们对GCN2的输入。

 然后,由h_i^lh_j^l的余弦相似度给出连接节点i和j的新的边权重,如式3所示:

 这里Normalize是[24]使用的邻接矩阵归一化。用A^{in}表示原邻接矩阵,用A_{update}表示更新后的邻接矩阵。GCN1运行于𝐴𝑖𝑛,而GCN2运行于𝐴𝑢𝑝𝑑𝑎𝑡𝑒。

为了帮助优化,我们每n个epoch更新一次A_{update},使GCN2能够适应新的输入图。最后,图邻接是通过对原始输入图进行加权平均得到的(使用等式4进行更新)。

当我们有高质量的输入图(例如,半监督学习基准中的输入图,其连接基于数据集标签)时,我们根据经验确定λ。然而,在输入图有噪声的情况下(例如,动作识别),我们通常设置λ=1,即GCN2不依赖输入图。


2、通过三元损失进行训练 

 为了帮助更新图结构,我们增加了一个三重损失。因此,最终的框架是用三重损失和任务特定损失的加权和训练的,以增加监督的权重因子β。对于三重损失,我们需要每个节点的正集和负集。对于半监督学习,图中的每个训练节点都是一个带有类标签的数据样本。因此,我们可以使用软三重损失,它需要每个类的集群数量作为超参数。

2.1 软三重损失

2.2 硬三重损失 

另一方面,在零样本/小样本动作学习中,类节点的正邻居和负邻居需要明确定义。我们依赖图中每个类的邻域来初始化这些集合。

对于正集,我们只使用输入KG中最接近每个节点的top-N(=2)个邻居。然而,与三重损失的情况一样,定义负集更具挑战性。如果我们只使用最远的邻域,使用均方误差(MSE)训练的下游任务网络已经实现了很好的正负分离,三重损失贡献可以忽略不计。这意味着三重的损失对训练没有影响,邻接矩阵可以得到任意更新并导致退化解。另一方面,如果负集合太接近正集合,负集合中的某些节点可能会被压缩,导致较大的惩罚,不利于邻接矩阵的更新。因此,我们使用验证集来经验地选择负集类的序数范围

最后,对正集和负集的GCN1节点输出取平均值,得到正向量和负向量。当正向量到当前节点的距离小于负向量到当前节点的距离α(= 0.1)时,三重态损失为零。数学上,设Href为当前参考节点的输出,𝐻𝑃和𝐻𝑁分别为正集合和负集合中节点的平均输出向量。


 3、算法流程


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值