♎
Limited AI
  • Machine Learning
    • Linear Model Cheating Sheet
    • Nonlinear Model Cheating Sheet
    • General Linear Model 1
    • General Linear Model 2
    • General Linear Model 3
    • Tree Based Methods
    • Tree Based Methods Supplement
    • XG,Cat,Light__Boosting
    • KNN&PCA
    • Model Performance
    • Model Evaluation
    • Code Practice
      • KNN
      • Decision Tree Python Code
    • Data and Feature Engineering
      • Handle Bias Data
      • Cold Start Problem
  • Deep Learning
    • Summary v2
    • Basic Neural Network
      • From Linear to Deep
      • Perceptron and Activation Function
      • NN network Details
      • Backpropagation Details
      • Gradient Vanishing vs Gradient Exploding
    • Basic CNN
      • Why CNN
      • Filter/ Convolution Kernel and Its Operation
      • Padding& Stride
      • Layers
      • Extra:From Fully Connected Layers to Convolutions
      • Extra: Multiple Input and Multiple Output Channels
    • Advance CNN
      • Convolutional Neural Networks(LeNet)
      • Deep Convolution Neural Networks(AlexNet)
      • Networks Using Blocks (VGG)
      • Network in Network(NiN)
      • Multi-Branch Networks(GoogLeNet&I mageNet)
      • Residual Networks(ResNet) and ResNeXt
      • Densely Connected Networks(DenseNet)
      • Batch Normalization
    • Basic RNN
      • Seq Model
      • Raw Text to Seq
      • Language Models
      • Recurrent Neural Networks(RNN)
      • Backpropagation Through Time
    • Advance RNN
      • Gated Recurrent Units(GRU)
      • Long Short-Term Memory(LSTM)
      • Bidirectional Recurrent Neural Networks(BRNN)
      • Encoder-Decoder Architecture
      • Seuqence to Sequence Learning(Seq2Seq)
    • Attention Mechanisms and Transformers
      • Queries, Keys, and Values
      • Attention is all you need
        • Attention and Kernel
        • Attention Scoring Functions
        • The Bahdanau Attention Mechanism
        • Multi-Head Attention
        • Self-Attention
        • Attention的实现
      • The Transformer Architecture
        • Extra Reading
        • 最短的最大路径长度
      • Large-Scaling Pretraning with Transformers
        • BERT vs OpenAI GPT vs ELMo
        • Decoder Model框架
        • Bert vs XLNet
        • T5& GPT& Bert比较
        • 编码器-解码器架构 vs GPT 模型
        • Encoder vs Decoder Reference
      • Transformers for Vision
      • Transformer for Multiomodal
    • NLP Pretraining
      • Word Embedding(word2vec)
        • Extra Reading
      • Approximate Training
      • Word Embedding with Global Vectors(GloVe)
        • Extra Reading
        • Supplement
      • Encoder(BERT)
        • BERT
        • Extra Reading
      • Decoder(GPT&XLNet&Lamma)
        • GPT
        • XLNet
          • XLNet架构
          • XLNet特点与其他比较
      • Encoder-Decoder(BART& T5)
        • BART
        • T5
  • GenAI
    • Introduction
      • GenAI Paper Must Read
      • GenAI六个阶段
    • Language Models Pre-training
      • Encoder-Decoder Architecture
      • Encoder Deep Dive
      • Decoder Deep Dive
      • Encoder VS Decoder
      • Attention Mechanism
      • Transformers
    • Example: Llama 3 8B架构
    • Fine-Tuning Generation Models
    • RAG and Adavance RAG
    • AI Agent
  • Statistics and Optimization
    • A/B testing
    • Sampling/ABtesting/GradientMethod
    • Gradient Decent Deep Dive
  • Machine Learning System Design
    • Extra Reading
    • Introduction
  • Responsible AI
    • AI Risk and Uncertainty
      • What is AI risk
      • General Intro for Uncertainty Quantification
      • Calibration
      • Conformal Prediction
        • Review the linear regression
        • Exchangeability
        • Split Conformal Prediction
        • Conformalized Quantile Regression
        • Beyond marginal coverage
        • Split Conformal Classification
        • Full Conformal Coverage
        • Cross-Validation +
        • Conformal Histgram Regression
    • xAI
      • SHAP value
  • Extra Research
    • Paper Reading
    • Reference
Powered by GitBook
On this page
  • Negative Sampling
  • Hierarchical Softmax
  • 下采样
  1. Deep Learning
  2. NLP Pretraining

Approximate Training

PreviousExtra ReadingNextWord Embedding with Global Vectors(GloVe)

Last updated 8 months ago

跳元模型的主要思想是使用softmax运算来计算基于给定的中心词wcw_cwc​生成上下文字w0w_0w0​的条件概率。

  • 由于softmax操作的性质,上下文词可以是词表VVV中的任意项,这个包含与整个词表大小一样多的项的求和。因此,在跳元模型的梯度计算和连续词袋模型的梯度计算都包含求和。

  • 不幸的是,在一个词典上(通常有几十万或数百万个单词)求和的梯度的计算成本是巨大的!

为了降低上述计算复杂度,本节将介绍两种近似训练方法:负采样和分层softmax。由于跳元模型和连续词袋模型的相似性,我们将以跳元模型为例来描述这两种近似训练方法。

Negative Sampling

负采样修改了原目标函数。给定中心词wcw_cwc​的上下文窗口,任意上下文词wow_owo​来自该上下文窗口的被认为是由下式建模概率的事件:

P(D=1∣wc,wo)=σ(uo⊤vc),P(D = 1 \mid w_c, w_o) = \sigma(\mathbf{u}_o^\top \mathbf{v}_c),P(D=1∣wc​,wo​)=σ(uo⊤​vc​),

其中σ\sigmaσ使用了sigmoid激活函数的定义:

σ(x)=11+exp⁡(−x).\sigma(x) = \frac{1}{1 + \exp(-x)}. σ(x)=1+exp(−x)1​.

让我们从最大化文本序列中所有这些事件的联合概率开始训练词嵌入。具体而言,给定长度为$T$的文本序列,以w(t)w^{(t)}w(t)表示同步ttt的词,并使上下文窗口为mmm,考虑最大化联合概率:

∏t=1T∏−m≤j≤m,j≠0P(D=1∣w(t),w(t+j)). \prod_{t=1}^{T} \prod_{-m \leq j \leq m, j \neq 0} P(D = 1 \mid w^{(t)}, w^{(t+j)}). ∏t=1T​∏−m≤j≤m,j=0​P(D=1∣w(t),w(t+j)).

然而,只考虑那些正样本的事件。仅当所有词向量都等于无穷大时,这其中的联合概率才最大化为1。当然,这样的结果毫无意义。为了使目标函数更有意义,负采样添加从预定分布中采样的负样本。

用SSS表示上下文词wow_owo​来自中心词wcw_cwc​的上下文窗口的事件。对于这个涉及wow_owo​的事件,从预定义分布P(w)P(w)P(w)中采样KKK个不是来自这个上下文窗口噪声词。

用NkN_kNk​表示噪声词wkw_kwk​(k=1,…,Kk=1,\dots,Kk=1,…,K)不是来自wow_owo​的上下文窗口的事件。假设正例和负例S,N1,…,NKS, N_1,\dots,N_KS,N1​,…,NK​的这些事件是相互独立的。

负采样将(14.2.3)中的联合概率(仅涉及正例)重写为:

Hierarchical Softmax

下采样

文本数据通常有“the”“a”和“in”等高频词:它们在非常大的语料库中甚至可能出现数十亿次。然而,这些词经常在上下文窗口中与许多不同的词共同出现,提供的有用信息很少。

例如,考虑上下文窗口中的词“chip”:直观地说,它与低频单词“intel”的共现比与高频单词“a”的共现在训练中更有用。

∏t=1T∏−m≤j≤m,j≠0P(w(t+j)∣w(t)), \prod_{t=1}^{T} \prod_{-m \leq j \leq m, j \neq 0} P(w^{(t+j)} \mid w^{(t)}), ∏t=1T​∏−m≤j≤m,j=0​P(w(t+j)∣w(t)),

通过事件S,N1,…,NKS, N_1,\dots,N_KS,N1​,…,NK​近似条件概率:

P(w(t+j)∣w(t))=P(D=1∣w(t),w(t+j))∏k=1,wk∼P(w)KP(D=0∣w(t),wk). P(w^{(t+j)} \mid w^{(t)}) = P(D = 1 \mid w^{(t)}, w^{(t+j)}) \prod_{k=1, w_k \sim P(w)}^{K} P(D = 0 \mid w^{(t)}, w_k). P(w(t+j)∣w(t))=P(D=1∣w(t),w(t+j))∏k=1,wk​∼P(w)K​P(D=0∣w(t),wk​).

分别用iti_tit​和hkh_khk​表示词w(t)w^{(t)}w(t)和噪声词wkw_kwk​在文本序列中的同步处的索引。(14.2.5)中关于条件概率的对数损失为:

−log⁡P(w(t+j)∣w(t))=−log⁡P(D=1∣w(t),w(t+j))−∑k=1,wk∼P(w)Klog⁡P(D=0∣w(t),wk)-\log P(w^{(t+j)} \mid w^{(t)}) = -\log P(D = 1 \mid w^{(t)}, w^{(t+j)}) - \sum_{k=1, w_k \sim P(w)}^{K} \log P(D = 0 \mid w^{(t)}, w_k) −logP(w(t+j)∣w(t))=−logP(D=1∣w(t),w(t+j))−∑k=1,wk​∼P(w)K​logP(D=0∣w(t),wk​)

=−log⁡σ(ut+j⊤vit)−∑k=1,wk∼P(w)Klog⁡(1−σ(uhk⊤vit))= -\log \sigma(\mathbf{u}{t+j}^\top \mathbf{v}{i_t}) - \sum_{k=1, w_k \sim P(w)}^{K} \log \left( 1 - \sigma(\mathbf{u}{h_k}^\top \mathbf{v}{i_t}) \right)=−logσ(ut+j⊤vit​)−∑k=1,wk​∼P(w)K​log(1−σ(uhk​⊤vit​))

=−log⁡σ(ut+j⊤vit)−∑k=1,wk∼P(w)Klog⁡σ(−uhk⊤vit). = -\log \sigma(\mathbf{u}{t+j}^\top \mathbf{v}{i_t}) - \sum_{k=1, w_k \sim P(w)}^{K} \log \sigma(-\mathbf{u}{h_k}^\top \mathbf{v}{i_t}).=−logσ(ut+j⊤vit​)−∑k=1,wk​∼P(w)K​logσ(−uhk​⊤vit​).

我们可以看到,现在每个训练步的梯度计算成本与词表大小无关,而是线性依赖于KKK。当将超参数$K$设置为较小的值时,在负采样的每个训练步处的梯度的计算成本较小。

作为另一种近似训练方法,层序Softmax(hierarchical softmax)使用二叉树(图14.2.1中说明的数据结构),其中树的每个叶节点表示词表VVV中的一个词。

用L(w)L(w)L(w)表示二叉树中表示字www的从根节点到叶节点的路径上的节点数(包括两端)。设n(w,j)n(w, j)n(w,j)为该路径上的第jjjth节点,其上下文字向量为un(w,j)\mathbf{u}_{n(w,j)}un(w,j)​。例如,图14.2.1中的L(w3)=4L(w_3) = 4L(w3​)=4。分层softmax将(14.1.4)中的条件概率近似为

P(wo∣wc)=∏j=1L(wo)−1σ([n(wo,j+1)=leftChild(n(wo,j))]⋅un(wo,j)⊤vc),P(w_o \mid w_c) = \prod_{j=1}^{L(w_o)-1} \sigma\left(\left[n(w_o, j+1) = \text{leftChild}(n(w_o,j))\right] \cdot \mathbf{u}_{n(w_o,j)}^\top \mathbf{v}_c\right), P(wo​∣wc​)=∏j=1L(wo​)−1​σ([n(wo​,j+1)=leftChild(n(wo​,j))]⋅un(wo​,j)⊤​vc​),

其中函数σ\sigmaσ在(14.2.2)中定义,leftChild(n)\text{leftChild}(n)leftChild(n)是节点nnn的左子节点:如果xxx为真,⟦x⟧=1\llbracket x \rrbracket = 1[[x]]=1;否则⟦x⟧=−1\llbracket x \rrbracket = -1[[x]]=−1。

为了说明,让我们计算图14.2.1中给定词w3w_3w3​生成词w3w_3w3​的条件概率。这需要wcw_cwc​的词向量vc\mathbf{v}_cvc​和从根到w3w_3w3​的路径(图14.2.1中加粗的路径)上的非叶节点向量之间的点积,该路径依次向左、向右和向左遍历:

P(w3∣wc)=σ(un(w3,1)⊤vc)⋅σ(−un(w3,2)⊤vc)⋅σ(un(w3,3)⊤vc).P(w_3 \mid w_c) = \sigma(\mathbf{u}_{n(w_3,1)}^\top \mathbf{v}c) \cdot \sigma(-\mathbf{u}_{n(w_3,2)}^\top \mathbf{v}c) \cdot \sigma(\mathbf{u}_{n(w_3,3)}^\top \mathbf{v}_c). P(w3​∣wc​)=σ(un(w3​,1)⊤​vc)⋅σ(−un(w3​,2)⊤​vc)⋅σ(un(w3​,3)⊤​vc​).

由于σ(x)+σ(−x)=1\sigma(x) + \sigma(-x) = 1σ(x)+σ(−x)=1,它认为基于任意词wcw_cwc​生成词表VVV中所有词的条件概率总和为1:

∑w∈VP(w∣wc)=1. \sum_{w \in V} P(w \mid w_c) = 1. ∑w∈V​P(w∣wc​)=1.

幸运的是,由于二叉树结构,L(wo)−1L(w_o) - 1L(wo​)−1大约与O(log⁡2∣V∣)O(\log_2 |V|)O(log2​∣V∣)是一个数量级。当词表大小∣V∣|V|∣V∣很大时,与没有近似训练的相比,使用分层softmax的每个训练步的计算代价显著降低。

此外,大量(高频)单词的训练速度很慢。因此,当训练词嵌入模型时,可以对高频单词进行下采样 (Mikolov et al., 2013)。具体地说,数据集中每个词wiw_iwi​将有概率地被丢弃:

P(wi)=max⁡(1−tf(wi),0), P(w_i) = \max \left( 1 - \sqrt{\frac{t}{f(w_i)}}, 0 \right), P(wi​)=max(1−f(wi​)t​​,0),

其中f(wi)f(w_i)f(wi​)是wiw_iwi​的词数与数据集中的总词数的比率,常量ttt是超参数(在实验中为10−410^{-4}10−4)。我们可以看到,只有当相对比率f(wi)>tf(w_i) > tf(wi​)>t时,(高频)词wiw_iwi​才能被丢弃,且该词的相对比率越高,被丢弃的概率就越大。