GSDMM 聚类收敛(短文本聚类)

6

我正在使用这个 GSDMM Python 实现来聚类一组文本消息的数据集。根据原始论文,GSDMM 收敛很快(大约 5 次迭代)。我也已经收敛到了一定数量的聚类,但在每次迭代中仍然有很多消息被转移,因此很多消息仍在更改它们所属的聚类。

我的输出结果看起来像:

In stage 0: transferred 9511 clusters with 150 clusters populated 
In stage 1: transferred 4974 clusters with 138 clusters populated 
In stage 2: transferred 2533 clusters with 90 clusters populated
….
In stage 34: transferred 1403 clusters with 47 clusters populated 
In stage 35: transferred 1410 clusters with 47 clusters populated 
In stage 36: transferred 1430 clusters with 48 clusters populated 
In stage 37: transferred 1463 clusters with 48 clusters populated 
In stage 38: transferred 1359 clusters with 48 clusters populated

在最初的论文中,图3显示了相同的模式,聚类数量几乎保持不变。

来自论文的图表

我无法确定他们的数据集中有多少消息仍在传输。我的理解是,这个数字应该尽可能小,在最好的情况下为零(因此每个消息都“找到”了正确的聚类)。因此,聚类数量可能会收敛,但这并不能说明算法/聚类的质量。我的理解是否正确?

还有可能是我的数据不足以获得适当的聚类。


1
是的,集群确实会收敛。在我的例子中,它们也会收敛到47-48个集群。但我想问的是传输消息的数量是否过多(在算法中称为“集群”)。你明白我这里的进一步解释吗? - simon
1
我有另一张图片。 "有N个集群"中的数字N对我来说没有改变,它等于K(主题超参数的数量)。只有“转移M个集群”中的数字M会发生变化(从文档数量(在我的情况下为26000)开始,以9000-10000的值结束)。你有任何想法为什么N在你的情况下会改变吗?你的超参数是什么(K,alpha,beta)?N在你的情况下是否收敛? - Ilya Palachev
1
我有大约10,000条消息,以 K=600 开始,收敛到 N=47-48 群集。我认为它不需要收敛到一个特定的数字,可能只是有一些消息适合于几个群集。您还可以在“TweetSet”图中看到这种行为,它会稍微移动一下。 经过长时间运行的网格搜索后,我的超参数为:alpha=0.01,beta=0.05。对于 K,我认为重要的是它足够大。 - simon
抱歉有些跑题,只是好奇,在网格搜索期间的标准是什么?您是否将主题连贯性作为质量指标进行计算或手动审查每个变体? - Ilya Palachev
我使用的GSDMM Python实现中有一个内置函数mgp.score,您可以查看算法在将输入文本分配给聚类时的确定程度。我使用算法对所有输入文档的确定程度的平均值来比较不同的超参数。这是我自己想出来的一种度量标准,因为我和你一样也遇到了相同的困难 :) 我还在帖子中讨论了类似的问题。 - simon
显示剩余8条评论
1个回答

1
经过对GSDMM算法功能的深入了解,我可以分享一些新信息。
以下是该算法的一些背景信息,当然这不是算法如何工作的完整描述:
• GSDMM是一种软聚类算法
• 将输入(例如消息)分配到群集下面的分布是分布(具有Dirichlet分布作为其先验的多项分布)
• “分数”度量标准显示输入属于群集的概率,基于多项分布,并且在所有群集上累加为1
因此,只要您没有非常清晰和易于分离的群集,就会有输入“属于”具有显着概率的几个群集,例如消息1对群集1的得分值为0.5,对群集2的得分值为0.4,对所有其他群集的得分值为0.1。如果存在这样的得分值的输入,则由于分配取决于多项式分布,它们有时会从一个群集跳到另一个群集。

我认为即使经过多次迭代,输入跳跃也是正常的。要衡量聚类的质量,您应该将输入分配给具有最高得分值的聚类,并且不应基于训练的最后一次迭代进行聚类。

另一个选择是略过跳跃较大或没有优秀聚类的输入,因为这些输入不适合聚类(可能是一些坏数据,当然具体情况而定)。


你要"留下那些变化不大的输入"吗?结果会很有趣。因此,如果你打算实现这个想法,如果能分享实现过程就太好了,因为你提到的GSDMM存储库似乎已经不受作者支持了。 - Ilya Palachev
1
我必须等待结果并会随时向您更新 :) - simon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接