©PaperWeekly 原创 · 作者 | 郭必扬
单位 | 上海财经大学信息管理与工程学院AI Lab
论文标题:
GENIUS: Sketch-based Language Model Pre-training via Extreme and Selective Masking for Text Generation and Augmentation
论文作者:
Biyang Guo, Yeyun Gong, Yelong Shen, Songqiao Han, Hailiang Huang, Nan Duan, Weizhu Chen
作者单位:
上海财经大学信息管理与工程学院 AI Lab;微软亚洲研究院;微软 Azure AI
论文链接:
https://arxiv.org/abs/2211.10330
Github链接:
https://github.com/beyondguo/genius(更多相关工作见:https://github.com/microsoft/SCGLab)
论文简介
本文提出了一种基于草稿进行文本生成(sketch-based text generation)的预训练模型 GENIUS。GENIUS 模型可以根据你给定的少量的关键词、短语、片段,进行文本补全,从而构成一个完整、连贯的段落。这类似于我们人类写作时先打草稿再进行创作的过程。GENIUS 使用了大量通用语料进行预训练,在预训练中使用了一种 extreme-and-selective masking 的策略,这些使得 GENIUS 有强大的生成能力。下面是一些例子:
基于GENIUS的生成能力,本文还提出了一种新颖的数据增强方法——GeniusAug。GeniusAug 先从训练样本中抽取一个目标相关的 sketch,然后输入进 GENIUS 模型中进行新样本的生成。
相比于传统的数据增强方法,GeniusAug 既能够保存原样本的核心语义,还能够带来很大的多样性,从而使得模型在 in-distribution(ID)和 out-of-distribution(OOD)的情况都能得到显著的性能提升。实验验证 GeniusAug 可以通用于情感分类、主题分类、实体识别、机器阅读理解等多种 NLP 任务的数据增强。
论文的代码和模型都已经开源,作者已经搭建了一个在线 demo,方便大家测试:
https://huggingface.co/spaces/beyond/genius
GENIUS的预训练
GENIUS 采用了一种 reconstruction from sketch 的预训练方式。先从完整文本中抽取一个 sketch,然后让模型根据 sketch 去重构这个文本。GENIUS 使用 BART [1] 模型进行初始化,在 C4 语料库上进行大规模预训练。
这里面的关键就是如何构造这样的 sketch,作者使用了一个 extraction-projection-masking 的 pipeline 来进行 sketch 构造:
1. extraction 使用无监督关键词抽取工具 YAKE [2],抽取最大为 3-gram 的关键词/短语,占比约为原文的 20%。这里抽取 3-gram 是为了抽取更大粒度的信息,从而降低重构难度。
2. projection 把抽取出来的关键信息,按照原文的位置、出现次数进行映射,且允许不同词语的重叠。
3. masking 把剩下的部分,使用单个的 MASK token 进行替换。
通过这样的三步,sketch 中就会保留原文的不同粒度的关键信息。经过作者统计,被 MASK 掉的内容平均占全文的 73%。
这个 sketch 的抽取步骤看似很简单,但是其中几个设计很关键