【论文阅读】PGCL:Prototypical Graph Contrastive Learning

摘要

之前的对比方法存在一个抽样偏差问题,即负样本很可能与正样本具有相同的语义结构,从而导致性能下降。为了减轻该抽样偏差,本文提出了一种原型图对比学习(PGCL)方法。

具体来说,PGCL通过将语义相似的图聚类到同一组中来对图数据的底层语义结构进行建模,同时鼓励同一图的不同增强的聚类一致性。然后,给定一个正样本,通过从那些与正样本集群不同的集群中提取图来执行负采样,这确保了正样本和负样本之间的语义差异。此外,对于一个正样本,PGCL基于其负样本的原型(聚类中心)与正样本原型之间的距离对它的负样本重新赋予权重,使得那些具有中等原型距离的负样本获得相对较大的权重,以保证正样本与负样本之间的语义差异。这种重新赋予权重策略被证明比均匀抽样更有效。

1 引言

现有的自监督图对比学习方法具有以下局限性:

  1. 现有的方法主要关注于实例级结构相似性的建模,只保留实例周围的局部相似性,但未能发现整个数据分布中的底层全局结构。但在实践中,大多数情况下,图数据中都存在潜在的全局结构。
  2. 如图所示1,从整个数据分布中均匀采样负样本可能会导致负样本在语义上与正样本相似。
    在这里插入图片描述

整个数据集的全局语义结构由PGCL在原型向量(即可训练的聚类中心)中描述。

2 相关工作

基于聚类的对比学习: GraphLoG应用K-means聚类来捕获图的语义结构,但使用K-means可能会导致原型的分配不平衡。与GraphLoG相比,PGCL增加了原型分配必须划分为相同大小的子集的约束条件,并将其表述为最优传输问题。此外,PGCL的目标是通过从与正样本集群不同的集群中采样负样本,并根据其原型距离重新赋权负样本,来解决抽样偏差。

3 准备工作

3.1 问题定义

局部实例结构。 我们将不同图例之间的局部成对相似性称为局部实例结构。在对比学习的范式中,相似的图对的嵌入预计在潜在空间中很接近,而不同的图对应该映射得很远。

仅对局部实例结构进行建模通常不足以发现整个数据集底层的全局语义。我们非常希望捕获数据的全局语义结构,其定义如下:

全局语义结构。 来自现实世界的图结构数据通常可以被组织为各种语义集群。潜在空间中邻近图的嵌入应该体现全局结构,从而反映原始数据的语义模式。

问题设置。 给定一组未标记图 G = { G i } i = 1 N \mathcal{G}=\{G_i\}^N_{i=1} G={ Gi}i=1N,无监督图表示学习的目的是学习每个图 G i ∈ G G_i∈\mathcal{G} GiG的低维向量 z i ∈ R D z_i∈\mathbb{R}^D ziRD,这有利于图分类等下游任务。

3.2 GNN

我们将一个图实例表示为 G = ( V , E ) G=(\mathcal{V},\mathcal{E}) G=(V,E),节点集为 V \mathcal{V} V,边集为 E \mathcal{E} E。在第 k k k次迭代时,节点 v v v在第 k k k层的嵌入为:
在这里插入图片描述
然后,可以通过使用读出函数聚合所有节点表示来获得图级表示,即:
在这里插入图片描述
READOUT表示平均或更复杂的图级池化函数。

3.3 图对比学习

在这里插入图片描述

4 PGCL

在这里插入图片描述
如图2所示,鼓励对增强视图的表示进行聚类,以具有相同的原型(聚类中心)。

4.1 相关视图的聚类一致性

形式上,考虑一个将图例 G i G_i Gi映射到表示向量 z i ∈ R D z_i∈\mathbb{R}^D ziRD的图神经网络 z i = f θ ( G i ) z_i=f_θ(G_i) zi=fθ(Gi

PostgreSQL 本身是一个功能强大的开源关系型数据库系统,虽然其核心设计并非完全分布式数据库,但通过多种扩展和工具的支持,可以实现分布式数据库的功能[^2]。 ### PostgreSQL 的分布式能力 1. **分片与扩展支持**:PostgreSQL 提供了诸如 `pg_shard`、`Citus` 等扩展,这些工具可以在 PostgreSQL 上构建分布式数据库架构。Citus 是一个非常著名的 PostgreSQL 扩展,它允许将 PostgreSQL 转换为分布式数据库,支持数据的水平分片和分布式查询处理[^1]。 2. **读写分离与高可用**:通过逻辑复制(Logical Replication)和物理复制(Streaming Replication)功能,PostgreSQL 支持主从架构,可以实现读写分离和故障转移,提升系统的高可用性和负载均衡能力。 3. **分布式事务**:PostgreSQL 支持两阶段提交(2PC)协议,允许在多个数据库节点之间执行分布式事务,确保事务的 ACID 特性。 4. **中间件支持**:如 Mycat、ProxySQL 等数据库中间件可以与 PostgreSQL 配合使用,实现数据分片、路由、聚合等分布式数据库功能[^5]。 ### PGCl 是否支持分布式数据库架构 PGCl(PostgreSQL Cluster)通常指的是基于 PostgreSQL 构建的集群解决方案,例如 Citus 或其他 PostgreSQL 集群解决方案。以 Citus 为例,它是一个 PostgreSQL 扩展,将 PostgreSQL 转换为分布式数据库,支持数据的分布式存储和查询处理。Citus 支持以下特性: 1. **数据分片与分布**:Citus 将数据分布在多个节点上,每个节点存储一部分数据,并支持自动分片和查询路由。 2. **分布式查询执行**:Citus 支持跨节点的查询执行,能够将查询分发到多个节点并聚合结果返回给客户端。 3. **高可用与容错**:Citus 支持副本机制,确保在节点故障时仍能提供服务,同时支持自动故障转移。 4. **弹性扩展**:可以通过增加节点来扩展系统性能和存储容量,适应业务增长的需求[^1]。 ### PostgreSQL 分布式架构的实现方式 1. **使用 Citus 扩展** Citus 是一个流行的 PostgreSQL 扩展,用于构建分布式数据库。它通过分片和复制机制将数据分布到多个节点上,并提供统一的查询接口。以下是创建分布式表的示例: ```sql -- 安装 Citus 扩展 CREATE EXTENSION citus; -- 创建分布式表 CREATE TABLE distributed_table ( id SERIAL PRIMARY KEY, data TEXT ); -- 将表分布到多个节点上 SELECT create_distributed_table('distributed_table', 'id'); ``` 2. **使用逻辑复制** PostgreSQL 的逻辑复制功能允许将数据从一个节点复制到多个节点,适用于读写分离和数据分发场景: ```sql -- 创建发布者 CREATE PUBLICATION my_publication FOR TABLE my_table; -- 创建订阅者 CREATE SUBSCRIPTION my_subscription CONNECTION 'host=host1 port=5432 dbname=mydb user=myuser password=mypassword' PUBLICATION my_publication; ``` 3. **使用中间件** Mycat 是一个支持 PostgreSQL 的数据库中间件,能够实现数据分片、路由、聚合等功能,适用于构建分布式数据库架构[^5]。 --- ###
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值