第2章:技术原理与模型架构
概述
本章深入探讨Embedding技术的核心原理和主流模型架构。从基础的神经网络到先进的预训练语言模型,我们将系统学习各种Embedding方法的技术细节、数学原理和实现特点。理解这些原理对于选择合适的Embedding方案、优化模型性能以及解决实际问题至关重要。

2.1 神经网络基础
前馈神经网络
前馈神经网络是Embedding技术的基础架构,它通过多层神经元之间的连接来实现非线性映射。基本结构包括:
- 输入层:接收原始数据(如词的one-hot编码)
- 隐藏层:进行特征变换和抽象
- 输出层:产生最终结果
激活函数比较
激活函数为神经网络引入非线性,常用的激活函数包括:
-
Sigmoid函数:将输出压缩到(0,1)区间
- 公式:\sigma(x) = \frac{1}{1 + e^{-x}}
- 优点:输出范围明确,适合概率输出
-
Tanh函数:将输出压缩到(-1,1)区间
- 公式:\tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}
- 优点:输出以0为中心,适合隐藏层
-
ReLU函数:解决梯度消失问题,计算效率高
- 公式:\text{ReLU}(x) = \max(0, x)
- 优点:计算简单,缓解梯度消失问题

损失函数选择
均方误差(MSE):
- 适用于回归问题
- 计算简单,对异常值敏感
- 公式:\text{MSE} = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2
交叉熵损失:
- 适用于分类问题
- 在概率预测中表现更好
- 与softmax函数配合使用效果最佳
- 公式:\text{CrossEntropy} = -\sum_{i=1}^{n}y_i\log(\hat{y}_i)
2.2 Word2Vec模型详解
Word2Vec是由Mikolov等人于2013年提出的经典词嵌入方法,包括两种主要架构:CBOW和Skip-gram。
CBOW架构
CBOW(Continuous Bag-of-Words)基于上下文预测中心词,架构包括:
- 输入层:上下文的词向量
- 投影层:将上下文向量平均
- 输出层:预测中心词的概率分布
数学表示:
- 输入:上下文词向量 c_1, c_2, ..., c_{2k}
- 投影:h = \frac{1}{2k}\sum_{i=1}^{2k}c_i
- 输出:p(w_o|h) = \text{softmax}(W_h h + b_o)
Skip-gram架构
Skip-gram基于中心词预测上下文,与CBOW相反:
- 输入层:中心词向量
- 隐藏层:词向量投影
- 输出层:预测上下文词的概率分布
数学表示:
- 输入:中心词向量 w_i
- 输出:对于每个上下文词 w_j,计算 p(w_j|w_i) = \text{softmax}(W_w w_i + b_j)
负采样实现
负采样通过随机采样负例来提高训练效率:
- 正样本:实际出现的词对
- 负样本:随机采用的非目标词
- 目标函数:\log\sigma(u^T_j v_i) + \sum_{k=1}^{K}\log\sigma(-u^T_{nk} v_i)
其中 K 是负样本数量,u^T_{nk} 是负样本的向量表示。
2.3 GloVe模型详解
GloVe(Global Vectors for Word Representation)结合了全局矩阵分解和局部上下文窗口的优点。
共现矩阵构建
GloVe首先构建共现统计矩阵:
- 定义:X_{ij} = 词 i 出现在词 j 上下文中的次数
- 加权:使用距离衰减函数 f(|i-j|)
- 归一化:考虑词频和共现频率
共现函数:
X_{ij} = \begin{cases} 1 & \text{如果词}j\text{在词}i\text{的窗口内} \\ 0 & \text{otherwise} \end{cases}
损失函数实现
GloVe使用加权最小二乘法作为损失函数:
J = \sum_{i,j=1}^{V} f(X_{ij}) (w_i^T g_j - \log X_{ij})^2
其中:
- f(X_{ij}) 是权重函数,对低频词给予更高权重
- w_i 和 g_j 是待学习的词向量
- V 是词汇表大小
2.4 FastText模型详解
FastText是Facebook开发的词嵌入模型,主要特点是通过子词处理OOV(Out-Of-Vocabulary)问题。
子词嵌入实现
FastText将词表示为子词的向量和:
- 子词提取:将词分解为n-gram
- 向量组合:w = \sum_{g \in \text{n-grams}(word)} v_g
- OOV处理:即使词未出现在训练语料中,也能通过子词获得表示
子词生成规则:
- 对于词"embedding":
- 2-grams: em, mb, be, dd, in, ng, gi, in, ng
- 3-grams: emb, mbe, bed, ddi, din, ing, gng, etc.
子词生成
子词生成遵循以下原则:
- 固定长度(通常3-5个字符)
- 包括词首和词尾的特殊符号
- 确保子词的唯一性和可逆性
位置编码
Transformer模型需要处理序列信息,位置编码为词向量添加位置信息:
PE_{(pos,2i)} = \sin(\frac{pos}{10000^{2i/d_{model}}})
PE_{(pos,2i+1)} = \cos(\frac{pos}{10000^{2i/d_{model}}})
其中:
- pos 是位置索引
- i 是维度索引
- d_{model} 是模型维度
多头注意力
多头注意力允许模型同时关注不同位置和不同表示子空间:
\text{MultiHead}(Q,K,V) = \text{Concat}(\text{head}_1, ..., \text{head}_h)W^O
其中每个head的计算为:
\text{head}_i = \text{Attention}(QW_i^Q, KW_i^K, VW_i^V)
BERT Embedding
BERT的Embedding包含三个部分:词嵌入、位置嵌入和段嵌入:
E_{input} = E_{token} + E_{position} + E_{segment}
其中:
- E_{token}:词嵌入
- E_{position}:位置嵌入
- E_{segment}:段嵌入(用于区分不同句子)
2.6 本章小结
本章详细介绍了Embedding技术的核心原理和主要模型架构,从基础的神经网络到先进的Transformer模型。我们学习了:
- 神经网络基础:前馈神经网络、激活函数、损失函数的选择
- Word2Vec模型:CBOW和Skip-gram架构、负采样技术
- GloVe模型:共现矩阵构建、损失函数设计
- FastText模型:子词嵌入、OOV问题的解决
- Transformer时代的Embedding:位置编码、多头注意力、BERT嵌入
理解这些技术原理对于选择合适的Embedding方案、解决实际问题至关重要。下一章我们将深入探讨Embedding的实践方法和应用场景。
读者学到了什么:掌握了从神经网络基础到Transformer架构的Embedding技术原理,了解了Word2Vec、GloVe、FastText和BERT等主流模型的技术细节和实现方法。