APP下载

基于矩阵分解的多视图双聚类算法

2021-09-23徐煜

现代计算机 2021年23期
关键词:视图聚类矩阵

徐煜

(西南大学计算机与信息科学学院,重庆400715)

0 引言

随着技术发展,有效地处理多视图数据成为了双聚类算法的发展趋势。为有效融合多源数据信息,研究人员结合多视图学习以及双聚类算法提出了多视图双聚类算法[1](Multi-View Bi-Clustering)算法来对多视图、多源数据进行双聚类分析。多视图双聚类算法可以利用多视图数据中隐含的共享性信息以及差异性信息指导聚类过程,进而获得更高的精度。然而,目前的多视图双聚类算法研究中,研究者使用的算法都是以单一视图的双聚类为基础,寻找不同视图间的共享特征来链接多个视图从而拓展为多视图双聚类算法,如Sun等人[1-4]算法以及Farhan等人[5]算法。Sun等人[1-2]提出了一种基于稀疏奇异值分解(SSVD)的多视图双聚类算法,该算法以单视图的稀疏奇异值为基础,引入二值向量链接两个视图将算法从单视图算法拓展为双视图双聚类算法,最终给出了适用于更多视图情况下的目标方程,从而提出了多视图稀疏奇异值分解双聚类算法。但是Sun等人[1-2]算法没有考虑视图之间信息含量差异的问题,没有合理利用多视图数据中的互补性以及一致性信息,并且该方法无法保证收敛[4]。为此他们进一步提出了一种基于稀疏低秩矩阵分解的多视图双聚类算法[3],该算法以单视图的稀疏秩一矩阵分解算法为基础,改用对角矩阵链接多个视图获取双聚簇。但是该方法需要预先定义双聚类簇的大小,即簇中行的数量[4],在面对未知簇类的数据集时,该方法不适用。Sun等人[4]进一步地以单个视图的稀疏秩一矩阵分解为基础,以二值向量链接多个视图优化双聚类簇。该方法有了收敛的保证,并且首次给出了双视图数据集的不同方案,给出了不同的模式,但是该方法运行时间过长,在面对复杂的数据集时需要耗费数天时间。并且该方法依旧没有合理利用多视图数据中的互补性以及一致性信息,无法有效地提高聚类精度。

为解决上述问题,本文提出了一种不同于上述算法的多视图双聚类算法(Multi-view Subspace Bi-Clustering,MSBC)。MSBC首先设计了基于稀疏矩阵分解、多视图学习以及三因子矩阵分解的多视图双聚类的统一目标方程,同时引入流形正则项以差异性地整合多个视图指导高质量互补子空间的学习。在大型生物数据集上获取了比现有相关聚类算法更准确聚类簇,证明了算法的有效性。

1 多视图双聚类算法

1.1 多视图双聚类算法

现有的多视图双聚类算法[1-5]算法普遍面向传统基因表达分析任务,其算法框架以单视图矩阵分解为基础,以公共向量或者公共矩阵来链接多个视图从而形成多视图双聚类算法。而在面对更为复杂、噪音更大、数据更稀疏、数据量更大的多视图数据时,其算法运行时间过长,甚至没有结果,聚类精度降低。

为了解决上述问题,本文引入非负稀疏矩阵分解来获取一个更为稠密的子空间以降低聚类难度,提高聚类精度,NMF(Nonnegative Matrix Factorization)的非负约束有助于获得基于数据本身的表示,并提高了子空间学习的可解释性,具体方式如下:

其中{Xm}∈Rn×dm为多视图数据中第m个视图的矩阵数据,X∈Rn×d,Hm∈Rn×d为所求的更稠密的子空间表示,Hm在所有的视图间链接视图之间的共享性信息,以期学习这些视图数据间的共享信息。n表示行的数量,d表示列的数量,||·||为Frobenius范数,Hm≥0为非负约束。上式中子空间Hm整合了视图内以及视图之间的差异性信息,从而在使得子空间数据变得稠密的同时捕获多视图数据中的跨视图关系。可以提高聚类精度。

视图数据之间差异性信息以及一致性信息的有效利用决定了多视图聚类的质量,为了更好地抽取多视图数据中的共性和互补性,本文在具有一致性的子空间W上设计流形正则项[7]约束,获取增强的多视图数据的共享和互补信息,具体方式如下:

其中λz为平衡参数,为第m个视图中行i与行j之间的相似度,本文采用皮尔森相关系数计算,表示如下:上式中对角矩阵,可以引导子空间保持每个视图数据的局部流形结构(通过Dm刻画),从而整合利用这些视图数据之间的互补差异性。

相比于其他双聚类技术如奇异值分解算法以及秩一矩阵分解算法,基于三因子矩阵分解(Semi-Non⁃negative Matrix Tri-Factorization,SNMTF)的双聚类算法不仅具有较低的复杂度和良好的可解释性,还具有良好的稳定性,而且聚类过程中不需要更多的先验知识和参数设置。因此本文在前面获取的子空间Hm上设计基于半非负三因子矩阵分解双聚类目标方程如下:

其中S为系数矩阵,其作用是使得行簇和列簇的数目不同,并可使矩阵分解引起的平方误差最小化。R为行聚类的指示矩阵,C为列聚类的指示矩阵,并且R与C为二值矩阵,矩阵R与C中的值为1时表示特征i与样本j分别属于相应的行、列聚类,值为0时则表示表示特征i与样本j不属于相应的行、列聚类,根据矩阵R与C中的值即可判定聚类结果。上述目标方程将多个视图的共享与互补子空间的学习与子空间上的双聚类统一同一个目标方程中,从而提高了子空间学习和子空间上双聚类之间的耦合性,有利于获得高质量的双聚类簇。

1.2 优化求解

由于统一的目标方程中R与C元素取值在0~1之间,直接优化该目标方程是非常困难的。为此,本文将矩阵R与C的取值范围松弛到非负值,再优化Xm、W、Hm、R、S、Cm。为实现上述多变量优化,本文引入交替方向乘子法(Alternating Direction Method of Multipliers),其主要思想为交替固定上述6个变量中的5个并求解另一个变量,通过多步迭代交替优化计算这些变量的优化解。主要流程如下:

输入:多视图矩阵{Xm}∈Rn×dm、子空间列维度、行簇以及列簇个数、参数λz

输出:指示矩阵R、样本簇指示矩阵C

1.L←基于多视图矩阵Xm计算拉普拉斯矩阵

2.Xm、W、Hm、R、S、Cm←Init(Xm、W、Hm、R、S、Cm)//初始化Xm、W、Hm、R、S、Cm

3.WHILE(not convergence)

4.S←update(S)//更新S

5.R←update(R)//更新R

6.Cm←update(Cm)//更新Cm

7.Xm←update(Xm)//更新Xm

8.W←update(W)//用公式(15)更新W

9.Hm←update(Hm)//用公式(19)更新Hm

10.END WHILE

2 实验分析

为了证明本文提出的MVBC算法的优越性,本实验采用已知细胞类型的癌症基因单细胞表达数据集进行试验,即结直肠癌(CRC)数据集。结直肠癌CRC数据集来源于GSE81861[8],来自11位CRC患者的1591个单细胞测序数据,包括969肿瘤部位细胞以及622癌旁细胞,经过严格过滤后余下375个癌症细胞以及215个正常组织细胞,以CRC数据集中癌症细胞以及癌旁细胞分别对应两个视图组成数据集CRC,CRC包含有7种细胞类型。实验前对多视图scRNA-seq数据集进行了过滤,过滤了表达过低的基因,数据及构成如表1所示。

表1 细胞类型已知的多视图单细胞表达数据集

本文采用聚类中常用的度量指标Accuracy、Fscore、Precision、Recall进行评价。本实验中采用的对比算法有MVSVD[1-2]、MVSCC[3]以及CSBC[4],且对CS⁃BC的模式均进行了实验,其中CSBC-e为“equal”模式,CSBC-w为“weighted”模式,实验结果如表2所示。

从表2中可以看出MVBC方法在4个指标都领先于现有方法,可以证明本文提出MVBC方法的优越性。表2中每一算法的每一个指标均有两行,这是由于采用的CRC数据集是多视图数据集,拥有两个视图,每个视图包含的列不一样,因此算法在每个视图上都会产生一个结果,从而得到了两个结果。第一行为视图1的结果,第二行为视图2的结果,视图2的结果普遍高于视图1,这是因为视图2拥有375个样本,而试图1仅有215个样本,视图2的维度更大,聚类难度更高,因此每个算法在视图2上的结果都会低于视图1。而CSBC提供的两种模式中,w模式比e模式效果更差,说明预设的w模式不符合数据分布,e模式更贴近数据的分布。而本文所提出的MVBC算法在没有提供预设模式的情况下,利用多视图数据中的一致性信息以及差异性信息,在Accura⁃cy、F-score、Precision、Recall这4个结果上都优于现有算法,说明了本文提出的MVBC算法的优越性。

表2 对比算法在多视图数据集上的实验结果

图1 λz取值与F-score的关系

在本节中,本文还设置了实验对参数λz进行了分析,从图1为数据集CRC1中λz与F-score(取两视图F-score平均值)的关系的折线图,从图1中可以得出当λz为0.01时MVBC算法性能最佳。

3 结语

本文提出了有别于现有多视图双聚类框架的多视图子空间双聚类算法,并给出了相应的优化方法。首先本文通过空间学习从多视图的表达数据中提取具有一致性的公共子空间以及具有差异性的子空间,差异性整合这些视图结合,利用流行正则项进行约束,再在特征子空间上进行三因子矩阵分解得到双聚类。在大型多视图的数据集上的实验结果表明,本文提出的多视图双聚类算法在检测多视图数据中的聚类簇有着优良的效果。因此,本文的方法是可行且高效的

猜你喜欢

视图聚类矩阵
一种傅里叶域海量数据高速谱聚类方法
一种改进K-means聚类的近邻传播最大最小距离算法
AR-Grams:一种应用于网络舆情热点发现的文本聚类方法
多项式理论在矩阵求逆中的应用
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
《投影与视图》单元测试题
Django 框架中通用类视图的用法
基于Spark平台的K-means聚类算法改进及并行化实现
矩阵