Hero Image
Encoder-only

什么是预训练 通过自监督(无标注)来初始化神经网络模型参数 学习一种通用的语言理解能力 BERT BERT的预训练任务 Masked Language Modeling 将输入序列中的一部分(15%)token替换掉,然后去预测,让模型去预测这些词是什么。 8-1-1 80%的词被设为[MASK]:完形填空,能联系上下文的双向语义 10%被替换为词表中的任意随机token:模型不知道哪些是随机的,可以提高模型的纠错能力。逼迫模型联系全局语境,根据语境生成预测的词向量。 10%保持原始token不变:把模型对词的表征拉向真实的表征 优化目标 $$\mathcal{L}{MLM} = - \sum{i \in m} \log P(x_i | \tilde{X}; \theta)$$ 输入的损坏序列为 $\tilde{X}$,被选中的掩码位置集合为 $m$,$\theta$ 为模型参数 模型预测出第 $i$ 个位置真实单词 $x_i$ 的概率 $P$ 越大,取对数后再加负号得到的损失值 $\mathcal{L}$ 就越小 也就是说:虽然模型在顶层其实会输出句子中每一个词的预测结果(包括那 85% 没有被选中的正常词),但系统在计算 Loss 时,只挑出那 15% 被选中(无论是变 [MASK]、变随机词还是保持原词)的位置进行计算。 剩下 85% 位置的输出会被直接无视,不参与打分。 Next Sentence Prediction 随机抽取句子对(A,B),判断B是不是A的后续句子。增强跨句子理解的能力 50%真组合,50%假组合 [CLS] + A + [SEP] + B + [SEP] [CLS]分类符,放在序列首位判断是不是next [SEP]分隔符,分割两个句子 优化目标 $$\mathcal{L}_{NSP} = - \left[ y \log \hat{y} + (1-y) \log (1-\hat{y}) \right]$$