1. 词向量生成的基本原理与流程
词向量(Word Embedding)作为自然语言处理中的基础技术,其核心作用是将离散的文本符号转化为连续的数值向量。这一过程本质上是通过神经网络模型学习词汇在上下文中的分布式表示。从技术实现角度看,词向量生成确实存在模型内部与外部两种实现路径,但二者的边界在Transformer架构普及后变得逐渐模糊。
1.1 传统词向量生成方式
在预训练语言模型(PLM)兴起前,词向量通常通过独立模型生成:
- Word2Vec:通过浅层神经网络(CBOW/Skip-gram)学习词向量
- GloVe:基于全局词共现统计的矩阵分解方法
- FastText:引入子词信息改进OOV(未登录词)处理
这些方法生成的词向量作为静态特征(Static Embedding)存在明显局限:
- 无法处理一词多义(Polysemy)
- 缺乏上下文敏感性
- 需要额外的训练流程
技术细节:Word2Vec的Skip-gram模型通过最大化对数似然函数学习词向量:
$$ \sum_{(w,c)\in D} \log p(c|w) = \sum_{(w,c)\in D} \left[ \log \sigma(v_c \cdot v_w) + \sum_{k=1}^K \mathbb{E}{c_N \sim P_n}[\log \sigma(-v \cdot v_w)] \right] $$
1.2 现代大语言模型中的词向量
Transformer架构的普及改变了词向量的生成范式:
- 输入嵌入层(Input Embedding Layer):
- 仍保留传统的词向量查找表(Embedding Table)
- 但会与位置编码(Positional Encoding)结合
- 上下文编码过程:
- 通过自注意力机制动态调整词向量表示
- 最终输出的是融合了全局上下文的动态向量
python复制# 典型Transformer的词向量处理流程(PyTorch示例)
class TransformerEmbedding(nn.Module):
def __init__(self, vocab_size, d_model):
