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

论文解读 | KDD2024 演化图上的森林矩阵快速计算

点击蓝字

c6678078a1755d796031fac8c816f579.jpeg

关注我们

AI TIME欢迎每一位AI爱好者的加入!

点击 阅读原文 观看作者直播讲解回放!

作者简介

孙浩鑫,复旦大学博士生,主要研究方向为大规模图上快速算法设计。

概述

森林矩阵在网络科学、观点动力学和机器学习相关应用中扮演着至关重要的角色,深刻刻画了网络的结构信息与内在联系。在本文中,我们研究了在演化中的图(与静态图相比,更准确地代表了现实世界网络的动态特性)中查询森林矩阵元素的问题。为了应对演化图所带来的独特挑战,我们首先为静态图中森林矩阵元素查询提出了两种近似算法,SFQ和SFQPlus。SFQ采用了森林矩阵的概率解释,而SFQPlus则结合了一种新颖的方差减少技术,我们理论证明了SFQPlus拥有更小的方差,因而可以提供更高的精确度。基于这两种算法,我们进一步设计了两种动态算法,这些算法的核心是高效地维护一系列带根的生成森林列表。这种方法确保了更新(包括边的添加和删除)以及查询矩阵元素的运行时间复杂度为63af324fb3023814840088a28ef39147.png,并且提供了森林矩阵元素的无偏估计。最后,通过在各种真实世界网络上进行广泛的实验,我们证明了我们算法的效率和有效性。特别是,我们的算法可以扩展到拥有超过四千万个节点的大规模网络中。

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

AITIME

01

Background

本文首先定义了森林矩阵Ω,它是单位矩阵I与拉普拉斯矩阵L和的逆矩阵。拉普拉斯矩阵L由图的度矩阵D减去邻接矩阵A得到。森林矩阵在有向图中的元素值介于0到1之间,且每行元素之和为1,表现为行随机矩阵。其对角元素在网络分析中作为森林中心性指标具有特别意义,已经有研究深入探讨了森林中心性的性质与应用。其非对角元素则可用来衡量两点之间“距离”的远近,也有重要意义。

24e30cb25305750329e1453ddc8d1c2a.png

除此之外,在采用数学建模刻画社会观点的传播与扩散时,森林矩阵在Friedkin-Johnsen(FJ)模型中被视为核心矩阵。该模型是观点动力学领域的著名模型,曾被用来解释巴黎协定达成共识的过程。然而,鉴于社交网络等现实世界的网络不断变化,本文关注于在不断演化的图上面提出快速查询森林矩阵元素的方法,以适应网络的动态特性。

AITIME

02

Contributions

该研究的贡献主要体现在两个方面:首先,在静态图领域,研究者提出了森林矩阵元素的概率解释,并开发了两种快速算法SFQ和SFQ+,其中SFQ+算法通过引入创新的方差减少技术,实现了性能上的显著提升。其次,针对演化图,研究者专注于边的插入和删除操作,因为节点的插入和删除可以看成一系列连续的边的增删操作。为此,作者设计了一种策略,利用特定的内存数据结构存储图信息,并在图更新时快速调整该结构,以实现在O(1)时间内快速更新和查询所需元素。

0e02f822e18b71a023eb851b0242baa0.png

AITIME

03

Spanning Converging Forest

作者首先介绍了带根生成森林的概念,并解释了为何称之为森林矩阵,原因在于该矩阵的元素与图上的带根生成森林紧密相关。

随后,研究者阐释了带根生成树的定义:它是一个连通图且形态为树,具有一个特定的根节点,该节点的出度为0,而树中其他所有节点的出度均为1。带根生成森林由多个这样的连通分支组成,每个分支都是一棵以特定节点为根的树。

8a4016a72b676c3070b9b565a8315fce.png


例如,通过观察提供的图示,可以看到左侧的图是一个包含五个顶点和多条边的小型图。而右侧的图则展示了该图中的一棵生成森林,其中三节点和五节点被选为根节点,而图中的其他节点则是森林中的普通成员。

AITIME

04

Sampling Algorithm SFQ

作者通过矩阵森林定理阐释了森林矩阵元素138327b472790a7a04edece3176e7cc1.png的含义,它代表在均匀生成的带根生成森林中,节点i的根为节点j的概率。为了生成这样的均匀带根生成森林,研究者采用了Wilson算法的扩展版本,Wilson提出的原始的算法可以返回一个给定根节点的生成树,这里作者使用了它的拓展版本,用于生成带根生成森林。左侧的图示展示了这一过程的起始步骤。

18c76a968a9701fca62f70c297eeade7.png

AITIME

05

Static Graphs-- SFQ

在前面的图中,作者通过新增一个第6个顶点x,并在原图中加入五条指向新节点x的新边,这样生成了拓展图。接着,使用Wilson算法生成了一个以x为根的生成树。第三步,删除了新顶点x及其指向它的边,从而获得了一个均匀的带根生成森林。这种方法具有O(n)的时间复杂度,适用于大规模网络,并且支持并行处理,能够在多个核上同时运行,显著提高了效率。

6bd279f0e70458ef30a82af0ffec299f.png

作者提出了一种基础算法,称为SFQ算法。该算法在查询时,基于已采样的l个森林,计算节点的根为节点的概率。SFQ算法的时间复杂度为O(l),这表明它在处理查询时效率较高。

AITIME

06

Static Graphs-- SFQPLUS

637c1041691c048ba65dd140c33aade8.jpeg

e95753f264b82134b4090cb72e92808b.png

e5092726ef22559cedc9a06c85f3f472.jpeg

AITIME

07

Algorithms SFQ and SFQPLUS

作者在静态图上提出了两种算法:SFQ和SFQ Plus。SFQ算法首先利用了威尔逊算法的扩展和矩阵森林定理,并且提供了一个无偏估计。而SFQ Plus算法由于聚合了更多的信息,不仅保持了无偏估计的特性,还拥有比SFQ更小的方差,从而提供了更优的结果。简而言之,研究者提出的第二个算法,SFQ Plus,在性能上超越了最初的SFQ算法。

a51d27b1aa37eb5ea6e1a162c0dfbcbe.png

AITIME

08

Evolving Graphs

ec7259940c4f5d8601c02c940c568518.png

AITIME

09

Edge Insertions

62fc42c0c0ceb34f29d8ffd89fa1e1d3.jpeg

0df20c70bb8329261daafbeac3e201a6.jpeg

fb050fc63084dd7ab92217b04c2d38c6.png

1c0f0510eaa89c91506937299c820c6c.png

28a26d179e577c9d310bd67f18bbdaa5.png

d6ecfda7d5aaf833338766f850046a17.jpeg

c688e9dc7965806c616004d164b456c9.jpeg

AITIME

10

Edge Deletions

97c5b0c5dcc9698bfbf5845eab40a1c3.png

e1fefe07cf824652e0f315f9838c1070.png

具体而言,对应下列算法的中的第二行-第九行。

a17ef9cc2e46aff9a1f5869ad90f5135.png

AITIME

11

Pruning Technique

2dca94f2f5dff4c4e10bfd14bf612d36.png

967d81d7f2799e4623e46593a583317d.png


AITIME

12

Experiments

本文的算法通过一系列实验验证了其性能,结果表明,该算法能够高效地处理大规模网络,例如在推特网络上,算法能够顺利处理达到四千万节点的图,且运行过程中没有出现问题。这展示了算法在处理大规模数据集时的稳定性和可靠性。

93dffa0271027442d28ae1f0a3d4ef86.png


森林矩阵的对角元有重要意义,可用于衡量节点的中心性。作者首先对算法的对角元精度进行了测试,发现以平均相对误差为衡量标准,相较于SFQ算法,提出的SFQPlus算法精度有显著提高。作者在演化图与静态图上都进行了实验,发现算法在演化图上的误差高于静态图,这可能是由于生成森林数量增加导致相关性增强,使得误差随迭代次数增长。这一现象指明了未来研究需要关注的优化方向。

5df41a824117c29c0271ae5cde51297b.png

4db60020c724f62d47d83501884d40f9.png


1f93c9c14b79c7a76b68181c5dc6ae3f.png


同时,常数时间的复杂度使得算法在查询和更新速度上表现出色,无论是在中小规模网络还是在拥有千万节点的大规模网络。如下表格展示了,当网络节点规模达到千万级别,当前最优秀的图求解器算法也无法在短时间内返回查询结果,而本文提出的算法则可以在极短时间内返回结果。

5a7f899a3371a06734fd8fa7bf04d53f.png

本篇文章由陈研整理

fa9e14a3e9c895362aadf7b079659af5.png

点击  阅读原文 观看作者直播讲解回放!

往期精彩文章推荐

0503756d2130eca531544c230882af00.jpeg

论文解读 | ACL2024 Outstanding Paper:因果指导的主动学习方法:助力大语言模型自动识别并去除偏见

 关于AI TIME 

AI TIME源起于2019年,旨在发扬科学思辨精神,邀请各界人士对人工智能理论、算法和场景应用的本质问题进行探索,加强思想碰撞,链接全球AI学者、行业专家和爱好者,希望以辩论的形式,探讨人工智能和人类未来之间的矛盾,探索人工智能领域的未来。

迄今为止,AI TIME已经邀请了1800多位海内外讲者,举办了逾600场活动,超700万人次观看。

 55539f6a7b3dd6a7bcc49dd911172db2.png

我知道你

在看

提出观点,表达想法,欢迎

留言

5be815027193e5d0acf714527730f92e.gif

点击 阅读原文 观看作者直播讲解回放!

相关文章:

论文解读 | 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题完美矩形

题目&#xff1a; 题解&#xff1a; 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——面向对象特征之继承

一、继承&#xff08;inhert&#xff09; 面向对象三大特征&#xff1a;封装、继承、多态 继承&#xff1a;所谓继承&#xff0c;是类与类之间的关系。就是基于一个已有的类&#xff0c;来创建出一个新类的过程叫做继承。主要提高代码的复用性。 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…...

多模态在京东内容算法上的应用

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

SSM+Ajax实现广告系统

文章目录 1.案例需求2.编程思路3.案例源码(这里只给出新增部分的Handler和ajax部分&#xff0c;需要详情的可以私信我)4.小结 1.案例需求 使用SSMAjax实现广告系统&#xff0c;包括登录、查询所有、搜索、新增、删除、修改等功能&#xff0c;具体实现的效果图如下&#xff1a;…...

项目实战 ---- 商用落地视频搜索系统(6)---UI 结构及与service互动

目录 背景 技术问题 描述 Jinja2 概述 特性 问题解决手段 问题1 问题2 问题3 代码实现 前端代码 python代码 解释 页面展示 home 上传视频 搜索视频 背景 通过1-5 我们已经搭建好完整的后台功能,service,及准备与UI 交互的路由及接口。下面就是UI 部分的搭…...

双头BFS

牛客月赛100 D题&#xff0c;过了80%数据&#xff0c;调了一下午。。。烦死了。。。 还是没调试出来&#xff0c;别人的代码用5维的距离的更新有滞后性&#xff0c;要在遍历之前要去重。。。 #include<bits/stdc.h> using namespace std; const int N2e310; char g[N][…...

使用Spring Boot拦截器实现时间戳校验以防止接口被恶意刷

使用Spring Boot拦截器实现时间戳校验以防止接口被恶意刷 在开发Web应用程序时&#xff0c;接口被恶意刷请求&#xff08;例如DDoS攻击或暴力破解&#xff09;是一个常见的安全问题。为了提高接口的安全性&#xff0c;我们可以在服务端实现时间戳校验&#xff0c;以确保请求的…...

第10讲 后端2

主要目标&#xff1a;理解滑动窗口法、位姿图优化、带IMU紧耦合的优化、掌握g2o位姿图。 第9讲介绍了以为BA为主的图优化。BA能精确优化每个相机位姿与特征点位置。不过在更大的场景中&#xff0c;大量特征点的存在会严重降低计算效率&#xff0c;导致计算量越来越大&#xff0…...

统计学习方法与实战——统计学习方法概论

统计学习方法概论 文章目录 统计学习方法概论前言章节目录导读 实现统计学习方法的步骤统计学习方法三要素模型模型是什么? 策略损失函数与风险函数常用损失函数ERM与SRM 算法 模型评估与模型选择过拟合与模型选择 正则化与交叉验证泛化能力生成模型与判别模型生成方法判别方法…...

人体红外传感器简介

人体红外传感器的工作原理是利用热释电效应&#xff0c;将人体发出的特定波长的红外线转化为电信号&#xff0c;从而实现对人体的检测和感知。 具体来说&#xff0c;人体红外传感器主要由滤光片、热释电探测元和前置放大器组成。滤光片的作用是使特定波长的红外辐…...

浅谈 React Hooks

React Hooks 是 React 16.8 引入的一组 API&#xff0c;用于在函数组件中使用 state 和其他 React 特性&#xff08;例如生命周期方法、context 等&#xff09;。Hooks 通过简洁的函数接口&#xff0c;解决了状态与 UI 的高度解耦&#xff0c;通过函数式编程范式实现更灵活 Rea…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

django filter 统计数量 按属性去重

在Django中&#xff0c;如果你想要根据某个属性对查询集进行去重并统计数量&#xff0c;你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求&#xff1a; 方法1&#xff1a;使用annotate()和Count 假设你有一个模型Item&#xff0c;并且你想…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

MFC 抛体运动模拟:常见问题解决与界面美化

在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...