乐闻世界logo
搜索文章和话题

NLP 中什么是词向量,常见的词向量方法有哪些?

2月18日 17:38

词向量是将词语映射到连续向量空间的技术,使计算机能够理解和处理词语的语义信息。词向量捕捉了词语之间的语义和语法关系,是现代 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:优化计算
  • 子采样:平衡词频

示例

shell
king - 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:多模态少样本学习
标签:NLP