♎
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
  • 带全局语料统计的跳元模型
  • GloVe模型
  • 从条件概率比值理解GloVe模型
  1. Deep Learning
  2. NLP Pretraining
  3. Word Embedding with Global Vectors(GloVe)

Extra Reading

上下文窗口的词共现可以携带丰富的语义信息。

  • 例如,在一个大型语料库中,“固体”比“气体”更有可能与“冰”共现,但“气体”一词与“蒸汽”的共现频率可能比“冰”出现的频率更高。

  • 此外,可以预先计算此类共现的全局预料库统计数据:这可提供训练效率

  • 为了利用整个语料库中的统计信息进行词嵌入,让我们首先的跳远模型,但是使用全局预料库统计(如共现计数)来解释它

带全局语料统计的跳元模型

用qijq_{ij}qij​表示词wjw_jwj​的条件概率P(wj∣wi)P(w_j \mid w_i)P(wj​∣wi​),在跳元模型中给定词wiw_iwi​,我们有:

qij=exp⁡(uj⊤vi)∑k∈Vexp⁡(uk⊤vi),q_{ij} = \frac{\exp(\mathbf{u}_j^\top \mathbf{v}i)}{\sum{k \in V} \exp(\mathbf{u}_k^\top \mathbf{v}_i)}, qij​=∑k∈Vexp(uk⊤​vi​)exp(uj⊤​vi)​,

其中,对于任意索引i,ji,ji,j,向量vi\mathbf{v}_ivi​和uj\mathbf{u}_juj​分别表示词wiw_iwi​作为中心词和词wjw_jwj​作为上下文词,且V=0,1,…,∣V∣−1V = {0, 1, \dots, |V| - 1}V=0,1,…,∣V∣−1是词表的索引集。

  • 考虑词wiw_iwi​可能在语料库中出现多次。在整个语料库中,所有以wjw_jwj​为中心词的上下文词形成一个词索引的多重集CiC_iCi​,该索引允许同一元素的多个实例。对于任何元素,其实例数为其重数。

  • 举例说明,假设词wiw_iwi​在语料库中出现两次,并且在两个上下文窗口中以wjw_jwj​为中心词的上下文词索引是{k,j,m,k}\{k,j,m,k\}{k,j,m,k}和 {k,l,k,j} \{k,l,k,j\} {k,l,k,j}。

  • 因此,多重集Ci={j,j,k,k,k,k,l,m}C_i = \{j, j, k, k, k, k, l, m\}Ci​={j,j,k,k,k,k,l,m},其中元素j,k,l,mj,k,l,mj,k,l,m的重数分别为2, 4, 1, 1。

现在,让我们将多重集CiC_iCi​中的元素的重数表示为xijx_{ij}xij​。

  • 这是词wjw_jwj​(作为上下文词)和词wiw_iwi​(作为中心词)在整个语料库的同一上下文窗口中的全局共现计数。

  • 使用这样的全局语料库统计,跳元模型的损失函数等价于:−∑i∈V∑j∈Vxijlog⁡qij.-\sum_{i \in V} \sum_{j \in V} x_{ij} \log q_{ij}. −∑i∈V​∑j∈V​xij​logqij​.

  • 我们用xix_ixi​表示上下文窗口中的所有上下文词的数量,其中wiw_iwi​作为它们的中心词出现,这相当于∣Ci∣|C_i| ∣Ci​∣。设pijp_{ij}pij​为用于生成上下文词wjw_jwj​的条件概率xij/xix_{ij}/x_ixij​/xi​。

  • 给定中心词wiw_iwi​,前公式可以重写为:−∑i∈Vxi∑j∈Vpijlog⁡qij.-\sum_{i \in V} x_i \sum_{j \in V} p_{ij} \log q_{ij}. −∑i∈V​xi​∑j∈V​pij​logqij​.其中,∑j∈Vpijlog⁡qij\sum_{j \in V} p_{ij} \log q_{ij}∑j∈V​pij​logqij​计算全局语料统计中的条件分布pijp_{ij}pij​和模型预测的条件分布qijq_{ij}qij​的交叉熵。如上所述,这一损失也按xix_ixi​加权。其中最小化损失将使预测的条件分布接近全局语料统计中的条件分布。

虽然交叉熵损失函数通常用于测量概率分布之间的距离,但在这里可能不是一个好的选择。

  • 一方面,正如我们在近似训练中提到的,规范qijq_{ij}qij​的优化存在于整个词表的求和,这在计算上可能非常昂贵。

  • 另一方面,来自大型语料库的大量罕见事件往往被交叉熵损失摊薄,从而低估了对多的频次。

GloVe模型

有鉴于此,GloVe 模型基于平方损失 (Pennington et al., 2014) 对跳元模型做了三个修改:

  1. 使用变量 pij′=xijp^{'}_{ij} = x_{ij}pij′​=xij​ 和 qij=exp⁡(uj⊤vi)q_{ij} = \exp(\mathbf{u}j^\top \mathbf{v}i)qij​=exp(uj⊤vi) 而非概率分布,并取两者的对数。所以平方损失项是log⁡p′ij−log⁡qij)2=(uj⊤vi−log⁡xij)2\log p'{ij} - \log q{ij})^2 = \left( \mathbf{u}_j^\top \mathbf{v}i - \log x{ij} \right)^2logp′ij−logqij)2=(uj⊤​vi−logxij)2

  2. 为每个词 wiw_iwi​ 添加两个标量模型参数:中心词偏置 bib_ibi​ 和上下文词偏置 cic_ici​。

  3. 用权重函数 h(xij)h(x_{ij})h(xij​) 替换每个损失项的权重,其中 h(x)h(x)h(x) 在 [0,1][0, 1][0,1] 的间隔内递增。

整合代码,训练 GloVe 是为了尽量降低以下损失函数:

∑i∈V∑j∈Vh(xij)(uj⊤vi+bi+cj−log⁡xij)2.\sum_{i \in V} \sum_{j \in V} h(x_{ij})\left( \mathbf{u}_j^\top \mathbf{v}i + b_i + c_j - \log x_{ij} \right)^2.∑i∈V​∑j∈V​h(xij​)(uj⊤​vi+bi​+cj​−logxij​)2.

对于权重函数,建议的选择是:

  • 当 x<cx < cx<c (例如 c=100c = 100c=100) 时,h(x)=(x/c)αh(x) = (x/c)^\alphah(x)=(x/c)α (例如 α=0.75\alpha = 0.75α=0.75);否则 h(x)=1h(x) = 1h(x)=1。在这种情况下,由于 h(0)=0h(0) = 0h(0)=0,为了提高计算效率,可以省略任意 xij=0x_{ij} = 0xij​=0 的平方损失项。例如,当使用小批量随机梯度下降训练时,在每次迭代中,我们随机抽样一小批量非零的 xijx_{ij}xij​ 来计算梯度并更新模型参数。注意,这些非零的 xijx_{ij}xij​ 是预先计算的全局语料库统计数据;因此,该模型 GloVe 被称为全局向量。

  • 应该强调的是,当词 wiw_iwi​ 出现在词 wjw_jwj​ 的上下文窗口时,词 wjw_jwj​ 也出现在词 wiw_iwi​ 的上下文窗口。因此,xij=xjix_{ij} = x_{ji}xij​=xji​。与拟合非对称条件概率 pijp_{ij}pij​ 的 word2vec 不同,GloVe 拟合对称概率 log⁡xij\log x_{ij}logxij​。因此,在 GloVe 模型中,任意词的中心向量和上下文向量在数学上是等价的。

  • 但在实际应用中,由于初始化值不同,同一个词经过训练后,在这两个向量中可能得到不同的值:GloVe 将它们相加作为输出向量。

从条件概率比值理解GloVe模型

我们也可以从另一个角度来理解GloVe模型。设 pij=P(wj∣wi)p_{ij} = P(w_j \mid w_i)pij​=P(wj​∣wi​) 为生成上下文词 wjw_jwj​ 的条件概率,给定 wiw_iwi​ 作为语料库中的中心词。tab_glove 根据大量语料库的统计数据,列出了给定单词 “ice” 和 “steam” 的共现概率及其比值。

大型语料库中的词-词共现概率及其比值(根据 (Pennington et al., 2014) 中的表1改编)

从 中, 我们可以观察到以下几点:

  • 对于与 “ice” 相关但与 “steam” 无关的单词 wkw_kwk​,例如 wk=solidw_k = \text{solid}wk​=solid,我们预计会有更大的共现概率比值, 例如 8.9%。

  • 对于与 “steam” 相关但与 “ice” 无关的单词 wkw_kwk​,例如 wk=gasw_k = \text{gas}wk​=gas,我们预计较小的共现概率比值, 例如 0.85%。

  • 对于同时与 “ice” 和 “steam” 相关的单词 wkw_kwk​,例如 wk=waterw_k = \text{water}wk​=water,我们预计其共现概率的比值接近 1, 例如 1.36。

  • 对于与 “ice” 和 “steam” 都不相关的单词 wkw_k wk​,例如 wk=fashionw_k = \text{fashion}wk​=fashion,我们预计其共现概率的比值接近 1, 例如 0.96。

由此可见, 共现概率的比值能够直观地表达词与词之间的关系。因此, 我们可以设计三个词向量的函数来拟合这个比值。对于共现概率 pij/pikp_{ij} / p_{ik}pij​/pik​ 的比值,其中 wiw_iwi​ 是中心词, wjw_jwj​ 和 wkw_kwk​ 是上下文词, 我们希望使用某个函数 fff 来拟合该比值:f(uj,uk,vi)≈pijpikf(\mathbf{u}_j, \mathbf{u}_k, \mathbf{v}_i) \approx \frac{p_{ij}}{p_{ik}}f(uj​,uk​,vi​)≈pik​pij​​

在 fff 的许多可能的设计中, 我们只在以下几点中选择了一个合理的选择。因为共现概率的比值是标量, 所以我们要求 fff 是标量函数, 例如

f(uj,uk,vi)=f((uj−uk)⊤vi)f(\mathbf{u}_j, \mathbf{u}_k, \mathbf{v}_i) = f\left( (\mathbf{u}_j - \mathbf{u}_k)^\top \mathbf{v}_i \right)f(uj​,uk​,vi​)=f((uj​−uk​)⊤vi​)

在 (14.5.5) 中交换词索引 jjj 和 kkk, 它必须保持 f(x)f(−x)=1f(x) f(-x) = 1f(x)f(−x)=1, 所以一种可能性是 f(x)=exp⁡(x)f(x) = \exp(x)f(x)=exp(x), 即:

f(uj,uk,vi)=exp⁡(uj⊤vi)exp⁡(uk⊤vi)≈pijpikf(\mathbf{u}_j, \mathbf{u}_k, \mathbf{v}_i) = \frac{\exp\left( \mathbf{u}_j^\top \mathbf{v}_i \right)}{\exp\left( \mathbf{u}_k^\top \mathbf{v}_i \right)} \approx \frac{p_{ij}}{p_{ik}}f(uj​,uk​,vi​)=exp(uk⊤​vi​)exp(uj⊤​vi​)​≈pik​pij​​

现在让我们选择 exp⁡(uj⊤vi)≈αpij\exp\left( \mathbf{u}_j^\top \mathbf{v}_i \right) \approx \alpha p_{ij} exp(uj⊤​vi​)≈αpij​,其中α\alphaα是常数。将 pij=xij/xip_{ij} = x_{ij} / x_i pij​=xij​/xi​ 代入, 取两边的对数得到

uj⊤vi≈log⁡α+log⁡xij−log⁡xi\mathbf{u}_j^\top \mathbf{v}_i \approx \log \alpha + \log x_{ij} - \log x_iuj⊤​vi​≈logα+logxij​−logxi​

我们可以使用附加的偏置项来拟合 −log⁡α+log⁡xi-\log \alpha + \log x_i−logα+logxi​, 如中心词偏置 bib_ibi​ 和上下文词偏置 cjc_jcj​,因此:

uj⊤vi+bi+cj∼log⁡xij\mathbf{u}_j^\top \mathbf{v}_i + b_i + c_j \sim \log x_{ij}uj⊤​vi​+bi​+cj​∼logxij​

通过对加权平方误差的度量, 得到了 (14.5.4) 的 GloVe 损失函数。

PreviousWord Embedding with Global Vectors(GloVe)NextSupplement

Last updated 8 months ago