词向量是将词语映射到连续向量空间的技术,使计算机能够理解和处理词语的语义信息。词向量捕捉了词语之间的语义和语法关系,是现代 NLP 的基础。
词向量的基本概念
定义
- 将离散的词语表示为连续的实数向量
- 通常维度在 50-1000 之间
- 相似语义的词语在向量空间中距离较近
优势
- 捕捉语义相似性
- 降低维度,提高计算效率
- 支持向量运算
- 解决稀疏性问题
传统词向量方法
1. One-Hot 编码
原理
- 每个词用一个稀疏向量表示
- 只有一个位置为 1,其余为 0
- 向量维度等于词汇表大小
缺点
- 维度灾难:词汇表很大时向量维度极高
- 稀疏性:大部分元素为 0
- 无法捕捉语义关系
- 无法计算词语相似度
示例
shell词汇表:[我, 喜欢, 自然语言处理] 我: [1, 0, 0] 喜欢: [0, 1, 0] 自然语言处理: [0, 0, 1]
2. TF-IDF
原理
- TF(词频):词在文档中出现的频率
- IDF(逆文档频率):衡量词的重要性
- TF-IDF = TF × IDF
优点
- 考虑词的重要性
- 适用于信息检索
缺点
- 仍然是稀疏向量
- 无法捕捉语义
- 忽略词序信息
现代词向量方法
1. Word2Vec
Google 于 2013 年提出,包含两种架构:
CBOW(Continuous Bag-of-Words)
- 根据上下文预测中心词
- 速度快,适合常用词
- 对上下文窗口内的词求平均
Skip-gram
- 根据中心词预测上下文
- 对稀有词表现更好
- 计算量较大
训练技巧
- 负采样:加速训练
- 层次 softmax:优化计算
- 子采样:平衡词频
示例
shellking - man + woman ≈ queen
2. GloVe(Global Vectors for Word Representation)
Stanford 于 2014 年提出
原理
- 结合全局矩阵分解和局部上下文窗口
- 基于共现矩阵
- 最小化词向量点积与共现概率的差距
优点
- 利用全局统计信息
- 在相似度任务上表现优异
- 训练速度快
公式
shell最小化:∑(w_i · w_j + b_i + b_j - log X_ij)²
3. FastText
Facebook 于 2016 年提出
核心创新
- 基于子词(subword)的词向量
- 处理未登录词(OOV)
- 考虑字符级 n-gram
优点
- 处理形态变化丰富的语言
- 对拼写错误鲁棒
- 支持多语言
示例
shell"apple" 的子词: <ap, app, ppl, ple, le>
上下文相关词向量
1. ELMo(Embeddings from Language Models)
特点
- 双向 LSTM
- 根据上下文动态生成词向量
- 同一个词在不同上下文中有不同表示
优点
- 解决一词多义问题
- 捕捉复杂语义
缺点
- 计算成本高
- 无法并行训练
2. BERT(Bidirectional Encoder Representations from Transformers)
特点
- 基于 Transformer
- 深度双向上下文
- 预训练 + 微调范式
优势
- 强大的上下文理解能力
- 适用于各种 NLP 任务
- 可迁移学习
3. GPT(Generative Pre-trained Transformer)
特点
- 单向(从左到右)
- 自回归生成
- 大规模预训练
优势
- 强大的生成能力
- 少样本学习
词向量的应用
1. 语义相似度计算
- 余弦相似度
- 欧氏距离
- 曼哈顿距离
2. 文本分类
- 将句子表示为词向量的平均或加权
- 作为神经网络的输入
3. 命名实体识别
- 词向量作为特征
- 结合 CRF 等模型
4. 机器翻译
- 源语言和目标语言词向量对齐
- 改善翻译质量
5. 信息检索
- 文档和查询的向量表示
- 计算相关性
词向量的评估
内在评估(Intrinsic Evaluation)
词相似度任务
- 人工标注的词对相似度
- 计算词向量相似度与人工标注的相关性
词类比任务
- 测试向量运算能力
- 例如:king - man + woman = queen
常用数据集
- WordSim-353
- SimLex-999
- MEN
外在评估(Extrinsic Evaluation)
下游任务性能
- 文本分类
- 命名实体识别
- 情感分析
- 问答系统
实践建议
1. 选择合适的词向量
- 预训练词向量:使用在大规模语料上训练的向量
- 领域自适应:在领域语料上继续训练
- 上下文相关:BERT、GPT 等预训练模型
2. 维度选择
- 50-300 维:适合大多数任务
- 更高维度:可能提升性能但增加计算成本
- 实验验证:通过实验确定最优维度
3. 训练数据
- 大规模语料:维基百科、Common Crawl
- 领域语料:特定领域的文本
- 数据质量:清洗和预处理
4. 超参数调优
- 窗口大小:通常 5-10
- 最小词频:过滤低频词
- 负采样数:5-20
- 迭代次数:10-100
最新发展
1. 多语言词向量
- MUSE:多语言词向量对齐
- LASER:多语言句子嵌入
- XLM-R:多语言预训练模型
2. 对比学习
- SimCSE:基于对比学习的句子嵌入
- E5:文本嵌入模型
- BGE:中文嵌入模型
3. 大规模语言模型
- ChatGPT、GPT-4:强大的语言理解能力
- LLaMA:开源大模型
- ChatGLM:中文优化模型
4. 多模态嵌入
- CLIP:图像-文本对齐
- ALIGN:大规模视觉-语言模型
- Flamingo:多模态少样本学习