VLDB'21-(GNN中以影响力的方式数据抽取)Grain:

2023-01-29  本文已影响0人  Caucher

标题:GRAIN: 通过多样化影响力最大化提升GNN的数据效率

编者的总结

  1. 本文的问题是GNN中数据选取的问题(即,选取固定数量的输入子集使得模型效果不受大的影响),主要贡献是把数据选取的问题和图算法中影响力最大化的问题结合起来,将图上的特征传播(GNN中的主要奏效部分)视为影响力的传播,因此只需找到能使得影响力最大化的数据子集即完成任务。
  2. 最终的选择算法是贪心的,很简单;主要的挑战点在于如何定义一个点的特征对另一个点的影响力(特征传播后的结果对出发点的求导)、如何评估coreset传播后对整个图的影响程度(激活点+激活点周围的区域)。
  3. 由于只保留了原始图特征上的特征传播,没有引入GNN中的层间转换(线性变换+激活),所以大大减少了计算量。

2 PRELIMINARY

2.1 Data Selection Problems

给定一个图,每个节点都代表一个d维输入特征向量,ground truth标签是一个C维向量,只有一个元素是1,代表属于该分类。
将图分区,分为训练集、验证集和测试集。

2.1.1 Active Learning

主动学习的是从训练集中选出一部分点去打标签,然后利用这部分数据训练模型,最终使得在测试集上损失函数最小。

2.1.2 Core-set Selection

核心集选取是说从训练集中取出一部分,使得用这个子集来训练模型和用全集训练的模型得到的效果差不多,即测试集上损失函数值相近。和主动学习的概念其实很相似,方法也有些通用。
主要工作有:

2.2 Graph Neural Networks

3 GRAIN FRAMEWORK

image.png

3.1 Feature Influence Mode

3.1.1 Decoupled Feature Propagation

3.1.2 Feature Influence Viewpoint

3.2 Diversified Influence Maximization

到此为止,就可以给出本文提出的coreset selection的判定函数,见下式:第一项是传播的数量,第二项是传播的多样性,或者说覆盖的区域大小。


image.png

3.4 Selection Algorithm

下面我们把整体的方法汇总一下,输入是一个图,每个节点有特征向量,输出是一个coreset,即节点子集,有固定的大小,为用户输入:

  1. 第一步把原始图k-跳传播算出来;
  2. 初始化coreset为空;
  3. 遍历所有的未选择节点,让每一个点v尝试加入coreset:
    1. 计算加入v后能多激活图中多少点;
    2. 计算加入v后多样性能提升多少;
    3. 根据上面两项,计算判定函数能增加多少;
    4. 选择判定函数增益最多的点加入coreset。
  4. 重复过程3,直到coreset已满。

这个整体算法明显是贪心的,但是判定的函数设计过程中注意保持了一些性质(单调性和边际效应submodular),使得增益函数的质量是有数学保证的,不详细展开了。

上一篇 下一篇

猜你喜欢

热点阅读