词嵌入:Word2Vec 到 Embedding
词嵌入把离散的符号变成连续向量,使「国王减男人加女人近似女王」这类语义运算成为可能。它把语言变成模型可计算的对象,是 NLP 从特征工程走向表示学习的转折。
Word2Vec 思路
Word2Vec 有两个训练范式:CBOW 用上下文预测中心词,Skip-gram 用中心词预测上下文。它假设上下文相近的词语义相近,在大规模语料上训练出低维向量。虽简单,却捕获了丰富语法与语义关系。
from gensim.models import Word2Vec
model = Word2Vec(sentences, vector_size=100, window=5, min_count=1)
vec = model.wv["king"]
到 Embedding 层
现代神经网络多用可学习的 Embedding 层,把词 ID 查表映射为向量,随任务端到端训练。它等价于一个仅查表、无偏置的全连接首层,是 Transformer、RNN 的标准输入入口。
import torch.nn as nn
emb = nn.Embedding(num_embeddings=10000, embedding_dim=256)
x = emb(torch.tensor([42, 7, 999])) # 词 ID 到向量
注意点
预训练词向量可迁移,但会冻结旧语料的语义;下游任务再训练的 Embedding 更贴合当前数据。未登录词需要特殊标记或子词(如 BPE)处理。
小结
词嵌入用稠密向量表达词义,Word2Vec 是经典无监督范式,Embedding 层则把查表变成可训练模块。二者把符号变成几何,是 NLP 表示学习的起点。
参考与延伸阅读
- Mikolov 等 2013 Word2Vec 论文。已核验。https://arxiv.org/abs/1301.3781
- PyTorch Embedding 文档。已核验。https://pytorch.org/docs/stable/generated/torch.nn.Embedding.html
本文累计阅读 — 次