掩码语言模型(Masked Language Model, MLM)and为什么使用log函数

基于Transformer的大规模预训练语言模型(PLMs)通常在大量文本上进行预训练,以自监督目标学习上下文词表示,这种目标被称为掩码语言模型(Masked Language Model, MLM)(Devlin et al., 2019)。

具体来说,给定一个序列 X X X,我们通过随机掩盖15%的标记将其破坏为 X ~ \tilde{X} X~,然后训练一个参数化为 θ \theta θ的语言模型来重构 X X X,通过条件在 X ~ \tilde{X} X~上预测被掩盖的标记 x ~ \tilde{x} x~

max ⁡ θ log ⁡ p θ ( X ∣ X ~ ) = max ⁡ θ ∑ i ∈ C log ⁡ p θ ( x ~ i = x i ∣ X ~ ) \max_{\theta} \log p_{\theta}(X | \tilde{X}) = \max_{\theta} \sum_{i \in C} \log p_{\theta}(\tilde{x}_i = x_i | \tilde{X}) maxθlogpθ(XX~)=maxθiClogpθ(x~i=xiX~)

其中, C C C是序列中被掩盖标记的索引集。

BERT的作者提出了以下策略来处理被掩盖的标记:

  1. 10%的被掩盖标记保持不变。
  2. 另10%的被掩盖标记被随机选取的标记替换。
  3. 剩余的被掩盖标记被替换为 [MASK] 标记。

详细解释及示例

假设我们有一个输入句子:

The quick brown fox jumps over the lazy dog.

根据上述策略,我们将掩盖15%的标记。假设我们随机选择了以下标记进行掩盖:

The quick [MASK] fox jumps over the lazy [MASK].

根据BERT的策略,我们处理这些被掩盖的标记:

  1. 保持10%的被掩盖标记不变。
  2. 另10%的被掩盖标记用随机选取的标记替换。
  3. 剩余的被掩盖标记用 [MASK] 标记替换。

对于这个句子,我们假设以下处理方式:

The quick brown fox jumps over the lazy [MASK].

其中,[MASK] 标记保持不变,因为我们选择了句子末尾的“dog”作为保持不变的10%。

模型的目标是通过上下文信息(即其余未被掩盖的词语)来预测被掩盖的标记。在这个示例中,模型需要通过“quick brown fox jumps over the lazy”来预测被掩盖的词语是“dog”。

数学表达

在数学上,预训练语言模型通过最大化被掩盖标记的条件概率来进行优化。假设 X ~ \tilde{X} X~是掩盖后的序列, X X X是原始序列, C C C是被掩盖标记的索引集,那么目标是最大化以下概率:

max ⁡ θ ∑ i ∈ C log ⁡ p θ ( x ~ i = x i ∣ X ~ ) \max_{\theta} \sum_{i \in C} \log p_{\theta}(\tilde{x}_i = x_i | \tilde{X}) maxθiClogpθ(x~i=xiX~)

这个目标函数表示模型在给定掩盖后的序列 X ~ \tilde{X} X~的条件下,最大化被掩盖标记 x ~ i \tilde{x}_i x~i等于原始标记 x i x_i xi的对数概率之和。

通过这种方法,模型能够学习到词语的上下文表示,从而在各种自然语言处理任务中表现出色。MLM训练方法使得模型不仅能理解单词的含义,还能理解它们在句子中的语法和语义关系,从而提高了语言模型的泛化能力和准确性。

为什么使用log函数

在语言模型的训练过程中,使用对数函数(log函数)来计算损失和优化目标有几个重要的原因:

1. 数学上的便利性

对数函数具有许多有利的数学性质,使得计算和优化更加简便。特别是对于概率分布,使用对数可以将乘法运算转化为加法运算,这在处理多个独立事件的联合概率时尤其有用。假设我们有多个独立事件的联合概率:

p θ ( X ) = p θ ( x 1 ) ⋅ p θ ( x 2 ) ⋅ … ⋅ p θ ( x n ) p_{\theta}(X) = p_{\theta}(x_1) \cdot p_{\theta}(x_2) \cdot \ldots \cdot p_{\theta}(x_n) pθ(X)=pθ(x1)pθ(x2)pθ(xn)

通过取对数,这个联合概率的对数可以表示为各个概率对数的和:

log ⁡ p θ ( X ) = log ⁡ p θ ( x 1 ) + log ⁡ p θ ( x 2 ) + … + log ⁡ p θ ( x n ) \log p_{\theta}(X) = \log p_{\theta}(x_1) + \log p_{\theta}(x_2) + \ldots + \log p_{\theta}(x_n) logpθ(X)=logpθ(x1)+logpθ(x2)++logpθ(xn)

这种转换简化了计算,尤其是在梯度下降等优化算法中。

2. 避免下溢问题

在机器学习和统计学中,处理非常小的概率值时,乘积运算可能会导致下溢问题(即结果接近于零,导致计算机无法表示)。通过使用对数函数,可以将小概率值转化为较大的负数,避免下溢问题。例如,概率值很小时,其对数值仍然在数值上具有一定的范围,便于计算和表示。

3. 对数似然函数

在许多统计模型中,对数似然函数(log-likelihood function)是一个常用的目标函数。对于给定的参数 θ \theta θ和观测数据 X X X,对数似然函数定义为:

log ⁡ p θ ( X ∣ data ) \log p_{\theta}(X | \text{data}) logpθ(Xdata)

通过最大化对数似然函数,我们可以找到最能解释观测数据的参数 θ \theta θ。在预训练语言模型的上下文中,最大化对数似然函数等价于最小化负对数似然损失,从而找到最优的模型参数。

4. 平滑处理

对数函数可以平滑处理概率值之间的差异。相对于线性尺度上的差异,对数尺度上的差异更小,这有助于避免某些数据点对总损失的过度影响,使得训练过程更为稳定。例如,对于两个概率值 0.1 0.1 0.1 0.01 0.01 0.01,它们的差异在对数尺度上较小:

log ⁡ ( 0.1 ) = − 1 \log(0.1) = -1 log(0.1)=1
log ⁡ ( 0.01 ) = − 2 \log(0.01) = -2 log(0.01)=2

而在线性尺度上,差异为 0.09 0.09 0.09,对训练过程可能产生较大的影响。

示例解释

假设我们在训练一个模型来预测单词的概率,对于一个句子“the quick brown fox”,我们掩盖“quick”并让模型预测它的概率。假设模型输出的概率为 p θ ( quick ∣ the brown fox ) = 0.05 p_{\theta}(\text{quick}|\text{the brown fox}) = 0.05 pθ(quickthe brown fox)=0.05

使用对数损失函数:

log ⁡ p θ ( quick ∣ the brown fox ) = log ⁡ ( 0.05 ) ≈ − 2.9957 \log p_{\theta}(\text{quick}|\text{the brown fox}) = \log(0.05) \approx -2.9957 logpθ(quickthe brown fox)=log(0.05)2.9957

在训练过程中,我们会最小化这个负对数损失值,通过梯度下降等优化算法更新模型参数,从而提高模型对“quick”的预测概率。通过这种方法,模型可以逐步学习到更好的参数,使得预测更加准确。

总之,使用对数函数在语言模型的训练中不仅提供了计算上的便利性,还能有效避免数值问题,提高训练的稳定性和效率。

  • 13
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值