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
GAT
GAT–Graph Attention Networks文献地址
GAT产生背景神经网络在图数据上的应用需求:
随着深度学习技术在图像、语音、自然语言处理等领域的成功应用,研究人员开始尝试将神经网络方法扩展到图结构数据上。图数据广泛存在于社交网络、生物网络、通信网络等实际应用中,处理这些数据需要专门的算法。
现有方法的局限性:
传统的图神经网络(Graph Neural Networks, GNN)和图卷积网络(Graph Convolutional Networks, GCN)在处理图结构数据时遇到了一些挑战,例如:
固定权重分配:GNN和GCN通常使用固定的权重或预定义的方法来处理邻居节点的重要性,难以灵活地处理不同邻居节点的重要性差异。
计算复杂度高:一些基于光谱的方法需要进行复杂的矩阵分解或逆操作,在大规模图数据上计算成本较高。
依赖全局图结构:许多方法需要预先知道整个图的结构,在处理从未见过的新图时存在局限性。
注意力机制的发展:
注意力机制在自然语言处理领域(如机器翻译)取得了显著的成功,它能够动态地为输入序列的不同部分分配不同的权重,显著提升了模型的性能和灵 ...
GCN
SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS
基于图卷积网络的半监督分类
文献参考
引言(INTRODUCTION)我们考虑在图(如引文网络)中对节点(如文档)进行分类的问题,其中只有一小部分节点有标签。这一问题可以被框架化为基于图的半监督学习,其中标签信息通过某种形式的显式图正则化(如使用图拉普拉斯正则化项)在图上进行平滑。然而,这种假设可能会限制模型的容量,因为图边不一定编码节点相似性,还可能包含其他信息。
在本工作中,我们使用神经网络模型直接编码图结构,并对所有有标签的节点进行监督目标训练,从而避免在损失函数中显式的图正则化。通过条件化神经网络模型于图的邻接矩阵,我们的模型能够从监督损失中分布梯度信息,并能够学习有标签和无标签节点的表示。
我们的贡献有两方面。
首先,我们介绍了一种简单且行为良好的逐层传播规则,用于直接在图上操作的神经网络模型,并展示了其可以从频谱图卷积的一阶近似中得到动机。
其次,我们展示了这种图神经网络模型可以用于快速且可扩展的图中节点的半监督分类。在多个数据集上的实验表明,我 ...
图综述
A Comprehensive Survey on Graph Neural Networks
文献地址
摘要
传统深度学习任务中的数据通常在欧几里德空间中表示。然而越来越多的数据从非欧几里得域生成,并表示为具有复杂关系和对象之间相互依赖关系的图形。图数据的复杂性给现有的机器学习算法带来了重大挑战。
提出了新的分类方法,将最先进的GNN模型分为四类:递归图神经网络(RecGNNs)、卷积图神经网络(ConvGNNs)、图自动编码器(GAEs)和时空图神经网络(STGNNs)。
探讨了GNN在各种领域中的应用,如推荐系统、化学分子分析和引文网络分类。
总结了开源代码、基准数据集和模型评估方法。
提出了GNN领域的潜在研究方向,如模型深度、可扩展性、异质性和动态性等。
简介深度学习在欧几里得空间成功深度学习在图像分类、视频处理、语音识别和自然语言理解等领域的成功,这些领域的数据通常表示在欧几里得空间中。然而,越来越多的应用中,数据来自非欧几里得领域,并表示为图,这些图数据具有复杂的关系和依赖性。这种复杂性对现有的机器学习算法提出了重大挑战。
图数据的复杂性与欧几里得数据不同,图数据是非结构 ...
