高维数据世界|基于高维稀疏矩阵的潜在变量模型研究
文 | 索信达 Josie He
我们是索信达集团旗下的金融人工智能实验室团队,微信公众号(datamargin)将不定期推送原创 AI 科学文章。我们的作品都是由实战经验丰富的 AI 科学技术人员或资深顾问精心准备,志在分享结合实际业务的理论应用和心得体会。
引言
高维数据集常见于银行业,如何挖掘其中更多的信息是数据分析师最关注的问题。传统的无监督模型比如 Kmeans 聚类,在低维数据中表现得很好,却无法在高维数据中大施拳脚。本文将介绍学术界最新提出的稀疏潜在变量模型来解决特征变量的聚类问题,涉及模型介绍,算法,数学证明。同时在实证分析中与 Kmeans 聚类对比,体现该潜在变量模型的优势。
一、数据背景 & 解决问题
从金融领域的逐笔交易数据到生物基因序列,喷涌而出的互联网时代提供了海量的高维数据。各大银行的数据信息库在每天更新,数据量级也在不断提升。数据分析行业面临着巨大的挑战。
经典的统计方法对维度爆炸的数据并不适用。高维数据中包含着冗余信息,这对于机器学习模型的训练并没有帮助。因此我们需要去除多余的信息。高维数据也会变得相应稀疏起来。
对于稀疏的高维数据集,选择合适的特征变量是特征工程中重要的一环。在一般的数据预处理中,首先会看数据集的皮尔森相关矩阵,如果存在多重共线性,则会去除一些变量。之后使用各种各样的变量选择方法,比如随机森林,逻辑回归。通过设定合适的评判指标来挑选出前 20 或者 50 个变量。可惜在稀疏的高维数据中,降维是首先要解决的问题。如果我们可以对众多的特征变量进行聚类,充分挖掘数据里的信息,将会大大减少后面模型的训练时间。
以银行业的数据为例,每个客户对应着众多的特征变量,比如年龄,账户余额,购买的基金数目。如果我们想解决特征变量的聚类问题,传统的无监督模型计算量巨大且耗时。如果加入一个新的潜变量来构建稀疏潜在变量模型,将会得到更合适的高维数据聚类结果,从而构建更合适的特征工程。该方法非常适用于银行的数据集。
二、稀疏潜在变量模型
稀疏潜在变量模型是康奈尔大学的 Yang Ning 教授提出来用来解决高维数据聚类的方法。该模型的精髓在于将原来的 p 个特征变量中聚成 K 个变量。具体思想是通过找(1)纯变量指数集 I (2)矩阵 A 中的纯变量子矩阵来寻找 K 类。
2.1 模型介绍
通常而言,有 p 个特征变量的数据集 W,其数据结构以如下方式展现。以 1000 个样本,100 个特征向量为例。
比如观察到 n 个独立同分布的样本:
那么用公式表达稀疏潜在变量模型(Sparse Latent Factor Model):
X=AZ+E
对模型中涉及的标记的描述:X 是 p 维的数据变量。A 是一个 p*K 行稀疏的矩阵,其中的每行元素的绝对值相加不大于 1。Z 是 K 维的潜在变量,E 是 p 维噪音变量,Z 与 E 独立。p 是给定数据中的维数,也就是特征变量的个数,是已知的。K 是未知的聚类数,需要提前设定。
首先我们来看如何定义第 j 个特征变量属于哪一类的问题。值得一提的是,矩阵 A 在这起了重要的作用。如果矩阵 A 中第 j 行,第 k 列的元素不为 0,则称第 j 个特征变量属于第 k 类。从两种极端的情况来详细解释一下。在 j 固定时,一种情况是,第 j 行所有的 k 列都不为 0,此时第 j 个特征变量属于 K 个类。类与类之间会存在重叠,即共享同一个元素。第二种情况是,对于所有的 k, 第 j 行所有的 k 列都取 0,此时第 j 个特征变量不属于任何一个类。大多数情况下,第 j 个变量可能属于两个或两个以上的类,产生重叠的聚类。
所以说,矩阵 A 的存在决定了这个模型聚类的质量。如果矩阵 A 存在且唯一,K 个聚类会很好得到。本文的稀疏潜变量模型是通过数据集 X 的协方差矩阵找到纯变量指数集 I,再得到非纯变量指数集 J,从而估计出矩阵 A。最后由矩阵 A 中的元素来决定 K 个聚类。
那么大家又会问,什么是纯变量呢?这里要敲黑板。首先来定义第 k 类,Gk={j 属于{1,2..p}, j 满足:在 A 中的第 j 行第 k 列元素不为 0}。一个纯变量 Xj 只匹配一个潜在因素 Zk。在建立重叠群时纯变量是非常重要的。因为群 Gk 是由 Zk 决定的,但 Zk 观测不到。所以纯变量 Xj 是对 Zk 的近似观察。可观察到的 Xj 充当了函数 Zk 的作用, 它固定了 Gk。
2.2 模型的可识别性
接下来将会从学术的角度来判断矩阵 A 的存在合理性,有兴趣的小伙伴可以详细研究一下。也可以直接跳过看下一节的纯变量定义。
矩阵 A 是整个模型的灵魂所在,如果可识别 A,那么整个模型也将唯一。对 A 的一些限制条件,主要是有两个部分:
(1) 在矩阵 A 的元素中,对每一列 a, 至少存在两行,使得对应的元素的绝对值为 1。举例子,在第一列中,第一行和第四行的两个元素的绝对值为 1。
(2) 对于模型中 Z 的协方差矩阵,有如下假设。
先定义 m(C)=min(min {Cjj-Ckk)-|Cjk|) (j 不等于 k),当 m(C)大于 0 时,可以推导出,对于所有的 j 不等于 k,有|Zj|不等于|Zk|。
满足了上述两个条件后, 矩阵 A 就可以用来构建模型。但是我们还得解决一些问题。在给定 p 维数据集的协方差矩阵的情况下:
(1) 怎么区分纯变量指数集 I 和非纯变量指数集 J?
(2) 怎么发现纯变量指数集 I 的分割?不同的分割就对应着不同的类。
(3) 怎么决定矩阵 A 中对应的子矩阵。
2.3 纯变量和非纯变量
纯变量指数集和非纯变量指数集是互斥的,因此只要找到纯变量指数集就可以解决问题。
介绍了那么多枯燥的定义后,我们用一个例子来看看模型到底是怎么找到纯变量指数集 I 的。已知 X 的协方差矩阵。
详细的计算步骤如下:
当矩阵 A 被估计完成之后,我们可以从 A 中直接得到分割。
I 分为 I1 和 I2,I1={1,2,3}, I2={4,5} 。这意味着原来的 7 个特征变量被分为 2 类。前三个特征变量归为一类,第四第五的特征变量归为第二类。剩下的两个是非纯变量,属于任意一类。
三、算法介绍
基于潜在模型的重叠聚类算法(Latent model-based overlapping clustering algorithm)简称 LOVE 算法。
简单的步骤如下:
(1) 通过数据集 X 的协方差来估计纯变量集 I。
(2) 估计矩阵 A 中对应 I 的子矩阵 AI。
(3) 估计矩阵 A 中对应非纯变量集 J 的子矩阵 AJ。
(4) 得到矩阵 A 的元素后,通过聚类 Gk 的原始定义来给特征向量聚类。
四、场景分析
1. RNA 数据集
以生物基因 RNA 数据为样本,共有 285 个不同癌症的患者,总共聚为 12 类。可发现编号 906 和 328 的共享同一个 RNA 基因。
类似地,如果应用到含有 285 个特征变量的金融数据中,可以聚为 12 类,充分利用了原始高维数据中的信息。
2. 模拟数据
得到估计的矩阵 A,并且定义 A 的平均估计误差用 L1 范式或者 L2 范式,结果如下:
3. 方法对比
在群没有重叠的情况下,用模拟数据来对比 LOVE 算法和 Kmeans 算法,评判指标为 sensitivity(SN)和 specificity(SP),如下:
可以看到相对于 Kmeans 算法,LOVE 算法的各项指标效果都较好。由此可以发现,稀疏潜在变量模型的聚类效果比一般的聚类方法好。
参考资料:
1. Sparse Latent Factor Models with Pure Variables for Overlapping Clustering, Xin Bing, Florentina Bunea, Yang Ning, Marten Wegkamp, The Annals of Statistics, 2019.
2. High-Dimensional Inference for Cluster-Based Graphical Models, Carson Eisenach, Florentina Bunea, Yang Ning, Claudiu Dinicu, 2018
3. A General Theory of Hypothesis Tests and Confidence Regions for Sparse High Dimensional Models, Yang Ning, Han Liu, The Annals of Statistics, 2017
理论支持:
1. 准纯变量
2. 关于 I 的估计的理论支持
3.关于 A 的估计的理论支持
版权声明: 本文为 InfoQ 作者【索信达控股】的原创文章。
原文链接:【http://xie.infoq.cn/article/2384cc04178c1726dfb7f8a63】。文章转载请联系作者。
评论