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

VB.net复制Ntag213卡写入UID

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

Linux --进程控制

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

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…...

LLMs 系列实操科普(1)

写在前面&#xff1a; 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容&#xff0c;原视频时长 ~130 分钟&#xff0c;以实操演示主流的一些 LLMs 的使用&#xff0c;由于涉及到实操&#xff0c;实际上并不适合以文字整理&#xff0c;但还是决定尽量整理一份笔…...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看

文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...