【论文笔记】ImGCL:Revisiting Graph Contrastive Learning on Imbalanced Node Classification(简要笔记供复习使用)

本文提出了一种自适应采样策略的框架,针对不平衡数据集的节点分类问题进行了重新研究。方法包括ProgressiveBalancedSampling(PBS)和在线聚类,通过调整训练和测试数据的比例,以及利用节点中心性进行采样,有效提高了在如Amazon-Computers等数据集上的性能。
摘要由CSDN通过智能技术生成

ImGCL:Revisiting Graph Contrastive Learning on Imbalanced Node Classification

论文地址:Revisiting Graph Contrastive Learning on Imbalanced Node Classification.pdf

Contribution

  • 利用一个自适应采样策略的对比学习框架解决了数据集不平衡(长尾数据集)的性能受限问题,具体来说,根据算法目前的学习情况形成伪标签,逐步将数据集调整至平衡

Motivation

  • 前人的工作大多忽略了无监督学习数据集的长尾问题,对比当时的SOTA—GBTbaseline在Amazon-Computers数据集

    在这里插入图片描述

  • 有通过更改尾部数据集学习频次从而解决数据集长尾问题的方案但由于需要标签,几乎不能在无监督学习上work

Method

思路:利用对原图不同类别和不同重要性的节点进行不同比例的down-sampling获得子图,作为新的iteration的输入,从而对齐最后的testset数据比例,即均等比例

在这里插入图片描述

  • Progressively Balanced Sampling (PBS)
    • Sampling Strategies
      p k = N k q ∑ i = 1 K N i q \begin{aligned}p_k&=\frac{N_k^q}{\sum_{i=1}^KN_i^q}\end{aligned} pk=i=1KNiqNkq表示了从 K K K个类中采样某一个节点的概率, N k q N^q_k Nkq表示第 k k k类的节点个数, q ∈ [ 0 , 1 ] q\in[0,1] q[0,1]根据不同策略调整
    • PBS
      数据集设置:训练集long-tail,测试集balance
      q = 1 q=1 q=1,有 p k R = N k ∑ i = 1 K N i p_{k}^{R}=\frac{N_{\boldsymbol{k}}}{\sum_{i=1}^{K}N_{\boldsymbol{i}}} pkR=i=1KNiNk,为适应训练集和测试集过渡,引入 α = 1 − t T \alpha=1-\frac tT α=1Tt,有

      p k P B = α ∗ p k R + ( 1 − α ) ∗ p k M = α ∗ N k ∑ i = 1 K N i + ( 1 − α ) ∗ 1 K \begin{aligned}p_{k}^{\mathrm{PB}}& =\alpha*p_k^R+(1-\alpha)*p_k^M \\&=\alpha*\frac{N_k}{\sum_{i=1}^KN_i}+(1-\alpha)*\frac1K\end{aligned} pkPB=αpkR+(1α)pkM=αi=1KNiNk+(1α)K1

  • Online Clustering Based PBS

    • 为利用PBS方法适应性调整数据集类别分布,利用online cluster方法生成伪标签
    • 聚类方法使用K-Means,K是一个超参数数量等于下游分类任务的类别数
    • 学习一个形状为 D × K D\times K D×K的质心矩阵C,对所有节点的embedding表示计算使下列值最小,则认为该节点属于这个类别
      K表示簇的数量,D是hidden dimension等同于节点embedding的长度,下式计算节点embedding和簇中心embedding的均方误差大小

      min ⁡ C ∈ R D × K 1 N ∑ n = 1 N min ⁡ y ^ n ∥ z t , n − C y ^ n ∥ 2 2  such that y ^ n ⊤ 1 K = 1 \begin{aligned}\min_{C\in\mathbb{R}^{D\times K}}\frac{1}{N}\sum_{n=1}^{N}\min_{\hat{y}_{n}}\|z_{t,n}-C\hat{y}_{n}\|_{2}^{2}\text{ such that}\quad\hat{y}_{n}^{\top}1_{K}=1\end{aligned} CRD×KminN1n=1Ny^nminzt,nCy^n22 such thaty^n1K=1

      z t , n z_{t,n} zt,n表示第t个iteration时第n个节点的embedding, z t , n ∈ R D z_{t,n}\in\mathbb{R}^D zt,nRD

    • 以此获得独热向量 y ^ n ∈ R + K \hat{y}_n\in\mathbb{R}_+^K y^nR+K,表示节点属于第k个簇/类
  • Node Centrality Based PBS

    • 计算节点中心性,根据节点重要性对不同类别节点进行down-sampling
    • 利用PageRank方法进行节点重要性/中心性的计算, σ = α A D − 1 + 1 , where  σ ∈ R N \sigma=\alpha AD^{-1}+1\text{, where }\sigma\in\mathbb{R}^N σ=αAD1+1, where σRN A A A是节点邻接矩阵, D D D是节点的度矩阵,循环多次直到稳定获得节点重要性
      即节点重要性的影响因素是节点本身的度,连接的节点的重要性,因此需要循环传播节点连接重要性
    • 对某个类的某个节点的采样概率为

      p v , j N P B = min ⁡ { σ v − σ min ⁡ σ max ⁡ − σ min ⁡ ⋅ p j P B , p τ } p_{v,j}^{\mathrm{NPB}}=\min\left\{\frac{\sigma_{v}-\sigma_{\min}}{\sigma_{\max}-\sigma_{\min}}\cdot p_{j}^{\mathrm{PB}},p_{\tau}\right\} pv,jNPB=min{σmaxσminσvσminpjPB,pτ}

      p j P B p_{j}^{\mathrm{PB}} pjPB是PBS采样概率经正则化的概率小,即采样每类节点的概率,用于调整类别之间数量由不平衡线性过渡到平衡, p τ p_{\tau} pτ表示最低采样限度,防止部分边缘节点无法被采样
  • summary


    在这里插入图片描述

Details

  • Dataset

    利用了四个常用的数据集作为直推节点分类任务的数据,分别是Wiki-CS, Amazon-computers, Amazon-photo, and DBLP
  • Train Set

    8:1:1划分数据集,其中测试集验证集为平衡数据集,训练集不均等

    在这里插入图片描述

  • Different Type Imbalance

    • Exp Imbalance
      训练集不同类的采样比例遵循指数分布,参数越大越不平衡
    • Pareto Imbalance
      训练集不同类的采样比例遵循Pareto分布,参数越小越不平衡

    在这里插入图片描述
    在这里插入图片描述
    ​​​

### 回答1: b'imbalanced-learn\xef\xbc\x8c\xe4\xbd\xbf\xe7\x94\xa8\xe4\xba\x8e\xe5\xa4\x84\xe7\x90\x86\xe4\xb8\x8d\xe5\xb9\xb3\xe8\xa1\xa1\xe7\x9a\x84\xe6\x95\xb0\xe6\x8d\xae\xe9\x9a\xbe\xe9\xa2\x98\xe3\x80\x82\xe5\xae\x83\xe6\x8f\x90\xe4\xbe\x9b\xe4\xba\x86\xe4\xb8\x80\xe4\xb8\xaa\xe5\xbc\xba\xe5\xa4\xa7\xe5\x92\x8c\xe5\xae\x8c\xe5\x96\x84\xe7\x9a\x84\xe5\xba\x93\xef\xbc\x8c\xe5\x8f\xaf\xe4\xbb\xa5\xe5\x92\x8cscikit-learn\xe4\xb9\xa0\xe4\xb9\xa0\xe3\x80\x82' ### 回答2: imbalanced-learn是一个用于处理不平衡数据集的Python包,支持多种解决方案,包括采样、合成和调整类别权重。不平衡数据集是指在某些分类问题中,某些类别的样本数量远远少于其他类别的样本数量,这会导致训练模型会忽略少数类别的情况,从而影响模型的准确性。 imbalanced-learn主要包括以下几个功能模块: 1.采样:包括欠采样和过采样,欠采样是指删除一些多数类别的样本,以平衡数据集;过采样是指复制一些少数类别的样本,以增加数据集中数目较少的类别。 2.合成:通过生成新的少数类别样本完成数据平衡的方法,包括SMOTE等合成方法。 3.调整类别权重:通过调整类别样本在模型中的权重,使得模型更关注少数类别,在多类别分类问题中也可以通过设置class_weight参数来调整每个类别的权重。 使用imbalanced-learn需要进行以下步骤: 1.导入imbalanced-learn模块 2.加载数据集并进行数据预处理 3.选择相应的采样/合成方法进行平衡处理 4.使用平衡后的数据集进行模型训练和测试 5.评估模型性能,比较处理前后的准确率、召回率、F1-score等性能指标。 总之,imbalanced-learn提了多种处理不平衡数据集的方法,可以帮助用户提高模型的准确性和泛化性能,在实践中得到了广泛的应用。 ### 回答3: imbalanced-learn是一个Python库,它提了一些用于处理数据集不平衡的方法,例如重采样、合成新的样本、改变决策阈值等等。对于一些分类问题中样本类别不均衡的情况,使用imbalanced-learn可以有效提升分类器的性能。 在使用imbalanced-learn之前,需要先安装它。可以通过在命令行输入“pip install imbalanced-learn”来完成安装。之后,就可以在Python中使用imbalanced-learn库了。 使用imbalanced-learn的一个重要步骤是重采样。重采样是指调整样本数量,从而尽量平衡不同类别的样本数量的过程。imbalanced-learn中提了两种重采样方式:上采样和下采样。 上采样是增加少数类别的样本。当使用上采样时,可以使用imbalanced-learn库中的resample函数,其中的参数包括需要重采样的数据集、重采样后的所需样本数量、是否为有放回的抽样、还有随机数生成器。 下采样是减少多数类别的样本。当使用下采样时,可以使用imbalanced-learn库中的RandomUnderSampler函数,其中的参数也包括需要重采样的数据集、重采样后的所需样本数量、还有随机数生成器。 另外,imbalanced-learn还提了一些其他的方法,例如合成新的样本,改变决策阈值等等,这些方法可以根据具体情况进行选择和使用。 总之,imbalanced-learn可以用于处理数据集不平衡的问题,提高分类器的性能。它提了多种处理方法,根据具体情况可以选择合适的方法进行处理。在使用时,需要注意选择合适的重采样方法和参数。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值