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

article/2025/10/26 9:54:25

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

基于层次二分图的大规模数据快速谱聚类学习

abstract

传统方法:不适用大规模问题 高斯核函数

提出了一种新的基于层次二分图(SCHBG)的光谱聚类方法,该方法通过探索具有金字塔结构的多层锚来实现。

该算法首先构造一个层次二分图,然后对该图进行谱分析。因此,计算复杂度可以大大降低。此外,我们采用了一种无参数但有效的邻居分配策略来构造相似度矩阵,从而避免了对热核参数的调整。最后,该算法能够处理大规模数据的样本外问题,其计算复杂度显著降低。

introduction

为了便于建立有效的邻接关系,锚需要足够密集,否则无法获得合理的精度。因此,当处理超大规模数据集时,现有的基于锚定图的方法的计算成本将急剧增加,甚至变得难以解决。另一方面,如果锚太稀疏,性能将下降。

核函数带来超参数。

最后,大多数SC方法没有考虑样本外问题。这些方法通过训练所有原始样本来处理样本外问题。在我们的方法中,基于最后一层锚点建立了层内邻接关系。由于最后一层锚点可以设置在更小的范围内,因此,样本外的计算复杂度急剧下降

为了解决这些问题,受半监督学习、大规模谱聚类和大规模基于谱的降维以及基于二分图的谱聚类的最新进展的启发

提出……

算法主要分为两步:

  1. 第一步是构造具有金字塔结构的多层锚
  2. 第二步是使用原始数据点和最后一层锚点构造二部图

贡献:

  1. 首先,使用具有金字塔样式结构的多层锚来构造分层图。我们直接计算最后一层锚点和数据点之间的邻接矩阵,而不是使用大规模锚点。因此,SCHBG在聚类精度和时间开销方面表现出更好的性能。
  2. 采用无参数方法构造原始点与锚定点之间的相似矩阵。与基于锚图的SC方法不同,我们的方法可以避免调整热核参数σ。
  3. 通过融合原始点和最后一层锚点,我们扩展了层次图方法来处理大规模数据集的样本外问题。结果表明,该方法不仅获得了满意的聚类精度,而且节省了大量的时间

background

基于图谱聚类

在这里插入图片描述

锚图构造

使用kmeans

然而,为了建立有效的邻接关系,锚需要足够密集。否则,无法获得合理的准确度。因此,当处理超大规模的数据集时,现有基于锚图的方法的计算成本将显著增加,甚至变得难以解决。

基于层次二部图的谱聚类

为了获得合理的精确度,锚需要足够密集,以便建立有效的邻接。因此,SCAG的计算成本将急剧增加,以至于在超大规模的数据集中变得难以解决。解决此问题的一种可能方法是使用较少数量的锚,但是,如果锚太稀疏,性能会下降[25]。因此,在本节中,将介绍基于分层二分图(SCHBG)的谱聚类来解决此问题。此外,将展示SCHBG在处理样本外问题方面的优点。

层次二部图构造

受半监督学习中使用分层锚图的启发,我们在此构造了一个用于无监督学习的分层二部图。基于该图,提出了一种新的基于层次二分图方法(SCHBG)的谱聚类方法。SCHBG方法不仅处理大规模数据,而且在样本外具有更好的性能。

为了构造二分层次图,首先介绍了受半监督学习启发的基于层次锚的图的定义。

G = X , U , ζ G = {X,U,\zeta} G=X,U,ζ 表示基于锚的层次图 X是数据矩阵 U是锚点集 ζ \zeta ζ是相邻层之间的层间边缘的邻接矩阵

假设底层(H0)表示原始数据点X∈ R n×d 剩余层(Ha,a=1,…,H)由多个锚定U组成

U a U_a Ua的大小逐渐减小( U a ∈ R m a × d , a = 1 , … , h U_a \in R^{m_a \times d},a=1,\dots,h UaRma×d,a=1,,h)也就是说 m 1 > …… > m h , ma是Ha中点的个数

ζ = { Z 0 , 1 , … , Z h − 1 , h } ∈ R n × m 1 , … , m h − 1 × m h \zeta = \{Z_{0,1},\dots,Z_{h-1,h }\} \in \mathbb{R}^{n \times m_1 ,\dots,m_{h-1} \times m_h} ζ={Z0,1,,Zh1,h}Rn×m1,,mh1×mh

其中 Z a − 1 , a Z_{a-1,a} Za1,a H a − 1 H_{a-1} Ha1 H a H_a Ha中的点之间的邻接。

为了提供清晰的印象,基于层次锚的图的示例如图所示

在这里插入图片描述

该结构建立在由H0=50 0 0数据点组成的三环合成数据上。我们采用k-means方法,分别选择H1=10 0、H2=50 0、H3=250和H4=10 0的基于层次锚的层。二分层次图可以由底部层H0和最后一层Hh构成。因此,二分图的亲和矩阵可以写成:

在这里插入图片描述

W ∈ R ( n + m h ) ( m h + n ) W \in R^{(n+m_h)(m_h+n)} WR(n+mh)(mh+n) Z H ∈ R ( n × m h ) Z_H \in R^{(n \times m_h)} ZHR(n×mh) 测量原始数据H0和最后锚点Hh之间的邻接度。

因此,可以降低计算复杂度。此外,还可以获得原始数据和最后锚点的指标矩阵,这意味着该算法在处理样本外时性能更好。
在这里插入图片描述

D r ∈ R n × n D_r \in R^{n \times n} DrRn×n是对角矩阵 元素是Z矩阵的行和

Λ ∈ R m h × m h \Lambda \in R^{m_h \times m_h} ΛRmh×mh是对角矩阵 元素是Z矩阵的列和 所以 Λ i i = ∑ j = 1 n z i j \Lambda_{ii} = \sum_{j=1}^{n} z_{ij} Λii=j=1nzij

在这里插入图片描述
因此,为了构建二分层次图,必须解决以下两点。

(1) 用于指标推理的层间邻接关系,使聚类更有效,降低了计算复杂度;(2) 层间的邻接性,即建立有效的正则化,保证学习适应性

首先考虑前一点。设Z H表示估计从H 0到H H的累积层间关系的邻接矩阵。Z H可写成:

在这里插入图片描述

将G表示为 H h H_h Hh中锚点数据集的类指示符矩阵,将F表示为H 0中原始数据点的类指示矩阵。使用上述累积矩阵,我们可以从H 0到H H以密集到稀疏的方式获得类指示符阵,如下所示:

在这里插入图片描述

接下来,我们考虑从 H h H_h Hh H h − 1 H_{h-1} Hh1的层间邻接 Z h , h − 1 Z_{h,h−1} Zhh1.使用第2.2节中的分析,基于核的方法可以计算Z,但是这些方法总是必须使用额外的参数

在这里插入图片描述

根据Nie等人[22],由于z i是稀疏的,并且正好有k个非零值,因此学习的z是稀疏的并且因此可以大大减轻后续处理的计算负担

在这里插入图片描述

一旦我们得到矩阵 Z h , h − 1 Z_{h,h−1} Zh,h1邻接 Z H Z_H ZH可以通过等式(10)获得

W也可以通过9获得

通过等式12中归一化行的定义 D r = I n , I n D_r = I_n,I_n Dr=In,In是n*n的对角矩阵

D可以重写为:

在这里插入图片描述

层次二部图的谱分析

谱聚类的目标函数:

在这里插入图片描述
在这里插入图片描述

对B进行奇异值分解:

在这里插入图片描述

其中 V ∈ R m h × m h , ∑ ∈ R n × m h , U ∈ R n × n V∈ R ^{m_h×m_h},\sum \in R^{n×m_h},U∈ R^{n×n} VRmh×mh,Rn×mhURn×n分别是右奇异向量矩阵、奇异值矩阵和左奇异向量矩阵

很容易验证列向量 [ U V ] \begin{bmatrix} U \\ V \\ \end{bmatrix} [UV]是L的特征向量(把下面图片中的D_u看成本文中的I)

在这里插入图片描述

上图来源于论文:

Learning A Structured Optimal Bipartite Graph for Co-Clustering

随后,通过k均值聚类,可以计算离散类指标 [ Y x Y u ] \begin{bmatrix} Y_x \\ Y_u \\ \end{bmatrix} [YxYu]

其中 Y x ∈ R n × 1 Y_x∈ R^{n×1} YxRn×1表示为数据点X的类, Y u ∈ R m h × 1 Y_u \in R^{m_{h}×1} YuRmh×1表示为最后一层锚点Uh的类别。此外,Yu可用于确定样本外点的类别指标矩阵,这将在后面讨论。

一般来说,大多数谱聚类方法只对训练数据有效,不处理样本外点。通过对比,SCHBG方法可以很容易地扩展到处理测试数据。在对训练数据进行聚类时,我们可以获得最后一层锚点的特征向量和聚类标签。因此,我们只需在锚定点中找到样本外的k个最近邻居,并将标签传播到样本外。对于每个数据点,k-NN算法可以在 O ( m h d ) O(m_h d) O(mhd)的计算成本下使用,其中 m h m_h mh是最后一层上的锚点数量。当样本中有q个点时,计算成本为 O ( q m h d ) O(qm_h d) O(qmhd)。如果我们直接对原始数据进行k-NN,计算成本为O(pnd)。从上面的分析中,我们知道mh<<n,如果使用锚点来预测样本外的类,计算成本会迅速下降。

这些生成的点在捕捉原始视图的流形方面起着重要作用。然后使用局部流形融合方法将视图图组合在一起。最后,我们对得到的融合图进行谱聚类。

本为 O ( q m h d ) O(qm_h d) O(qmhd)。如果我们直接对原始数据进行k-NN,计算成本为O(pnd)。从上面的分析中,我们知道 m h < < n m_h<<n mh<<n,如果使用锚点来预测样本外的类,计算成本会迅速下降。

这些生成的点在捕捉原始视图的流形方面起着重要作用。然后使用局部流形融合方法将视图图组合在一起。最后,我们对得到的融合图进行谱聚类。

在这里插入图片描述


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

相关文章

Bipartite Graph Based Multi-View Clustering

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

BiNE: Bipartite Network Embedding

** BiNE: Bipartite Network Embedding ** SIGIR 2018 论文链接&#xff1a;https://dl.acm.org/doi/10.1145/3209978.3209987 项目代码&#xff1a;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翻译过来就是&#xff1a;二分图。 维基百科中对二分图的介绍为&#xff1a;二分图是一类图(G,E)&#xff0c;其中G是顶点的集合&#xff0c;E为边的集合&#xff0c;并且G可以分成两个不相交的集合U和V&#xff0c;E中的任意一条边的一个顶点属于集合…

bipartite matching二分图匹配

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

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

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

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

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

嵌入式软件测试的小结

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

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

文章目录 1&#xff09;什么是软件测试&#xff1f;测试的目的&#xff1a;软件测试的特点&#xff1a;软件测试信息流&#xff1a;软件测试的对象&#xff1a; 2&#xff09;嵌入式软件测试2.1 嵌入式软件2.2 嵌入式软件测试嵌入式软件测试的特点&#xff1a; 3&#xff09;嵌…

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

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

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

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

嵌入式测试大赛预选赛

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

嵌入式软件测试

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

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

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

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

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

简单聊聊嵌入式软件测试

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

嵌入式测试

一、嵌入式软件测试的方法 嵌入式软件测试分为4个阶段&#xff0c;即模块测试、集成测试、系统测试、硬件/软件集成测试。前3个阶段适用于任何软件的测试&#xff0c;硬件/软件集成测试阶段是嵌入式软件所特有的&#xff0c;目的是验证嵌入式软件与其所控制的硬件设备能否正确地…

机器学习必备知识点 之 先验概率和后验概率

机器学习必备知识点 见 机器学习必备知识点 我们可以把概率获得分为两种&#xff1a; 一种是从原因到结果——先验概率一种是从结果到原因——后验概率 举个例子&#xff1a; 这里的P(C1)&#xff0c;P(C2)&#xff0c;P(x|C1)&#xff0c;P(x|C1)都是先验概率&#xff0c;因…

Gretna网络分析之先验知识

目录 1. 简介 1.1 小世界网络 1.2 平均路径长度 2.功能键介绍 2.1 Global Network metrics 2.2 Nodal and modular network metrics 3.彩蛋 &#xff08;转载请注明来自Ressan博客&#xff09; 1. 简介 网络&#xff1a;由节点和连线构成的图/模型&#xff0c;用来研究…