NLP backbone常用的噪声训练方法

NLP backbone常用的噪声训练方法_第1张图片 图1. 可组合的几种噪声变换(图片出处:https://arxiv.org/pdf/1910.13461.pdf)

继续补充中。

样例句子:A B C. D E.(第一句:A B C. 第二句:D E.)

训练目标均为降低真实值与预测值之间的交叉熵损失。

1. Token Masking(token掩码)

GT: A B C . D E .

After: A [MASK] C . [MASK] E .

        其中,Token被随机采样,并被替换为[MASK]元素。训练的目标为输入“A [MASK] C . [MASK] E .”预测为“A B C . D E .”。

2. Token Deletion(token删除)

GT: A B C . D E .

After: A . C . E .

        其中,Token被随机采样,并被删除。与1中所提的token掩码方式不同的是,模型必须确认哪些位置缺少输入。训练的目标为输入“A . C . E .”,确定目标生成的位置,预测为“A B C . D E .”。

3. Text Infilling(文本填充)

GT: A B C . D E .

After: A _ . D _ E .

对于横线处的处理主要有两种方式:

方式一(如BART):

        对多个文本跨度(span,同文本片段长度)进行采样,跨度采样服从泊松分布(λ=3)。每个跨度都替换为一个[MASK]标记。而0长度的跨度则对应于[MASK] token的插入,即相当于将[MASK] token插入进目标位置。

方式二(如Span BERT):

        同样对多个文本跨度进行采样,但跨度采样服从几何分布。对于每个跨度,用长度与其完全相同的[MASK] token序列来进行替换。

方式一和二的区别在于,前者的文本填充方式能够迫使模型去学习跨度中缺少的token数量。两者均通过文本填充任务来训练模型。训练的目标为输入“A _ . D _ E .”,确定目标生成的位置,预测为“A B C . D E .”。(与token掩码方法有近似之处,但粒度不同)

4. Sentence Permutation(语句排序)

GT: A B C . D E .

After: D E . A B C .

        根据句号,将textual的文档划分成一个个的句子,将这些句子按随机顺序排列。训练的目标位恢复句序。

5. Document Rotation(文档旋转)

GT: A B C . D E .

After: C . D E . A B .

        一个token被统一地随机选择,并且文档被旋转(指将选定token的前后“旋转”位置,在本例中体现为将“A B”旋转至“D E .”的后面),以使其从该标记开始。此任务训练模型以识别文档的开头。

你可能感兴趣的:(自然语言处理,人工智能)