Multitask Active Learning for Graph Anomaly Detection
文献地址:Multitask Active Learning for Graph Anomaly Detection
代码仓库:AhaChang/MITIGATE
文献介绍了一种名为 MITIGATE 的多任务主动学习框架,用于在图结构数据中进行异常检测。
介绍背景现有的图神经网络(GNN)在异常检测中面临的一个主要挑战是缺乏足够的标注数据,这导致模型性能不稳定。
现有问题
无监督方法通常依赖于数据的分布模式,但如果数据偏离假设的分布,其性能会明显下降。
图结构数据的复杂性以及手动标注正常节点和异常节点的高成本,限制了完全监督学习的应用。由于获取充足的标签非常昂贵,因此需要探索能够利用有限监督信号的学习范式。
MITIGATE框架该框架通过结合节点分类任务来检测异常,主要创新点包括:
多任务学习:MITIGATE 利用了节点分类任务的监督信号来帮助异常检测,特别是在没有已知异常的情况下,通过分类任务检测分布外的节点。
动态信息性度量:通过不同任务之间的置信度差异来度量节点的信息性,从而选择那些提供有用信息但不会过于复杂的样本进行训练。
掩码聚合机制:为了解决图结构中节点间的关系,M ...
数据集处理
YelpChi数据集:基于Yelp数据集上的一个行为图数据集,数据集中的数据以稀疏矩阵的形式存在。该数据集经常用于节点分类、欺诈检测、异常检测等的研究任务上。
Yelp垃圾评论数据集包括Yelp过滤(垃圾)和推荐(合法)的酒店和餐厅评论。Yelp-Fraud数据集上执行一个垃圾邮件审查检测任务,该任务是一个二元分类任务。YelpChi从SpEagle上提取了32个手工特性作为Yelp-Fraud的原始节点特性,基于前人研究发现意见欺假者在用户、产品、评论文本、时间等方面存在联系,将评论作为图中的节点,设计了三种关系:R-U-R:连接同一用户发布的评论;R-S-R:连接同一产品同一星级(1-5星)下的评论;R-T-R:连接同一个月发布的同一产品下的两个评论。
数据集预处理1234567891011121314151617# 设置数据文件的路径前缀prefix = 'data/'# 从 'YelpChi.mat' 文件中加载数据,返回一个包含数据的字典yelp = loadmat('data/YelpChi.mat')# 加载不同 ...
PC-GNN
论文地址:Pick and Choose: A GNN-based Imbalanced Learning Approach for Fraud Detection (acm.org)
代码仓库:PonderLY/PC-GNN: (WWW 2021) Source code of PC-GNN (github.com)
1.背景图结构中的欺诈节点数量通常远少于正常节点,导致传统的图神经网络在处理这种不平衡数据时表现不佳,特别是难以识别重要的少数类。
2.贡献
提出了基于GNN的解决类别不平衡问题的新方法,适用于图结构的欺诈检测。
设计了标签平衡采样器和邻居选择采样器,能够更有效地捕捉少数类(欺诈类)的重要特征。
在多种数据集上进行了大量实验,证明了该方法的有效性。
3.方法文章提出了一种名为Pick and Choose Graph Neural Network(PC-GNN)的方法,专门针对图数据的不平衡分类任务。该方法通过以下步骤来提高欺诈检测的准确性:
Pick(挑选):使用一个标签平衡的采样器,从图中挑选节点和边,构建一个小的子图用于训练。这种采样方式使得子图中的类别分布更 ...
GraphSAGE
论文地址:1706.02216
网站:GraphSAGE
代码仓库:williamleif/graphsage-simple: Simple reference implementation of GraphSAGE.
介绍GraphSAGE(Graph Sample and Aggregate)是一种图神经网络模型,旨在有效地处理大规模图数据。它通过采样和聚合节点的邻居信息,生成节点的嵌入向量,能够进行图结构的任务,如节点分类、节点嵌入、链路预测等。
1. 背景:传统的图神经网络(GNN)模型,如GCN(Graph Convolutional Network),通常需要处理整个图的邻居信息来生成节点嵌入。这种全图卷积的方式在小型图上表现良好,但随着图规模增大,计算和存储成本急剧增加,尤其是在处理社交网络、生物网络等大规模图时,直接使用所有邻居节点的信息变得不可行。因此,GraphSAGE模型应运而生,旨在解决大规模图数据中计算和存储效率的问题。
2. 动机:GraphSAGE的动机是解决以下问题:
大规模图上的计算效率:随着图规模的增大,传统GNN需要处理整个图的数据,导致内存和计 ...
Pre-trained Online Contrastive Learning for Insurance Fraud Detection
主要探讨了医疗保险欺诈检测中的挑战,并提出了一种创新的解决方案,称为预训练的在线对比学习模型(POCL)
摘要 医疗保险欺诈一直是医疗行业中的重要挑战。现有的欺诈检测模型大多集中在离线学习场景。然而,欺诈模式不断演变,这使得基于过去数据训练的模型难以检测新出现的欺诈模式,在医疗欺诈检测中构成了严重的挑战。此外,现有的增量学习模型主要旨在解决灾难性遗忘问题,但在欺诈检测中的表现往往不尽如人意。为了解决这一挑战,本文提出了一种创新的在线学习方法,称为POCL。该方法将对比学习的预训练与在线更新策略相结合。在预训练阶段,我们利用对比学习在历史数据上进行预训练,能够学习到深层特征并获取丰富的风险表示。在在线学习阶段,我们采用了“时间记忆感知突触”在线更新策略,使模型能够基于不断涌现的新数据进行增量学习和优化。这确保了模型能够及时适应欺诈模式,并减少对以往知识的遗忘。我们的模型在真实世界的保险欺诈数据集上进行了广泛的实验和评估,结果表明,与最先进的基线方法相比,我们的模型在准确性上具有显著优势,同时表现出较低的运行时间和空间消耗。我们的代码已在 https://github.com/fi ...
GFN
这篇论文的核心研究问题是探讨现有的图神经网络(GNNs)在处理图分类任务时,是否需要复杂的架构和高计算成本来实现优异的性能。为此,论文提出了将GNN分解为两个主要部分,并对这两个部分的必要性进行深入研究和简化实验。
1. 图神经网络的背景GNN在近年来吸引了大量的关注,尤其是在图分类和节点分类任务中取得了显著的性能提升。与传统的神经网络(如CNN和RNN)不同,GNN能够直接作用于图结构数据,这使得它们在处理社交网络、生物网络等具有复杂关系的数据时表现得更为出色。
然而,GNN的高效能背后往往伴随着复杂的计算过程。作者提出的问题是:这些复杂的计算,尤其是多层邻居聚合和非线性激活等操作,是否真的是必要的?尤其是在实际任务中,GNN是否真的学到了复杂的图结构特征?
2. 提出的框架:分解与简化为了更好地理解GNN的学习机制,作者将GNN的架构分解为两个部分:
图过滤部分(Graph Filtering):这一部分负责通过邻居聚合操作更新节点表示,通常包括多步的邻居聚合操作以及非线性激活函数。
集合函数部分(Set Function):这一部分负责将更新后的节点特征组合在一起进行全图级别的 ...
GraphPro-Graph Pre-training and Prompt Learning for Recommendation
1. 研究背景和动机
现有基于 GNN 的推荐系统大多针对静态场景,忽略了推荐的动态性,在处理新数据分布变化时存在局限性,难以适应用户偏好的变化,导致推荐效果和可扩展性受限。
2. 主要贡献
强调了有效且可扩展地预训练和微调基于图的推荐器的重要性,以适应随时间演变的用户偏好,从而在动态环境中提供最新且准确的推荐。
引入 GraphPro 框架,通过 GNN 的预训练和微调有效处理不断变化的用户偏好,提出的提示学习范式能够在时间和结构上促进相关知识从预训练模型到下游推荐任务的转移。
引入基于快照的动态推荐系统评估设置,相比于传统的单时间测试方法,更能近似真实世界的推荐场景。
通过在不同数据集上的实验展示了 GraphPro 的鲁棒性、效率和性能优势,并通过在大规模在线平台上的部署进一步验证了其有效性。
3. 方法
Graph Pro-training with Temporal Prompt Mechanism:在实际推荐场景中,用户 - 物品交互数据不断积累,引入时间提示机制,通过相对时间编码方案捕获用户 - 物品交互的时间序列,将时间感知的上下文信息从最新的用户偏 ...
Graph Contrastive Learning with Augmentations
引言(Introduction)
本文提出了一种新的图对比学习框架——GraphCL,专注于图神经网络(GNNs)的无监督预训练。
传统的GNN方法在处理图结构数据时,通常依赖于有监督的标签信息,而获取这些标签代价高昂。为了解决这个问题,作者采用了对比学习,通过最大化同一图的不同增强视图之间的相似性,来学习图的有效表示。
方法(Methodology)
数据增强:作者设计了四种图数据增强方法:节点删除(Node Dropping)、边扰动(Edge Perturbation)、属性遮蔽(Attribute Masking)、子图抽样(Subgraph Sampling)。这些增强方法旨在通过不同视角来生成图数据,从而学习到对扰动具有鲁棒性的图表示。
图对比学习框架(GraphCL):
两个增强视图通过GNN编码器生成图级表示向量,并通过投影头映射到另一个潜在空间。
使用归一化的温度缩放交叉熵损失(NT-Xent)作为对比损失函数,最大化正样本对之间的相似性,同时最小化负样本对之间的相似性。
实验与结果(Experiments and Results)
作者在多个图分类数据集上验 ...
01背包问题
416. 分割等和子集416. 分割等和子集 - 力扣(LeetCode)
使用01背包解决
定义:物品种类=nums.size(),物品重量=i,背包大小=sum/2,判断能否刚好装满
1 <= nums.length <= 200
1 <= nums[i] <= 100
根据题目条件,sum可直接去最大值200*100=20000,则背包大小可即为10000+1=10001
dp[i]:
递推公式:dp[j]=max(dp[j],dp[j-nums[i]]+nums[i])
初始化:dp(10001,0)
遍历顺序:正常顺序
12345for(int i=0;i<nums.size();i++){ for(int j=sum/2;j>=nums[i];j--){ dp[j]=max(dp[j],dp[j-nums[i]]+nums[i]); }}
判断:dp[sum/2]==sum/2即可
完整代码
12345678910111213141516171819class So ...
完全背包问题
518.零钱兑换II518. 零钱兑换 II - 力扣(LeetCode)
12345678910111213class Solution {public: int change(int amount, vector<int>& coins) { vector<int> dp(amount+1,0); dp[0]=1; for(int i=0;i<coins.size();i++){ for(int j=coins[i];j<=amount;j++){ dp[j]+=dp[j-coins[i]]; } } return dp[amount]; }};
虽然题简单,但是遍历顺序须仔细琢磨
因为纯完全背包求得装满背包的最大价值是多少,和凑成总和的元素有没有顺序没关系,即:有顺序也行,没有顺序也行。
而本题要求凑成总 ...
代码随想录day32 || 动态规划1
理论基础什么是动态规划动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。
所以动态规划中每一个状态一定是由上一个状态推导出来的,这一点就区分于贪心,贪心没有状态推导,而是从局部直接选最优的,
在关于贪心算法,你该了解这些! (opens new window)中我举了一个背包问题的例子。
例如:有$N$件物品和一个最多能背重量为 $W$ 的背包。第$i$件物品的重量是 $weight[i]$,得到的价值是 $value[i] $。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。
动态规划中 $dp[j]$ 是由 $dp[j-weight[i]]$ 推导出来的,然后取$max(dp[j], dp[j - weight[i]] + value[i])$。
但如果是贪心呢,每次拿物品选一个最大的或者最小的就完事了,和上一个状态没有关系。
所以贪心解决不了动态规划的问题。
动态规划的解题步骤做动规题目的时候,很多同学会陷入一个误区,就是以为把状态转移公式背下来,照葫芦画瓢改改,就开始写代码,甚至把题目AC之后, ...
背包问题详解
01背包理论基础46. 携带研究材料(第六期模拟笔试) (kamacoder.com)
01 背包有n件物品和一个最多能背重量为w的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。
二维dp数组01背包:i 来表示物品、j表示背包容量。
定义:dp[i][j]表示从下标为[0-i]的物品里任意取,放进容量为j的背包,价值总和最大是多少。
递推公式:dp[i][j]=max(dp[i-1][j],dp[i-1][j-weight[i]]+value[i]) 考虑能不能放下
初始化:j=0时全为零;i=0时,j