趋近智
词嵌入,例如Word2Vec或GloVe生成的词嵌入,将词表示为稠密向量,这些向量通常存在于数百维的空间中(例如,w∈R300)。尽管这些高维表示包含了丰富的语义信息,但其本质使我们人类无法直接观察。
我们如何才能直观地理解这些模型学习到的关系?我们如何验证预期相似的词语在嵌入空间中是否确实彼此靠近?
此时,降维技术就成为了不可或缺的工具。通过将高维词向量投影到二维或三维空间,我们可以创建散点图,帮助我们直观地检查学到的关联。为此,主成分分析(PCA)和t-分布随机邻域嵌入(t-SNE)是两种广泛使用的方法。
PCA是一种线性技术,它识别数据中能够捕捉到最大方差的方向(主成分)。它将原始高维向量转换到较低维空间,同时尽量保留最多的全局结构和方差。
设想将一个三维点云表示在二维纸张上。PCA会找到观察该点云的最佳“角度”,使得投影到纸上的点尽可能地分散,从而显示主要的变异轴。
尽管PCA在计算上高效且具有确定性(对于相同数据总是产生相同结果),但其对方差的侧重意味着它可能并非总能很好地保留原始高维空间中局部结构或相邻点之间的具体相似之处。
t-SNE是一种非线性降维技术,特别适合在低维空间(通常是2D或3D)中展示高维数据。与PCA不同,t-SNE明确专注于模拟点之间的相似性。它努力确保在高维空间中彼此接近的点在低维图中仍然保持接近,而相距较远的点则仍然相距较远。
t-SNE通常能产生更具说服力的可视化结果,展现数据内的群组和局部结构。如果Word2Vec学习到了有意义的关联,t-SNE通常能使这些关联变得明显,显示相关词语聚集在一起。
然而,t-SNE有一些需要注意的地方:
无论使用何种方法(PCA或t-SNE),目标都是将词向量投影到2D或3D空间,并将其绘制为点。然后我们可以用对应的词语标记这些点,并检查生成的散点图。
我们可能会看到什么?
假设我们已经训练好了嵌入,并选择了一小部分与国家、首都和王室相关的词语。在应用t-SNE来降低它们的向量维度(例如,从100维降到2维)后,我们可能会得到如下图所示的图表。
2D t-SNE可视化图,显示了语义聚类。王室术语(紫色)、欧洲首都(蓝色)和欧洲国家(青色)形成了不同的群组。
在这张图中,我们观察到与王室相关的词语(“国王”、“女王”、“王子”)聚集在一起。同样,首都(“巴黎”、“伦敦”、“柏林”)形成了另一个群组,而国家(“法国”、“英国”、“德国”、“西班牙”)形成了第三个群组。这种视觉上的分离证实了嵌入已捕获到训练数据中预期的一些语义相似性与区别。这样的可视化为词嵌入的质量提供了有益的反馈。它们有助于理解模型学到了什么,有时还能显示嵌入空间中意料之外的关联或问题。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造