当前位置: 首页 > news >正文

【NLP】 6. 词向量的可变性及其影响

词向量的可变性及其影响

1. 引言

词向量(word embeddings)是自然语言处理(NLP)中用于表示单词语义的核心技术。它们通过将单词映射到高维向量空间,使得相似的单词在空间中具有接近的表示。然而,即使使用相同的数据和模型,词向量的表示仍然可能发生变化,这种现象被称为词向量的可变性(variability of word embeddings)

2. 词向量可变性的来源

即使在以下因素保持不变的情况下:

  • 数据集:相同的文本语料库
  • 模型:相同的训练算法(如 Word2Vec、GloVe、FastText)
  • 学习方法:相同的超参数和优化方式
  • 推理方法:相同的计算方式

词向量仍可能有所不同。这种可变性主要来自:

  1. 随机初始化(Random Initialization)
    • 词向量在训练开始时的权重是随机初始化的,不同的初始化可能导致最终的词向量有所不同。
  2. 负采样(Negative Sampling)
    • Word2Vec 及类似模型在训练时使用负采样,这一过程涉及随机选择的负例,导致不同的训练可能生成不同的结果。
  3. 批处理顺序(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)=kNNk(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 解决方案

  1. 固定随机种子(Fix Random Seed)
    在模型训练时固定随机种子,以减少不同运行之间的随机性带来的影响。
  2. 对齐词向量(Procrustes Alignment)
    • 训练多个版本的词向量后,通过 Procrustes 变换对齐它们,以减少不同训练结果的偏差。
  3. 使用预训练模型(Pre-trained Embeddings)
    采用预训练的词向量(如 GloVe、FastText),避免因训练过程的变化而引入不稳定性。
  4. 降维分析(Dimensionality Reduction)
    通过 PCA、t-SNE 或 UMAP 观察词向量空间结构,确保相似单词的局部几何结构稳定。

同时,低频词更容易受影响

相关文章:

  • 基于llama.cpp的QwQ32B模型推理
  • 机试准备第18天
  • Netty基础—7.Netty实现消息推送服务二
  • windows版本的时序数据库TDengine安装以及可视化工具
  • 图论——广度优先搜索实现
  • adb常用的命令
  • centos 7误删/bash 拯救方法
  • 腾讯云MySQL数据库架构分析与使用场景
  • esp32s3文心一言/豆包(即火山引擎)大模型实现智能语音对话--流式语音识别
  • 【Function】Azure Function通过托管身份或访问令牌连接Azure SQL数据库
  • 浏览器好用的去广告插件和暗黑模式护眼插件
  • Ubuntu 配置 github 代理
  • 蓝桥杯备考----模拟算法 phone number
  • Hyperlane:解锁并发编程的未来
  • torch.argsorttorch.gather
  • 工程化与框架系列(36)--前端监控告警实践
  • 多任务学习与持续学习微调:深入探索大型语言模型的性能与适应性
  • L2-3 花非花,雾非雾
  • 从FFmpeg命令行到Rust:多场景实战指南
  • StarRocks SQL使用与MySql的差异及规范注意事项
  • 国务院任免国家工作人员:颜清辉任人社部副部长
  • 应急管理部派出工作组赴山西太原小区爆炸现场指导救援处置
  • 日菲同意扩大安全合作,外交部:反对任何在本地区拉帮结派的做法
  • 辽宁辽阳市白塔区一饭店火灾事故举行新闻发布会,现场为遇难者默哀
  • 铁路上海站今日预计发送旅客65.8万人次,同比增长超16%
  • 被算法重塑的世界,人与技术如何和谐共处