半监督课程学习用于中文拼写纠错任务
课程学习(CL) 以一种从易到难的顺序促进模型训练,该方法需要对数据难度和训练细则进行仔细设计。
纠错中得数据的难易程度受许多因素的影响,如句子长度、词的稀缺性和错误的多样性等
论文提出将训练损失作为数据难度的度量(即损失越大的数据越难学习),并基于训练过程中的损失下降程度来评估模型能力(即损失越小的模型性能越好)。
简单来说:将训练样本按照从易到难得顺序,喂给模型进行训练。这是并不涉及到给无标签样本打标签,再利用得过程。
算法流程如下:
算法步骤:
1. 在原有构造的数据上,训练模型1epoch,得到初始纠错模型
2. 利用初始纠错模型以及如下两个公式计算分数(衡量每条样本的难度)
思想是:样本对应的loss越小,样本难度越小,是输入样本,
是输入样本对应的正确文本
CDF是累计分布函数。
最后对于难样本,得分趋近于1,对于容易样本,得分趋近于0.
随着模型的训练,该得分也会越来越准。
3. 当模型没有收敛的时候,循环以下操作:
4. 根据公式7计算模型的胜任力, 利用训练过程中loss的下降值来衡量模型的胜任力
,
代表loss下降程度,
代表初始loss,
是任务无关的超参数
5. 生成训练样本子集
为了防止模型过度使用简单样本,在计算loss时,引入样本权值和token权值
6. 计算样本的权值
是平滑超参数
7. 计算样本中,每个token的权值
代表第t个训练步骤,样本
对应的第i个token的交叉熵损失函数值
8. 根据生成的样本,训练模型,更新权重
9. 循环直至模型收敛
实验结果:
loss中是否引入权值带来的影响
如果loss权值,用在一般的纠错模型中,是否回带来提升。 论文和半监督有什么关系