A08 · 第 4 章 · 第二编 自监督目标

掩码预测:用缺失部分学习上下文表示

从随机掩码、双向可见上下文与条件预测目标出发,区分离散词元交叉熵和连续图像块重构,说明 BERT 原论文的具体方案与一般方法的边界,并讨论掩码分布偏移、信息泄漏、预训练迁移和表示评价。

报告页面错误
预备知识对比学习、负样本与信息瓶颈编码器、解码器与 Transformer 架构条件概率与独立性表示学习目标

本章目标

  1. 写出掩码采样、输入破坏、可见上下文、预测目标与损失分母组成的完整合同。
  2. 区分 BERT 原论文的掩码语言模型方案与更一般的掩码预测方法。
  3. 手算离散词元交叉熵和连续图像块均方误差,并解释两类目标的尺度。
  4. 识别子词残片、重叠图像块、预处理顺序和固定位置先验造成的信息泄漏。
  5. 区分预训练、冻结探测和全量微调,并设计无污染的表示评价。
页面阅读位置0% · 仅保存在此浏览器
章节未开始
本册完成进度0/6 章 · 0%
本页目录

掩码预测是条件预测问题

设完整样本为 x=(x1,,xL)x=(x_1,\ldots,x_L),掩码位置集合为 MM,其余位置记为 Mˉ\bar M。训练先从分布 q(Mx)q(M\mid x) 抽取掩码,再用破坏算子 CC 得到可见输入

x~=C(x,M).\widetilde{x}=C(x,M).

模型读取 x~\widetilde{x} 和位置信息,预测被选中位置的原目标 xMx_M。一般目标可写为

L=ExEMq(Mx)[(rϕ(fθ(x~),M),xM)].\mathcal{L}=\mathbb{E}_{x}\mathbb{E}_{M\sim q(M\mid x)} \left[\ell\bigl(r_\phi(f_\theta(\widetilde{x}),M),x_M\bigr)\right].

这里的每一项都属于方法定义。qq 决定遮多少、遮哪些位置以及是否成段;CC 决定用特殊标记、随机内容、零向量还是直接删除;编码器决定可见范围;预测头决定输出空间;\ell 决定哪些误差最重要。只说“随机遮住一些输入再恢复”不足以复现实验。

掩码目标制造了一个内部监督信号:目标取自样本本身,无需额外人工标签。它要求模型利用上下文统计规律,却不保证学到人类关心的语义。局部纹理、固定格式、位置频率、文件来源和近重复样本都可能让训练损失下降。判断表示是否有用,必须另做冻结评价、微调评价与泄漏检查。

双向上下文与因果预测不同

掩码位置可以同时读取左侧和右侧的未遮蔽内容。对序列中的位置 ii,模型近似学习

pθ(xix~Mˉ,M),p_\theta(x_i\mid \widetilde{x}_{\bar M},M),

而不是因果语言模型的 pθ(xix<i)p_\theta(x_i\mid x_{<i})。右侧证据常能消除歧义,例如“他把书放在桌子上”和“他把书放在桌子下”中,待预测介词可由两侧共同约束。前提是原词元身份没有通过输入、标签对齐或预处理旁路泄漏给模型。

逐位置掩码条件分布通常不能直接相乘为一个规范化的序列联合概率,因为不同位置的条件都建立在其余真实位置可见的环境上。掩码编码器也不是天然的从左到右生成器。若要生成完整序列,需要指定迭代填充、吉布斯式更新或外接解码器;这些算法产生的分布与训练时一次掩码目标并不自动相同。

双向还不等于不受约束地看见所有信息。注意力矩阵可以在可见位置间双向连接,但被遮蔽目标本身必须从内容通道移除或扰动;用于 padding 的注意力掩码、用于禁止读取未来的因果掩码和用于选择预测目标的内容掩码是三种不同机制,不能只用一个布尔数组含糊表示。

BERT 原论文方案与一般方法的边界

以下是 BERT 原论文所描述的具体预训练事实,而不是所有掩码预测方法的共同规定:BERT 使用双向 Transformer 编码器;掩码语言模型先选择输入序列中百分之十五的词元位置作为预测目标;在这些被选位置中,百分之八十替换为 [MASK],百分之十替换为随机词元,百分之十保持原词元不变;损失仍要求在全部被选位置预测原词元。原论文的预训练还包含下一句预测目标,这同样是该论文方案的一部分,不是掩码语言模型定义所必需的组件。

百分之十保持不变并不表示这些位置不计损失。模型能直接看到原词元,因此该分支可能较容易,但它让编码器在一部分受监督位置看到自然输入。随机替换也不能完全模拟真实下游分布,因为替换词可能明显不合语境。百分之八十、百分之十、百分之十只是 BERT 的设计选择;其他方法可以采用动态掩码、成段掩码、整词掩码、删除词元或不同掩码比例,比较时必须说明变化。

BERT 的资源卡支持上面的论文事实。它不能单独支持任何后续方法的结构、掩码率或性能,也不能证明某个新数据集会获得迁移收益。本章对图像块、连续目标、泄漏和评价的讨论属于一般方法分析,不把它们误写成 BERT 原论文结论。

例 1:手算两个被选词元的交叉熵

序列为“今 天 下 雨”,训练选择“天”和“雨”两个位置作为目标。模型在这两个位置给原词元的概率分别为 0.50.50.250.25。若损失对被选位置等权平均,则

L=log0.5log0.252=0.6931+1.386321.0397.\mathcal{L}=\frac{-\log 0.5-\log 0.25}{2} =\frac{0.6931+1.3863}{2}\approx1.0397.

若报告求和损失,则数值约为 2.07942.0794。未被选中的“今”和“下”不进入这个掩码语言模型分母。若实现把所有可见位置也纳入目标,模型可大量依靠复制获得低损失,优化问题已被改变。因此必须记录是按被选词元平均、按序列平均还是按全批次有效目标平均。

离散词元目标使用条件分类

对词表 V\mathcal{V} 中的离散词元,预测头在每个被选位置给出 logit aiva_{iv},softmax 概率为

pθ(vx~,i)=exp(aiv)wVexp(aiw).p_\theta(v\mid\widetilde{x},i)= \frac{\exp(a_{iv})}{\sum_{w\in\mathcal{V}}\exp(a_{iw})}.

交叉熵只取真实词元对应的负对数概率。大词表计算可使用分块或特定近似,但近似会改变目标,需单列说明。数值实现应采用 log-sum-exp,不能直接对大 logit 求指数。若多个序列长度不同,按目标词元平均会让被选位置多的序列权重更大;先逐序列平均再批次平均则让每条序列等权,两者不能混报。

词元化本身影响难度。一个词被拆成多个子词,只遮其中一个时,其余残片可能几乎暴露答案;高频词比稀有词更容易由先验猜中;标点和固定模板也可能提供捷径。整词掩码或成段掩码能减少局部残片泄漏,却让任务更难,并改变目标数量与上下文范围。评价时应同时报告词元频率、跨度长度和实体等切片,而不是只有总体损失。

例 2:子词残片造成的目标泄漏

假设一个专业词被分为“电”“心”“图”三个子词,而训练每次只遮中间的“心”。左右残片和固定术语位置几乎唯一确定答案,模型无需理解更远上下文就能取得很低损失。若下游任务需要跨句推理,这种成功不能证明表示已经具备对应能力。

可把三个子词作为一个整词跨度共同遮蔽,并建立两个切片:局部邻居可唯一猜中的目标,以及必须使用远处上下文的目标。再比较只看固定窗口的简单基线与完整编码器。如果完整模型只在第一类占优,说明预训练主要利用局部形式。整词掩码也不是绝对正确;它依赖词元化和语言边界,应把分组规则保存为数据配置。

连续图像块与特征目标

图像可先划分为图像块,再遮住其中一部分。连续目标的一种形式是预测原始像素或标准化像素,以均方误差训练:

LMSE=1MiMx^ixi22.\mathcal{L}_{\mathrm{MSE}}= \frac{1}{|M|}\sum_{i\in M}\lVert \widehat{x}_i-x_i\rVert_2^2.

还可以预测离散码本索引并使用交叉熵,或回归由教师编码器产生的连续特征。三者强调的信息不同。原始像素重构重视颜色和局部高频细节;标准化块改变亮度与对比度的权重;离散码本把误差转化为类别边界;教师特征的语义与偏差取决于教师。不能把它们都简写为“恢复图像”后直接比较损失数值。

连续目标还需写明每个块内按元素求和还是平均、不同通道如何缩放、目标是否停止梯度以及只在遮蔽块还是全部块计损失。若不同实验的像素范围分别为零到一与零到二百五十五,均方误差尺度相差巨大,训练权重和报告数字都不可直接比较。

例 3:手算两个连续块目标的均方误差

把两个被遮蔽块各简化为一个标量,真实目标为 221-1,预测为 1.51.50.50.5。平方误差分别为

(1.52)2=0.25,(0.5(1))2=2.25.(1.5-2)^2=0.25,\qquad (0.5-(-1))^2=2.25.

按块平均的损失为 (0.25+2.25)/2=1.25(0.25+2.25)/2=1.25。若第二个目标所在通道的标准差为 22,先除以标准差再计算时,它的误差变为 (1.5/2)2=0.5625(1.5/2)^2=0.5625,总平均变为 0.406250.40625。归一化因此改变各通道权重,并非只改变显示单位。实现和报告必须固定同一目标变换。

掩码分布决定任务难度

独立位置掩码简单,却可能留下大量紧邻线索;连续跨度或图像块掩码要求更远上下文;固定比例可稳定每批目标数,伯努利采样则使目标数随机。动态掩码在不同轮次给同一样本产生不同目标,扩大监督覆盖;静态掩码便于缓存,但模型可能记住固定缺口。无论哪种方案,都要保存随机种子派生规则,使每个样本、轮次和工作进程的掩码可重建。

比例过低时任务容易且监督稀少,比例过高时上下文不足,目标包含大量不可预测细节。最合适的比例取决于输入冗余、编码器是否接收遮蔽位置、目标类型和下游任务。图像中相邻像素高度相关,通常需要考虑块大小与比例的联合作用;文本删除一个词元与删除一个实体跨度也不是相同难度。掩码率不能脱离块长、序列长和损失分母报告。

位置分布同样会形成捷径。若训练总遮中心块,模型可学习中心区域的类别先验;若文档模板每次遮固定字段,字段位置几乎直接决定答案。应把掩码位置热图、跨度长度分布和目标频率作为数据审计,并在未见掩码形状或位置上测试条件预测。

泄漏可能发生在模型之前

内容泄漏不只来自忘记替换目标词元。若先对完整图像做会混合相邻像素的插值,再划分重叠块,目标像素可能已经进入可见邻块;若教师特征在完整图像上计算且学生能直接读取同一特征旁路,预测目标也可能被复制。文本去重若在划分之后进行,训练集和测试集的近重复段落会使表示评价虚高。

可靠顺序要明确:先确定数据划分和去重组,再抽取预处理参数,再生成掩码,再构造只含允许信息的编码器输入,最后从隔离的原样本分支取得目标。输入张量与目标张量不应共享可被模型访问的未遮蔽通道。可设计反事实测试:打乱远处上下文、只保留局部窗口、替换位置编码、移除元数据,观察模型是否仍能异常准确地恢复目标。

例 4:重叠图像块如何泄漏像素

一维信号为 (a,b,c,d)(a,b,c,d)。构造两个重叠块 (a,b,c)(a,b,c)(b,c,d)(b,c,d),随后遮住第二块并要求恢复其中的 b,c,db,c,d。可见第一块已经完整包含 b,cb,c,所以目标的三分之二可以直接复制。即使模型取得很低重构误差,也未必利用了跨区域结构。

修订可以使用互不重叠的原始块,或在损失中只预测没有出现在任何可见块中的元素。若上采样、卷积预处理或数据增强会跨块混合像素,应在这些操作后重新计算信息边界,或先遮蔽再采用不会把目标扩散到可见区的处理。验收时记录每个目标元素可追溯到哪些输入元素,而不只检查最终张量形状。

预训练与下游使用存在分布偏移

预训练时模型频繁看到特殊 [MASK],而多数下游任务输入中没有该符号,这形成输入分布偏移。BERT 的随机替换和保持原词元分支是其缓解设计的一部分,但不能说已经消除偏移。其他方案可删除掩码位置、使用可学习替代向量、只让解码器接收掩码标记,或让编码器仅处理可见块;这些结构改变计算量和信息流,需要分别评价。

全量微调在完整输入上更新编码器和任务头,可以适应新分布,但结果同时反映初始化与下游优化。冻结线性探测保持编码器不变,只训练仿射头,检验特定标签是否线性可读。冻结非线性头允许更复杂读出,不能称作线性探测。若下游数据很少,还应报告不同标签量曲线和多次随机划分,而不是选择最好一次。

重构准确率或预训练损失不是表示质量的充分证据。一个强解码器可能用局部统计恢复像素,却让全局表示缺乏类别信息;另一个模型重构细节一般,但冻结表示更适合下游分类。应预先指定读取层、池化方式、标准化、读出器、训练预算和超参数选择数据,并加入随机编码器、频率猜测、局部窗口和简单重构基线。

评价协议与复现清单

数据污染检查要先于指标。按文档、主体、视频、患者或来源组划分,使用内容哈希与近重复搜索防止同一对象跨集合。若允许使用无标签测试分布做预训练,那属于传导式设定,应明确标注,不能与完全隔离测试集的结果混为一谈。词表或图像标准化统计也只能从协议允许的数据估计。

预训练记录包括数据与词元器版本、块划分、掩码分布、动态或静态策略、随机种子派生、破坏类型及比例、可见注意力范围、目标变换、损失分母、编码器和预测头结构、优化器、精度模式与停止条件。分布式训练还要说明不同进程是否会为同一样本生成相同掩码,恢复训练时随机状态是否连续。

评价至少分开报告掩码损失、按频率与跨度切片的条件预测、冻结线性探测、全量微调和分布外切片。若目标是图像表示,可补充局部与全局任务;若目标是文本表示,可补充句级与词元级任务。任何测试超参数都应在验证集冻结后一次性应用。保存失败样本的原输入、掩码位置、可见内容、目标、预测分布与处理版本,才能区分语义困难、不可预测噪声和实现泄漏。

三个常见误区

第一,“用了双向注意力,就一定学会了双向语义”。模型可能只靠相邻残片、位置模板或重复内容;双向连接提供能力,不保证采用了远程证据。

第二,“重构误差低,表示就更适合所有下游任务”。像素尺度、词元频率和解码器能力都会影响损失,重构细节与线性可读的任务信息并不等价。

第三,“BERT 的百分之十五和百分之八十、十、十是掩码预测的固定定义”。它们是原论文的具体选择;修改比例可以合理,但必须重新说明分布偏移、目标数量和评价条件。

练习

练习 1:计算离散目标损失

两个掩码目标的正确词元概率为 0.80.80.20.2,计算求和和平均交叉熵。

查看提示
只对两个被选位置取原词元概率的负对数,再说明求和或平均。
查看解答
概率为 0.80.80.20.2 时,求和损失为 log0.8log0.21.8326-\log 0.8-\log 0.2\approx1.8326;按被选位置平均约 0.91630.9163。未被选位置不进入该分母。
练习 2:区分双向与因果
说明掩码语言模型为何不是普通的从左到右生成模型。
查看提示
比较每个位置允许读取的上下文,并问这些条件概率能否直接组成联合分布。
查看解答
掩码预测可读取目标两侧的可见位置,学习在破坏输入条件下恢复目标;因果模型只读取此前词元并按链式法则形成联合概率。掩码条件通常不能直接相乘成规范化序列概率。
练习 3:核对 BERT 事实边界
列出 BERT 原论文方案中可由本章资源支持的掩码训练事实。
查看提示
把原论文的编码器、选中比例、替换比例和附加目标,与一般方法分开。
查看解答
原论文使用双向 Transformer 编码器,选择百分之十五位置,其中百分之八十换为 MASK、百分之十随机替换、百分之十保持原词,并在全部选中位置预测原词;还含下一句预测。整词、跨度、图像块等不是这组事实的共同定义。
练习 4:审计信息泄漏
为一个图像块掩码项目写出最小泄漏检查表。
查看提示
沿每个目标元素反向追踪它是否进入任何可见词元、像素、特征或元数据。
查看解答
先按主体去重划分,再检查词元残片、重叠块、插值卷积、教师特征和缓存元数据;构造只留局部窗口或打乱远程上下文的反事实,并保存输入目标追踪表。异常低损失需先排除复制路径。
练习 5:比较连续目标
比较原始像素、标准化像素、离散码本与教师特征作为目标的差异。
查看提示
分别考虑像素尺度、码本分类边界和教师表示偏差。
查看解答
原始像素 MSE 强调数值和高频细节,标准化像素改变通道权重,离散码本用交叉熵预测类别,教师特征回归继承教师语义和偏差。四者损失尺度不同,必须固定目标变换后再比较迁移。
练习 6:设计迁移评价
设计一个不会把低重构损失直接等同于高表示质量的评价方案。
查看提示
区分编码器冻结和更新,并固定划分、读取层、读出器及选择预算。
查看解答
按主体去重划分,预先指定编码器层和池化;冻结线性协议只训练仿射头并在验证集选参,全量微调另列。加入随机编码器、局部窗口和频率基线,报告少标签与分布外切片,测试集只在协议冻结后使用。

关系与资源

论文 · 2019

BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova

用于核对掩码预测的条件建模方式、预训练—微调接口和原始实验范围。

打开官方来源