当前位置: 首页 > 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…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下&#xff0c;企业和个人创作者为了扩大影响力、提升传播效果&#xff0c;纷纷采用短视频矩阵运营策略&#xff0c;同时管理多个平台、多个账号的内容发布。然而&#xff0c;频繁的文案创作需求让运营者疲于应对&#xff0c;如何高效产出高质量文案成…...

Qt 事件处理中 return 的深入解析

Qt 事件处理中 return 的深入解析 在 Qt 事件处理中&#xff0c;return 语句的使用是另一个关键概念&#xff0c;它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别&#xff1a;不同层级的事件处理 方…...

Oracle11g安装包

Oracle 11g安装包 适用于windows系统&#xff0c;64位 下载路径 oracle 11g 安装包...

Windows 下端口占用排查与释放全攻略

Windows 下端口占用排查与释放全攻略​ 在开发和运维过程中&#xff0c;经常会遇到端口被占用的问题&#xff08;如 8080、3306 等常用端口&#xff09;。本文将详细介绍如何通过命令行和图形化界面快速定位并释放被占用的端口&#xff0c;帮助你高效解决此类问题。​ 一、准…...

基于 HTTP 的单向流式通信协议SSE详解

SSE&#xff08;Server-Sent Events&#xff09;详解 &#x1f9e0; 什么是 SSE&#xff1f; SSE&#xff08;Server-Sent Events&#xff09; 是 HTML5 标准中定义的一种通信机制&#xff0c;它允许服务器主动将事件推送给客户端&#xff08;浏览器&#xff09;。与传统的 H…...