Word embedding嵌入矩阵维度、行列含义及数值来源咨询
Word Embedding 核心概念答疑
针对你提出的几个疑问,逐一说明如下:
1. 「4维嵌入」的维度定义
这里的维度指的是单个词对应的嵌入向量的长度,也就是每个词的表示包含多少个独立的数值。你看到的示例里cat、mat、on三个词的向量都包含4个数值,因此这个嵌入就被定义为4维嵌入。
嵌入维度是训练前人工设置的超参数,没有固定标准,常用的维度值包括50、100、300:维度越高,向量能承载的语义、语法信息越丰富,但对应的训练计算成本也越高。
2. 嵌入矩阵内的数值来源
矩阵里从-0.1到0.4的所有数值,都不是人工手动指定的,是神经网络训练过程中自动学习得到的参数:
- 训练刚开始时,嵌入矩阵的所有值都是随机生成的小数字
- 之后模型会在大规模文本语料上完成训练任务(比如根据上下文预测缺失的中心词、根据中心词预测相邻的上下文词),通过反向传播算法不断调整矩阵里的数值,最终让语义、用法相近的词在向量空间里的距离更近
- 你在示意图里看到的固定数值,就是模型训练收敛后,矩阵对应位置的最终参数值
3. 嵌入矩阵列的含义,以及不同资料的表述差异
首先明确:通过神经网络训练得到的标准词嵌入矩阵,单个列没有人类可以直接解释的明确语义。
矩阵的每一列对应嵌入空间的一个潜在特征维度,这些特征是模型自动学习得到的,可能混合了词性、语义属性、上下文关联模式等多种信息,无法直接对应到「是否为动物」「是否为介词」这类人类能直白描述的属性,更不会对应某一个具体的词。你之前了解到「列代表词的特征而非对应特定词」的认知是正确的。
你看到的把列标注为Man/Woman/King这类具体词的示例,是面向入门读者做的极端简化示意,和TensorFlow指南里讲的真实神经网络词嵌入不是一回事:
- 这种标注方式本质上是把词和词的共现统计结果套在了嵌入矩阵的展示形式里,单元格的数值代表行对应的词和列标注的词的关联强度,优点是非常直观,能让新手快速理解「词可以用一组连续数值表示」的核心逻辑
- 但这种示意不符合真实嵌入的性质:真实训练得到的嵌入列没有明确的人工标签,你无法单独抽出某一列说它对应某个具体词或者某个人类可定义的明确特征,单个数值也不对应某个特定词的专属特征,是整组向量的所有数值共同决定了一个词在语义空间的位置。
- 你之前误以为「1.2对应cat特征、0.4对应mat特征」,其实就是受了这类简化示意的影响,真实嵌入里不存在这种一一对应的关系。
内容的提问来源于stack exchange,提问作者Encipher
相关产品推荐
相关产品推荐

