当前位置: 首页 > news >正文

论文阅读:Efficient Core Maintenance in Large Bipartite Graphs | SIGMOD 2024

还记得我们昨天讨论的《Querying Historical Cohesive Subgraphs over Temporal Bipartite Graphs》这篇论文吗?

https://blog.csdn.net/m0_62361730/article/details/141003301
这篇(还没看的快去看)

这篇论文主要研究如何在时间双向图上查询历史凝聚子图,而《Efficient Core Maintenance in Large Bipartite Graphs》则比较关注动态双向图中的双核维护(维护(𝛼, 𝛽)-核是为了在插入、删除时可以快速找到关键子结构)。两者的主要区别在于前者处理的是时间维度上的子图查询,而后者则是对动态更新的高效维护。然而,两者在处理动态数据方面有相似之处,均需要考虑图的频繁更新对算法效率的影响。

论文简介

《Efficient Core Maintenance in Large Bipartite Graphs》由Wensheng Luo、Qiaoyuan Yang、Yixiang Fang和Xu Zhou撰写。这篇论文主要探讨了如何在大型双向图中高效地维护(𝛼, 𝛽)-核 (bi-core)。(𝛼, 𝛽)-核作为双向图中的一种重要的凝聚子图模型,已在许多实际应用中得到了广泛应用,如产品推荐、欺诈者检测和社区搜索。然而,由于双向图通常是动态的,其顶点和边经常被插入和删除,从头计算(𝛼, 𝛽)-核的成本非常高。为了缓解这个问题,论文提出了一些高效的(𝛼, 𝛽)-核维护算法,通过引入双核数(bi-core numbers)的新概念,有效地减少计算冗余。

在这里插入图片描述

甚麽是(𝛼, 𝛽)-核?

(𝛼, 𝛽)-核是图中用于识别重要子结构的一种概念,特别适用于异质信息网络(Heterogeneous Information Networks,HINs)或双向图(Bipartite Graphs)。它是对经典的k-core概念的扩展,旨在捕捉图中的稠密子图或核心部分。

定义

在(𝛼, 𝛽)-核中,α和β分别是图中两种类型节点的度数阈值。具体来说,对于一个双向图G = (U, V, E),其中U和V是两类节点集,E是连接U和V的边集,(𝛼, 𝛽)-核定义如下:

  • 一个子图H = (U’, V’, E’)是图G的(𝛼, 𝛽)-核,当且仅当:
    • 对于每个节点u ∈ U’,其在子图H中的度数(即连接到V’中的节点数)至少为α。
    • 对于每个节点v ∈ V’,其在子图H中的度数(即连接到U’中的节点数)至少为β。

直观理解

(𝛼, 𝛽)-核确保了在子图中,类型U的每个节点至少有α个邻居,且类型V的每个节点至少有β个邻居。这种结构在分析图的密集区域或核心部分时非常有用,因为它过滤掉了那些连接较少、可能不太重要的节点,突出了稠密的子结构。

例子

假设有一个双向图表示学术网络,其中U是作者集合,V是论文集合,边表示作者和论文之间的写作关系。如果我们定义一个(𝛼, 𝛽)-核,比如(3, 2)-核:

  • 这意味着在这个子图中,每个作者至少写了3篇论文(α = 3)。
  • 每篇论文至少由2个作者共同撰写(β = 2)。

通过这种方式,我们可以识别出那些活跃的作者群体和他们共同撰写的论文,从而揭示学术网络中的关键合作关系。

为甚麽需要维护(𝛼, 𝛽)-核?

在动态图中,因为图的结构经常发生变化,所以维护(𝛼, 𝛽)-核非常重要,不然就得花很多时间重新计算。维护(𝛼, 𝛽)-核可以确保在节点或边插入、删除时,快速调整和更新图中的关键子结构,从而保持分析结果的实时性和准确性。

总结来说,(𝛼, 𝛽)-核是图中重要的稠密子结构识别方法,适用于多种应用场景,通过维护这种核心结构,可以在动态变化的图数据中高效、准确地进行分析和挖掘。

研究背景与动机

双向图广泛用于描述不同类型实体之间的关系,例如电子商务中的用户和商品、金融网络中的欺诈者和账户、合作网络中的作者和论文、生物网络中的基因和蛋白质、社交网络中的用户和页面等。由于双向图在这些领域的广泛应用,挖掘关键子图结构以分析双向图已吸引了大量关注。其中,(𝛼, 𝛽)-核作为双向图上的一种广义的k核模型,已在多种应用中得到了广泛应用。然而,实际应用中的双向图通常是高度动态的,频繁的更新会导致(𝛼, 𝛽)-核的变化,从而影响依赖于(𝛼, 𝛽)-核的下游应用。因此,研究如何高效地维护动态双向图中的(𝛼, 𝛽)-核至关重要。

技术贡献

为了应对上述挑战,论文做出了以下主要贡献:

  1. 提出了一种新的双核数(bi-core numbers)概念,用于支持双核的维护。
  2. 基于双核数,提出了处理边插入和边删除的高效双核维护算法,有效减少了计算冗余。
  3. 在真实和合成数据集上的广泛实验评估表明,所提出的维护算法比最先进的方法快了两个数量级。

实验评估

实验部分,论文对所提出的算法在真实和合成数据集上进行了广泛的评估。结果显示,论文所提出的算法在处理动态双向图时,比现有最先进的方法快了两个数量级。此外,实验还验证了算法在不同参数设置下的鲁棒性和有效性。

在这里插入图片描述

以下是上面几张图的说明:

图 5:在所有资料集上边插入的效率

  • 这张图比较了在不同资料集(如IMDB、WC、AR等)上使用不同方法(如Re-compute、BUI、TDI、BIT* 和 Edge-Insert)进行边插入时的运行时间。
  • 结果显示,Edge-Insert 方法在所有资料集上均具有较高的效率,运行时间显着低于其他方法。

图 6:插入5000条边后受影响的顶点、c-pairs和双核数的数量

  • 这张图展示了在插入5000条边后,各资料集中受影响的顶点数量、c-pairs数量和双核数的更新数量。
  • 结果显示,Edge-Insert 方法能有效控制受影响的范围,更新的双核数和受影响的顶点数量相对较少。

图 7:插入边数量的影响(每条边的平均时间)

  • 这张图展示了在不同资料集上,随着插入边数量的增加,每条边的平均运行时间。
  • 结果显示,Edge-Insert 方法随着边数量的增加,运行时间增长相对平缓,显示出良好的可扩展性。

图 8:处理边插入的可扩展性测试

  • 这张图展示了在DTI和WT资料集上,Edge-Insert 方法和BIT* 方法在处理不同比例的边插入时的运行时间。
  • 结果显示,Edge-Insert 方法在处理大量边插入时,运行时间增长趋势明显低于BIT* 方法。

图 9:在所有资料集上边删除的效率

  • 这张图比较了在不同资料集上使用不同方法(如Re-compute、BUI、TDR、BIT* 和 Edge-Delete)进行边删除时的运行时间。
  • 结果显示,Edge-Delete 方法在所有资料集上均具有较高的效率,运行时间显着低于其他方法。

后续研究方向与应用前景

在《Efficient Core Maintenance in Large Bipartite Graphs》论文的基础上,未来的研究可以进一步拓展到更多复杂的动态环境中,例如考虑更多种类的图更新操作(如顶点插入和删除)以及更复杂的双向图结构。此外,探索如何同时维护多个不同参数的双核也是一个重要方向,这在需要同时关注多个社区或子图时尤为重要。随着图数据规模的不断扩大,研究如何在分布式和并行计算环境中高效地维护双核将显得尤为关键。另一个值得探索的领域是将双核维护算法扩展到时序双向图中,以支持时间动态下的双核维护和分析。在实际应用方面,该研究的成果在多个领域具有广泛的应用前景,例如在电子商务推荐系统中,通过维护用户和商品之间的(𝛼, 𝛽)-核,可以高效地识别用户群体和热门商品,从而提高推荐系统的准确性和效率;在社交网络中,维护用户和页面之间的双核,有助于发现兴趣群体和热点话题,推动社交网络的健康发展;在生物网络中,应用双核维护算法可以帮助研究人员更快地发现基因和蛋白质之间的关键关系,推动生物医学研究的进展;在金融网络中,维护账户和交易之间的双核,有助于实时检测和预防欺诈行为,保障金融系统的安全。总的来说,论文在双向图的动态维护方面提供了创新的解决方案,其研究成果对实际应用场景具有重要意义,并为未来的研究提供了丰富的方向和应用前景。

论文地址:https://dl.acm.org/doi/10.1145/3617329

相关文章:

论文阅读:Efficient Core Maintenance in Large Bipartite Graphs | SIGMOD 2024

还记得我们昨天讨论的《Querying Historical Cohesive Subgraphs over Temporal Bipartite Graphs》这篇论文吗? https://blog.csdn.net/m0_62361730/article/details/141003301 这篇(还没看的快去看) 这篇论文主要研究如何在时间双向图上查询历史凝聚子图,而《E…...

LLMOps — 使用 BentoML 为 Llama-3 模型提供服务

使用 BentoML 和 Runpod 快速设置 LLM API 经常看到数据科学家对 LLM 的开发感兴趣,包括模型架构、训练技术或数据收集。然而,我注意到,很多时候,除了理论方面,许多人在以用户实际使用的方式提供这些模型时遇到了问题…...

微软蓝屏事件揭秘:有问题的数据引发内存读取越界

讲动人的故事,写懂人的代码 CrowdStrike前一阵在官网上发布了上周爆发的全球企业微软蓝屏事件的官方初步复盘结果。其中谈到了这次事件的根本原因: 2024年7月19日,我们部署了两个额外的IPC模板实例。由于内容验证器中的一个bug,使…...

NASA:北极ARCTAS差分吸收激光雷达(DIAL)遥感数据

ARCTAS Differential Absorption Lidar (DIAL) Remotely Sensed Data ARCTAS差分吸收激光雷达(DIAL)遥感数据 简介 ARCTAS差分吸收激光雷达(DIAL)遥感数据是一种远程感测技术,用于测量大气中不同波长的激光辐射被大…...

Android 文件上传与下载

在实际开发涉及文件上传不会自己写上传代码,一般 会集成第三网络库来做图片上传,比如android-async-http,okhttp等,另外还有七牛也提供 了下载和上传的API。 1.项目用到的图片上传的关键方法: 这里用到一个第三方的库…...

Java语言的充电桩系统Charging station system

介绍 SpringBoot 框架,充电桩平台充电桩系统充电平台充电桩互联互通协议云快充协议1.5-1.6协议新能源汽车二轮车公交车二轮车充电-四轮车充电充电源代码充电平台源码Java源码-共享充电桩-充电桩软件 软件介绍 小程序端:城市切换、附近电站、电桩详情页…...

RCE之无参数读取文件

什么是无参数&#xff1f; 顾名思义&#xff0c;就是只使用函数&#xff0c;且函数不能带有参数&#xff0c;这里有种种限制&#xff1a;比如我们选择的函数必须能接受其括号内函数的返回值&#xff1b;使用的函数规定必须参数为空或者为一个参数等 例题&#xff1a; <?…...

Python GUI开发必看:Tkinter Button控件使用详解

Button&#xff08;按钮&#xff09;组件用于实现各种各样的按钮。 Button组件可以包含文本或图像&#xff0c;你可以将一个Python的函数或方法与之相关联&#xff0c;当按钮被按下时&#xff0c;对应的函数或方法将被自动执行。 Button组件仅能显示单一字体的文本&#xff0c…...

上海市计算机学会竞赛平台2024年7月月赛丙组得分排名

题目描述 给定 nn 名学生的考试得分&#xff0c;这些学生的学号为 11 到 nn&#xff0c;其第 ii 号学生的得分为 aiai​&#xff0c;请将这些学生按照分数从大到小的顺序排列并输出学号序列。 若两个学生得分相同&#xff0c;则先输出较小的学号。 输入格式 第一行&#xf…...

Can GPT-3 Perform Statutory Reasoning?

文章目录 题目摘要相关工作SARAGPT-3 对美国法典的了解GPT-3 在对合成法规进行简单推理时遇到困难结论 题目 GPT-3 可以进行法定推理吗&#xff1f; 论文地址&#xff1a;https://arxiv.org/abs/2302.06100 摘要 法定推理是用事实和法规进行推理的任务&#xff0c;法规是立法机…...

redis面试(十一)锁超时

boolean res lock.tryLock(100, 10, TimeUnit.SECONDS); RedissonLock里面有这样一个方法tryLock()&#xff0c;意思是尝试获取锁的结果。 最大等待时间100s&#xff0c;并且获取到锁之后&#xff0c;10s之内没有释放的话&#xff0c;锁会自动失效。 尝试获取锁超时 time …...

C代码做底层及Matlab_SimuLink做应用层设计单片机程序

前言:SimuLink工具极其强大,但是能直接支持单片机自主开发的很少,造成这个问题的原因主要是我们使用的芯片底层多是C代码工程,芯片厂家也只提供C代码库,很少能提供SimuLink的支持库,即使提供也不是很不完善,如NXP的一些芯片提供的SimuLink库不含盖高级应用,再比如意法半…...

Cloud Kernel SIG 月度动态:ANCK OOT 驱动基线更新,发布 2 个 ANCK 版本

Cloud Kernel SIG&#xff08;Special Interest Group&#xff09;&#xff1a;支撑龙蜥内核版本的研发、发布和服务&#xff0c;提供生产可用的高性价比内核产品。 01 SIG 整体进展 1. 发布 ANCK 5.10-016.4 小版本。 2. 发布 ANCK 5.10-017.1 小版本。 3. ANCK 新增海光平…...

vue3仿飞书头像,根据不同名称生成不同的头像背景色

效果展示&#xff1a; 传递三个参数&#xff1a; name&#xff1a;要显示的名称&#xff1b;size&#xff1a;头像的大小&#xff1b;cutNum&#xff1a;分割当前名称的最后几位数&#xff1b; 代码如下&#xff1a; <template><div:style"{color: #fff,borde…...

SpringBoot整合三方

SpringBoot整合redis 引入redis依赖包 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>redis.clients</groupId&g…...

React之组件的使用

Vue、React和Angular是三个流行的前端框架&#xff0c;采用组件化的开发方式。支持虚拟DOM&#xff08;Virtual DOM&#xff09;技术&#xff0c;有丰富的生态系统、大量的插件和工具可以使用。Vue的语法是传统的HTML和JavaScript&#xff0c;React使用JSX语法&#xff0c;Angu…...

深度学习--长短期记忆网络

1.引入 RNN 可以将以前的信息与当前的信息进行连接。例如&#xff0c;在视频中&#xff0c;可以用前面的帧来 帮助理解当前帧的内容&#xff1b;在文本中&#xff0c;可以用前面半句话的内容来预测后面的内容。但是&#xff0c; RNN 存在一个记忆消失的问题。例如&#xff0c;…...

研0 冲刺算法竞赛 day29 P2249 【深基13.例1】查找

P2249 【深基13.例1】查找 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 思路&#xff1a; ①二分查找 ②stl函数&#xff1a;lower_bound(a.begin(),a.end(),x) 返回第一个大于等于 x的数的地址 代码&#xff1a; #include<iostream> #include<algorithm> …...

基于vue框架的CKD电子病历系统nfa2e(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;患者,医生,药品信息,电子病历,临时医嘱,长期医嘱,健康科普 开题报告内容 基于Vue框架的CKD电子病历系统 开题报告 一、选题背景 随着信息技术的飞速发展和医疗信息化的深入推进&#xff0c;电子病历系统&#xff08;Electronic Medic…...

笔记:python 安装tar包报错

报错信息 ERROR: Could not find a version that satisfies the requirement setuptools>40.8.0 (from versions: none)ERROR: No matching distribution found for setuptools>40.8.0分析 1&#xff0c;当前已安装 setuptools 并且版本超过40.8.0 解决方案 缺包了&am…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

Spring AI与Spring Modulith核心技术解析

Spring AI核心架构解析 Spring AI&#xff08;https://spring.io/projects/spring-ai&#xff09;作为Spring生态中的AI集成框架&#xff0c;其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似&#xff0c;但特别为多语…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...

【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)

LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 题目描述解题思路Java代码 题目描述 题目链接&#xff1a;LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)

一、OpenBCI_GUI 项目概述 &#xff08;一&#xff09;项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台&#xff0c;其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言&#xff0c;首次接触 OpenBCI 设备时&#xff0c;往…...