1. 词向量技术演进概述
在自然语言处理领域,词向量技术是革命性的突破。传统方法使用one-hot编码表示词汇,每个词被编码为一个维度等于词汇表大小的稀疏向量,其中只有对应词的位置为1,其余全为0。这种方法存在两个致命缺陷:维度灾难(vocabulary size过大时向量维度极高)和语义鸿沟(无法表达词与词之间的语义关系)。
分布式语义假设(Distributional Hypothesis)为解决这个问题提供了理论基础,该假设认为"一个词的含义可以由其上下文决定"。基于这一理念,词向量技术应运而生,将词语映射到低维稠密的实数向量空间中,使得语义相似的词在向量空间中距离相近。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Word2vec核心原理详解
2.1 Skip-gram模型架构
Word2vec包含两种模型架构:CBOW(Continuous Bag-of-Words)和Skip-gram。其中Skip-gram表现更优,其核心思想是通过中心词预测上下文词。模型训练过程如下:
- 初始化:为词汇表中每个词随机生成两个向量 - v_w(作为中心词时的向量)和u_w(作为上下文词时的向量)
- 滑动窗口:在语料库上滑动固定大小的窗口
- 预测任务:对每个中心词,预测其窗口内的上下文词
- 参数更新:通过反向传播调整向量参数
数学上,给定中心词c和上下文词o,预测概率通过softmax计算:
P(o|c) = exp(u_o^T v_c) / Σ_w exp(u_w^T v_c)
2.2 负采样优化技术
原始softmax计算需要对整个词汇表进行归一化,计算量巨大。负采样(Negative Sampling)将其转化为二分类问题:
- 正样本:真实出现的中心词-上下文词对
- 负样本:从噪声分布中随机采样的K个负例
目标函数变为:
J(θ) = -logσ(u_o^T v_c) - Σ_{k=1}^K logσ(-u_k^T v_c)
其中σ是sigmoid函数。负采样使训练效率提升数个数量级。
2.3 超参数调优经验
在实际应用中,我们发现以下调优策略效果显著:
- 窗口大小:一般取5-10,小窗口捕捉语法关系,大窗口捕捉语义关系
- 向量维度:通常50-300维,需平衡表达能力和计算成本
- 负样本数:一般5-20个
