[发明专利]一种用于高维文本数据的并行k-means算法有效
申请号: | 201810576890.9 | 申请日: | 2018-05-28 |
公开(公告)号: | CN108763576B | 公开(公告)日: | 2021-01-19 |
发明(设计)人: | 申彦明;单晓磊;王宇新 | 申请(专利权)人: | 大连理工大学 |
主分类号: | G06F16/35 | 分类号: | G06F16/35;G06K9/62;G06N3/04;G06N3/08 |
代理公司: | 大连理工大学专利中心 21200 | 代理人: | 李晓亮;潘迅 |
地址: | 116024 辽*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 维文 数据 并行 means 算法 | ||
1.一种用于高维文本数据的并行k-means方法,其特征在于以下步骤:
第一步,将高维的文本数据训练得到低维数据
1.1)采用Bag-of-words文本表示模型,将文本数据向量化;通过该模型得到大小为N*d的矩阵,其中N表示的是文本数量,d表示的是整个语料库的特征词数目,也可以说成是每个文档的当前维度;
1.2)将向量化后的文本数据采用log-normalized方法进行数据标准化,公式如下所示:
其中,x∈Rd对应一个文档,xi表示第i号特征词;ni对应为其词频,max为针对该特征词对应的最大词频;
1.3)设计降维模型
该降维模型在只有输入层、隐含层、输出层三层的自编码网络Auto encoder中,依据注意力机制的思想加入一个竞争层,设计为四层模型;令x∈Rd是一个d维的输入向量,h1,h2,……hm为m个隐含层神经元,W∈Rd*m为输入层和隐含层之间的权重矩阵,b∈Rm、c∈Rd为偏差,令g代表激活函数,在输入层和隐含层之间选用激活函数在隐含层和输出层之间选用激活函数因此在训练阶段的数据流向为如下所以:
z=tanh(Wx+b) (2)
其中,公式(3)中对应的为竞争层,在该层中判断通过激活函数tanh后的神经元情况将神经元分成正神经元和负神经元;最具竞争力的s个神经元是具有最大绝对激活值的神经元,s是一个参数;通过选取个绝对值最大的正神经元,将输了的正神经元的能量分配给赢的神经元,同理选取个绝对值最大的负神经元,做同样的操作,这样就使得隐含层的神经元能量实现再分配;
此外,在该模型中将训练过程中的损失函数定义为交叉熵,然后利用反向传播进行微调以及迭代;采用Adam优化器进行学习;采用Keras框架来实现,并在模型中使用了EarlyStopping函数避免过拟合问题;
通过该模型将原本为N*d大小的矩阵,转变为N*m大小的矩阵;
第二步,利用pk-means聚类算法对第一步预处理后的数据作为算法的输入数据进行聚类,聚类过程包括以下步骤:
(1)设置相关参数
初始化聚类数目k、最大迭代次数、误差阈值参数;迭代次数:i=0
(2)初始种子选择
在该步骤主要需要确定初始中心点:C1,C2,......Ck,具体步骤如下所示:
Step 1:定义一个半径R,R为某一个样本到其他样本距离的平均值的整体平均;扫描样本集,选择在该半径组成的球形内样本点数目最多的样本作为初始聚类中心C1;
Step2:计算每个样本x与当前已有聚类中心Ct-1之间的最短距离,用D(x)表示,其中t=2,3,...,k;计算每个样本被选为下一个聚类中心的概率按照轮盘法选择一个聚类中心;
Step3:重复第2步至选择出k个聚类中心;
(3)分配数据点
采用如公式(5)所示的cosine余弦距离计算样本与聚类中心之间的相似度,公式如下:
其中,A为样本,B为聚类中心点,d为向量维度,Ai、Bi为向量的成分;
将样本分配到与其具有最大相似度的聚类中心所在的簇中;迭代次数:i=i+1
(4)更新聚类中心点
当迭代一次后,所有样本均被分配完毕,依据簇内样本坐标总和除以簇内样本数目得到新的中心点坐标;
(5)计算当前迭代误差
统计当前迭代后生成的误差,采用每次迭代后各个样本距离其所在簇中心点的余弦之和作为本次迭代的误差;
(6)判断是否满足算法终止条件
算法的终止条件是,两次迭代后的误差之差小于阈值,或者聚类的迭代次数超过设定的最大迭代次数,转步骤(7);否则,转步骤(3);
(7)停止迭代,输出结果。
2.根据权利要求1所述的一种用于高维文本数据的并行k-means方法,其特征在于,所述的第二步中pk-means聚类算法还可以进行如下优化:
1)将单机算法并行化
将pk-means聚类算法中的聚类过程也就是第二步的步骤(3),采用CUDA计算框架实现GPU,启动多线程,原pk-means聚类算法的固有时间复杂度O(nkdl);其中,n表示的是文本数量,d为单词数量,k为聚类数目,l为迭代次数;
在单机算法中在文本相似度计算部分,其复杂度为O(nkdl);通过并行设计启动n个线程,复杂度就降为O(kdl),减少算法复杂度;
2)实现多节点并行计算
将启动的所有节点分为一个控制节点和多个计算节点,通过MPI技术使各个节点协同工作继而实现多节点并行计算;所述的控制节点负责接收外部数据并将数据发布到远程存储窗口,再将控制信息、初始化种子发送给计算节点;所述的计算节点通过从远程存储窗口读取的数据以及收到的控制信息、初始化种子这些信息,进行相应的计算,并将计算结果再发送给控制节点;此时,控制节点接收数据并执行相应判断及其他操作;通过这两个节点之间的信息传递,实现多节点并行计算;判断条件与第二步步骤(6)相同。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于大连理工大学,未经大连理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810576890.9/1.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置