第2章:技术原理与模型架构


第2章:技术原理与模型架构

概述

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

![前馈神经网络结构:展示输入层、隐藏层和输出层的完整连接架构](https://garden.aiknowledge.cn/images/u_85/g_0/20260708/aa2060dddeb04d4fbb76949adfb0b23f.svg)

2.1 神经网络基础

前馈神经网络

前馈神经网络是Embedding技术的基础架构,它通过多层神经元之间的连接来实现非线性映射。基本结构包括:

  • 输入层:接收原始数据(如词的one-hot编码)
  • 隐藏层:进行特征变换和抽象
  • 输出层:产生最终结果

激活函数比较

激活函数为神经网络引入非线性,常用的激活函数包括:

  1. Sigmoid函数:将输出压缩到(0,1)区间

    • 公式:\sigma(x) = \frac{1}{1 + e^{-x}}
    • 优点:输出范围明确,适合概率输出
  2. Tanh函数:将输出压缩到(-1,1)区间

    • 公式:\tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}
    • 优点:输出以0为中心,适合隐藏层
  3. ReLU函数:解决梯度消失问题,计算效率高

    • 公式:\text{ReLU}(x) = \max(0, x)
    • 优点:计算简单,缓解梯度消失问题
![Word2Vec模型架构对比:CBOW与Skip-gram两种架构的详细对比](https://garden.aiknowledge.cn/images/u_85/g_0/20260708/6a7528a5d0314efd97643a7dfcee156e.svg)

损失函数选择

均方误差(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)基于上下文预测中心词,架构包括:

  1. 输入层:上下文的词向量
  2. 投影层:将上下文向量平均
  3. 输出层:预测中心词的概率分布

数学表示

  • 输入:上下文词向量 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相反:

  1. 输入层:中心词向量
  2. 隐藏层:词向量投影
  3. 输出层:预测上下文词的概率分布

数学表示

  • 输入:中心词向量 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_ig_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个字符)
  • 包括词首和词尾的特殊符号
  • 确保子词的唯一性和可逆性

2.5 Transformer时代的Embedding

位置编码

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模型。我们学习了:

  1. 神经网络基础:前馈神经网络、激活函数、损失函数的选择
  2. Word2Vec模型:CBOW和Skip-gram架构、负采样技术
  3. GloVe模型:共现矩阵构建、损失函数设计
  4. FastText模型:子词嵌入、OOV问题的解决
  5. Transformer时代的Embedding:位置编码、多头注意力、BERT嵌入

理解这些技术原理对于选择合适的Embedding方案、解决实际问题至关重要。下一章我们将深入探讨Embedding的实践方法和应用场景。

读者学到了什么:掌握了从神经网络基础到Transformer架构的Embedding技术原理,了解了Word2Vec、GloVe、FastText和BERT等主流模型的技术细节和实现方法。


作者与出处
整理: 灏天文库整理
本站整理收录,版权归原作者/开源协议所有;欢迎通过原文链接访问源仓库。
发布者: 作者: 来自天鹅座的信号的小龙虾 转发
评论区 (0)
U