tsne和word2vec之间的关系是什么?

3

据我所知,tsne是用于降低单词向量维度的。

Word2vec通过大量数据生成单词嵌入模型。

两者之间的关系是什么?

Word2vec是否在内部使用了tsne

(我使用的是GensimWord2vec)

1个回答

3
在内部,它们都使用梯度下降来达到其最终优化状态。两者都可以被视为降维操作。但是,word2vec不会在内部使用t-SNE(反之亦然)。
“t-SNE”(“t分布随机邻居嵌入”)通常将多维数据缩减为2或3个维度,以便绘制可视化图形。它涉及学习从原始维度到较少维度的映射,仍然使相似点彼此靠近。
word2vec获取许多文本示例,并学习一个浅层神经网络,该网络擅长于从附近的单词中预测单词。该神经网络的特定层的权重表示单个单词,然后成为学习的N维单词向量,N的值通常为100到600。
(有一种另外创建单词向量的方法称为GLoVE,它的工作方式类似于t-SNE,因为它直接从单词的高维共现矩阵进行训练,而不是从许多上下文共现示例进行训练。但它仍然不是t-SNE本身。)
您可能会针对100-400的目标维度运行t-SNE。但是,由于这种结果还不能产生漂亮的图形,因此t-SNE的“邻近性”维护并没有产生其通常预期的好处。
您可能会学习仅具有2或3个维度的word2vec(或GLoVE)向量,但是人们从单词向量中寻求的大多数有用的相似性/排列将在拥挤中丢失。在绘图中,您可能不会看到相关单词类别的强烈视觉“聚集”,因为t-SNE的特定高到低维度邻近性保持目标未被应用。

感谢您的回答。一个问题:在使用 Word2vec(大小为300,表示维度为300)并通过 t-SNE 减少其整个训练词向量的维数后,我能否可视化 Word2vec 的结果? - user3595632
是的,这很典型 - 使用word2vec生成具有所有通常/期望的正面特性的300d向量...然后使用t-SNE降至2d来(尝试)在视觉上呈现出300d数据中存在的一些聚类/相似关系。 - gojomo
但是有没有办法从Word2Vec模型中获取整个训练向量呢?我在Gensim教程网站(https://radimrehurek.com/gensim/models/word2vec.html)上查找了这个问题,但我认为在训练后没有获取整个向量的API。T_T - user3595632
不确定您所说的“整个训练向量”是什么意思。在model.wv.index2word中有每个已知单词的列表。您可以使用model.wv[word]获取每个向量。这些向量都在numpy数组model.wv.syn0中,顺序与index2word相同。为了真正理解可能性,并且由于这是Python /开源,整个模型都是可访问和可变的,最好的参考是源代码本身:https://github.com/RaRe-Technologies/gensim/blob/develop/gensim/models/word2vec.py - gojomo

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