[VLDB 2022]Butterfly Counting on Uncertain Bipartite Graphs

article/2025/10/26 7:12:09

总结

非确定二部图上的蝴蝶结构统计,精确算法。在普通的蝴蝶结构统计上,增加了边权重,使得传统算法失效,再在这基础上定义新的统计并优化老方法。

动机

Butterfly的数量直接展示了二部图的密度,是个很重要的属性。相比于certain bipartite graph, uncertain bipartite graph 的边上多了权重,用来表示联系的概率。这种图会比一般的图更有表现能力,但现在少有这种图上的butterfly counting算法。

Butterfly counting使用案例

  1. Host-Parasite Network: 这种网络用来寻找寄生虫寄生于哪些宿主身上。此时二部图上的权重用来表示被感染的机率。通过butterfly counting可以对潜在的感染率和传播造成的影响进行评估。
  2. 推荐系统。此时二部图上的权重用来表示用户对某商品的喜好程度/购买可能。通过butterfly counting可以对不同推荐系统得到的推荐结果进行对比,越稠密的越好。

问题定义

和一般的butterfly counting不同,这里因为引入了uncertain属性,所以需要对概率设定一个阈值。
比如:
image.png
这张图里,阈值为0.6。而蝴蝶结构 B ( A , B , C , D ) B(A, B, C, D) B(A,B,C,D)的权重是 1 × 1 × 0.9 × 0.8 = 0.72 1 \times 1 \times 0.9 \times 0.8 = 0.72 1×1×0.9×0.8=0.72是满足的,但 B ( C , D , G , H ) B(C, D, G, H) B(C,D,G,H)则是 1 × 1 × 0.4 × 0.5 = 0.2 1 \times 1 \times 0.4 \times 0.5 = 0.2 1×1×0.4×0.5=0.2则是不满足的。用下面的定义来表示就是 P r ( B t ) ≥ 1 Pr(B_t) \geq 1 Pr(Bt)1
计算剩下的可以得到,这张图的count是0.2。
顺便提一句,下面还有个wedge ∠ ( u , v , w ) , P r ( ∠ t ) ≥ t ∈ [ 0 , 1 ] \angle(u,v,w), Pr(\angle_t)\geq t \in [0,1] (u,v,w),Pr(t)t[0,1]。同样的,满足条件的才会被视作图中的wedge。

很明显,已有的工作没法在这定义上实现counting。

image.png
其中 P r ( e u , v ) ∈ ( 0 , 1 ] Pr(e_{u,v}) \in (0,1] Pr(eu,v)(0,1]

对于每个G的每套权重边(子图),都有一个possible world W i = ( V , E W i ) W_i=(V, E_{W_i}) Wi=(V,EWi)。以下式子本质就是出现这个概率世界的概率:
P r ( W i ) = ∏ e ∈ E W i P r ( e ) ⋅ ∏ e ∈ E \ E W i ( 1 − P r ( e ) ) Pr(W_i)=\prod_{e \in E_{W_i}} Pr(e) \cdot \prod_{e \in E\backslash E_{W_i}}(1-Pr(e)) Pr(Wi)=eEWiPr(e)eE\EWi(1Pr(e))
也就是说,当出现了某个具体的概率世界时,其实就是概率的不确定边转变为了实际发生的确定边。
对于每个G,都会有 2 ∣ E ∣ 2^{|E|} 2E个概率世界。看来是全包和一个都没有都算在内的。 W = { W 1 , … W 2 ∣ E ∣ } \mathbb{W}=\{W_1, \dots W_{2^{|E|}}\} W={W1,W2E}

E E E条边可以有 2 ∣ E ∣ 2^{|E|} 2E种子集的证明,可以认为每条边有在和不在两种情况,自然就是边数个2相乘。

Naive算法

首先有个顶点优先级定义:

if((deg(u) > deg(v)) or (deg(u) == deg(v) and id(u) > id(v))):p(u) > p(v)

利用优先级可以避免一个点被计算多次。
image.png

  1. 提取出一个概率世界
  2. 找出u为起点,优先级都低于u的u邻居v,以及wedge邻居w,把中间节点v存入H(w)
  3. 对于至少有2个v的w,判断这个蝴蝶符不符合要求,符合数量+1。

从度小的子图开始往上地毯式搜索。

提升算法

image.png

l中存了所有边从小到大的权重,然后对所有边做遍历
两边权重乘积小于t的肯定就出局了,顺便可以确定当前边需要配合的另一条边的最小权重,再去找有没有符合的,没有就直接跳过这条边,有就计数。

最终算法

image.png
概率低于t的点肯定不是,可以直接去掉,后面的基本和UBFC保持一致,不过存的是wedge,之后可以直接用wedge去统计数量。


http://chatgpt.dhexx.cn/article/qyNMflL7.shtml

相关文章

二分匹配大总结——Bipartite Graph Matchings[LnJJF]

文章目录 二分匹配——Bipartite Graph Matchings[LnJJF]认识:什么是二分图?理解:现实模型如何与二分图相互转化?如何判断能否转化?能够转化的话,如何转化? 应用:已知一个二分图&…

【一致性仿真】Fixed-time bipartite consensus of multi-agent systems with disturbances

文章链接:Fixed-time bipartite consensus of multi-agent systems with disturbances 仿真图Fig2: MATLAB代码: % Fixed-time bipartite consensus of multi-agent systems with disturbances % author:JCGUY % date:2022-04-20 clear clc…

Bipartite Graph多视图学习聚类文章总结

看了一些anchor graph和bipartite graph 的文章始终不知道他们的区别在哪里。今天总结一下这类文章。 1.能看到最早的这类关于多视图学习的文章 Large-Scale Multi-View Spectral Clustering via Bipartite Graph(AAAI-2015) 目标:we addre…

Fast spectral clustering learning with hierarchical bipartite graph for large-scale data

Fast spectral clustering learning with hierarchical bipartite graph for large-scale data 基于层次二分图的大规模数据快速谱聚类学习 abstract 传统方法:不适用大规模问题 高斯核函数 提出了一种新的基于层次二分图(SCHBG)的光谱聚…

Bipartite Graph Based Multi-View Clustering

Bipartite Graph Based Multi-View Clustering 基于二部图的多视图聚类 abstract 对于基于图的多视图聚类,一个关键问题是通过两阶段学习方案捕获共识聚类结构。具体来说,首先学习多个视图的相似性图矩阵,然后将它们融合为统一的高级图矩阵。…

BiNE: Bipartite Network Embedding

** BiNE: Bipartite Network Embedding ** SIGIR 2018 论文链接:https://dl.acm.org/doi/10.1145/3209978.3209987 项目代码:https://github.com/clhchtcjj/BiNE 文章目录 BiNE: Bipartite Network Embedding 摘要1、Introduction2、Related work&a…

【Paper】2020_Event-triggered bipartite consensus over cooperation-competition networks under DoS atta

Hu, A., Park, J.H., Cao, J. et al. Event-triggered bipartite consensus over cooperation-competition networks under DoS attacks. Sci. China Technol. Sci. 64, 157–168 (2021). 文章目录 1 Introduction2 Problem description and preliminaries2.1 Multiagent model…

Bipartite graph/network学习

Bipartite graph/network翻译过来就是:二分图。 维基百科中对二分图的介绍为:二分图是一类图(G,E),其中G是顶点的集合,E为边的集合,并且G可以分成两个不相交的集合U和V,E中的任意一条边的一个顶点属于集合…

bipartite matching二分图匹配

目录 二分图bipartite的概念 匹配的概念 最大匹配 bipartite matching 这个词最近在看Transformer相关的论文里常见用作loss function,所以特地学习一下,bipartite matching是一个什么操作。个人理解,若有表述错误或不当的问题,还请各位大…

【嵌入式单元测试】C语言单元测试框架搭建

cmocka cmocka交叉编译源码下载 编译准备源码修改指定编译器编译 cmocka使用示例常见问题参考 单元测试框架是一个软件包,它能够让开发者比较方便的表达产品代码需要表现出什么样的行为。单元测试框架提供了一个自动化单元测试的解决方案,让开发者把更多…

三年黑盒测试工程师,带你了解嵌入式测试,金三银四升职加薪秘诀

什么是嵌入式系统? 嵌入式系统是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”。 嵌入式系统是“用于控制,监视或辅助操作机器和设备的装置”。 嵌入式系统还可以定义为“以应用为中心,以计算机技术为基础,软硬件可裁剪,功能、可靠性、成本、体积、功耗…

嵌入式软件测试的小结

文章内容为本人这三年来在嵌入式软件测试(黑盒)上的一些积累吧,说起来也挺快的,毕业三年的时间就这样过去了,在两家公司工作过(现在这家是第二家),这几年的测试项目基本都是围绕着嵌…

【测试】嵌入式软件测试VS一般软件测试

文章目录 1)什么是软件测试?测试的目的:软件测试的特点:软件测试信息流:软件测试的对象: 2)嵌入式软件测试2.1 嵌入式软件2.2 嵌入式软件测试嵌入式软件测试的特点: 3)嵌…

嵌入式软件自动化测试介绍

什么是嵌入式测试 嵌入式软件测试的概念似乎没那么大众,很多人从字面上理解,可能会以为这是个硬件测试,那么嵌入式测试实际上是什么呢? 根据IEEE(国际电机工程师协会)的定义,嵌入式系统是“控…

嵌入式软件测试的基本方法

嵌入式系统是以应用为中心,以计算机技术为基础,软件硬件可剪裁,适应应用系统对功能、可靠性、成本、体积及功耗严格要求的专用计算机系统。嵌入式系统的软硬件功能界限模糊,测试比PC系统软件测试要困难得多,嵌入式软件…

嵌入式测试大赛预选赛

刚刚参加了预选赛,对于这种热身赛,是不需要一点编程能力的,只不过需要一些细心 题目下载: 链接:https://pan.baidu.com/s/1Xm2d8UYhrK75fukcXQhEcg 密码:hxzy 这次预选赛是在练习题4的基础上改的&#x…

嵌入式软件测试

如何在目标板上实时测试应用程序为什么嵌入式系统测试困难? 在目标板上测试面临的系列问题: 1、如何下载测试到板子上,然后如何收集测试结果 2、如何累积可重复自动执行的测试 3、如何尽可能减少人工工作 4、如何减少内存不够的问题 这…

全国软件测试大赛嵌入式测试步骤及所需工具

文章目录 前言一、所需工具二、测试步骤1.从慕测平台上下载题目2.搭建测试环境3.测试脚本编写怎么编写 总结 前言 全国软件测试大赛嵌入式测试最全步骤及所需的工具 一、所需工具 若需要测试工具请私信我 二、测试步骤 以2019年的省赛题目为例 1.从慕测平台上下载题目 下…

嵌入式软件测试(黑盒测试)-----三年嵌入式软件测试的理解

前言 文章内容为本人这三年来在嵌入式软件测试(黑盒)上的一些积累吧,说起来也挺快的,毕业三年的时间就这样过去了,在两家公司工作过(现在这家是第二家),这几年的测试项目基本都是围绕…

简单聊聊嵌入式软件测试

一、什么是嵌入式?什么是嵌入式软件测试? 此文不从行业术语来讲,就用大白话来描述,容易明白,不当之处,还请见谅和指正。 嵌入式?简单的可以理解为上位机或者单片机,或者运行微型可定…