迁移学习系列-0-NLP classification with transfer learning and weak supervision

paper:
- Building NLP Classifiers Cheaply With Transfer Learning and Weak Supervision
- A Brief Introduction to Weakly Supervised Learning

motivation

现在的 state-of-the-art 技术都严重依赖于大量的数据,可以说数据是 NLP 应用的瓶颈(bottleneck)。比如,标注医学领域的电子健康记录需要大量的医学专业知识。

随着 transfer learning, multi-task learning 以及 weak supervision 的发展,NLP 可以尝试着去解决这些问题。

这里将介绍如何在没有公开数据集的情况下,使用少量的数据,来构建一个 dectect anti-smitic tweets 分类器。分为以下 3 个步骤:
- Collect a small number of labeled examples (~600)
- Use weak supervision to build a training set from many unlabeled examples using weak supervision
- Use a large pre-trained language model for transfer learning

Weak Supervision

何为弱监督学习?

paper: A Brief Introduction to Weakly Supervised Learning
翻译版

弱监督学习是一个总括性的术语,它涵盖了试图通过较弱的监督来构建预测模型的各种研究。弱监督通常分为三种类型。
- 不完全监督(Incomplete Supervision): 只有训练数据集的一个(通常很小的)子集有标签,其它数据则没有标签。
- 不确切监督(inexact supervision): 只有粗粒度的标签。以图像分类任务为例。我们希望图片中的每个物体都被标注;然而我们只有图片级的标签而没有物体级的标签。
- 不准确监督(inaccurate supervision),即给定的标签并不总是真值。

图1:三种弱监督学习的示意图。长方形表示特征向量;红色或蓝色表示标签;“?”表示标注可能是不准确的。中间的子图表示了几种弱监督的混合情形

不完全监督

可以形式化为:\(D=\{(x_1,y_1),...,(x_l,y_l),x_{l+1},..., x_m\}\) 即有 \(l\) 个数据有标签(如 \(y_i\) 所示),\(u = m-l\) 个数据没有标签。

解决这类问题有两种技术:
- 主动学习(active learning), 也就是有个专家来标注 unlabeled 数据. - 半监督学习(semi-supervision), 有一种特殊的半监督学习,叫 transductive learning(传导式学习),它与(纯)半监督学习之间的差别在于,对测试数据(训练模型要预测的数据)的假设不同。传导式学习持有“封闭世界”的假设,即测试数据是事先给定的,且目标就是优化模型在测试数据上的性能;换句话说,未标注数据就是测试数据。纯半监督学习持有“开放世界”的假设,即测试数据是未知的,且未标注数据不一定是测试数据。实际中,绝大多数情况都是纯半监督学习。

有人为干预

主动学习 active learning.

无人为干预

半监督学习[3-5]是指在不询问人类专家的条件下挖掘未标注数据。为什么未标注数据对于构建预测模型也会有用?做一个简单的解释[19],假设数据来自一个由 n 个高斯分布混合的 高斯混合模型(参考以前的笔记),也就是说:

\[f(x | \theta) = \sum_{j=1}^n \alpha_j f(x | \theta_j)\quad\text{(1)}\]

其中 \(\alpha_j\) 为混合系数,\(\sum_{j=1}^n \alpha_j = 1\) 并且 \(\theta = {\theta_j}\) 是模型参数。在这种情况下,标签 \(y_i\) 可以看作一个随机变量,其分布 \(P(y_i | x_i, g_i)\) 由混合成分 \(g_i\) 和特征向量 \(x_i\) 决定。最大化后验概率有:

\[h(x) = {argmax}_c \sum_{j=1}^n P(y_i = c | g_i = j, x_i) \times P(g_i = j | x_i)\quad(2)\]

其中:\(P(g_i = j | x_i) = \dfrac{\alpha_j f(x_i | \theta_j)} {\sum_{k=1}^n \alpha_k f(x_i | \theta_k)}\quad(3)\)

\(h(x)\) 可以通过用训练数据估计 \(P(y_i = c | g_i = j, x_i)\)\(P(g_i = j | x_i)\) 来求得。很明显只有第一项需要需要标签信息。因此,未标注数据可以用来估计提升对第二项的估计,从而提升学习模型的性能。

图中 \(+,-\) 表示标注样本。而测试样本 \(\bigcirc\) 正好在两者中间。

图3给出了一个直观的解释。如果我们只能根据唯一的正负样本点来预测,那我们就只能随机猜测,因为测试样本恰好落在了两个标注样本的中间位置;如果我们能够观测到一些未标注数据,例如图中的灰色样本点,我们就能以较高的置信度判定测试样本为正样本。在此处,尽管未标注样本没有明确的标签信息,它们却隐晦地包含了一些数据分布的信息,而这对于预测模型是有用的。

实际上,在半监督学习中有两个基本假设,即聚类假设(cluster assumption)和流形假设(manifold assumption);两个假设都是关于数据分布的。前者假设数据具有内在的聚类结构,因此,落入同一个聚类的样本类别相同。后者假设数据分布在一个流形上,因此,相近的样本具有相似的预测。两个假设的本质都是相似的数据输入应该有相似的输出,而未标注数据有助于揭示出样本点之间的相似性

半监督学习有四种主要方法,即生成式方法(generative methods),基于图的方法(graph-based methods),低密度分割法(low-density separation methods)以及基于分歧的方法(disagreement methods)。

生成式方法[19,20]假设标注数据和未标注数据都由一个固有的模型生成。因此,未标注数据的标签可以看作是模型参数的缺失,并可以通过EM算法(期望-最大化算法)等方法进行估计[21]。这类方法随着为拟合数据而选用的不同生成模型而有所差别。为了达到好的性能,通常需要相关领域的知识来选择合适的生成模型。也有一些将生成模型和判别模型的优点结合起来的尝试[22]。

基于图的方法构建一个图,其节点对应训练样本,其边对应样本之间的关系(通常是某种相似度或距离),而后依据某些准则将标注信息在图上进行扩散;例如标签可以在最小分割图算法得到的不同子图内传播[23]。很明显,模型的性能取决于图是如何构建的[26-28]。值得注意的是,对于m个样本点,这种方法通畅需要O(m2)存储空间和O(m3)计算时间复杂度。因此,这种方法严重受制于问题的规模;而且由于难以在不重建图的情况下增加新的节点,所以这种方法天生难以迁移。

基于分歧的方法[5,32,33]生成多个学习器,并让它们合作来挖掘未标注数据,其中不同学习器之间的分歧是让学习过程持续进行的关键。最为著名的典型方法——联合训练(co-traing),通过从两个不同的特征集合(或视角)训练得到的两个学习器来运作。在每个循环中,每个学习器选择其预测置信度最高的未标注样本,并将其预测作为样本的伪标签来训练另一个学习器。这种方法可以通过学习器集成来得到很大提升[34,35]。值得注意的是,基于分歧的方法提供了一种将半监督学习和主动学习自然地结合在一起的方式:它不仅可以让学习器相互学习,对于两个模型都不太确定或者都很确定但相互矛盾的未标注样本,还可以被选定询问“先知”。

不确切监督

不确切监督是指在某种情况下,我们有一些监督信息,但是并不像我们所期望的那样精确。一个典型的情况是我们只有粗粒度的标注信息。例如,在药物活性预测中[40],目标是建立一个模型学习已知分子的知识,来预测一种新的分子是否能够用于某种特殊药物的制造。一种分子可能有很多低能量的形态,这种分子能否用于制作该药物取决于这种分子是否有一些特殊形态。然而,即使对于已知的分子,人类专家也只知道其是否合格,而并不知道哪种特定形态是决定性的。

形式化表达为,这一任务是学习 \(f: X\rightarrow Y\) ,其训练集为 \(D = {(X_1, y_1), …, (X_m, y_m)}\),其中 \(X_i = {x_{I, 1}, …, x_{I, m_i}}\), \(X_i\) 属于X,且被称为一个包(bag),\(x_{i, j}\) 属于 X,是一个样本(j属于 \({1, …, m_i})\)\(m_i\)\(X_i\) 中的样本个数,\(y_i\) 属于 \(Y = \{Y, N\}\)。当存在 \(x_{i, p}\) 是正样本时,\(X_i\) 就是一个正包(positive bag),其中p是未知的且 p 属于 \({1, …, m_i}\)。模型的目标就是预测未知包的标签。这被称为多示例学习(multi-instance learning)[40,41]

多示例学习已经成功应用于多种任务,例如图像分类、检索、注释[48-50],文本分类[51,52],垃圾邮件检测[53],医疗诊断[54],人脸、目标检测[55,56],目标类别发现[57],目标跟踪[58]等等。在这些任务中,我们可以很自然地将一个真实的目标(例如一张图片或一个文本文档)看作一个包;然而,不同于药物活性预测中包里有天然的示例(即分子的不同形态),这里的示例需要生成。一个包生成器明确如何生成示例来组成一个包。通常情况下,从一幅图像中提取的很多小图像块就作为可以这个图像的示例,而章节、段落甚至是句子可以作为一个文本文档的示例。尽管包生成器对于学习效果有重要的影响,但直到最近才出现关于图像包生成器的全面研究[59];研究表明一些简单的密集取样包生成器要比复杂的生成器性能更好。图5显示了两个简单而有效的图像包生成器。

51.Convex and Scalable Weakly Labeled SVMs

52.Towards making unlabeled data never hurt

不准确监督

不准确监督关注监督信息不总是真值的情形;换句话说,有些标签信息可能是错误的。其形式化表示与概述结尾部分几乎完全相同,除了训练数据集中的y_i可能是错误的。

一个最近出现的不准确监督的情景发生在众包模式中(crowdsourcing)[74],即一个将工作外包给个人的流行模式。

在带有真值标签的大量训练样本的强监督条件下,监督学习技术已经取得了巨大的成功。然而,在真实的任务中,收集监督信息往往代价高昂,因此探索弱监督学习通常是更好的方式。

Snorkel

paper:Snorkel: Rapid Training Data Creation with Weak Supervision

motivation

deep learning 需要大量的标注数据。这对于一些大公司尚且能够雇佣标注人员,而很多小公司则将目标转向弱监督学习。尤其是,当数据的标注需要领域专家时(subject matter experts (SMEs)),标注数据变得更加困难。

弱监督学习包括一下形式:
- distant supervision: the records of an external knowledge base are heuristically aligned with data points to produce noisy labels [4,7,32]
- crowsourced labels[37,50]
- rules and heuristics for labeling data[39,52]

Snorkel learns the accuracies of weak supervision sources withoust access to ground truth using a generative model [38]. Furthermore, it also learns correlations and other statistical dependencies among sources, correcting for dependencies in labeling functions that skew the estimated accuracies [5]
Snorkel 生成训练数据的方法来自于作者的另外一篇论文:Data programming: Creating large training sets, quickly, NIPS 2016,不仅能给出弱监督得到的样本的置信度,还能学习得到样本之间的相关性和统计依赖。