Structural Deep Clustering Network

news2024/11/18 5:45:50

 Structural Deep Clustering Network | Proceedings of The Web Conference 2020 (acm.org)

目录

Abstract

1 Introduction

2 Model

2.1 KNN Graph

2.2 DNN Module

2.3 GCN Module

2.4 Dual Self-Supervised Module


Abstract

深度聚类方法通常是通过深度学习强大的表示能力来提升聚类结果,例如自动编码器,这表明学习一个有效的聚类表示是一个至关重要的要求。

深度聚类方法的优势在于从数据本身中提取有用表示,但很少从数据结构中提取有用表示。因为GCN在提取图结构编码方面取得了很大成功。作者提出了一种结构深度聚类网络(SDCN),将结构信息整合到深度聚类中。即设计了一个传递算子将自编码器学习到的表征传递到相应的GCN层,并设计了一个双重自监督机制来统一这两种不同的深度神经结构并指导整个模型的更新。通过这种方式,从低阶到高阶的多种数据结构,自然地与自编码器学习到的多种表示相结合。此外,作者从理论上分析了传递算子,通过传递算子,GCN将特定于自编码器的表示改进为高阶图正则化约束,而自编码器有助于缓解GCN中的过度平滑问题。

1 Introduction

深度聚类取得了成功,可以为聚类任务学习不错的表示。但它们通常关注数据本身的特征,因此在学习表示时很少考虑数据的结构,这种结构揭示了样本之间潜在的相似性。

将结构信息整合到深度聚类中通常要解决以下两个问题:(1)深度聚类应该考虑哪些结构信息结构信息?表明了数据样本之间潜在的相似性。然而,数据的结构通常是非常复杂的,即不仅存在样本之间的直接关系(也称为一阶结构),而且存在高阶结构。高阶结构从样本之间的多跳关系施加相似性约束。以二阶结构为例,这意味着对于没有直接关系的两个样本,如果它们有许多共同的邻居样本,它们应该仍然具有相似的表示。当数据结构是稀疏的时候,高阶结构就显得尤为重要。因此,仅利用低阶结构进行深度聚类是远远不够的,如何有效地考虑高阶结构是首先要解决的问题;(2)结构信息与深度聚类之间的关系是什么?深度聚类例如自编码器,网络结构非常复杂,由多层组成。每一层捕获不同的潜在信息。数据之间还存在各种类型的结构信息。那么,在自动编码器中,不同的结构和不同的层之间是什么关系呢?人们可以使用结构以某种方式正则化自编码器学习的表示,然而,另一方面,人们也可以直接从结构本身学习表示。如何将数据结构与自编码器结构结合是另一个问题。

(1)捕获结构信息。构建KNN图,该图能够揭示数据的底层结构。为了从KNN图中捕获低阶和高阶结构信息,提出了一个由多个图卷积层组成的GCN模块,以学习特定于GCN的表示。

(2)将结构信息引入到深度聚类中。引入了一个自编码器模块来从原始数据中学习自编码器特定的表示,并提出了一个传递算子将其与gcn特定的表示结合起来。从理论上证明了传递算子能够更好地辅助自编码器与GCN的集成。特别地,证明了GCN为自编码器学习的表示提供了近似的二阶图正则化,并且自编码器学习的表示可以缓解GCN中的过平滑问题。

(3)由于自编码器和GCN模块都将输出表示,提出了一个双自监督模块来统一引导这两个模块。通过双自监督模块,可以对整个模型进行端到端聚类训练。

2 Model

模型的整体结构:首先基于原始数据构造一个KNN图。然后将原始数据和KNN图分别输入到自编码器和GCN中;将自编码器的每一层与相应的GCN层连接起来,这样就可以通过传递算子将特定于自编码器的表示集成到结构感知的表示中;提出了一种双重自监督机制来监督自编码器和GCN的训练进度

2.1 KNN Graph

假设有原始数据X是(N,d),N是样本个数,d是维度,每一行xi代表第i个样本。计算相似性矩阵,然后对于每一个样本,首先找到它top-K相似的邻居,并在它和邻居之间设置边来连接,构建无向k近邻图,这样就可以从非图数据中得到邻接矩阵A。相似性矩阵的计算方法有:

1)Heat Kernel

适合于连续数据

2) Dot-product

适合于离散数据

2.2 DNN Module

为了通用性,使用基本的自编码器学习原始数据表示,来适应不同类型的数据特征。

编码器部分,H^{(0)}是原始数据X

编码器部分之后是解码器部分,解码器部分是通过该方程通过几个完全连接的层重构输入数据。

解码器的输出是原始数据的重构\bold{\hat{X}}=\bold H^{(L)},目标函数如下:

2.3 GCN Module

自编码器能够从数据本身学习有用的表示,例如H (1), H(2),···,H (L),而忽略样本之间的关系。本节介绍如何使用GCN模块来传播由DNN模块生成的这些表示。一旦将DNN模块学习到的所有表示集成到GCN中,那么GCN可学习的表示将能够容纳两种不同的信息,即数据本身和数据之间的关系

GCN的传播公式如下:

考虑到自编码器学习到的表示H^{(l-1)}能够重构数据本身,并且包含不同的有价值信息,将Z^{(l-1)}H^{(l-1)}两个表示组合在一起,得到一个更完整、更强大的表示:

之后将\widetilde{Z}^{(l-1)}作为GCN中第l层的输入来生成表示Z^{(l)}:

式(8)可以看出特定于自编码器的表示H^{(l-1)}将通过归一化邻接矩阵进行传播。由于每个DNN层学习到的表示是不同的,为了尽可能地保留信息,将每个DNN层学习到的表示转移到相应的GCN层进行信息传播。

GCN的第一层的输入式原始的数据X。GCN模块的最后一层是具有softmax功能的多分类层:

结果zij∈Z表示概率样本i属于聚类中心j,可以将Z视为一个概率分布。

2.4 Dual Self-Supervised Module

目前经在神经网络架构中将自编码器与GCN连接起来。然而,但它们不是为深度聚类而设计的。基本上,自编码器主要用于数据表示学习,属于无监督学习场景,而传统GCN属于半监督学习场景。这两种方法都不能直接用于聚类。

本文提出了一种双自监督模块,将自编码器和GCN模块统一在一个统一的框架中,并有效地对两个模块进行端到端聚类训练。

对于第i个样本和第j个聚类,使用Student 's t-分布作为核来度量数据表示hi与聚类中心向量µj之间的相似性:

其中h_{i}H^{(l)}的第i行,\mu{j}是通过预训练自编码器学习到的表示经过K-means初始化的。q_{ij} 可以认为是将样本i分配给聚类j的概率,是一种软分配。将Q = [qij]作为所有样本分配的分布。

在获得聚类结果分布Q后,目标是通过学习高置信度分布来优化数据表示。具体来说,希望使数据表示更接近集群中心,从而提高集群的内聚性。计算目标分布如下:

在目标分布P中,对Q中的每个赋值进行平方和归一化处理,使赋值具有更高的置信度。目标函数如下:

最小化Q和P分布之间的KL散度损失,目标分布P可以帮助DNN模块学习更好的聚类任务表示,即使数据表示更靠近聚类中心。这被认为是一种自监督机制,因为目标分布P是由分布Q计算的,而P分布反过来监督分布Q的更新。

对于GCN模块的训练,一种可能的方法是将聚类分配作为真值标签。然而,这种策略会带来噪音和琐碎的解决方案,并导致整个模型的崩溃。2.3节提到,GCN也会提供一个聚类分布Z,因此,可以用分布P来监督分布Z:

目标函数有两个优点:(1)与传统的多分类损失函数相比,KL散度以更“温和”的方式更新整个模型,防止数据表示受到严重干扰;(2) GCN和DNN模块都统一在同一个优化目标上,使得它们的结果在训练过程中趋于一致。由于DNN模块和GCN模块的目标是近似目标分布P,这两个模块之间有很强的联系,称之为双重自监督机制。

SDCN可以直接将两个不同的目标,即聚类目标和分类目标集中在一个损失函数中。因此,提出的SDCN的整体损失函数为:

经过训练直到最大epoch, SDCN将得到一个稳定的结果。然后可以将标签设置为样品。选择分布Z中的软赋值作为最终聚类结果。

因为GCN学习到的表示包含两种不同的信息。分配给样品i的标签为:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/592376.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为什么很多人做项目经理多年都没有进步?

为什么很多人做项目经理多年都没有进步? 项目经理是一个需要不断学习和成长的职业。然而,很多人在做了多年的项目经理后却没有看到自己的进步。这是为什么呢?以下是一些可能的原因: 1. 缺乏自我反思和改进意识 有些人可能会在自…

Ceph架构组件及存储过程

1、存储基础 //单机存储设备 ●DAS(直接附加存储,是直接接到计算机的主板总线上去的存储) IDE、SATA、SCSI、SAS、USB 接口的磁盘 所谓接口就是一种存储设备驱动下的磁盘设备,提供块级别的存储 ●NAS(网络附加存储&am…

喜讯!图扑荣获用友年度十佳产业融合生态伙伴称号

2023 年 4 月 20 日,由中华全国工商业联合会联合工业和信息化部、国务院国资委组织开展的 2023 年度“百场万企”大中小企业融通对接活动——智能制造 MES 产业融通对接会暨 2023 用友 BIP 技术大会 MES 生态创新专题论坛在用友产业园顺利召开。 用友年度生态合作伙…

港联证券|资金疯狂涌入AI,这一板块涨幅超90%!万亿巨头继续狂飙

国内外资金继续加码AI概念股。 当前,国内政策层面对于通用人工智能和算力中心的创新发展扶持政策不断推出,资本市场对于AI(人工智能)热情不断升温。在AI下游应用中,游戏板块成为最被看好的投资标的,资金流入…

正则表达式实现关键字高亮

使用正则表达式实现一个类似于navicat中sql编辑器功能&#xff0c;大致实现以下目标&#xff1a; 指定关键字高亮(eg. 红色)数字高亮(eg. 蓝色)引号内容高亮(eg.浅绿色) 实现效果如下&#xff1a; 下面直接上代码&#xff0c;具体解释见代码&#xff1a; <!DOCTYPE htm…

C语言参悟-分支和跳转

C语言参悟-分支跳转 一、概述二、判断条件三、if else 条件判断1. 单判断2. 条件“并联”3. 条件“串联” 四、switch case 条件判断1. “单刀” 开关2. “多刀”开关 一、概述 下面只是我的对于C语言的认识拙见&#xff0c;可以多多提出批评建议&#x1f604; 计算机的诞生很…

16JS07——数组

目标&#xff1a; 1、数组的概念 2、创建数组 3、获取数组中的元素 4、遍历数组 5、数组中新增元素 6、数组案例 一、数组的概念 数组是指一组数据的集合&#xff0c;其中的每个数据被称作元素&#xff0c;在数组中可以存放任意类型的元素。数组是一种将一组数据存储在单个变…

Flink从入门到精通之-12Flink CEP

Flink从入门到精通之-12Flink CEP 在 Flink 的学习过程中&#xff0c;从基本原理和核心层 DataStream API 到底层的处理函数、再到应用层的 Table API 和 SQL&#xff0c;我们已经掌握了 Flink 编程的各种手段&#xff0c;可以应对实际应用开发的各种需求了。 在大数据分析领域…

lecory 波形二进制文件头(.trc)定义

1.文件头&#xff0c;从0字节开始 byte[] lecroy_trc_header new byte[]{0x23,0x39,0x30,0x30,0x32,0x30,0x30,0x30,0x31,0x34,0x34,0x57,0x41,0x56,0x45,0x44,0x45,0x53,0x43,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4C,0x45,0x43,0x52,0x4F,0x59,0x5F,0x32,0x5F,0x33,0x…

【爬虫第四章】 爬虫工具介绍

预计更新一、 爬虫技术概述 1.1 什么是爬虫技术 1.2 爬虫技术的应用领域 1.3 爬虫技术的工作原理 二、 网络协议和HTTP协议 2.1 网络协议概述 2.2 HTTP协议介绍 2.3 HTTP请求和响应 三、 Python基础 3.1 Python语言概述 3.2 Python的基本数据类型 3.3 Python的流程控制语句 3…

Hack The Box - Crocodile关卡

TASK 1 任务 1 What Nmap scanning switch employs the use of default scripts during a scan? 哪个 Nmap 扫描开关在扫描期间使用默认脚本&#xff1f; -sCTASK 2 任务 2 What service version is found to be running on port 21? 发现端口 21 上运行的服务版本是什么&…

人员定位系统的功能及在不同领域的应用

人员定位系统是实时定位系统&#xff08;RTLS&#xff09;的一种&#xff0c;是用于跟踪人员位置的软硬件一体化系统。它使用无线通信技术和传感器来获取位置数据&#xff0c;并将其发送到监控中心或移动设备。它在多个领域使用&#xff0c;包括工业、医疗保健、军事、物流等。…

【网络】· 路由器中配置单臂路由和DHCP,VTP原理

目录 &#x1f349;单臂路由的工作原理 &#x1f95d;交换机配置 &#x1f95d;路由器配置 &#x1f349;路由器配置DHCP &#x1f95d;配置实例 &#x1f95d;路由器配置 &#x1f95d;验证 &#x1f349;VTP工作原理 &#x1f95d;VTP模式 &#x1f95d;VTP通告 &#x1f95d…

基于多动作深度强化学习的柔性车间调度研究(Python代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Hive部署远程模式

远程模式 简介 将hive中的相关进程比如hiveserver2或者metastore这样的进程单独开启&#xff0c;使用客户端工具或者命令行进行远程连接这样的服务&#xff0c;即远程模式。客户端可以在任何机器上&#xff0c;只要连接到这个server&#xff0c;就可以进行操作。客户端可以不…

【1130. 叶值的最小代价生成树】

来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 给你一个正整数数组 arr&#xff0c;考虑所有满足以下条件的二叉树&#xff1a; 每个节点都有 0 个或是 2 个子节点。数组 arr 中的值与树的中序遍历中每个叶节点的值一一对应。每个非叶节点的值等于…

用arcgis for javascript 开发一个简单的二维地图(入门案例)

效果如图&#xff1a; 一、引入arcgis <link rel"stylesheet" href"https://js.arcgis.com/4.26/esri/themes/light/main.css" /> <script src"https://js.arcgis.com/4.26/"></script>2.加载模块 使用第二个标记从 API 加…

第四期:栈与队列的交换游戏

目录 1. 用队列实现栈2. 用栈实现队列3. 答案3.1 用队列实现栈3.2 用栈实现队列 PS&#xff1a;每道题解题方法不唯一&#xff0c;欢迎讨论&#xff01;每道题后都有解析帮助你分析做题&#xff0c;答案在最下面&#xff0c;关注博主每天持续更新。 1. 用队列实现栈 题目描述 …

RISC-V IDE MRS使用笔记(八):实现局域网下的远程调试功能

RISC-V IDE MRS使用笔记(八)&#xff1a;实现局域网下的远程调试功能 1.原理介绍 MRS调试时上位机与硬件的通信基于gdb客户端与服务端的连接。调试时&#xff0c;首先启动openocd以挂载gdbserver的服务到指定端口上。通信建立后&#xff0c;监听到界面操作后以gdb指令的形式发…

Mapbox字体切片工具fontnik部署与使用

我们在使用Mapbox的时候,不同的图层可以配置不同的字体。Mapbox主要通过分片加载SDF格式字体的方式,将比较大的字体文件传输到前端渲染使用。fontnik可以将字体文件也制作成pbf切片文件,在访问的时候,图中大括号的位置,style中的glyphs,需要根据实际字体和切片索引进行替…