通过迭代分类增强短文本聚类 《Enhancement of Short Text Clustering by Iterative Classification》

论文地址:https://arxiv.org/pdf/2001.11631.pdf

相关博客:
【自然语言处理】【聚类】基于神经网络的聚类算法DEC
【自然语言处理】【聚类】基于对比学习的聚类算法SCCL
【自然语言处理】【聚类】DCSC:利用基于对比学习的半监督聚类算法进行意图挖掘
【自然语言处理】【聚类】DeepAligned:使用深度对齐聚类发现新意图
【自然语言处理】【聚类】CDAC+:通过深度自适应聚类发现新意图
【计算机视觉】【聚类】DeepCluster:用于视觉特征无监督学习的深度聚类算法
【计算机视觉】【聚类】SwAV:基于对比簇分配的无监督视觉特征学习
【计算机视觉】【聚类】CC:对比聚类
【计算机视觉】【聚类】SeLa:同时进行聚类和表示学习的自标注算法
【自然语言处理】【聚类】ECIC:通过迭代分类增强短文本聚类
【自然语言处理】【聚类】TELL:可解释神经聚类

一、简介

​ 由于技术的进步,微博、问答、社会新闻网站等各种来源产生了大量的短文本。组织这些文本是对话意图发现、数据摘要、频繁项挖掘以及信息搜索和过滤等任务的重要一步。将相似文本聚类到相同的分组是许多文本组织策略的基础。

​ 本文的研究目标是从簇中高效的移除异常值,并重新将其分配的合适的簇,从而改善不同聚类方法的质量。本文提出的方法超越了基于神经网络和Dirichlet\text{Dirichlet}Dirichlet多项式混合模型的state-of-the-art

​ 本文中迭代分类的概念是来源于称为k-means–\text{k-means--}k-means–的迭代聚类算法,其会在每次迭代中移除异常值来获得更好的聚类表示。基于此,本文的迭代分类算法会在每次迭代过程中移除异常值。k-means–\text{k-means--}k-means–和本文的方法都会计算无异常值的簇表示。然而,k-means–\text{k-means--}k-means–和本文方法计算簇表示的方式是不同的。k-means–\text{k-means--}k-means–通过对无异常值向量进行平均来表示每个簇。相反,本文的方法使用训练的分类模型来表示每个簇。为了获得模型,其会使用无异常值的簇标签来训练分类器。使用训练好的模型,迭代将异常值重新分类至目标簇。本文方法获得的簇结果是下一次的迭代输入,若是最后一次迭代则是整个算法最终的结果。

​ 本文提出的增强聚类算法能够应用在任何初始聚类中且独立于获得簇的方法。然而,最终簇的质量依赖于计算初始簇的方法。作者使用k-means\text{k-means}k-means,k-means–\text{k-means--}k-means–和使用稠密和稀疏相似矩阵的层次聚类来计算初始的簇。k-mean\text{k-mean}k-mean和k-means–\text{k-means--}k-means–聚类算法被应用在文本的向量表示上。对于层次聚类,则使用文本相似矩阵(稠密或稀疏),其中稀疏相似矩阵会保留一定数量的最显著相似值,并丢弃其余的值。

​ 矩阵稀疏化能够使用不同的准则来选择丢弃的值。这里考虑两种方法,一种是基于KNN的方法,另一种则是基于相似度分布的。基于KNN的方法会保留每行中最大的k个值。基于相似度分布的方法,每行保留的相似度数量是不固定的。相反,它是基于每行的相似度值分布。

​ 本文的两个主要贡献为:

  • 提出的聚类增强方法改善了各种短文本数据集的质量,并且不需要人类标注数据来训练分类模型。本文的聚类增强方法的实现和数据集都是可公开获取的。
  • 层次聚类和迭代分类的结合效果要好于其他聚类方法与迭代分类的结合。此外,在具有中等数量簇的数据集上,这种组合方法性能优于最先进的短文本聚类算法。

二、相关工作

1. 短文本聚类

2. 相似矩阵稀疏化

​ 文本相似矩阵稀疏化的目标是,保持一个文本与其最相似文本的联系,并通过将对应的相似度分数设置为0来将不相似的联系打断。本小节会讨论几种相似度矩阵稀疏化方法,包括基于全局阈值、最近邻和中心向量的方法。

​ 基于全局阈值的相似矩阵稀疏化方法是最简单的稀疏化方法。它会移除低于给定阈值的所有相似值。这种方法的问题是可能会被破坏或者合并,因为不同簇中的文本可能有不同相似度等级。例如,一个簇中的相似度阈值可能介于0.2和0.4之间,而另一个簇中的相似度阈值则位于0.5至0.8。若设置全局阈值为0.5,那么第一个簇中的相似值都会被设置为0,簇会被消除。一个低阈值,例如0.15,可能会导致第二个簇包含额外的文档。

​ 基于最近邻的相似矩阵稀疏化方法包括KNN\text{KNN}KNN和共享最近邻。KNN\text{KNN}KNN稀疏化被保留每个文本kkk个最高相似分。共享最近邻方法则会添加一个条件,给定文本与保留下相似分的文本应该共享一定数量的邻居。

​ 基于中心向量的相似矩阵稀疏化方法中,文本会表示为TF-IDF\text{TF-IDF}TF-IDF向量,中心向量则是整个文本集合中向量的平均值。该方法是通过消除那些两两相似度小于两个文本与中心向量度的最大值的相似度,从而实现相似矩阵稀疏化。

三、通过迭代分类增强聚类

​ 给定短文本的集合,并将这些文本划分至簇,迭代分类则会通过检测每个簇的异常值并改变它们分配的簇来实现簇划分的改善。这会重复几次,因此方法的名称中会有"迭代"这个词。在每次迭代中,分别生成不包含异常值和包含异常值的训练集和测试集。这里使用训练集来训练分类算法,并且使用训练好的模型来分类测试集。迭代的过程重复直至满足停止准则。整体算法流程如下:

算法1: 通过迭代分类增强聚类

输入: D为包含n个文本的集合,L是D中文本的初始化标签,K是簇的数量

输出: 文本的增强簇标签

maxIteration\text{maxIteration}maxIteration=50

avgTextsPerCluster=nK\text{avgTextsPerCluster}=\frac{n}{K}avgTextsPerCluster=Kn​

for i=1\text{i=1}i=1 to maxIteration\text{maxIteration}maxIteration do

从区间[P1,P2][P_1,P_2][P1​,P2​]均匀随机采样一个参数PPP;

通过异常值检测算法将KKK个簇中的异常值移除 ;

若一个簇包含超过avgTextsPerCluster×P\text{avgTextsPerCluster}\times PavgTextsPerCluster×P数量的文本,随机移除该簇中的文本直至簇中留下的文本数量为avgTextsPerCluster×P\text{avgTextsPerCluster}\times PavgTextsPerCluster×P;

将上面两步移除的文本作为测试集,其余文本作为训练集;

使用训练集训练一个分类器,并对测试集中的文本进行分类,这会对测试集中的每个文本ttt分配一个新的簇标签L(t)L(t)L(t);

如果每个簇的分布区域稳定则停止迭代;

end for

return LLL

1. 训练集和测试集生成

​ 在每次迭代中,会随机选择一个数字PPP,其对应于训练集中文本所占比例。PPP是在区间[P1,P2][P_1,P_2][P1​,P2​]中均匀随机采样获得的。

​ 为了生成训练集,会将KKK个簇中的异常值移除,这些簇是通过当前簇标签LLL定义的。为了移除异常值,使用一种称为Isolation Forest\text{Isolation Forest}Isolation Forest的异常检测算法,其会应用在文本的TF-IDF\text{TF-IDF}TF-IDF向量表示。该算法会基于特征的值来孤立每个item。首先,选择一个item的随机特征。然后,从被选择特征中最小值和最大值之间选择一个随机值。然而,通过该值绘制一条直线来孤立item。算法重复这些步骤,直至item被孤立。使用较少步骤就被孤立的item被认为是异常值,因此它们处于特征空间的低密度区域。

​ 如果移除异常值后,一个簇包含的文本超过nK×P\frac{n}{K}\times PKn​×P,然后从簇中等概率随机移除文本,从而将簇中的文本数量缩减至nK×P\frac{n}{K}\times PKn​×P。从每个簇中移除文本的原因,是希望每个簇具有相近的文本数量,从而减少分类算法的偏差。将删除的文本添加至测试集,并添加其他文本至训练集。

2. 训练分类模型并在测试集上分类

​ 训练集和测试集中的文本使用TF-IDF\text{TF-IDF}TF-IDF向量表示。基于训练集中的聚类文本训练一个分类器,标签为聚类的标签。在训练集上使用多项式逻辑回归来获得训练后的模型。然而,使用训练好的分类器对测试集中的文本进行分类。这为测试集中的文本定义了新的簇标签,并产生新的簇划分。

3. 迭代分类的停止准则

​ 当达到最大数量的迭代数或者簇的尺寸趋于稳定则停止迭代分类。令C1,…,CkC_1,\dots,C_kC1​,…,Ck​和C1′,…,Ck′C_1',\dots,C_k'C1′​,…,Ck′​是迭代前和迭代后的簇。当满足如下条件时认为簇的尺寸稳定
1k∑i=1k∣∣Ci′∣−∣Ci∣∣≤0.05nk\frac{1}{k}\sum_{i=1}^k||C_i'|-|C_i||\leq 0.05\frac{n}{k} k1​i=1∑k​∣∣Ci′​∣−∣Ci​∣∣≤0.05kn​
举例来说,考虑将1000个文本划分为2个簇的例子。簇的平均尺寸为50。若一次迭代分配48个文本至第一个簇,并且分配余下的52个文本至第二个簇,而下一次迭代分配的文本数变为49和51,那么簇尺寸的平均决定变化为12(∣48−49∣+∣52−51∣)=1\frac{1}{2}(|48-49|+|52-51|)=121​(∣48−49∣+∣52−51∣)=1。由于其小于平均簇尺寸的5%,则认为簇的尺寸保持稳定。

四、相似矩阵稀疏化

1. KNN\text{KNN}KNN稀疏化

​ KNN\text{KNN}KNN稀疏化使用最近邻居数量k作为参数。一个n×nn\times nn×n的对称相似矩阵S=(sij)S=(s_{ij})S=(sij​)作为KNN\text{KNN}KNN稀疏化方法的输入。该方法的准则是,对于每个问题保留除对角线以外k个最相似的文本。对于文本tit_iti​,若sijs_{ij}sij​在tit_iti​的k个最相似中,则保留tit_iti​和tjt_jtj​的相似度sijs_{ij}sij​。然而,文本tjt_jtj​和文本tit_iti​的相似度sjis_{ji}sji​可能并不会被保留下来。因此,应用这个准则后,得到的稀疏矩阵是一个非对象稀疏矩阵。因此,若sijs_{ij}sij​和sjis_{ji}sji​中任意一个在稀疏矩阵中被保留,则可以通过同时保留sijs_{ij}sij​和sijs_{ij}sij​来使稀疏矩阵对称。

2. 基于相似分布的稀疏化

​ 本文提出了一种基于相似矩阵中分数的分布来稀疏化相似矩阵的方法。稀疏矩阵能够被应用于各种基于稀疏矩阵的聚类方法的输入,例如层次聚类。算法2展示了本文提出的稀疏方法。输入是nnn个文本的对称相似矩阵。目标是通过保留"最重要"的相似度分数并将不重要的相似分数设置为0来增加矩阵中的信噪比。这里将矩阵中元素设置为0的准则可能导致非对称矩阵。这样的矩阵需要对称化。这里遵循sparsification with exclusion方法,仅当稀疏化准则即不保留sijs_{ij}sij​和sjis_{ji}sji​时,设置sijs_{ij}sij​为0。

算法2: 基于相似分布的稀疏化

输入: S=(sij)=n×nS=(s_{ij})=n\times nS=(sij​)=n×n相似矩阵,KKK是簇的数量;

输出: 稀疏相似矩阵M=n×nM=n\times nM=n×n

令M=(mij)=n×nM=(m_{ij})=n\times nM=(mij​)=n×n为单位矩阵

令A=(aij)=n×nA=(a_{ij})=n\times nA=(aij​)=n×n为全0矩阵

令l=n/K−1l=n/K-1l=n/K−1

令N=⌊n×l2⌋N=\lfloor\frac{n\times l}{2}\rfloorN=⌊2n×l​⌋为对角线上方保留非零相似度分数的数量

for i=1i=1i=1 to nnn do

计算第iii行所有非对角线的均值μi\mu_iμi​和标准差σi\sigma_iσi​

for j=1j=1j=1 to nnn and j≠ij\neq ij​=i do

aij=(sij−μi)/σia_{ij}=(s_{ij}-\mu_i)/\sigma_iaij​=(sij​−μi​)/σi​

end for

end for

L=∅L=\emptyL=∅

for i=1i=1i=1 to nnn do

for j=i+1j=i+1j=i+1 to nnn do

向LLL中添加三元组(i,j,max(aij,aji))(i,j,\text{max}(a_{ij},a_{ji}))(i,j,max(aij​,aji​))

end for

end for

将LLL中的三元组按照第三个分量降序排序

for 对于LLL中前NNN个三元组(i,j,⋅)(i,j,\cdot)(i,j,⋅)中的每个 do

mij=sijm_{ij}=s_{ij}mij​=sij​

mji=sjim_{ji}=s_{ji}mji​=sji​

end for

return MMM

​ 相比于KNN\text{KNN}KNN的方法,每个文本保留的相似度数量是不固定的。相反,该方法是基于每个文本与其他文本的相似值分布的。对于每个文本tit_iti​,计算tit_iti​与所有其他文本相似分数的均值μi\mu_iμi​和标准差σi\sigma_iσi​。然后,基于tit_iti​与其他文本的这些统计值来稀疏化相似度。特别地,定义保留准则为:当然仅当sijs_{ij}sij​满足下式时才会被保留
sij>μi+ασi(1)s_{ij}>\mu_i+\alpha\sigma_i \tag{1} sij​>μi​+ασi​(1)
α\alphaα是一个全局因子。利用准则和矩阵对称性来选择因子α\alphaα,每行中非对角线的非零元素的平均数为l=nk−1l=\frac{n}{k}-1l=kn​−1。注意,如果每个簇都有nk\frac{n}{k}kn​个元素,那么就返回相同簇中的相似度分数,lll是每行非对角线非零元素的数量。

​ 为了有效的选择将要保留下来的相似度值,对于每个相似度值sijs_{ij}sij​使用一个辅助值aij=sij−μiσia_{ij}=\frac{s_{ij}-\mu_i}{\sigma_i}aij​=σi​sij​−μi​​。从公式(1)(1)(1)中得到的准则可以被重新表述为:若aij>αa_{ij}>\alphaaij​>α,则相似度分数sijs_{ij}sij​被保留。由于采用了sparsificaton with exclusion方法来对称化,如果保留准则对于sijs_{ij}sij​或者sjis_{ji}sji​满足,那么最终的对称矩阵就会保留sijs_{ij}sij​。这样,如果每行非对角线非零元素的平均数量为lll,则需要将主对角线上方的N=⌊n×l2⌋N=\lfloor\frac{n\times l}{2}\rfloorN=⌊2n×l​⌋个元素返回,这是通过将α\alphaα设置为{max(aij,aji)∣1≤i<j≤n}\{\text{max}(a_{ij},a_{ji})|1\leq i<j\leq n \}{max(aij​,aji​)∣1≤i<j≤n}中第前NNN大的值。

五、短文本聚类方法

​ 本小节是本文实验中所使用的聚类方法。

5.1 k-means\text{k-means}k-means和k-means–\text{k-means--}k-means–

​ k-means\text{k-means}k-means聚类算法用于将短文本聚类至kkk个簇。由于k-means\text{k-means}k-means对于初始种子高度敏感,因此采用一种称为k-means++\text{k-means++}k-means++的种子选择方法来获得更好的聚类表现。使用初始簇中心,k-means\text{k-means}k-means会分配每个文本至最近的中心。这个算法会迭代一定的数量。在每次迭代中,它会使用分配的文本重新计算簇中心,并再次将文本分配至最近的簇。当算法达到最大迭代数,获得连续迭代之间的簇分配趋于稳定,则算法终止。

​ k-means–\text{k-means--}k-means–是k-means\text{k-means}k-means聚类算法的变体,在每次k-means\text{k-means}k-means迭代中重新计算簇中心之前会先移除异常值。为了检测异常值,短文本会使用与最近簇中心的距离进行降序排序,且ddd个最远的文本被认为是异常值并从簇中被移除,这样簇中心就不会对异常值敏感。

5.2 基于稠密相似矩阵的层次聚类

​ 层次聚类会使用存储了文档间相似度的对称矩阵。若每对文档间的相似度均被存储则该矩阵是稠密的。聚类算法开始时,每个文档都属于自己的簇,然后重复合并最相似的簇直至仅保留下kkk个簇。

​ 本文实验中使用fastcluster包作为聚类算法。这个包提供了许多不同簇之间的度量,这些度量决定哪些簇会被合并。目前为止,Ward\text{Ward}Ward链接准则具有最好的效果,所有在本文实验中使用。Ward\text{Ward}Ward链接准则会假设数据点之间的距离为欧式聚类,并且在每一步中通过最小方差来合并两个簇。在本文的实验中,文档的聚类是cosine相似度,也就是非欧距离。在本文实验中使用Ward\text{Ward}Ward链接准则仍然是合理的,并且解释了这种聚类方法在本文实验数据集上的有效性。确实,在单位空间上彼此接近的点,它们与原点形成的夹角的余弦值是空间上两点间距离的近似值,也就是其近似与两点的欧式距离。如果要计算的簇数量不是太小,那么每个簇中的点在球面上会彼此接近,那么形成这些簇的点间距离相比于欧式距离来说,失真度较低。

5.3 基于稀疏相似矩阵的层次聚

​ 稠密相似度矩阵提供了关于文档对相似度最详细的细节,但是最低的相似度分数可以被看作是噪音。将这些相似度设置为0会增加簇之间的距离,并提供更好的聚类结果。

​ 在本文实验中考虑两种稀疏方法:基于相似度分布的方法和基于KNN\text{KNN}KNN的方法。基于这两种方法生成的稀疏矩阵会使用相同的层次聚类算法。

【自然语言处理】【聚类】ECIC:通过迭代分类增强短文本聚类相关推荐

  1. 八邻域轮廓跟踪算法_结合mRMR选择和IFCM聚类的遥感影像分类算法

    随着遥感成像技术的发展,高分遥感影像空间分辨率逐年提高,已经成为获取地物信息的主要数据来源之一.高分影像分类作为遥感影像处理的重要任务之一,在地理国情普查与监测.数字城市建设.城市规划等领域具有广阔的 ...

  2. 自然语言处理NLP——GSDMM用于短文本聚类

    目录 系列文章目录 一.论文与算法介绍 1.论文背景与简介 2.电影分组过程模拟GSDMM聚类 3.算法模型与流程 4.论文结果与分析 二.GSDMM模型复现(MGP过程) 1.核心思想 2.实现过程 ...

  3. Nat. Mach. Intell. | 基于神经网络的迁移学习用于单细胞RNA-seq分析中的聚类和细胞类型分类...

    今天给大家介绍由美国宾夕法尼亚大学佩雷尔曼医学院生物统计学,流行病学和信息学系Jian Hu等人在<Nature Machine Intelligence>上发表了一篇名为"It ...

  4. 数据挖掘常用的方法(分类,回归、聚类、关联规则)

    原文出自:http://www.vsharing.com/k//2013-10/690272.html 在大数据时代,数据挖掘是最关键的工作.大数据的挖掘是从海量.不完全的.有噪声的.模糊的.随机的大 ...

  5. 大数据的常用算法(分类、回归分析、聚类、关联规则、神经网络方法、web数据挖掘)

    目录 (1)分类 (2)回归分析 (3)聚类 (4)关联规则 (5)神经网络方法 (6)Web数据挖掘 在大数据时代,数据挖掘是最关键的工作.大数据的挖掘是从海量.不完全的.有噪声的.模糊的.随机的大 ...

  6. k means聚类算法_一文读懂K-means聚类算法

    1.引言 什么是聚类?我们通常说,机器学习任务可以分为两类,一类是监督学习,一类是无监督学习.监督学习:训练集有明确标签,监督学习就是寻找问题(又称输入.特征.自变量)与标签(又称输出.目标.因变量) ...

  7. 笔记︱多种常见聚类模型以及分群质量评估(聚类注意事项、使用技巧)

    聚类分析在客户细分中极为重要.有三类比较常见的聚类模型,K-mean聚类.层次(系统)聚类.最大期望EM算法.在聚类模型建立过程中,一个比较关键的问题是如何评价聚类结果如何,会用一些指标来评价. 在后 ...

  8. matlab实现谱聚类法图像分割代码,一种基于谱聚类的图像分割方法与系统与流程...

    本发明是一种基于谱聚类的图像分割方法与系统,涉及聚类.机器学习和人工智能领域.特别涉及通过相关性将已经学习到的知识运用到图像分割中,并在此基础上构造性地改造谱聚类方法,从而达到快速精确地分割彩色图像的 ...

  9. dbscan和谱聚类_R 无监督聚类算法(1)K-means和层次聚类

    首先我们要解决几个问题 聚类算法主要包括哪些算法? 主要包括:K-means.DBSCAN.Density Peaks聚类(局部密度聚类).层次聚类.谱聚类. 什么是无监督学习? • 无监督学习也是相 ...

  10. DBSCAN聚类︱scikit-learn中一种基于密度的聚类方式

    文章目录 @[toc] 一.DBSCAN聚类概述 1.伪代码 2.优点: 3.缺点: 4.与其他聚类算法比较 二.sklearn中的DBSCAN聚类算法 1.主要函数介绍: 最重要的两个参数: 其他主 ...

最新文章

  1. android怎么搭建人脸库,OpenCV-2.4.6-android-sdk 人脸识别demo搭建
  2. LogStash 中字段的排除和数据的排除
  3. boosting_bagging
  4. Floyd-傻子也能看懂的弗洛伊德算法
  5. 软工作业6--用户体验(案例分析)
  6. 每天至少保证4个小时在学习知识
  7. latex使用记录3
  8. JMeter 做接口性能测试,YYDS!
  9. 关于ssh的一篇很好的文章
  10. Lync 小技巧-44-服务器问题影响了呼叫功能
  11. java自学一般要学多久?学会了有什么作用?
  12. 完全卸载VS2015_enterprise
  13. Maven整合SSM项目(七)
  14. NH7020固件网口分析与platoSDR固件对比
  15. C语言虚词怎么在程序里表示,文言虚词用法推断
  16. 东方博宜oj平台c 语言题库答案,东方博宜OJ
  17. linux命令里的xz是干嘛的,Ubuntu中的xz命令使用
  18. matlab 图片RGB颜色提取0-255版
  19. ZUCC_BB平台-Quiz B-3-5-答案
  20. 正则表达式替换某个字符

热门文章

  1. ubuntu11.04(unix 就可以了) 共享文件以及支持上传文件
  2. CSDN第一节课总结
  3. 绩效管理系统(Performance Management System)
  4. 电脑注册表怎么打开?
  5. c语言左移函数_corl_,crol(crol函数怎么左移)
  6. LaTeX 页眉和页脚
  7. Latex 只在首页添加页眉页脚 修改局部字体大小
  8. 数据结构-指针和结构体
  9. 缓存设置(失效时间)
  10. windows7 优化:readyboost总结