论文解读 | KDD2024 演化图上的森林矩阵快速计算
点击蓝字
关注我们
AI TIME欢迎每一位AI爱好者的加入!
点击 阅读原文 观看作者直播讲解回放!
作者简介
孙浩鑫,复旦大学博士生,主要研究方向为大规模图上快速算法设计。
概述
森林矩阵在网络科学、观点动力学和机器学习相关应用中扮演着至关重要的角色,深刻刻画了网络的结构信息与内在联系。在本文中,我们研究了在演化中的图(与静态图相比,更准确地代表了现实世界网络的动态特性)中查询森林矩阵元素的问题。为了应对演化图所带来的独特挑战,我们首先为静态图中森林矩阵元素查询提出了两种近似算法,SFQ和SFQPlus。SFQ采用了森林矩阵的概率解释,而SFQPlus则结合了一种新颖的方差减少技术,我们理论证明了SFQPlus拥有更小的方差,因而可以提供更高的精确度。基于这两种算法,我们进一步设计了两种动态算法,这些算法的核心是高效地维护一系列带根的生成森林列表。这种方法确保了更新(包括边的添加和删除)以及查询矩阵元素的运行时间复杂度为,并且提供了森林矩阵元素的无偏估计。最后,通过在各种真实世界网络上进行广泛的实验,我们证明了我们算法的效率和有效性。特别是,我们的算法可以扩展到拥有超过四千万个节点的大规模网络中。
论文地址:https://dl.acm.org/doi/10.1145/3637528.3671822
AITIME
01
Background
本文首先定义了森林矩阵Ω,它是单位矩阵I与拉普拉斯矩阵L和的逆矩阵。拉普拉斯矩阵L由图的度矩阵D减去邻接矩阵A得到。森林矩阵在有向图中的元素值介于0到1之间,且每行元素之和为1,表现为行随机矩阵。其对角元素在网络分析中作为森林中心性指标具有特别意义,已经有研究深入探讨了森林中心性的性质与应用。其非对角元素则可用来衡量两点之间“距离”的远近,也有重要意义。
除此之外,在采用数学建模刻画社会观点的传播与扩散时,森林矩阵在Friedkin-Johnsen(FJ)模型中被视为核心矩阵。该模型是观点动力学领域的著名模型,曾被用来解释巴黎协定达成共识的过程。然而,鉴于社交网络等现实世界的网络不断变化,本文关注于在不断演化的图上面提出快速查询森林矩阵元素的方法,以适应网络的动态特性。
AITIME
02
Contributions
该研究的贡献主要体现在两个方面:首先,在静态图领域,研究者提出了森林矩阵元素的概率解释,并开发了两种快速算法SFQ和SFQ+,其中SFQ+算法通过引入创新的方差减少技术,实现了性能上的显著提升。其次,针对演化图,研究者专注于边的插入和删除操作,因为节点的插入和删除可以看成一系列连续的边的增删操作。为此,作者设计了一种策略,利用特定的内存数据结构存储图信息,并在图更新时快速调整该结构,以实现在O(1)时间内快速更新和查询所需元素。
AITIME
03
Spanning Converging Forest
作者首先介绍了带根生成森林的概念,并解释了为何称之为森林矩阵,原因在于该矩阵的元素与图上的带根生成森林紧密相关。
随后,研究者阐释了带根生成树的定义:它是一个连通图且形态为树,具有一个特定的根节点,该节点的出度为0,而树中其他所有节点的出度均为1。带根生成森林由多个这样的连通分支组成,每个分支都是一棵以特定节点为根的树。
例如,通过观察提供的图示,可以看到左侧的图是一个包含五个顶点和多条边的小型图。而右侧的图则展示了该图中的一棵生成森林,其中三节点和五节点被选为根节点,而图中的其他节点则是森林中的普通成员。
AITIME
04
Sampling Algorithm SFQ
作者通过矩阵森林定理阐释了森林矩阵元素的含义,它代表在均匀生成的带根生成森林中,节点i的根为节点j的概率。为了生成这样的均匀带根生成森林,研究者采用了Wilson算法的扩展版本,Wilson提出的原始的算法可以返回一个给定根节点的生成树,这里作者使用了它的拓展版本,用于生成带根生成森林。左侧的图示展示了这一过程的起始步骤。
AITIME
05
Static Graphs-- SFQ
在前面的图中,作者通过新增一个第6个顶点x,并在原图中加入五条指向新节点x的新边,这样生成了拓展图。接着,使用Wilson算法生成了一个以x为根的生成树。第三步,删除了新顶点x及其指向它的边,从而获得了一个均匀的带根生成森林。这种方法具有O(n)的时间复杂度,适用于大规模网络,并且支持并行处理,能够在多个核上同时运行,显著提高了效率。
作者提出了一种基础算法,称为SFQ算法。该算法在查询时,基于已采样的l个森林,计算节点的根为节点的概率。SFQ算法的时间复杂度为O(l),这表明它在处理查询时效率较高。
AITIME
06
Static Graphs-- SFQPLUS

AITIME
07
Algorithms SFQ and SFQPLUS
作者在静态图上提出了两种算法:SFQ和SFQ Plus。SFQ算法首先利用了威尔逊算法的扩展和矩阵森林定理,并且提供了一个无偏估计。而SFQ Plus算法由于聚合了更多的信息,不仅保持了无偏估计的特性,还拥有比SFQ更小的方差,从而提供了更优的结果。简而言之,研究者提出的第二个算法,SFQ Plus,在性能上超越了最初的SFQ算法。
AITIME
08
Evolving Graphs
AITIME
09
Edge Insertions
AITIME
10
Edge Deletions
具体而言,对应下列算法的中的第二行-第九行。
AITIME
11
Pruning Technique
AITIME
12
Experiments
本文的算法通过一系列实验验证了其性能,结果表明,该算法能够高效地处理大规模网络,例如在推特网络上,算法能够顺利处理达到四千万节点的图,且运行过程中没有出现问题。这展示了算法在处理大规模数据集时的稳定性和可靠性。
森林矩阵的对角元有重要意义,可用于衡量节点的中心性。作者首先对算法的对角元精度进行了测试,发现以平均相对误差为衡量标准,相较于SFQ算法,提出的SFQPlus算法精度有显著提高。作者在演化图与静态图上都进行了实验,发现算法在演化图上的误差高于静态图,这可能是由于生成森林数量增加导致相关性增强,使得误差随迭代次数增长。这一现象指明了未来研究需要关注的优化方向。
同时,常数时间的复杂度使得算法在查询和更新速度上表现出色,无论是在中小规模网络还是在拥有千万节点的大规模网络。如下表格展示了,当网络节点规模达到千万级别,当前最优秀的图求解器算法也无法在短时间内返回查询结果,而本文提出的算法则可以在极短时间内返回结果。
本篇文章由陈研整理
往期精彩文章推荐
论文解读 | ACL2024 Outstanding Paper:因果指导的主动学习方法:助力大语言模型自动识别并去除偏见
关于AI TIME
AI TIME源起于2019年,旨在发扬科学思辨精神,邀请各界人士对人工智能理论、算法和场景应用的本质问题进行探索,加强思想碰撞,链接全球AI学者、行业专家和爱好者,希望以辩论的形式,探讨人工智能和人类未来之间的矛盾,探索人工智能领域的未来。
迄今为止,AI TIME已经邀请了1800多位海内外讲者,举办了逾600场活动,超700万人次观看。
我知道你
在看
提出观点,表达想法,欢迎
留言
点击 阅读原文 观看作者直播讲解回放!
相关文章:

论文解读 | KDD2024 演化图上的森林矩阵快速计算
点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 点击 阅读原文 观看作者直播讲解回放! 作者简介 孙浩鑫,复旦大学博士生,主要研究方向为大规模图上快速算法设计。 概述 森林矩阵在网络科学、观点动力学和机器学习相关应用中…...

7.统一网关-Gateway
文章目录 1.统一网关介绍2.网关开发3.predicate4.Route Predicate Factories(路由断言工厂)4.1Path 路由断言工厂4.2.Method 路由断言工厂4.3 Header 路由断言工厂4.4 Query 路由断言工厂4.5 Host 路由断言工厂4.6 After 路由断言工厂4.7 Before 路由断言工厂4.8 Between 路由断…...

QT:QWidget 控件属性的介绍
控件属性介绍 🌴enabled 状态属性🌴geometry 几何属性示例一:改变控件尺寸示例二:更变控件位置window frame 的影响 🌴windowTitle 窗口标题🌴windowIcon 窗口图标🌴 qrc机制🌴windo…...

ctfshow-nodejs
什么是nodejs Node.js 是一个基于 Chrome V8 引擎的 Javascript 运行环境。可以说nodejs是一个运行环境,或者说是一个 JS 语言解释器 Nodejs 是基于 Chrome 的 V8 引擎开发的一个 C 程序,目的是提供一个 JS 的运行环境。最早 Nodejs 主要是安装在服务器…...
Linux 大文件和大量小文件的复制策略
在Linux上复制大文件或大量小文件时,可以根据文件的类型、数量以及硬件配置(如硬盘类型、CPU、内存)选择不同的复制策略,以提高复制效率。以下是一些常见的策略和工具,可以根据具体情况使用: 1. 大文件复制…...

0.3 学习Stm32经历过的磨难
文章目录 用库函数传参 能否按位或STM32库函数XXX_GetFlagStatus和XXX_GetITStatus的区别关于MDK导入文件后报错 Browse information of one files is not available用exti中断读取按键 忘记消抖 (更离谱的是,我忘记开启afio的时钟了 Damn!)D…...

9、Django Admin优化查询
如果你的Admin后台中有很多计算字段,那么你需要对每个对象运行多个查询,这会使你的Admin后台变得非常慢。要解决此问题,你可以重写管理模型中的get_queryset方法使用annotate聚合函数来计算相关的字段。 以下示例为Origin模型的中ModelAdmin…...
数据结构基础之《(3)—二分法》
一、认识二分法 1、经常见到的类型是在一个有序数组上,开展二分搜索 2、但有序真的是所有问题求解时使用二分的必要条件吗?不 3、只要能正确构建左右两侧的淘汰逻辑,你就可以二分 二、二分法怎么用 1、在一个有序数组中,找某个…...

C语言 | Leetcode C语言题解之第391题完美矩形
题目: 题解: bool isSubsequence(char* s, char* t) {int mstrlen(s); int nstrlen(t);int k0; int j0;if(mn&&m0) return true;for(int i0;i<n;i){if(s[j]t[i]){j;}if(jm) return true;}return false; }...

day47——面向对象特征之继承
一、继承(inhert) 面向对象三大特征:封装、继承、多态 继承:所谓继承,是类与类之间的关系。就是基于一个已有的类,来创建出一个新类的过程叫做继承。主要提高代码的复用性。 1.1 继承的作用 1> 实现…...
启动 Spring Boot 项目时指定特定的 application.yml 文件位置
java -jar your-spring-boot-app.jar --spring.config.locationfile:/path/to/your/config/application.yml your-spring-boot-app.jar 是你的 Spring Boot 应用的 JAR 文件名。file:/path/to/your/config/application.yml 是配置文件的绝对路径。 如果你有多个配置文件&#…...

Hive 本地启动时报错 Persistence Manager has been closed
Hive 本地启动时报错 Persistence Manager has been closed 2024-09-07 17:21:45 ERROR RetryingHMSHandler:215 - Retrying HMSHandler after 2000 ms (attempt 2 of 10) with error: javax.jdo.JDOFatalUserException: Persistence Manager has been closedat org.datanucle…...

多模态在京东内容算法上的应用
多模态在京东内容算法上的应用 作者:京东零售技术 2024-09-04 北京 本文字数:5226 字 阅读完需:约 17 分钟 本文作者唐烨参与 DataFunsummit2024:推荐系统架构峰会,在专题【多模态推荐论坛】中分享了多模态算法在京…...

SSM+Ajax实现广告系统
文章目录 1.案例需求2.编程思路3.案例源码(这里只给出新增部分的Handler和ajax部分,需要详情的可以私信我)4.小结 1.案例需求 使用SSMAjax实现广告系统,包括登录、查询所有、搜索、新增、删除、修改等功能,具体实现的效果图如下:…...
项目实战 ---- 商用落地视频搜索系统(6)---UI 结构及与service互动
目录 背景 技术问题 描述 Jinja2 概述 特性 问题解决手段 问题1 问题2 问题3 代码实现 前端代码 python代码 解释 页面展示 home 上传视频 搜索视频 背景 通过1-5 我们已经搭建好完整的后台功能,service,及准备与UI 交互的路由及接口。下面就是UI 部分的搭…...
双头BFS
牛客月赛100 D题,过了80%数据,调了一下午。。。烦死了。。。 还是没调试出来,别人的代码用5维的距离的更新有滞后性,要在遍历之前要去重。。。 #include<bits/stdc.h> using namespace std; const int N2e310; char g[N][…...
使用Spring Boot拦截器实现时间戳校验以防止接口被恶意刷
使用Spring Boot拦截器实现时间戳校验以防止接口被恶意刷 在开发Web应用程序时,接口被恶意刷请求(例如DDoS攻击或暴力破解)是一个常见的安全问题。为了提高接口的安全性,我们可以在服务端实现时间戳校验,以确保请求的…...
第10讲 后端2
主要目标:理解滑动窗口法、位姿图优化、带IMU紧耦合的优化、掌握g2o位姿图。 第9讲介绍了以为BA为主的图优化。BA能精确优化每个相机位姿与特征点位置。不过在更大的场景中,大量特征点的存在会严重降低计算效率,导致计算量越来越大࿰…...
统计学习方法与实战——统计学习方法概论
统计学习方法概论 文章目录 统计学习方法概论前言章节目录导读 实现统计学习方法的步骤统计学习方法三要素模型模型是什么? 策略损失函数与风险函数常用损失函数ERM与SRM 算法 模型评估与模型选择过拟合与模型选择 正则化与交叉验证泛化能力生成模型与判别模型生成方法判别方法…...
人体红外传感器简介
人体红外传感器的工作原理是利用热释电效应,将人体发出的特定波长的红外线转化为电信号,从而实现对人体的检测和感知。 具体来说,人体红外传感器主要由滤光片、热释电探测元和前置放大器组成。滤光片的作用是使特定波长的红外辐…...

Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

MyBatis中关于缓存的理解
MyBatis缓存 MyBatis系统当中默认定义两级缓存:一级缓存、二级缓存 默认情况下,只有一级缓存开启(sqlSession级别的缓存)二级缓存需要手动开启配置,需要局域namespace级别的缓存 一级缓存(本地缓存&#…...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...