当前位置: 首页 > 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;人体红外传感器主要由滤光片、热释电探测元和前置放大器组成。滤光片的作用是使特定波长的红外辐…...

【JAVA入门】Day35 - 方法引用

【JAVA入门】Day35 - 方法引用 文章目录 【JAVA入门】Day35 - 方法引用一、方法引用的分类1.引用静态方法2.引用成员方法2.1 引用其他类的成员方法2.2 引用本类和父类的成员方法2.3 引用构造方法2.4 使用类名引用成员方法2.5 引用数组的构造方法 二、方法引用的例题 方法引用就…...

集合及映射

1、集合类图 1&#xff09;ArrayList与LinkedList 区别 LinkedList 实现了双向队列的接口&#xff0c;对于数据的插入速度较快&#xff0c;只需要修改前后的指向即可&#xff1b;ArrayList对于特定位置插入数据&#xff0c;需要移动特定位置后面的数据&#xff0c;有额外开销 …...

软考基础知识之计算机网络

目录 前言 网络架构与协议 网络互联模型 1、OSI/RM 各层的功能 2、TCP/IP 结构模型 常见的网络协议 1、应用层协议 2、传输层协议 3、网络层协议 IPv6 前言 从古代的驿站、 八百里快马&#xff0c; 到近代的电报、 电话&#xff0c; 人类对于通信的追求从未间断&…...

云手机怎样简化海外社媒平台运营

随着越来越多的卖家希望拓展海外市场&#xff0c;运营TikTok、Facebook等社交媒体平台已经成为吸引流量和促进销售的重要手段。然而&#xff0c;在管理海外社媒账号的过程中&#xff0c;许多人会面临网络连接的问题。这时&#xff0c;使用一款高效便捷的云手机工具就显得尤为便…...

创业者必读!选择拍卖源码还是自建开发,哪种方案更安全?

在当今数字化时代&#xff0c;拍卖平台作为一种独特的电子商务模式&#xff0c;正逐渐成为人们关注的焦点。随着互联网技术的发展&#xff0c;网络安全问题变得越来越突出。如何保障用户数据安全&#xff0c;防止信息泄露及攻击事件的发生&#xff0c;已经成为拍卖软件开发者面…...

Spring Cloud Gateway整合基于STOMP协议的WebSocket实战及遇到问题解决

本实例介绍了Spring Cloud Gateway整合基于STOMP协议的WebSocket的实现。开发了聊天功能,和用户在线状态。解决了协议gateway整合websocket出现的问题 技术点 Spring Cloud GatewayNacosWebSocketSTOMPWebSocket与STOMP协议详解 1. WebSocket WebSocket 是一种通信协议,提…...

软考高级:系统架构设计师——软件架构设计 Chapter 笔记

软考高级&#xff1a;系统架构设计师——软件架构设计 1 软件架构设计—基本概念架构所处的位置架构发展历程架构的“41”视图例题 架构描述语言&#xff08;ADL&#xff09;例题 2软件架构设计—架构风格数据流风格调用/返回 风格独立构件风格虚拟机风格仓库风格&#xff08;以…...

PageHelper组件 实现前端分页查询功能

Hi~&#xff01;这里是一颗小谷粒&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~&#x1f4a5;&#x1f4a5;个人主页&#xff1a;一颗小谷粒&#x1f4a5;&#x1f4a5;所属专栏&#xff1a;Web前端开发 &#x1f4a5;&#x1f4a5;博主…...

线性回归与逻辑回归在模型参数优化上的比较

概述 线性回归和逻辑回归是两种基础且广泛应用的预测模型。尽管它们在很多方面有相似之处&#xff0c;如都使用梯度下降算法来优化模型参数&#xff0c;但在优化目标和方法上存在一些关键差异。本文将探讨这两种模型在参数优化上的差异&#xff0c;并提供相应的代码示例。 线…...

JavaWeb JavaScript 10.日程管理 第一期

自我消耗&#xff0c;敏感是我&#xff0c; 明媚是我&#xff0c; 我横跳在不同的情绪中 —— 24.8.31 一、登录页及校验 1.校验账号格式 // 校验账号格式function checkUsername(){// 定义正则表达式表示字符串规则var usernameReg /^[a-zA-Z0-9]{5,10}$/;// 获取用户名输入…...