一种基于邻域关系的高维数据快速降维方法以及系统

文档序号:30331243发布日期:2022-06-08 05:43阅读:133来源:国知局
一种基于邻域关系的高维数据快速降维方法以及系统

1.本发明涉及数据处理技术领域,特别涉及一种基于邻域关系的高维数据快速降维方法以及系统。


背景技术:

2.在科学任务中通常要面对大量的高维数据,如全球气候模式识别及海洋涡旋检测过程中,均面对大量的高维气象海洋观测数据。数据的高维度一方面丰富了数据特征,但另一方面,在众多维度中,部分维度包含冗余信息,甚至干扰信息,给数据挖掘、分析、存储及访问带来了严峻挑战。
3.降维技术的主要目标是找到一个保留原数据集中绝大部分有意义信息的嵌入,以揭示数据的内在结构,即提取数据的主要特征,其中基于嵌入表示的非线性降维方法通过非线性映射将高维空间数据的潜在结构映射至低维空间表示,并保持原数据集的结构特征。经典的词向量嵌入表示方法word2vec不仅保持了原文本的句法特征,而且保持了语义特征,其skip-gram模型是一个计算高效的两层神经网络模型,不仅可以学习大量单词的高质量分布式表示,而且为众多其他新对象的嵌入表示提供了解决方案,例如文本、图像、生物信号、动态图、网络、知识图谱和矩阵等各类对象的低维表示。
4.以上基于skip-gram的数据降维方法仅针对数据点之间具有显式关系的原始数据集,数据点之间的邻居关系是显而易见的,如图网络中顶点的邻居点可通过与其相连的边来确定,数据点的邻域图构造方式简单。而对于数据点之间不存在显式关系的数据集时,例如高维的数值型矩阵,采用了计算数据点之间的成对相似度来构造邻域图,然后使用随机游走的方式生成上下文以保持输入数据的局部特性,对于大量真实世界的数据集而言,成对相似性和随机游走的计算开销仍然很大。
5.综上所述,相关方案一方面只针对特定格式的数据集,无法通用于不同类型的数据集而导致通用性较差;另一方面,其数据结构特征的计算复杂度高,导致数据处理效率较低。


技术实现要素:

6.本发明旨在至少解决现有技术中存在的技术问题。为此,本发明提出一种基于邻域关系的高维数据快速降维方法以及系统。不局限于原始数据类型,能提高计算效率的同时获得尽可能高的准确性。
7.本发明的第一方面,提供了一种基于邻域关系的高维数据快速降维方法,包括如下步骤:
8.计算原始矩阵中所述数据点与其邻居之间的相似度以及所述数据点与其邻居的邻居之间的相似度,根据所述数据点与其邻居之间的相似度以及所述数据点与其邻居的邻居之间的相似度,计算得到所述数据点的近似邻域图;
9.从所述数据点的近似邻域图中随机采样,将随机采样得到的多个采样点作为所述
数据点的上下文;
10.基于所述数据点的上下文,通过词向量skip-gram模型学习通用数值型矩阵的嵌入表示。
11.根据本发明的实施例,至少具备如下有益效果:
12.针对当前已有的高维数据降维处理技术大部分只面向特定的数据类型以及计算原始空间中数据局部结构效率不高的问题,本方法首先通过探索数据点与其邻居的邻居之间的相似性以构建高维空间中数据点的近似邻域结构,避免了成对数据点之间的相似度计算,在提高计算效率的同时获得尽可能高的准确性;然后对由邻居探索而获得的数据点的邻域进行随机采样,快速生成数据点的上下文序列,进一步加快计算效率;最后利用只含一层隐含层的词向量模型skip-gram的高效性,学习高维数值矩阵在低维空间的嵌入表示,从而实现降维处理。本方法可处理通用的数值型矩阵,不局限于原始数据类型,并且计算速度高于同类型的 vec2vec方法,计算准确率优于当前最先进的umap方法。
13.本发明的第二方面,提供了一种基于邻域关系的高维数据快速降维系统,包括:
14.邻域计算单元,用于计算原始矩阵中所述数据点与其邻居之间的相似度以及所述数据点与其邻居的邻居之间的相似度,根据所述数据点与其邻居之间的相似度以及所述数据点与其邻居的邻居之间的相似度,计算得到所述数据点的近似邻域图;
15.上下文生成单元,用于从所述数据点的近似邻域图中随机采样,将随机采样得到的多个采样点作为所述数据点的上下文;
16.低维嵌入表示单元,用于基于所述数据点的上下文,通过词向量skip-gram 模型学习通用数值型矩阵的嵌入表示。
17.本发明的第三方面,提供了一种电子设备,包括至少一个控制处理器和用于与所述至少一个控制处理器通信连接的存储器;所述存储器存储有可被所述至少一个控制处理器执行的指令,所述指令被所述至少一个控制处理器执行,以使所述至少一个控制处理器能够执行上述的基于邻域关系的高维数据快速降维方法。
18.本发明的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述的基于邻域关系的高维数据快速降维方法。
19.需要注意的是,本发明的第二方面至第四方面与现有技术之间的有益效果与上述的基于邻域关系的高维数据快速降维方法与现有技术之间的有益效果相同,此处不再细述。
20.本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
21.本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
22.图1为skip-gram模型的架构图;
23.图2为本发明一个实施例提供的用于执行一种基于邻域关系的高维数据快速降维方法的系统架构示意图;
24.图3为本发明一个实施例提供的一种基于邻域关系的高维数据快速降维方法的流程示意图;
25.图4为本发明一个实施例提供的一种基于邻域关系的高维数据快速降维方法的框图;
26.图5为本发明一个实施例提供的基于邻居探索的邻域计算过程框图;
27.图6为本发明一个实施例提供的在不同方法生成的嵌入空间上的分类准确率对比示意图;
28.图7为本发明一个实施例提供的对不同大小数据集进行降维时的耗时对比示意图;
29.图8为本发明一个实施例提供的上下文序列长度l对基于邻域关系的高维数据快速降维方法性能的影响示意图;
30.图9为本发明一个实施例提供的最近邻居个数k对基于邻域关系的高维数据快速降维方法性能的影响。
具体实施方式
31.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
32.需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
33.1、基本定义:
34.定义1(矩阵的数据点):给定一个高维空间的数值型矩阵m的数据点i是m中的一个行向量,记为vi,m中包含n个行向量,对于vi的维度等于矩阵m的维度,本技术实施例记为d。
35.定义2(数据点的上下文):矩阵m中数据点i的上下文是从其k近邻中通过随机采样而生成的数据点序列,本技术记为c(i)。
36.2、词向量模型:
37.词向量嵌入表示方法(word2vec)最初是为计算来自大量原始文本数据集的单词的低维分布式嵌入而提出的,其基本思想是基于“相似上下文中的单词往往具有相似的含义”这一共识。在word2vec方法中设计了两种模型,即cbow模型和skip-gram模型,图1所示的skip-gram模型根据目标词预测其上下文,且 skip-gram模型性能优于cbow模型。通常地,skip-gram模型可形式化地描述如下:给定长度为l的训练词w1,w2,
…wl
及窗口大小为c的上下文,其模型的目标是最大化平均预测概率:
[0038][0039]
其中,条件概率p(w
l+c
|w
l
)采用softmax函数计算:
[0040]
[0041]
其中,vw与v
′w分别表示单词w的输入向量和输出向量,v表示词个数。
[0042]
由于skip-gram模型仅通过一个只有一层隐藏层的简单神经网络进行训练,因此,可以高效地完成学习过程,训练完成后,所有的词均被映射至一个低维空间,即得到低维嵌入表示。
[0043]
3、相关方案存在的缺陷:
[0044]
在相关方案中,skip-gram模型不仅可高效地学习词向量的嵌入表示,而且已被成功应用于多个其他对象的嵌入表示,例如文本、图像、网络及知识图谱等。然而,一方面,目前大部分基于skip-gram模型的非线性降维方法仅针对特定的原始数据集,这类原始数据集中,数据点之间的相似性是显式的,如网络图的嵌入表示中各节点之间的相似性可通过是否有边及边的权重来计算,无法直接应用于不含显式相似性关系的高维数值型矩阵的降维中;另一方面,部分方法通过计算数据集中数据点的成对相似度来获得knn(k-nearestneighbor,邻域)图,无论是从时间开销还是空间开销的角度而言,精确的knn图的构建是处理大量高维数据的主要瓶颈,包括经典的线性降维算法主成分分析pca方法、多维缩放mds 方法及非线性降维算法等距特征映射isomap方法。此外,大部分方法通过在各数据点的knn上采用一定的随机游走策略来生成其上下文,对于大量真实的高维数据集,该过程的计算复杂度同样非常高,如针对网络结构图的node2vec方法及近期提出的vec2vec方法。
[0045]
高维数值型矩阵的非线性降维的目标是找到一个映射函数i,将高维矩阵m变换为低维矩阵m

∈rn×d,其中包含n个向量v
′i,i∈[1,n],d是向量v
′i的维度,且 d<<d,即:
[0046]mm
×d=f(mn×d)
ꢀꢀꢀꢀꢀꢀꢀ
(3)
[0047]
其中f应使得矩阵m的相似性结构在m

中得到保持,即使得高维空间中相似的数据点在低维空间中尽可能靠近,而不相似的数据点尽可能远离。换言之,若 sim(vi,vj)》sim(vi,vk),则sim(v
′i,v
′j)》sim(v
′i,v
′k)依然成立,表示在高维和低维空间中数据点j均比数据点k更靠近i,其中sim(oi,oj)表示对象oi与oj之间的相似度。
[0048]
实施例部分;
[0049]
参照图2,是本技术一个实施例提供的用于执行一种基于邻域关系的高维数据快速降维方法的系统架构示意图,在图2的示例中,该系统架构主要包括但不限于相互电连接的邻域计算单元100、上下文生成单元200和低维嵌入表示单元 300。其中:
[0050]
邻域计算单元100用于计算原始矩阵中数据点与其邻居之间的相似度以及数据点与其邻居的邻居之间的相似度,根据数据点与其邻居之间的相似度以及数据点与其邻居的邻居之间的相似度,计算得到数据点的近似邻域图。
[0051]
上下文生成单元200用于从数据点的近似邻域图中随机采样,将随机采样得到的多个采样点作为数据点的上下文。
[0052]
低维嵌入表示单元300用于基于数据点的上下文,通过词向量skip-gram模型学习通用数值型矩阵的嵌入表示。
[0053]
本技术实施例描述的系统架构以及应用场景是为了更加清楚的说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定,本领域技术人员可知,随着系统架构的演变和新应用场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
[0054]
本领域技术人员可以理解的是,图2中示出的系统架构并不构成对本技术实施例的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0055]
在图2所示的系统架构中,各个单元可以分别调用其储存的程序,以执行基于邻域关系的高维数据快速降维方法。
[0056]
基于上述系统架构,提出本技术实施例的基于邻域关系的高维数据快速降维方法的各个实施例。
[0057]
参照图3,本发明的一个实施例,提供了一种基于邻域关系的高维数据快速降维方法,包括如下步骤:
[0058]
步骤s101、计算原始矩阵中数据点与其邻居之间的相似度以及数据点与其邻居的邻居之间的相似度,根据数据点与其邻居之间的相似度以及数据点与其邻居的邻居之间的相似度,计算得到数据点的近似邻域图。
[0059]
步骤s102、从数据点的近似邻域图中随机采样,将随机采样得到的多个采样点作为数据点的上下文。
[0060]
步骤s103、基于数据点的上下文,通过词向量skip-gram模型学习通用数值型矩阵的嵌入表示。
[0061]
为了解决上述技术缺陷,本方法为保持原高维矩阵(对应于步骤s101所述的原始矩阵)中的相似性结构并利用skip-gram模型高效地获得其在低维空间的嵌入表示以实现数据降维,包括快速地计算矩阵中各数据点间的相似度,根据“一个数据点的邻居的邻居很可能是该数据点的邻居”这一思想,根据数据点与其邻居之间的相似度以及数据点与其邻居的邻居之间的相似度,以选取出各数据点的前k个近邻,得到各数据点的近似邻域图(由数据点的前k个近邻生成,数值k的取值将在后续实施例中进行说明),通过随机采样法利用各数据点的近似邻域图中的前k近邻高效地生成其上下文,并基于skip-gram模型学习数据集的结构特征,以使高维空间中原始数据集的结构特征在低维空间的嵌入表示中得到保持。
[0062]
本方法主要包括基于邻居探索的邻域计算过程(对应于上述的步骤s101)、基于随机采样的上下文生成过程(对应于上述的步骤s102)以及基于词向量 skip-gram模型的嵌入表示计算过程(对应于上述的步骤s103)。在基于邻居探索的邻域计算过程中,通过探索数据点与其邻居的邻居之间的相似性以构建高维空间中数据点的近似邻域结构,避免了成对数据点之间的相似度计算,在提高计算效率的同时获得尽可能高的准确性;基于随机采样的上下文生成过程中,对由邻居探索而获得的数据点的邻域进行随机采样,快速生成数据点的上下文序列,进一步加快计算效率;在基于词向量skip-gram模型的嵌入表示计算过程中,利用只含一层隐含层的词向量模型skip-gram的高效性,学习高维数值矩阵在低维空间的嵌入表示,从而实现降维处理。
[0063]
在基于邻居探索的邻域计算过程中,首先确定相似度的度量标准。大部分基于skip-gram的嵌入表示方法仅面向数据点之间存在显式相似关系的原始数据集,如单词之间的相似性可通过单词的句法或语义来计算,网络图中各节点之间的相似度可通过节点之间的连接来计算。对于数据点之间无显式相似性的数值型矩阵,其数据点也即向量之间的相似性度量,通常包括euclidean距离(欧式距离)、 minkowski距离(闵可夫斯基距离)、余弦相似度等,本实施例方法中采用余弦相似度来度量矩阵中两个数据点之间的相似性,其
基本计算公式为:
[0064][0065]
本方法旨在保留数据集的局部性,通过每个数据点的前k个最近邻来近似数据集的几何结构。然而,如公式(4)所示,直接计算精确knn(即邻域图)的时间复杂度是o(n2d),其中n是数据点的个数,d是维度数。对于大规模的高维真实数据集而言,该计算复杂度太高。因此本方法采取计算各数据点的近似knn的策略,以在降低计算复杂度的同时获得尽可能高的准确率。
[0066]
本方法基于“数据点的邻居的邻居也可能是该数据点的邻居”这一思想来计算数值矩阵中各数据点的近似knn。其中步骤s101包括步骤:
[0067]
步骤s1011、选取数据点相应的多个第一邻居以及数据点的每个第一邻居相应的多个第二邻居,其中,选取出的第一邻居的数量和选取出的第二邻居的数量相同。
[0068]
步骤s1012、计算数据点与其任意一个第一邻居之间的相似度以及数据点与其任意一个第一邻居的任意一个第二邻居之间的相似度;若数据点与其任意一个第一邻居之间的相似度小于数据点与其任意一个第一邻居的任意一个第二邻居之间的相似度,则将数据点的该第二邻居替换该数据点的该第一邻居。
[0069]
步骤s1013、重复上述替换过程,直至得到替换完成后的数据点的多个第一邻居,并基于替换完成后的数据点的多个第一邻居生成数据点的近似邻域图。
[0070]
需要注意的是,为了便于解释,使用到“第一”和“第二”来进行指代,此不能作为本发明保护范围的限定。在上述步骤s1011至s1013中,由于需要选出数据点的前k个最近邻,这里,使用第一邻居来表示数据点的近邻,同理,使用第二邻居表示数据点的近邻的近邻。
[0071]
在本实施例中,假设原始矩阵中数据点的数量为n,对于原始矩阵中的第i个数据点(为了便于说明,后文使用数据点i进行指代),首先随机选取k个数据点作为数据点i的最近邻nk(i),如图4所示(图4(a)为计算数据点i的knn示意图,图 4(b)为生成数据点i的上下文示意图,4(c)为嵌入低维空间示意图),图4(a)中虚线圆内的数据点为数据点i的最近邻nk(i);然后依次探索这k个邻居的k个邻居,例如,设数据点i的一个邻居为数据点j,设数据点i的一个邻居的邻居为数据点q,根据数据点i与数据点j之间的相似度以及数据点i与数据点q之间的相似度,更新i 的前k近邻,直到数据点i的这k个邻居不再更新。从而避免两两数据点之间成对相似度的计算,以减小邻域计算的复杂度,在提高计算速度的同时,获得尽可能高的准确度。
[0072]
在基于随机采样的上下文生成过程中,现有基于词向量模型的高维数据降维方案中,大多数方法在邻域计算阶段构造数据集的knn图之后,采用一定的随机游走策略从某数据点出发遍历knn图,所遍历的knn图顶点作为该数据点的上下文。而通过精确计算成对数据点之间的相似性以构造knn图的过程已成为现有方案的计算瓶颈所在,例如,t-sne方法对数据集的大小和维度非常敏感,难以有效应对大规模数据集。
[0073]
因此,本实施例方法将基于邻居探索的邻域计算过程与上下文序列生成过程相结合。基于上述步骤s101已经得到了各个数据点的近似邻域图的情况,在上下文生成过程中,只需对数据点i的前k个近邻居数据点随机采样,并将采样数据点作为该数据点的上下文,进行l次随机采样生成长度为l的上下文序列c(i)。以避免耗时的随机游走过程,进而加快
计算速度。
[0074]
在基于词向量skip-gram模型的嵌入表示计算过程中,在生成各数据点的上下文的基础上,基于skip-gram模型,以各数据点及其上下文序列作为模型的输入,通过模型训练来优化目标函数,进而学习输入中各数据点的低维嵌入表示。
[0075]
本实施例方法的目标是在保持原数据集局部结构特征的前提下,计算高维空间中各数据点在低维空间的嵌入表示。因此,在嵌入表示计算过程中,对于矩阵中的任一数据点i,在映射函数f(vi)下,最大化各数据点与其邻居点共现的概率。一方面,为加速计算,在计算过程中,假设观察i的各邻域数据点的概率是相互独立的;另一方面,由于数值矩阵中各数据点之间不存在显式相似关系,因此假设数据点与其上下文之间的影响是等价的。利用只含一层隐含层的词向量模型 skip-gram的高效性,学习高维数值矩阵在低维空间的嵌入表示,从而实现降维处理。
[0076]
参照图5至图9,为了便于本领域技术人员的理解,以下提供一组最佳实施例,提供一种基于邻域关系的高维数据快速降维方法,以及本方法的实验分析数据,本方法的具体流程如下所示:
[0077]
第一步、基于邻居探索的邻域计算过程:
[0078]
设包含n个数据点的高维矩阵m,对于高维矩阵m中的数据点i:
[0079]
1.首先,随机地初始化数据点i的knn集合随机地初始化数据点i的knn集合为数据点i的邻居点的邻居点集合,等待进一步探索;
[0080]
2.其次,对比i与其邻居点j的相似度和i与其邻居的邻居p的相似度,若前者小于后者,则更新i的邻居,即用n

(i)中的数据点p代替集合nk(i)中的数据点j;
[0081]
3.若数据点i的邻居集合nk(i)不再更新,则迭代终止。
[0082]
示例:以图5(图5(a)为高维空间中的数据点示意图,图5(b)为随机选择的数据点i和数据点j的knn示意图,图5(c)为一次迭代后数据点i的knn示意图,图5(d)为迭代完成后数据点i的knn示意图)中的数据点i和j为例,其knn分别被随机地初始为k个数据点。图5(b)中,数据点i和j的邻居通过虚线连接,且j是i的邻居之一。假设数据点p是i的第k个邻居,j的邻居q比p更接近i,则p被q替换,成为数据点i的knn之一,如图5(c)所示。当迭代不再更新任何现有的knn时,邻居探索将终止。最后得到i的近似knn,如图5(d)所示。
[0083]
为了度量矩阵中相互之间没有明确关系的数据点之间的相似性,本实施例方法中采用余弦相似度来度量矩阵中两个数据点之间的相似性。需要了解的是,本方法并未计算成对相似性,只计算数据点的k个邻居与其邻居的邻居之间的相似性,即对上述的公式(4)可限定如下:
[0084][0085]
这里对第一步的复杂度分析:对于包含n个数据点的高维矩阵m,每一次迭代过程的计算时间复杂度为o(nkkd)=o(nk2d),通常k<<n,因此o(nk2d)<< o(n2d),其中d是高维空间中矩阵m的维数。基于本步骤,迭代过程很可能在未探索完n

(i)中的所有数据点之前终止,即最近一次迭代中knn不再更新。这种场景下,实际复杂度将低于理论复杂度,根据实际测试经验而言,平均的时间复杂度为o(n
1.14
)。
[0086]
第二步、基于随机采样的上下文生成过程:
[0087]
基于上述第一步,根据数据点之间的相似性构建了数值矩阵中每个数据点的邻域。然而,各数据点与其邻居之间既没有网络结构中的直接连接,也没有句子中的序列关系,无法直接获得各数据点的上下文序列。传统的vec2vec方法首先通过计算成对相似度来构建数据点的knn图,然后在knn图上采用随机游走的策略来生成数据点的上下文,但成对相似度计算的时间和空间复杂度均为o(n2d)。尽管如此,随机游走被广泛应用于各类对象的表示学习,以计算局部结构信息,例如网络结构的嵌入表示学习。本实施例方法中各数据点的上下文生成算法采用随机采样策略。
[0088]
本方法在邻域的构建过程中,通过探索数据点i的邻居的邻居,如数据点j,并计算i与j之间的相似度以确定i的邻域,在邻域构建阶段已获取到原始数据集的局部结构信息。因此,在上下文生成阶段,只需对每个数据点的邻域进行采样,并将采样序列作为该数据点的上下文。
[0089]
根据上述原理部分对数据点上下文的定义,c(i)表示数据点i的上下文序列的集合,采样于数据点i的近似knn,长度为l的序列表示为且本方法中未对每个数据点上下文的长度设置严格要求,但在实验中设置了固定长度l,后续将分析数值l的取值。此外,本实施例方法中为每个数据点只生成一个序列,以减少上下文生成的时间复杂度,提高算法效率。
[0090]
对于数据点i:
[0091]
1.数据点i自身作为其上下文序列中的对象之一;
[0092]
2.归一化数据点i与其前k个邻居之间的相似度;
[0093]
3.在归一化值范围内选取随机值s,其中其中
[0094]
4.对于数据点i的邻居若其与i的相似度值满足则作为数据点i上下文序列中的一个数据点并附加在c(i)中;
[0095]
5.重复上述过程3至4直至数据点i的长度达到设定值l。
[0096]
为每个数据点生成长度为l的上下文序列,时间复杂度为o(lk),对于包含n个数据的大规模矩阵而言,总时间复杂度为o(nlk)。在本方法中,允许对任一数据点i的同一邻居进行多次采样,无论l《k或l≥k,即是允许的,这与随机游走策略不同。假设数据点i的上下文序列集合中已采样生成了m 个数据点,那么待采样的数据点个数为l-m,在允许多次采样同一邻居点的场景下,将无需在已采样m个对象与待采样的l-m个对象之间进行比较,对于矩阵中的每个数据点,时间复杂度将减少o(lm-m2)。对于包含n个数据点的大规模数据集,时间复杂度可缩减o(n(lm-m2))≈o(nl)。另外,由于每个数据点的采样之间没有数据依赖,可很容易地并行实现。
[0097]
第三步、基于词向量skip-gram模型的嵌入表示计算过程:
[0098]
基于高维空间中矩阵的邻域结构,对词向量表示模型skip-gram进行扩展,以将高维空间矩阵映射至低维空间,且尽可能地保持原有数据的内在结构。首先对矩阵的嵌入表示进行建模:
[0099]
根据上述原理部分的定义可知,矩阵的每个数据点i为一个行向量vi,其低维嵌入
表示v
′i由非线性函数f映射得到,即上述公式(3)。为了保持高维空间中数值矩阵的局部结构特性,对于矩阵中的任一数据点i,本方法目标是在映射函数f(vi) 下,最大化其邻域c(i)共现的对数概率,即:
[0100][0101]
给定任一数据点i的嵌入表示,假设观察其邻域数据点的概率是相互独立的,因此条件概率p(c(i)|f(vi))可通过公式(7)计算:
[0102]
p(c(i)|f(vi))=∏
j∈c(i)
p(j|f(vi))
ꢀꢀꢀꢀꢀ
(7)
[0103]
由于矩阵中的数据点之间没有强相关关系,因此一个数据点与其上下文之间的影响可以被认为是等价的,公式(7)中每个数据点对的条件概率p(j|f(vi))可建模为softmax函数:
[0104][0105]
其中,vj是输入空间中矩阵m的数据点j的向量表示,n是m中数据点的个数,且v
t
∈m。因此,公式(6)中的目标函数可转换为:
[0106][0107]
可见公式(8)是skip-gram的目标函数的扩展。然而,对于大规模数据集,用蛮力计算公式成本高且效率低下,特别是
[0108]
为加快计算速度,本实施例将采用负采样对其进行近似,并使用随机梯度上升方法优化目标函数,即使用随机梯度上升方法优化公式(9)。
[0109]
本方法在邻居探索时,可在理论迭代过程完成之前提前终止,其实际计算时间将小于理论时间,实际经验时间复杂度为o(n
1.14
);基于随机采样的上下文生成过程的时间复杂度为o(nlk),由于通常l<<n,k<<n且l与k均为小整数值,因此o(nlk)≈o(n);基于词向量模型的嵌入表示过程是skip-gram模型的扩展,该模型由一个只有一个隐含层的神经网络实现,并使用随机梯度上升算法进行训练,其时间复杂度为o(nd)。
[0110]
综上所述,本方法的时间复杂度为o(n
1.14
d+n+nd)≈o(n
1.14
d+nd),其中n、d与d分别是输入矩阵m中数据点的个数、维数和嵌入表示m

的维数。通常情况下,设置d《100,而以可视化为目的的嵌入表示计算中d=2或d=3。
[0111]
以下是对本方法的实际性能的测试与分析:
[0112]
采用python语言实现,所有实验软件环境为python3.8,硬件环境为一台 linux服务器,其内存为512gb,cpu核数64核,主频1.96ghz。当实验中使用多线程执行时,使用所有64个核执行程序。为了对方法进行比较分析,实验评估其在8个不同的真实数据集上的性能,并与当前4种最先进的算法进行了比较。实验从以下四个方面对本方法进行评估:
[0113]
1.时间性能测试:对比测试本方法在处理不同类型的数据集时生成嵌入表示的时间性能;2.准确性测试:通过多标签分类和可视化两个典型的任务来验证本方法计算所得的嵌入表示的准确性;3.可扩展性测试:通过测试本方法处理不同大小数据的运行时间,分析该算法的可扩展性;4.参数敏感性测试:对本方法中的主要参数进行敏感性实验,以验证算法的稳定性。
[0114]
实验通过8个真实数据集进行验证,包括4个图像数据集与4个文本数据集,其中对于图像数据集,实验中将每张图片作为一个数据点,文本数据集的维度在 104至106之间。数据集统计信息归纳为如表1所示,各数据集说明如下:
[0115]
(1)coil20:该数据集包含20类物品的灰度图像,像素为128
×
128;(2) cifar10:该数据集为彩色图像数据集,每个图像像素为32
×
32,包含3个通道; (3)mnist:该数据集为手写数字(即数字0-9)的灰度图像数据集,像素为8
×
28; (4)svhn:该数据集为rgb彩色图像数据集,像素为32
×
32,是来自google街景图像中的门牌号图像;(5)20newsgroups(20ng):该数据集被广泛用于文本挖掘,其中的文章被分为20个不同的新闻组,每个新闻组都对应于不同的主题,实验中将每个文档视为一个数据点;(6)20newsgroupsshort(20ng-s):该数据集通常用于评估短文本分类的性能,实验中将每篇文章的标题视为一个数据点;(7) moviereviews(movie):该电影评论数据集中,其中一半是正面评论,另一半是负面评论,每条评论视为一个数据点;(8)googlesnippets(snippets):该数据集是从google搜索中通过jwebpro检索到并在文献中发布,其中每个文档片段的平均长度约为18个字,实验中将每个片段视为一个数据点。
[0116][0117]
表1
[0118]
本方法是一种非线性降维方法,旨在保留原数据集的局部性,实验中将其与针对不同下游任务(例如可视化,聚类)的4种典型的现有非线性局部性保留算法进行比较,以验证本方法与任务无关。以下对4种基准算法进行说明:
[0119]
(1)umap:该方法是为高维数据的可视化而开发的最高效的降维算法,实验中采用其在github上的实现,用于性能比较;(2)lle:该方法是一种典型的嵌入学习方法,其将高维空间中的数据点视为其最近邻的线性组合;(3)le:一种基于图拉普拉斯算子的几何驱动流形学习和局部保持算法,它与聚类有着天然的联系;(4)vec2vec:一种基于随机游走的通用的高维矩阵降维方法,其性能在某些方面与umap相当。
[0120]
上述所有方法的通用参数均设置了默认值,即低维空间中的目标维度设置为 d=64,无特别说明时,例如用于参数敏感性评估,最近邻数设置为k=15。实验中lle和le方法使用其在工具包sklearn中的实现,并使用多线程运行;umap 中设置可视化最小距离min_dist=0.3,相似度度量metric=cosine;vec2vec的参数按照文献中的建议进行设置;在本方法中,随机采样的上下文长度设置为 l=15。
[0121]
1.时间性能测试:为评估本方法的性能,实验中比较了其与4种基准方法在处理不同数据集时的时间消耗。对于这5种方法,每个数据集的数据大小都设置为同等大小,特别是对于数据大小n》10,000的大型数据集,实验中使用10,000 个数据点,即mnist、cifar10、svhn、20ng、20ng-s和googlesnippets数据集使用10,000个数据点。对于小数据集coil20和movie,采用完整的数据集。这5 种方法的参数设置为默认值,运行时间如表2中所示。
[0122]
数据集lleleumapvec2vec本方法coil201.891.3610.5112.714.64movie7.876.1184.7624.348.73mnist44.05127.5719.57164.3031.74cifar1067.36209.5839.29275.7232.06svhn53.04150.8038.97217.7831.3220ng2,039.581,602.42451.17378.10333.2120ng-s91.29451.3778.49181.3639.71snippets194.37149.2268.41186.8549.89
[0123]
表2
[0124]
由表2可知,对于数据大小为n≤2000的小型数据集coil20和movie,lle 和le比其他方法更快。对于大小设置为n=10,000的6个数据集,umap在mnist 数据集上的处理速度最快。需要指出的是,mnist数据集的维度低于其他数据集。除此之外,对于其他5个数据集,本方法比其他方法更快,尤其是对于维度更高且维数大于数据大小的数据集(d>>n),例如20ng和google snippets数据集。
[0125]
2.准确性测试:本实验在lle、le、umap、vec2vec和本方法生成的嵌入空间上对k-最近邻分类器进行训练,以对多标签数据集进行分类并比较分类准确率。各方法的参数设置与上述“时间性能测试”相同,给出的准确率与“时间性能测试”中所展示的运行时间相对应。
[0126]
如图6所示,其为4折交叉验证的平均准确度。从图中可知,对于高维的图像数据集coil20,本方法的准确率最高;本方法在数据集cifar10、svhn、movie 和snippets上的准确率优于lle、le和uamp方法。在默认参数下(最近邻个数 k=15,上下文序列长度l=15),与vec2vec方法相比,本方法与umap方法在数据集20newsgroups上的准确率较低,但另一方面,本方法处理该数据集的耗时最短(见表3),这表明在运行时间与准确性之间存在权衡。需要注意的是,在图 6中,本方法使用字符“fvec2vec”表示。
[0127]
本实验通过可视化定性地评估本方法的准确性。以mnist数据集为例,取5000 个数据点,通过lle、le、umap和本方法分别将数据集降维至三维,同时,实验比较了这4种方法在最近邻数k取10、20、30和40时的可视化效果。
[0128]
实验结果表明:本方法对数据集可视化的效果优于lle和le方法,与专为数据可视化设计的umap方法相当。本方法的可视化效果可通过最近邻参数k进行优化,本方法可用于数据可视化分析以发现数据的内在结构,即在三维的可视化空间中,保持原高维空间中相似的数据点彼此接近,而不同的数据点相互远离。
[0129]
3.可扩展性测试:为评估本方法的可扩展性,本实验利用lle、le、umap、vec2vec和本方法等5种不同方法对不同大小的多标签数据集进行降维处理,然后对比测试在低维的
嵌入空间进行分类时的耗时及同等参数设置下获得的分类准确率。以mnist和svhn数据集为例,分别比较了这5种方法处理图像和文本数据集时的可扩展性。以上5种方法的运行时间如图7(图7(a)为图像数据集mnist 示意图,图7(a)为文本数据集svhn示意图)所示,相应的分类准确率如表3所示,其中各方法的参数设置为默认值。需要注意的是,在图7中,本方法使用字符“fvec2vec”表示。
[0130][0131][0132]
表3
[0133]
综上所述,除umap之外,本方法的时间性能明显优于其他3种方法,同时本方法可快速地获得较高的准确率。由此可知,本方法可有效地处理大规模图像和文本等不同类型的数据集。
[0134]
参数敏感性测试:本方法中主要有两个参数,即数据点的最近邻居个数k与数据点
的上下文长度l。本实验测试参数k与l对本方法性能的影响,包括运行时间和多标签分类的准确率两个方面,实验数据集包括两个图像数据集coil20与mnist,以及两个文本数据集googlesnippets和movie,数据集大小为103量级。
[0135]
为评估数据点的上下文序列长度l对本方法性能的影响,将最近邻居个数k设置为固定值。图8(a)所示为l对时间性能的影响。从图中可知,本方法的运行时间随着l值的增大而增加,并且数据集越大,运行时间增加越显著,例如数据集mnist 和googlesnippets,这表明l越大,计算量越大。因为l取值的大小影响上下文采样、序列的生成以及skip-gram模型对序列的处理,因此这是合理的。如图8(b) 所示,对于所有实验的4个数据集,包括图像数据集和文本数据集,当l取值在10 至15之间时,即从数据点的knn中采样10至15个数据点时,本方法的准确率便可接近最优值。因此,本方法中数据点的上下文序列长度默认值可设置为l=15。需要注意的是,在图8中,本方法使用字符“fvec2vec”表示。
[0136]
需说明的是,虽然k对于同一数据集设置了固定值,但根据不同数据集的特征,实验中为不同的数据集设置了不同的值以获得最佳精度,例如对于图像数据集 mnist,设置k=5,对于文本数据集googlesnippets,设置k=30。通常地,本方法中k设置在5至30之间。
[0137]
利用上述4个数据集评估数据点的最近邻居个数k对本方法性能的影响,此时 l设为固定值,其实验结果如图9所示。由图9(a)可知,本方法的运行时间随着k的增加而增加,对于较大的数据集,这种增加更为明显。当数据点的上下文序列长度l的值确定时,最近邻居个数k的取值主要影响探索最近邻居的时间。然而,如图9(b)所示,并非数据点的最近邻居个数k取值越大分类准确率越高,当k约为 15时,便可达到其最高的准确率。因此,当设置合理的k值时,计算各数据点的邻域的时间增加是有上限的。此外,当k值设置过大时,即大于数据点的真实邻居数时,数据分类准确率反而会降低,例如数据集coil20。原因是在此场景下,基于邻居探索的邻域计算过程中,有更多邻居的邻居作为数据点的邻居加入其邻域,导致数据点与其邻居之间的相似性降低。需要注意的是,在图9中,本方法使用字符“fvec2vec”表示。
[0138]
针对当前已有的高维数据降维处理技术大部分只面向特定的数据类型以及计算原始空间中数据局部结构效率不高的问题,本实施例提出了一种基于邻域关系的高维数据快速降维方法,方法是旨在保持数据邻域结构的非线性数据降维方法,其处理过程包括基于邻居探索的邻域计算、基于随机采样的上下文生成、基于词向量模型的低维嵌入表示计算三个阶段。在基于邻居探索的邻域计算阶段,通过探索数据点与其邻居的邻居之间的相似性以构建高维空间中数据点的近似邻域结构,避免了成对数据点之间的相似度计算,在提高计算效率的同时获得尽可能高的准确性;在基于随机采样的上下文生成过程中,对由邻居探索而获得的数据点的邻域进行随机采样,快速生成数据点的上下文序列,进一步加快计算效率;在基于词向量模型的低维嵌入表示计算阶段,利用只含一层隐含层的词向量模型skip-gram的高效性,学习高维数值矩阵在低维空间的嵌入表示,从而实现降维处理。在包括图像和文本等两类共8个不同维度、不同数据量的真实数据集上的实验测试结果表明,本方法可处理通用的数值型矩阵,不局限于原始数据类型,并且计算速度明显高于同类型的vec2vec方法,计算准确率优于当前最先进的 umap方法。
[0139]
本发明的一个实施例,提供了一种电子设备;该电子设备可以是任意类型的智能终端,例如手机、平板电脑、个人计算机等。具体地,该电子设备包括:一个或多个控制处理
器和存储器,本实例以一个控制处理器为例。控制处理器和存储器可以通过总线或者其他方式连接,本实例以通过总线连接为例。
[0140]
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态性计算机可执行程序以及模块,如本发明实施例中的电子设备对应的程序指令/模块;控制处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而实现上述方法实施例的基于邻域关系的高维数据快速降维方法。存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于控制处理器远程设置的存储器,这些远程存储器可以通过网络连接至该电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。所述一个或者多个模块存储在所述存储器中,当被所述一个或者多个控制处理器执行时,执行上述方法实施例中的基于邻域关系的高维数据快速降维方法。例如,执行以上描述的图3中的方法步骤s101至s103,实现图2中的单元100至300的功能。
[0141]
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个控制处理器执行,例如,可使得上述一个或多个控制处理器执行上述方法实施例中的基于邻域关系的高维数据快速降维方法。例如,执行以上描述的图3中的方法步骤s101至s103,实现图2中的单元100至300的功能。
[0142]
通过以上的实施方式的描述,本领域技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现。本领域技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(readonly memory,rom)或随机存储记忆体(random access memory,ram) 等。
[0143]
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1