作者信息:李渔,熵简科技联合创始人,清华大学电子工程系博士,已在国际会议及期刊上发表学术论文16篇,申请专利6项,致力于将先进的自然语言处理及深度学习技术真正落地于金融资管领域,让科技赋能产业。
导读:即使在大数据时代,获取大批量高质量的标注数据在实际中往往成本高昂,半监督学习技术作为一类可以同时有效利用有标签数据和无标签数据的学习范式,有希望大大降低监督任务对于标签数据的需求。文本从 2013年所提出的 Pseudo-Label 开始,至 2020 年 CMU 所提出的 MixText 技术为止,详细介绍了半监督学习近年来的发展历程,重点关注各技术在核心思想、方法论上的演进。文章最后对半监督学习中涉及到的部分关键细节,如领域外数据等问题进行了详细讨论。
一、为什么要了解半监督学习?
1.1 什么是半监督学习?
半监督学习介于监督学习与无监督学习之间。一般而言,半监督学习的任务与监督学习一致,任务中包含有明确的目标,如分类。而所采用的数据既包括有标签的数据,也包括无标签的数据。
简单理解,可以认为半监督学习就是同时运用了标签数据和无标签数据来进行训练的监督学习。当然,在另外一些研究中,带有约束限制的无监督学习也被视为半监督学习,例如受限的聚类算法。
从半监督学习与监督学习的关系出发,我们可以自然得出半监督学习的几个核心点:
· 如何从无标签数据中获取学习信号来指导监督学习?
· 如何平衡运用有标签数据和无标签数据各自的学习信号?
· 如何选择无标签数据?
这几个核心点正是半监督学习方法需要解决的主要矛盾,同时也是半监督学习思想的精髓所在。本文在后面介绍各个算法时,将会针对这几个核心点做重点介绍。
1.2 半监督学习有什么用?
我们知道,即使在大数据时代,想要获取到大批量高质量的标注数据在实际中往往是一件很困难的事,需要花费大量的人力和时间。尤其在垂直领域,例如金融、法律、医学等领域,数据的标注还需要业务人员甚至行业专家的参与才能实现相对准确的数据标注,满足业务需求,这使得垂直领域的数据标注成本尤其高昂。
而半监督学习正是为了解决这一类问题而出现的。它的核心目标是,希望通过专家标注的少量有标签数据,结合大量的无标签数据,训练出具备强泛化能力的模型,从而解决实际中的问题。这也正是我们熵简NLP团队探索半监督学习技术的主要动机。
更进一步,半监督学习也是一类更接近于人类学习方法的机器学习范式。试想这样一个场景,我们小时候学习识别小猫、小狗、汽车等等物品时,往往只需要父母进行一两次的指导,我们就能很准确地辨认出什么是猫狗。这背后有一个重要原因是,我们从出生开始就见过很多次小猫、小狗等等动物,虽然还没有人明确告诉过我们这些动物是什么,但我们的大脑已经对于这些事物建立了足够的认识。整个过程抽象出来与半监督学习的思想很相似,父母的指导可视为有标签数据,出生之后的目之所见即为无标签数据,二者结合帮助我们实现快速地学习。
因此,半监督学习技术既是少样本学习的重要路径之一,也有助于帮助我们发展更接近于人类学习范式的机器学习技术。
本文接下来部分重点介绍在深度学习时代,半监督学习技术的发展历程和代表工作。更为全面和基础的介绍,大家可以参考这两本书[1,2],这两本书都出版于2010年之前,基本汇集了半监督学习在前深度学习时代的主要成果。
二、典型技术方案的演进历程
本小节从 2013年所提出的 Pseudo-Label 开始,至 2019 年 Google 所提出的 UDA 技术为止,详细介绍半监督学习近年来的发展历程,重点关注各技术在核心思想、方法论上的演进。
2.1 Pseudo-Label:The Simple and Efficient Semi-Supervised Learning Method for Deep Neural Networks,2013
Pseudo-Label 模型作为一个简单、有效的半监督学习方法早在 2013年就被提出,其核心思想包括两步:
· 第一步:运用训练出的模型给予无标签的数据一个伪标签。方法很直接:用训练中的模型对无标签数据进行预测,以概率最高的类别作为无标签数据的伪标签;
· 第二步:运用 entropy regularization 思想,将无监督数据转为目标函数的正则项。实际中,就是将拥有伪标签的无标签数据视为有标签的数据,然后用交叉熵来评估误差大小。
模型整体的目标函数如下:
· 其中,左边第一项为交叉熵,用来评估有标签数据的误差。第二项(红框中)即为 entropy regularization 项,用来从无标签的数据中获取训练信号。
为了平衡有标签数据和无标签数据的信号强度,如上所示,算法在目标函数中引入了时变参数 α(t),其数学形式如下:
因此,随着训练时间的增加,α(t) 将会从零开始线性增长至某个饱和值,对应无标签数据的信号也将逐渐释放出来。背后的核心想法也很直观,早期模型预测效果不佳,因此 entropy regularization 产生信号的误差也较大,因而 α(t) 应该从零开始,由小逐渐增大。
在实验中,研究人员用 MNIST 数据集进行了实验验证,并尝试了在有标签数据仅为100、600、1000和3000时的情况:
其中,DROPNN、PL 和 PL+DAE 分别是实验中的 baseline 模型、baseline 模型+Pseudo-Label 方法 以及 baseline 模型+Pseudo-Label 方法+ DAE 预训练 方案。
这里我们主要关注Pseudo-Label 方法的效果,其结果如表中倒数第二行所示。从表中可以看出,当有标签数据仅为 600 条时,Pseudo-Label 方法相对于其他公开模型,可以达到最佳的效果。但在其他实验条件下,只能实现相对较好的表现。不过相对于 baseline,此方法在所有情况下均能实现一定的提升。有标签数据量越少,这一提升越明显。这说明 Pseudo-Label 方法确实可以在一定程度上从无标签数据中提取有效信号。
进一步,研究人员通过降维可视化的方式展示了 Pseudo-Label 模型使用前后的效果,实验数据包含 600 有标签数据 + 60000 无标签数据:
对比上面左右两张图可以看出来, Pseudo-Label 模型相对于单独的有监督模型,可以有效改善各类别数据在空间中的聚集密度。
最后,简单说一下这篇文章存在的明显不足:
· Pseudo-Label 方法只在训练时间这个维度上,采用了退火思想,即采用时变系数α(t)。而在伪标签这个维度,对于模型给予的预测标签一视同仁,这种方法在实际中存在明显问题。很显然,如果模型对于一个样本所预测的几个类别都具有相似的低概率值,如共有十个类别,每个类别的预测概率值都接近 0.1,那么再以最大概率值对应的类别作为伪标签,是不合适的,将会引入很大的错误信号。
2.2 Γ Model:Semisupervised learning with ladder networks,2015
Γ Model 是 2015年提出的一类基于 Ladder Network 的半监督学习框架。这一模型的核心思想是由无监督学习及表示学习发展而来。作者认为无监督学习和监督学习存在一定程度的冲突,前者希望模型尽可能保留原始信息,而后者则主要保留与监督任务相关的信息,对于其他与任务无关的特征,模型并不关心。因此,半监督学习算法需要同时兼顾这两方面的需求。
在此基础上,作者通过改造 Ladder Network 来实现半监督学习,整体的网络结构如下图所示: