使用 t-SNE 跟踪词向量嵌入模型的进度。陷阱?

数据挖掘 深度学习 可视化 word2vec 特纳
2022-02-19 17:56:22

我一直在大量文本上训练 word2vec/doc2vec 模型。我最近偶然发现了t-SNE包,发现它非常适合在高维数据中寻找隐藏结构。

t-SNE 是否可以用作跟踪像这样的硬机器学习任务的进度的一种方式——模型的理解从难以理解的废话变成具有隐藏结构的东西?

我已经在 t-SNE 上看到了 MNIST 数据集的示例,其中所有单独的数字彼此很好地聚集在一起。(如本答案所述) 在此处输入图像描述

随着我增加 doc2vec 模型中的向量数量和训练集的大小,我开始在 t-SNE 图中看到聚集(如果你眯着眼睛)。到目前为止,这些集群主要与措辞非常相似的帖子相关联(一个集群主要是“早上好/晚上好!”推文)。(图片是用perplexity 400生成的)

在此处输入图像描述

随着模型的改进,我可以期望看到多少额外的结块?这是否表明该模型实际上正在改进和学习单词/短语之间的更深层次的联系?或者这些 t-SNE 图是否已经形成了它们将一直采用的形式?

编辑:我已经意识到明显缺乏聚集可能是由于数据本身。MNIST 清晰地分离出来,因为通常没有奇怪的字形看起来像是数字之间的中间突变。我的数据集(推特情绪,160 万条推文)由于缺少更好的词而充满了无法分类的胡言乱语,而且情节中心的同质点森林似乎完全有可能代表这类推文。

2个回答

T-SNE 对于在低维空间中可视化高维数据非常有用。然而,t-SNE 可能有几个陷阱,包括比较集群大小。t-sne 算法试图通过扩展密集簇和收缩稀疏簇来平衡簇大小。因此,直接比较不同运行的集群并不简单。

如何有效地使用 t-SNE ”更详细地介绍了使用该技术的常见缺陷。

tSNE 与模型或分类无关,它只是二维图中高维数据点的投影,仅此而已,但它只是给你一个提示,如果团块分离得很好,那么你的分类器会做得更好,但并不总是如此,因为每个分类器模型都有不同的优化技术和数学公式,例如从决策树到神经网络,然而,这是另一回事,它们可能会得出相同的解决方案。
因为最后每个分类器都必须做一件事,画一条线或一个超平面来分隔不同类别的数据点。