【NLP】 6. 词向量的可变性及其影响
词向量的可变性及其影响
1. 引言
词向量(word embeddings)是自然语言处理(NLP)中用于表示单词语义的核心技术。它们通过将单词映射到高维向量空间,使得相似的单词在空间中具有接近的表示。然而,即使使用相同的数据和模型,词向量的表示仍然可能发生变化,这种现象被称为词向量的可变性(variability of word embeddings)。
2. 词向量可变性的来源
即使在以下因素保持不变的情况下:
- 数据集:相同的文本语料库
- 模型:相同的训练算法(如 Word2Vec、GloVe、FastText)
- 学习方法:相同的超参数和优化方式
- 推理方法:相同的计算方式
词向量仍可能有所不同。这种可变性主要来自:
- 随机初始化(Random Initialization)
- 词向量在训练开始时的权重是随机初始化的,不同的初始化可能导致最终的词向量有所不同。
- 负采样(Negative Sampling)
- Word2Vec 及类似模型在训练时使用负采样,这一过程涉及随机选择的负例,导致不同的训练可能生成不同的结果。
- 批处理顺序(Mini-batch Order)
- 在随机梯度下降(SGD)或 Adam 优化器中,数据的顺序会影响参数更新的路径,从而影响最终的词向量。
3. 如何衡量词向量的可变性
我们通常使用**最近邻一致性(Nearest Neighbor Consistency)**来评估同一单词在不同训练运行中的稳定性。
3.1 最近邻一致性
对于一个单词 w:
- 训练两个不同版本的词向量(V1 和 V2)。
- 对比在 V1 和 V2 中,w 的 k 近邻单词(top-k nearest neighbors)。
- 计算 V1 和 V2 之间的近邻重叠度。
公式:
Overlap
(
w
)
=
∣
N
N
k
(
w
,
V
1
)
∩
N
N
k
(
w
,
V
2
)
∣
k
\text{Overlap}(w) = \frac{|NN_k(w, V1) \cap NN_k(w, V2)|}{k}
Overlap(w)=k∣NNk(w,V1)∩NNk(w,V2)∣
其中:
-
N N k ( w , V 1 ) NN_k(w, V1) NNk(w,V1)
表示单词 w 在 V1 词向量中的前 k 个最近邻单词集合。
如果重叠度较高,则词向量表示较稳定;如果重叠度较低,则表示同一个单词在不同的训练过程中表现出了较大的变化。
3.2 余弦相似度变化
Sim ( w ) = cos ( v w V 1 , v w V 2 ) \text{Sim}(w) = \cos(\mathbf{v}_w^{V1}, \mathbf{v}_w^{V2}) Sim(w)=cos(vwV1,vwV2)
其中:
-
v w V 1 \mathbf{v}_w^{V1} vwV1
v w V 2 \mathbf{v}_w^{V2} vwV2
是单词 w 在两个训练版本中的词向量。
-
计算它们的余弦相似度,以衡量同一单词在两个不同训练版本中的相似程度。
4. 词向量可变性的影响
4.1 对 NLP 任务的影响
- 信息检索(Information Retrieval)
不稳定的词向量可能导致相似性搜索结果的不一致,影响文档排名和推荐系统。 - 机器翻译(Machine Translation)
词向量的变化可能影响翻译模型对单词之间关系的学习,导致翻译质量下降。 - 情感分析(Sentiment Analysis)
词向量的变化可能改变某些单词的情感极性,影响模型的预测结果。
4.2 解决方案
- 固定随机种子(Fix Random Seed)
在模型训练时固定随机种子,以减少不同运行之间的随机性带来的影响。 - 对齐词向量(Procrustes Alignment)
- 训练多个版本的词向量后,通过 Procrustes 变换对齐它们,以减少不同训练结果的偏差。
- 使用预训练模型(Pre-trained Embeddings)
采用预训练的词向量(如 GloVe、FastText),避免因训练过程的变化而引入不稳定性。 - 降维分析(Dimensionality Reduction)
通过 PCA、t-SNE 或 UMAP 观察词向量空间结构,确保相似单词的局部几何结构稳定。
同时,低频词更容易受影响