技术领域:
本发明涉及机器学习领域和离散数学领域,即通过图论和som算法相结合解决文本聚类问题。解决了文本聚类时最佳聚类数目不易确定的问题,即本发明所提出的算法在训练过程中无需给定准确的网络单元数目和结构形状,也可得到最好的聚类结果。
背景技术:
:
在这个信息化、数据化的时代中,我们的日常生活方式越来越方便,从信息的获取到网络和数字图书馆的日益普及,计算机技术的发展正在潜移默化的改变着我们的生活,同时也带给我们海量的文本信息数据。但现实中我们所获得的大量文本数据没有标签数据,因此对海量无标签的文本数据进行聚类显得尤为重要。目前许多学者已经提出了很多聚类算法以及其改进算法并将其应用于文本聚类,其中最典型的聚类算法包括k-means聚类、层次聚类、t-sne聚类、dbscan聚类等。近年来,随着神经网络的快速发展,许多学者也在尝试研究基于神经网络的聚类算法。而基于神经网络的聚类法中最典型的算法是自组织映射算法。自组织映射(self-organizingmaps,som)算法由芬兰赫尔辛基大学教授teuvokohonen于1981年提出后,现在已成为应用最广泛的自组织神经网络方法,其中的wta(winnertakesall)竞争机制反映了自组织学习最根本特征。该算法根据人脑神经元的特点无监督地、自组织地进行学习。但该算法也存在许多不足之处,如训练过程中会产生死神经元、训练开始时需预先给定网络单元数目及其结构形状等,目前很多学者提出了很多相应的改进算法,其中最典型的算法有fkcm(fuzzykohnenclusteringnetwork)、tgsom、gcs(growingcellstructure)、kohonensofm-c、lvq(learnvectorquantification)和vr2som算法等,这些改进算法极大的提高了som算法的性能。
本发明在已有的研究成果上提出了一种基于图理论的som聚类算法用于解决文本聚类问题,本发明中通过图理论的方式解决了som聚类算法训练开始时预先给定网络单元数目及其结构形状的问题,此外,该方法也可用于解决文本聚类时最优聚类簇数不易确定的问题。
技术实现要素:
:
1、一种基于图理论的som聚类算法在文本聚类中的应用,其特征在于,具体包含以下步骤:
步骤1、获取文本数据,并对数据进行分词、去除停用词处理;
步骤2、使用word2vec方法生成文本数据内每个词对应的词特征向量表达,用于词与词之间关系的度量;
步骤3、将步骤1和2得到的词特征向量表达数据由输入层采用全连接的方式输入到竞争层,并多次迭代训练som网络;
步骤4、将som网络的输出作为图切割层的输入;
步骤5、在图切割层对由som网络的输出构成的无向图进行图切割;
步骤6、将图切割层得到的矩阵输入到输出层,在输出层采用wta(winnertakesall)机制得到最终的聚类结果。
2、进一步,步骤3具体包括:
假设训练样本为n个互异的文本,设经过word2vec训练后的词向量为x={x1,x2,x3,…,xi,1≤i≤n},其中,n为文本数量,xi={xi1,xi2,xi3,…xim}表示第i个文本经word2vec训练得到的词向量,m为词向量的维度,构成了输入神经网络的维度,xim表示第i个文本经word2vec训练后第m个词的值。
3.1:输入层通过全连接的方式与竞争层相连;
3.2:设置竞争层有p(
3.3:对网络当前输入向量xi(xi∈x,1<i<n,n为文本数量)和竞争层中各神经元对应的权重向量wj(第j个神经元的权重,1≤j≤p,p为竞争层神经元数量)进行归一化,使得xi和wj模为1,向量归一化的公式如下:
3.4:当向网络内输入向量xi(xi∈x,1≤i≤n)时,将竞争层的所有神经元对应的权重向量均与向量xi(xi∈x,1≤i≤n)进行相似性比较,并将最相似的权重向量判为竞争获胜神经元。归一化后,相似度最大就是内积最大。内积最大的神经元即为获胜神经元,内积的计算公式如下:
3.5:对获胜神经元拓扑邻域内的神经元的权重进行更新,定义t时刻获胜神经元为第j*(1≤j*≤p)个神经元(下文中称为获胜神经元j*),其拓扑邻域为nj*(t)(1≤j*≤p)。学习率随时间的增加不断减小,定义t时刻学习率为η(t)(0<η(t)<1)。拓扑邻域随迭代次数的增加不断收缩,对所有神经元的权重进行更新的公式如下,其中nj*(t)为t时刻获胜神经元j*(1≤j*≤p)的拓扑域:
3.6:判断获胜神经元j*是若为初次获胜,若该神经元是初次获胜,则以输入向量xi(xi∈x,1≤i≤n)归一化后的向量作为获胜神经元的权重,否则以该获胜神经元内权值与输入向量之间的均值作为获胜神经元学习之后的权重,获胜神经元内权重更新公式如下,其中wj*(t)为t时刻获胜神经元j*的权重:
3.7:权重学习后,对所有神经元的权值进行重新归一化;
3、进一步,步骤4具体包括:
4.1:竞争层训练结束后可得p个神经元,通过稀疏k-共享近邻可得到由p个神经元内权值所构成的邻接矩阵c,通过稀疏k-共享近邻构造邻接矩阵方法为:
p个权值构成的数据集为s={s1,s2,s3,…,sp},其中,sl={sl1,sl2,sl3,...slm}(1≤l≤p,表示第l个神经元的权值,slm表示第l个神经元的权值的第m维度上的值。p为神经元的数量,m为每个神经元的权值的维度。下文中将每个权值向量称为点。
对于s内的任意两个点sl(1≤l≤p)和se(1≤e≤p,e≠l),knn(sl)表示sl的k近邻域内的点的集合,knn(sl,se)表示点sl和se的k邻近点集的交集,即点sl和se的k-共享近邻。对于s内的任意两点sl和se,通过cle表示sl和se之间的相似度。对于任意的1≤l≤p,1≤e≤p,e≠l,及1≤t≤p,若
4.2:为了更好的保留竞争层训练结束后每个神经元的信息,构造一个p*p的矩阵d。矩阵d是一个对角矩阵,该矩阵只有主对角线上的值nl,表示第l(1≤l≤p)个神经元内存储训练结束后该神经元内样本的数量。定义如下:
4.3:通过矩阵稀疏k-近邻矩阵c和元素矩阵d,我们可以得到p个神经元结点的邻接矩阵l=d-c,由于d和c都是对称矩阵,因此得到的矩阵l为拉普拉斯矩阵;
4.4:为得到最好的子图,在此使用谱聚类内的ncut切图方式对4.3步骤得到的拉普拉斯矩阵l进行切割。ncut切割方法利用拉普拉斯矩阵的性质,首先构建标准化后的拉普拉斯矩阵
附图说明:
图1本发明所涉及方法的总体流程图;
图2som算法内部流程图;
图3图切割内部流程图;
具体实施方式:
以下结合具体实施例,并参照附图,对本发明进一步详细说明。
本发明所用到的硬件设备有pc机1台;
步骤1、获取文本数据,并对数据进行分词、去除停用词处理;
步骤2、使用word2vec方法生成文本数据内每个词对应的词特征向量表达,用于词与词之间关系的度量;
步骤3、将步骤1和2得到的词特征向量表达数据由输入层采用全连接的方式输入到竞争层,并多次迭代训练som网络;
假设训练样本为n个互异的文本,设经过word2vec训练后的词向量为x={x1,x2,x3,...,xi,1≤i≤n},其中,n为文本数量,xi={xi1,xi2,xi3,...xim}表示第i个文本经word2vec训练得到的词向量,m为词向量的维度,构成了输入神经网络的维度,xim表示第i个文本经word2vec训练后第m个词的值。
1):输入层通过全连接的方式与竞争层相连;
2):设置竞争层有p(
3):对网络当前输入向量xi(xi∈x,1<i<n,n为文本数量)和竞争层中各神经元对应的权重向量wj(第j个神经元的权重,1<j<p,p为竞争层神经元数量)进行归一化,使得xi和wj模为1,向量归一化的公式如下:
4):寻找获胜神经元,当向网络内输入向量xi(xi∈x,1≤i≤n)时,将竞争层的所有神经元对应的权重向量均与向量xi(xi∈x,1≤i≤n)进行相似性比较,并将最相似的权重向量判为竞争获胜神经元。归一化后,相似度最大就是内积最大。内积最大的神经元即为获胜神经元,内积的计算公式如下:
5):对获胜神经元拓扑邻域内的神经元的权重进行更新,定义t时刻获胜神经元为第j*(1≤j*≤p)个神经元(下文中称为获胜神经元j*),其拓扑邻域为nj*(t)(1≤j*≤p)。学习率随时间的增加不断减小,定义t时刻学习率为η(t)(0<η(t)<1)。拓扑邻域随迭代次数的增加不断收缩,对所有神经元的权重进行更新的公式如下,其中
6):若神经元j*是初次获胜,则以输入向量xi(xi∈x,1≤i≤n)归一化后的向量作为获胜神经元的权重,否则以该获胜神经元内权值与输入向量之间的均值作为获胜神经元学习之后的权重,获胜神经元内权重更新公式如下,其中wj*(t)为t时刻获胜神经元j*的权重:
7):权重学习后,对所有神经元的权值进行重新归一化;
步骤4、在图切割层对由som网络的输出构成的无向图进行图切割;
1):竞争层训练结束后可得p个神经元,通过稀疏k-共享近邻得到由p个神经元构成的邻接矩阵c,通过稀疏k-共享近邻构造邻接矩阵方法为:
p个权值构成的数据集为s={s1,s2,s3,...,sp},其中,sl={sl1,sl2,sl3,...slm}(1≤l≤p,表示第l个神经元的权值,slm表示第l个神经元的权值的第m维度上的值。p为神经元的数量,m为每个神经元的权值的维度。下文中将每个权值向量称为点。
对于s内的任意两个点sl(1≤l≤p)和se(1≤e≤p,e≠l),knn(sl)表示sl的k近邻域内的点的集合,knn(sl,se)表示点sl和se的k邻近点集的交集,即点sl和se的k-共享近邻。对于s内的任意两点sl和se,通过cle表示sl和se之间的相似度。对于任意的1≤l≤p,1≤e≤p,e≠l,及1≤t≤p,若
2):为了更好的保留竞争层训练结束后每个神经元的信息,构造一个p*p的矩阵d。矩阵d是一个对角矩阵,该矩阵只有主对角线上的值nl,表示第l(1≤l≤p)个神经元内存储训练结束后该神经元内样本的数量。定义如下:
3):通过矩阵稀疏k-近邻矩阵c和元素矩阵d,我们可以得到p个神经元结点的邻接矩阵l=d-c,由于d和c都是对称矩阵,因此得到的矩阵l为拉普拉斯矩阵;
4):为得到最好的子图,在此使用谱聚类内的ncut切图方式对4.3步骤得到的拉普拉斯矩阵l进行切割。ncut切割方法利用拉普拉斯矩阵的性质,首先构建标准化后的拉普拉斯矩阵
步骤5:以图切割层得到的矩阵输入输出层,在输出层采用wta机制得到最终的聚类结果;
以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。
1.一种基于图理论的som算法,其特征在于:
步骤1、获取文本数据,并对数据进行分词、去除停用词处理;
步骤2、使用word2vec方法生成文本数据内每个词对应的词特征向量表达,用于词与词之间关系的度量;
步骤3、将步骤1和2得到的词特征向量表达数据由输入层采用全连接的方式输入到竞争层,并多次迭代训练som网络;
步骤4、将som网络的输出作为图切割层的输入;
步骤5、在图切割层对由som网络的输出构成的无向图进行图切割;
步骤6、将图切割层得到的矩阵输入到输出层,在输出层采用wta(winnertakesall)机制得到最终的聚类结果。
2.根据权利要求1所述的方法,步骤3具体包括:
假设训练样本为n个互异的文本,设经过word2vec训练后的词向量为x={x1,x2,x3,…,xi,1≤i≤n},其中,n为文本数量,xi={xi1,xi2,xi3,…xim}表示第i个文本经word2vec训练得到的词向量,m为词向量的维度,构成了输入神经网络的维度,xim表示第i个文本经word2vec训练后第m个词的值;
3.1:输入层通过全连接的方式与竞争层相连;
3.2:设置竞争层有p个神经元结点;其中
3.3:对网络当前输入向量xi和竞争层中各神经元对应的权重向量wj进行归一化,使得xi和wj模为1;其中xi∈x,1<i<n,n为文本数量,wj表示第j个神经元的权重,1≤j≤p,p为竞争层神经元数量;向量归一化的公式如下:
3.4:当向网络内输入向量xi时,其中xi∈x,1≤i≤n,将竞争层的所有神经元对应的权重向量均与向量xi进行相似性比较,并将最相似的权重向量判为竞争获胜神经元;归一化后,相似度最大就是内积最大;内积最大的神经元即为获胜神经元,内积的计算公式如下:
3.5:对获胜神经元拓扑邻域内的神经元的权重进行更新,定义t时刻获胜神经元为第j*个神经元,j*的取值范围是1≤j*≤p,在下文我们称为获胜神经元j*,其拓扑邻域为nj*(t);学习率随时间的增加不断减小,定义t时刻学习率为η(t),0<η(t)<1;拓扑邻域随迭代次数的增加不断收缩,对所有神经元的权重进行更新的公式如下,其中nj*(t)为t时刻获胜神经元j*的拓扑域:
3.6:判断获胜神经元j*是若为初次获胜,若该神经元是初次获胜,则以输入向量xi归一化后的向量作为获胜神经元的权重,否则以获胜神经元内权值与输入向量之间的均值作为获胜神经元学习之后的权重,其中xi∈x,1<i<n,n为文本数量;获胜神经元内权重更新公式如下,其中
3.7:权重学习后,对所有神经元的权值进行重新归一化。
3.根据权利要求1所述的方法,步骤4具体包括:
4.1:竞争层训练结束后得p个神经元,通过稀疏k-共享近邻得到由p个神经元内权值所构成的邻接矩阵c,通过稀疏k-共享近邻构造邻接矩阵方法为:
p个权值构成的数据集为s={s1,s2,s3,...,sp},其中,sl={sl1,sl2,sl3,…slm},1≤l≤p,表示第l个神经元的权值,slm表示第l个神经元的权值的第m维度上的值;p为神经元的数量,m为每个神经元的权值的维度;下文中将每个权值向量称为点;
对于s内的任意两个点sl和se其中1≤1≤p,1≤e≤p,e≠l,knn(sl)表示sl的k近邻域内的点的集合,knn(sl,se)表示点sl和se的k邻近点集的交集,即点sl和se的k-共享近邻;对于s内的任意两点sl和se,通过cle表示sl和se之间的相似度;对于任意的1≤l≤p,1≤e≤p,e≠l,及1≤t≤p,若
4.2:为了更好的保留竞争层训练结束后每个神经元的信息,构造一个p*p的矩阵d;矩阵d是一个对角矩阵,该矩阵只有主对角线上的值nl,表示第l个神经元内存储训练结束后该神经元内样本的数量,其中l的取值范围是1≤l≤p;定义如下:
4.3:通过矩阵稀疏k-近邻矩阵c和元素矩阵d,我们得到p个神经元结点的邻接矩阵l=d-c,由于d和c都是对称矩阵,因此得到的矩阵l为拉普拉斯矩阵;
4.4:为得到最好的子图,在此使用谱聚类内的ncut切图方式对4.3步骤得到的拉普拉斯矩阵l进行切割;ncut切割方法利用拉普拉斯矩阵的性质,首先构建标准化后的拉普拉斯矩阵
