更适合文本分类的轻量级预训练模型

访客3年前黑客文章427

自 BERT 起,预训练语言模型沿着海量训练数据和庞大 *** 结构的方向在不断发展着。在12月落幕的 NeurIPS 2020 会议上,语言模型 GPT-3 荣膺更佳论文奖。OpenAI 的研究人员使用了多达 45TB 的文本数据来训练它的 1750 亿个参数。GPT-3 不仅仅是“变得更大”,它用“Few-Shot”学习替代了 FineTune,能够出色完成代码生成、领域问答、吉他谱曲等高难度的复合型 NLP 任务。


那么,在相反的道路上,当数据受限并且算力不足,是否有轻量级的预训练模型能够帮助我们更好地处理文本分类等经典NLP问题呢?


AllenAI 团队开源的 VAMPIRE(Variational Methods for Pretraining In Resource-limited Environments)正是这样一款模型。全文《Variational Pretraining for Semi-supervised Text Classi?cation》收录于ACL-2019。


本文将详细介绍一种基于预训练半监督的文本分类轻量型模型,即 VAMPIRE 模型,为解决由于大量数据和高昂计算力导致的资源不足问题提供一些思路。


01变分自编码器


VAMPIRE 从 VAE 中借鉴了不少思路,在详细介绍它之前,先来说说什么是 Variational AutoEncoder(VAE),中文译作变分自编码器。VAE 出自 ICLR-2014 的 《Auto-Encoding Variational Bayes》,是一种图像生成技术,近年来也被迁移到 NLP 中作为一种文本生成模型。原文中有大段大段的公式推导,全部理解需要费不少功夫。不过对于 VAMPIRE 来说,重要的是弄明白 VAE 是建立在什么样的假设之上,它是通过什么样的方式来实现文本生成的。


和 encoder-decoder 架构一样,VAE 也是通过“编码”和“解码”来完成对输入句子的重建。两者的区别在于,发源于 CV 的 VAE 并不是一种天然有序的 NLP 模型。在理解 VAE 之前,需要先彻底抛下头脑中关于 Seq2Seq 那种 one by one 生成方式的固有印象。输入序列中的每个词可以是相关的,也可以互相独立的,这取决于你使用什么样的编码器。但是,输出序列中的每个词,一定是互不依赖的。它们被各自建模,同时生成。为了便于理解,我们暂且将重建任务看成是对单个词的建模。这一过程可以用更广义的分布-采样概念来描述:


○ 对于一个离散样本X,计算其概率分布,根据分布表达式进行采样,生成新的离散样本 X'。令 X' 无限逼近 X。


如果用 encoder-decoder 的术语来说,“计算概率分布”即“编码”,“分布表达式”即隐 层,“采样生成”即“解码”。这里有一个难点。X 是个离散变量,它很有可能服从某个奇奇怪怪的 分布,根本就写不出具体的表达式,更别提根据表达式来采样了。因此,VAE 以正态分布作为搭桥, 先将 X 变换到正态分布 N(X) 上,再根据公式进行采样得到 Z,对 Z 进行变换生成 X'。至于 X -> N(X) 和 Z -> X',就直接扔进神经 *** 学出来。一个特定的正态分布,只由均值和方差决定。因此, X -> N(X) 的变换,实际使用了两个神经 *** ,分别估算均值 u 和方差 sigma。


以上是对于单个词的建模。当输入的是 n 个词组成的句子时,在每个词位置都需要进行上述处理。也就是说,有 n 组正态分布,对应着 n 组均值和 n 组方差。好了,现在可以画出整个前向计算的流程图了:


bdd1ab69-0f60-4687-92fb-f4040dfb7d72.jpg


在前向计算过程中,每个 X 都是 embedding 向量,经编码产生的均值和方差也同样是向量(假设维 度为dim)。那么,实际上生成了 dim 个正态分布,它们各自独立采样,组成维度为 dim 向量 Z。从 Pytorch 示例代码中可以更直观地看到数据流向:


80e4c15e-5eed-4f75-b77f-7e56de2f10ce.png


VAE 的优化目标分为两部分。之一部分是重建目标,即 X'=X:


1e98eccb-2466-4d31-8684-ce22e0c8a2f4.png


在不加入额外约束项时,模型可以很轻松地做到 100% 地还原 X,只要让方差全部为 0,均值取原值即可。显然,这样的模型是不具备真正生成能力的。因此,VAE 的优化目标还包含第二部分,使用 KL 散度把 Z(X) 拉向标准正太分布N(0, I)。可以理解为正则化项,或是对生成 *** 加噪。


33f5b9a9-f748-4f4d-b226-2fc258a39103.png


两个 loss 互相对抗,同步学习优化。


02 VAMPIRE


现在可以正式介绍 VAMPIRE 了。这是一个为算力和数据双双受限的情况设计的轻量预训练模型,它的典型应用场景是半监督文本分类。VAMPIRE 在本质上是一个文档话题模型,它从一开始就抛弃了序列信息,将句子当作 BOW(Bag of Words)进行建模。模型捕捉的是词与词的共现信息,重建的是词频向量。这样的设计使得无论是模型训练还是预测推理都大大加快。


对于输入句子 X,VAMPIRE 统计词表中每个词的频次,构建词频向量作为句子表示。编码器部分是和 VAE 一样的均值方差预测,然后进行重参数采样:

a846d342-a0b2-4973-9f4f-7e705306f0b3.png

解码器部分做了适配改造,先对采样变量 Z 做一次 softmax 得到 theta,作者将其解释为对隐话题的分布计算。其中,公式13 即重建目标 loss1。

6fb99710-f919-4fdc-a829-157a3b7cb08d.png

在完成预训练后,theta 被记为 vampire embedding,参与下游任务。和 Bert 等模型不同的是, vampire embedding 作为辅助话题信息,并不能单独完成编码训练。它需要和 word embedding 融合在一起,共同进行分类预测:

4cec88ab-eace-40df-91c9-0f0d8f4cb0e1.png

03 应用场景


在低资源场景下,当算力受限并且也没有可观的领域数据时,VAMPIRE 等轻量级的预训练模型也可以作为一种备选方案。作者在 AG News、Hatespeech、IMDB 和 Yahoo! 四个任务上,测试了 VAMPIRE 与基线词向量模型在标注数据量从 200~10000 范围内的分类准确度。从图上可以明显地观察到,在标注数据不足 2000 条时,VAMPIRE 模型的表现较基线有大幅度的提升。


0e76bb94-ae0b-4d90-bbf1-1fc61b21d491.jpg


04总结


ELMO、BERT 和 GPT 等预训练模型的出现,彻底革新了半监督 NLP 的研究。在海量无标注数据上训练的文本向量表示,不仅能够显著提升下游任务的性能,而且这种助力不局限于单一的任务类型。

相关文章

农业标准化生产(标准化养牛场)

农业标准化生产(标准化养牛场) 经常看一些农产品滞销的新闻时,留言评论总少不了一些较为过激的言语,比如说:“就知道从外国进口,国内的都销售不出去……”、“国内的都销售不出去,为什么还要从国外进口”等...

PINK模板【再度更新】

我们承诺 模板永不加密,无需授权,永久更新 帮助您完成您的需求 2018继续更新 0.成立模板售后群 1.增加点赞排行页面 likes 为点赞排行榜页面 2.修复评论翻页 3.前台设置商...

适合年轻人创业的小本项目,千万别错过!

大家的生活水平在发展,年青人也慢慢找到自身的人生方向。以往两年的年青人在自身的人生方向上并沒有确立的目地,如今许多 年青人对自身的将来都是有了自身的方案。如今大量的年青人明白照料家中,了解年轻的时候要...

因技术原因 马来西亚14点28一飞机在高速公路上紧急迫

  当地时间22日,据马来西亚民航管理局发布的消息,一架注册为新加坡首航(Premiere Air Singapore )的飞机迫降在“南北大道”高速公路上,据了解,这架飞机原定从大马柔佛州士乃机场飞...

龟兔赛跑课文原文

龜兔賽跑課文原文讀書啊,我信赖但有朗朗書聲出破廬,遲早有一日有萬鯉躍龍門之奇象。   《龜兔賽跑》讓人明了瞭驕傲使人落後,虛心使人進步這個原理。小編整理的課文原文,供參考!   課文內容   有一...

心肺复苏和急救知识纳入学校健康教育-教育部明确将心肺复苏纳入学生考试内容

心肺复苏和急救知识纳入学校健康教育-教育部明确将心肺复苏纳入学生考试内容

近日,根据教育部最新消息得知,心肺复苏和急救知识纳入学校健康教育,其实早在今年8月份教育部就发布了这个消息,这次教育部是明确将心肺复苏纳入学生考试内容,因为普及心肺复苏是一件非常重要的事情,可以防止很...