NLP零样本学习

JinLonghua    2020-08-19 20:08

        本文主要是选择性意译以及个人总结,文章链接放在文末。
        零样本学习(zero-shot learning, ZSL), 指的是通过观察不属于训练期间所见过标签种类的样本,并对其真实标签进行预测。
        目前在图像分类领域与NLP领域,有了比较成熟的预训练方式,比较常见的是few-shot learning,即通过预训练模型与少量的标注训练集进行训练与预测,并且达到了比较好的效果。
        而为了做到ZSL,在图像领域一般使用featurizer 对标签文本与图像分别生成嵌入,并在可用的标签子集与图像上训练一个映射,使标签文本与图像的嵌入对齐。从而能在预测中得出训练中未见过的标签。
        在文本分类领域,有一个优势是输入的数据与标签都是文本,从而能使用同一个模型获得嵌入,从而不需要一个需使用大量数据的对齐阶段。但是作者实际上使用SentenceBert过程中,发现对模型输出的语句嵌入效果挺好,但是只有一个词语的嵌入输出不太行。作者认为是训练任务等的问题,并认为Word2vec可能在词粒度上输出的嵌入更好。于是使用Word2vec以及上述模型,分别输出标签与句子嵌入,并通过W矩阵将标签的嵌入映射到句子嵌入上。本文作者对标签与语句嵌入做了一个可视化,效果挺好,还是挺好玩的。(本文作者是Transformers库作者,此功能(ZSL)已在这个库中提供。)

        在除去分类之外的领域,在GPT-3中,由于大量的预训练,作者在很多的下游任务中尝试利用ZSL直接进行翻译,摘要等的任务。通过对任务进行一定的描述与提示,这些都取得了一定的成果,虽然和监督学习微调过的模型不能比,但是能直接在大量任务中使用也是很让人惊讶的。这些描述与提示有,如在摘要任务中,先输入原文本,再附加上TLTR:(Too long to read, 在reddit社区中常见的一个评论,然后跟着评论作者的一个总结),就能生成一个较好的摘要。
        也有论文将语言模型与任务描述结合起来,进行零样本学习,取得了相当不错的成果,在相同数据量下few-shot learning甚至超过了监督学习(Exploiting Cloze Questions for Few Shot Text Classification and Natural
Language Inference)。
        上面那篇论文通过针对不同学习任务构造不同的填空式输入,来对语言模型进行提示,并获得对应的标签。这些填空式输入的构造还是相当巧妙的。例如预测文本的情感倾向,好还是坏,通过构造如:It's__, [输入文本]。使用语言模型对下划线词语进行预测,来获得相应的标签。论文通过多个模型,构造多种输入,对文本进行预测,并使用预测的软标签训练模型再次预测, 重复上述过程,最终的到了相当不错的一个结果。

原始文章:https://joeddav.github.io/blog/2020/05/29/ZSL.html
Last Modified: 2020-08-20 22:14
Views: 2.3K

[[total]] comments

Post your comment
  1. [[item.time]]
    [[item.user.username]] [[item.floor]]Floor
  2. Click to load more...
  3. Post your comment