Contrastive Clustering

文章介绍

出处: AAAI-2021

摘要:本文提出了一种称为对比聚类(CC)的单阶段在线聚类方法,该方法采用实例级和聚类级的对比学习。具体来说,对于给定的数据集,正实例对和负实例对是通过数据扩充构建然后投影到特征空间中。其中,实例级和聚类级对比学习分别在空间中进行,通过最大化正对的相似性,最小化负对的相似性进行对比聚类。得出的结论为,特征矩阵的行可以被视为实例的软标签,相应地,列可以被视为聚类表示。通过同时优化实例和聚类级对比损失,该模型以端到端的方式联合学习表示和聚类分配。

问题背景

  • 大部分聚类算法在复杂数据集上的表现都很差
  • 大部分深度聚类方法无法满足在线聚类需求

拟解决问题

  • 现有的大部分深度聚类算法需要迭代进行表示学习和聚类这两个过程,利用聚类结构来优化表示,再对更优的表示进行聚类,迭代聚类的过程中容易出现误差累计(联合优化)
  • 聚类过程通常采用k-means等需要全局相似性的算法,使得需要数据全部准备好后才能进行聚类工作,故面临不能处理在线数据的局限性

联合优化的应用

  • A Deep Neural Network for Unsupervised Anomaly Detection and Diagnosis in Multivariate Time Series Data(AAAI-2019) MESCRED 时间序列异常检测,对异常检测、异常原因识别、异常严重程度进行联合处理
  • Learning Representations for Incomplete Time Series Clustering (AAAI-2021)CRLI 不完整时间序列聚类,将不完整时间序列补全和表示学习进行联合优化
  • Contrastive Clustering 本文做到了将表示学习和聚类进行联合优化

主要贡献

  • 基于“标签即表示”的思想,即特征矩阵的行和列本质上分别对应于实例和集群表示,将聚类任务统一到表示学习框架下,对每个样本学习其聚类软标签作为特征表示
  • 该方法不仅在实例层面上进行对比学习,而且在聚类层面上进行对比学习,这种双重对比学习框架可以产生聚类偏好表征
  • 该模型采用单阶段、端到端的工作方式,只需批量优化,因此可以应用于大规模数据集,并且该方法可以在不访问整个数据集的情况下及时预测每个新数据点的聚类分配,适合在线场景

相关工作

对比学习

请添加图片描述

对比思想: 同时从积极的信息(学习)和消极的信息(区分)中获取知识

过程: 尽可能拉近正样本与正样本之间的距离,同时尽可能的与负样本进行区分

距离度量: 欧几里得距离,余弦相似度,马氏距离

目标: 给定锚点,通过空间变换,使得锚点与正样本间距离尽可能小,与负样本距离尽可能大

深度聚类

神经网络结构: 多层全连接网络、卷积神经网络、深度信念网络、自编码器、生成对抗网络

损失定义: 目前深度聚类模型的损失函数普遍采用聚类损失(聚类方法评价指标)与网络辅助损失组合的方式

网络辅助损失: 由于聚类问题没有监督信息作为指导,单独使用聚类损失作为目标函数很容易导致模型退化. 网络辅助损失则可以理解为模型的正则项,虽然优化该损失函数不能直接获得聚类结果,但是通过对模型参数进行相应的约束,可以帮助模型稳定地训练,提升特征学习的有效性,避免出现退化解。一类是由于网络模型的结构特点自带的损失项,另一类则是基于对网络模型的约束期望而设计

实例级和聚类级的含义

请添加图片描述

构造输入样本和聚类标签的特征矩阵,矩阵的每一行代表样本属于每个类的概率,每一列代表每个样本属于当前类的概率。即行表示当前样本的标签,列表示分布在数据集上的聚类表示。因此,可以同时在矩阵的行空间和列空间中进行实例级和聚类级的对比学习

提出的方法

模型结构

请添加图片描述

模型分为三个模块样本对构建模块(PCB)、实例级对比模块(ICH)、聚类级对比模块(CCH)

PCB模块

使用数据扩充方式构建数据对,给定一个数据实例 x i x_i xi和两种数据增强方式 T a , T b T_a,T_b Ta,Tb,得到两个相关样本(正样本) x i a , x i b x_i^a,x_i^b xia,xib,使用了五种类型的数据增强方法,包括调整作物、色抖动、灰度、水平翻转和高斯模糊,以一定的概率独立地应用每个增强量。利用一个共享的深度神经网络 f ( ⋅ ) f(\cdot) f(),通过 h i a = f ( x i a ) h^a_i=f(x^a_i) hia=f(xia) h i b = f ( x i b ) h^b_i=f(x^b_i) hib=f(xib)从增强的样本中提取特征。本文中采用ResNet34进行数据特征提取。

ICH模块

给定一个大小为 N N N的batch,每个样本 x i x_i xi通过两种数据扩充方式得到 2 N 2N 2N个样本对 x 1 a , x 2 a , x N a , … , x 1 b , x 2 b , x N b x_1^a,x_2^a,x_N^a,\dots,x_1^b,x_2^b,x_N^b x1a,x2a,xNa,,x1b,x2b,xNb,其中的正样本选择为 x i a , x i b x_i^a,x_i^b xia,xib,其余样本为负样本,这样每个输入样本有一个正样本对,和 2 N − 2 2N-2 2N2个负样本。为了减轻对比损失引起的信息损失,不直接对特征矩阵进行对比学习。堆叠了一个两层非线性MLP g I ( ⋅ ) g_I(\cdot) gI(),通过 z i a = g I ( h i a ) z_i^a=g_I(h^a_i) zia=gI(hia)将特征矩阵映射到一个子空间。样本对的相似性是用余弦距离来衡量的,即:

请添加图片描述

为了优化成对相似性,在不丧失一般性的情况下,给定样本 x i a x^a_i xia的损失形式为:

请添加图片描述

其中, τ I \tau _I τI为实例级对比中超参数(control the softness),由于我们希望识别数据集上的所有正对,因此在每个增强样本上计算实例级的对比损失,即:

请添加图片描述

CCH模块

按照“标签为表示”的思想,当将数据样本投影到一个维数等于簇数的空间时,其特征的第i个元素可以解释为其属于第i个簇的概率,特征向量相应地表示其软标签。

类簇级的对比抽取批量数据的表示矩阵,表示矩阵的行编码为one-hot形式,列为每个样本属于这一类的概率。与实例级对比类似,非线性MLP g C ( ⋅ ) g_C(\cdot) gC(),通过 z i a = g C ( h i a ) z_i^a=g_C(h^a_i) zia=gC(hia)将特征矩阵映射到一个子空间,其中 y i a y_i^a yia为$ x_ia$的软标签,数据$xa_i 通 过 数 据 增 强 转 换 为 通过数据增强转换为 x_ia,x_ib , 这 样 就 可 以 得 到 一 个 正 例 的 软 标 签 组 ,这样就可以得到一个正例的软标签组 y_ia,y_ib$,和 2 N − 2 2N-2 2N2个负例的软标签组。使用余弦距离来衡量聚类对之间的相似性,即:

请添加图片描述

采用以下损失函数来区分集群 y ^ i a \hat y_i^a y^ia与除 y ^ i b \hat y_i^b y^ib之外的所有其他集群,即:

请添加图片描述

其中, τ C \tau _C τC为实例级对比中超参数(control the softness),通过遍历所有的簇,最终计算出簇级的对比损失:

请添加图片描述

其中 H ( Y ) H(Y) H(Y)为分配概率的熵,有助于避免大多数实例被分配给同一个类簇。

算法流程

请添加图片描述

损失构建

ICH和CCH的优化是一个单阶段和端到端的过程。同时优化两个头,整体目标函数由实例级和簇级对比损失组成,即:

请添加图片描述

实践中,发现简单地添加两个损失已经很有效,并不需要取设置两个损失的权重。

实验

数据集介绍

请添加图片描述

实验结果

请添加图片描述

评价指标:标准互信息(NMI),对比聚类精确度(ACC),调整兰德指数(ARI)

类簇演化过程

请添加图片描述

数据增强的消融实验

请添加图片描述

两种对比方式的消融实验

请添加图片描述

不同数据增强方式的消融实验

请添加图片描述

参考:

  1. 对比聚类简介

  2. 从对比学习(Contrastive Learning)到对比聚类(Contrastive Clustering)

  3. 深度聚类算法浅谈

  4. 对比学习(Contrastive Learning)综述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐