在机器学习的世界里,我们正生活在一个悖论之中。我们可以使用在数万亿个标记上预训练的模型——这些大型语言模型似乎无所不知。然而,当我们想要解决特定的、现实世界的业务问题时——比如对客户支持工单进行分类或检测特定类型的有毒言论——我们往往会碰壁。

这堵墙就是标记数据

虽然未标记的文本随处可见,但高质量的标记数据却稀缺、昂贵且生产缓慢。你通常需要人类专家坐下来对数千个示例进行分类,以便微调模型。

这将我们引向了一篇至关重要的研究论文: 由 Christopher Schröder 和 Gerhard Heyer 撰写的 《Self-Training for Sample-Efficient Active Learning for Text Classification with Pre-Trained Language Models》 。 这项工作直面数据稀缺问题。研究人员提出了一种名为 HAST 的方法,将人类的专业知识与机器的置信度相结合,使得模型仅需 130 个标记样本即可达到最先进的性能。

在这篇文章中,我们将解构这篇论文,探索它如何将主动学习与自训练相结合,从而创建一个高效的文本分类流程。

双引擎: 主动学习与自训练

要理解这篇论文的创新之处,我们首先需要了解它试图协调的两种特定技术: 主动学习 (Active Learning)自训练 (Self-Training)

主动学习: 人在回路中

在传统的监督学习设置中,你可能会随机选择 10,000 个文档,全部标记,然后训练模型。但并非所有文档都同样有用。有些是重复的;有些则是显而易见的。

主动学习 (AL) 是一种模型“寻求”帮助的策略。模型不会标记随机数据,而是查看未标记数据池,并找出它最不确定的实例。然后它会向“预言机” (人类标注员) 查询,仅标记那些困难的实例。

自训练: 机器反馈循环

自训练 (ST) 是一种半监督技术,模型充当自己的老师。一旦模型经过部分训练,它就会对剩余的未标记数据进行预测。如果模型对某个预测非常有信心 (例如,“我有 99.9% 的把握这是一条正面评论”) ,它就会将该预测指定为“伪标签”。这些伪标记的示例随后会被添加到训练集中。

冲突与机遇

这两种方法乍一看似乎相互矛盾。

  • 主动学习关注不确定性 (模型不知道的) 。
  • 自训练关注确定性 (模型认为它知道的) 。

然而,如下图所示,它们实际上可以完美和谐地工作。

Figure 1: Active learning (a), and active learning with interleaved self-training (b). For active learning, the most uncertain samples are labeled by the human annotator, while for self-training pseudo-labels are obtained from the current model using the most certain samples.

(a) 部分中,我们看到了标准的主动学习循环: 模型为人类选择不确定的样本。 在 (b) 部分中,作者提出了一种交错的方法。人类处理“困难”案例以修正模型边界,而模型自动标记“简单”案例以扩充训练数据。这创造了一个强大的反馈循环,在不需要额外人力的情况下迅速增加标记数据集。

自训练的现状

虽然结合 AL 和 ST 的想法并不新鲜,但作者指出了以往研究在处理这一问题时存在的重大缺陷。他们对四种主要的自训练策略进行了复现研究:

  1. UST (不确定性感知自训练) : 使用 dropout (随机禁用神经元) 来估计不确定性并采样实例。
  2. AcTune: 使用聚类来寻找多样化的样本,但依赖于验证集来调整超参数——这在低资源场景中很少具备。
  3. VERIPS: 一种严谨的方法,通过验证伪标签来筛选,但使用严格的置信度阈值。
  4. NeST (邻域正则化自训练) : 利用嵌入空间 (文本向量之间的几何关系) 来平滑预测。

下表总结了这些方法。请注意它们在选择伪标签的方式上的差异,以及它们是否针对主动学习的特定约束 (即我们没有大量的验证集) 进行了设计。

Table 1: Comparing the four most relevant self-training approaches in terms of pseudo-label selection, self-training, and experiment setting.

作者认为,许多这些方法存在不切实际的设置 。 例如,有些方法需要一个包含 1,000 个标记样本的验证集来调整参数。如果你有 1,000 个标签,你可能一开始就不需要主动学习了!此外,刚性的置信度阈值 (例如“仅接受概率 > 0.9”) 通常会失效,因为模型置信度并不总是与准确率校准一致。

隆重介绍 HAST: 硬标签邻域正则化自训练

为了克服这些限制,作者引入了 HAST 。 这种新方法旨在实现样本高效且稳健,即使没有大型验证集也能正常工作。

HAST 建立在三大支柱之上: 对比表征学习基于邻域的选择动态加权

1. 对比表征学习 (SetFit)

像 BERT 这样的标准语言模型会生成嵌入 (文本的向量表示) ,但这些向量之间的距离并不总是与语义相似度完美对应。

HAST 利用了对比学习 , 特别是使用了 SetFit 框架。SetFit 对底层句子嵌入进行微调,使得同类样本在向量空间中靠得很近,而不同类样本相互推开。这创建了一个“更干净”的数据地图,使得下一步——寻找邻居——更加可靠。

2. 通过邻居选择伪标签

HAST 并不是只问模型“你有信心吗?”,而是问“你的邻居同意你的观点吗?”

这利用了 k-最近邻 (KNN) 投票。对于特定的未标记实例 \(x\),HAST 会检查嵌入空间中 \(k\) 个最近的标记样本。

选择规则的数学定义如下:

Equation 1 showing the selection criteria for pseudo-labels based on confidence and KNN agreement.

这个方程告诉我们:

  • 我们选择一个实例进行伪标记 (\(\mathbb{1}_{PL}(x) = 1\)) 当且仅当 :
  1. 模型的置信度 (\(s_i\)) 大于 0.5 (这是一个非常低、宽松的门槛) 。
  2. 模型的预测标签 (\(\hat{y}_i\)) 与其邻居的多数投票 (\(\hat{y}_i^{knn}\)) 相匹配。

这是一种聪明的“健全性检查”。即使模型略有不确定 (例如 60% 的置信度) ,如果周围的所有数据点都说“类别 A”,HAST 就会信任邻域并分配伪标签。这使得 HAST 能够比依赖严格 90%+ 置信度阈值的方法收集更多的伪标签。

3. 通过加权处理不平衡

自训练的一个主要风险是失控偏差 。 如果模型擅长检测“类别 A”但不擅长“类别 B”,它将为类别 A 生成数千个伪标签。在这些倾斜的数据上重新训练将使模型完全忽略类别 B。

HAST 引入了一种动态加权方案来解决这个问题。

首先,它计算原始不平衡分数 \(z\)。它查看伪标签的总数 (\(N\)) 和特定类别的计数 (\(h_c\))。

Equation 2 showing the calculation for the imbalance score z.

如果类别 \(h_c\) 的样本多于平均值 (\(N/C\)),\(z\) 变为负数。如果较少,\(z\) 变为正数。

接下来,该分数通过 Sigmoid 函数转换为类别权重 \(\alpha_c\):

Equation 3 showing the calculation for alpha_c using a sigmoid function.

这本质上是降低了伪标签中代表性过高类别的权重,并提高了稀有类别的权重。

最后,HAST 应用了一个全局阻尼因子 \(\beta\)。由于伪标签是自动生成的,它们本质上比人类标签更“嘈杂”。我们不应该像信任主动学习预言机提供的黄金标准数据那样信任它们。

Equation 4 showing the final weight calculation.

参数 \(\beta\) 允许研究人员相对于人类标签按比例降低所有伪标签的影响。在他们的实验中,他们发现 \(\beta\) 为 0.1 是有效的,意味着一个伪标签只携带人类标签 10% 的投票权。

实验: 我们能仅用 130 个样本进行学习吗?

研究人员将 HAST 与复现的方法 (UST, AcTune, VERIPS, NeST) 以及基线 (无自训练的标准主动学习) 进行了测试。

实验设置

他们使用了四个不同的数据集,范围从新闻分类到情感分析。

Table 2: Key information about the examined datasets. Abbreviations: N (News), S (Sentiment), Q (Questions).

约束条件非常严格:

  • 仅从 30 个标记实例开始。
  • 执行 10 轮主动学习。
  • 在每一轮中,仅标记 10 个新实例
  • 总预算: 130 个实例。

这是一种极度“低资源”的设置。作为背景参考,典型的深度学习训练通常使用数万个示例。

结果

性能通过准确率 (针对平衡数据) 和 F1 分数 (针对不平衡数据) 来衡量。下表详细列出了 130 个样本后的最终性能。

Table 3: Classification performance after the final iteration. The table breaks down results by query strategy, classifier (BERT vs SetFit), and self-training approach.

结果的关键要点:

  1. HAST 配合 SetFit 占据主导地位: 当使用对比 SetFit 模型时,HAST (最下面几行) 始终取得顶尖结果,在 DBPedia 上达到 98.4% 的 F1 分数 , 在 IMDB 上达到 88.2% 的准确率
  2. 自训练有效: 几乎所有自训练方法的表现都优于“无自训练”基线。
  3. NeST 是一个强有力的竞争者: NeST 方法的表现也非常出色,特别是在使用标准 BERT 模型时。NeST 和 HAST 都利用了嵌入空间,这表明几何结构是样本效率的关键。

可视化学习曲线

重要的不仅仅是最终得分,还有达到该得分的速度。下面的学习曲线显示了性能 (y 轴) 与标记实例数量 (x 轴) 的关系。

Figure 2: Learning curves per model, query strategy, and dataset. The horizontal red line represents the performance of a model trained on 100% of the data.

看看 SetFit 列 (每对的右侧) 。紫色线 (HAST) 极速上升。在 DBPedia 数据集 (第二列) 上,HAST 几乎立即达到了近乎完美的性能,实际上仅用一小部分数据就匹配了红线 (在整个数据集上训练的模型) 。

对噪声的鲁棒性

有人可能会担心: “如果模型生成了错误的伪标签怎么办?”

研究人员通过人为注入噪声——将正确的伪标签翻转为错误的——对此进行了分析。

Figure 3: The effect of label noise for NeST and HAST on AGN. The left side shows validation accuracy, the right side shows area under the curve.

上图显示,即使在噪声增加到 20% (\(\lambda = 0.2\)) 时,HAST (橙色/紫色线) 仍能保持高准确率。这表明加权机制有效地抑制了不良数据的影响,防止模型失控。

加权真的重要吗?

最后,作者进行了消融实验,看看他们复杂的加权数学是否真的有必要。

Table 6: Ablation analysis showing performance when removing different weighting components.

结果很明确。当他们移除类别加权 (\(\alpha=1.0\)) 或伪标签降权 (\(\beta=1.0\)) 时,性能普遍下降。解决类别不平衡和管理噪声比率的组合对于该方法的成功至关重要。

与最先进技术的比较

这篇论文中最令人印象深刻的数据可能是 HAST 与文献中其他“低资源”方法的比较。

Table 4: Comparison with previous works that have investigated low-resource methods. Comparison includes sample sizes (N).

AG’s News 数据集上,HAST 使用 130 个样本达到了 0.886 的准确率 。 之前基于 BERT 的主动学习方法需要 525 个样本才能达到类似的 0.904 。 在 DBPedia 上,HAST 匹配了使用 420 个样本的方法的性能,而它仅用了 130 个。

这代表着与之前的强基线相比, 标记工作量减少了 3 到 4 倍

结论与启示

HAST 方法表明,我们不一定需要海量数据集来构建高性能的文本分类器。通过结合对比学习 (创建有意义的数据地图) 、主动学习 (让为了解决困难案例) 和自训练 (让机器解决简单案例) ,我们可以以极少的人力投入实现最先进的结果。

这有什么重要意义?

  1. 成本: 它大幅降低了数据标注所需的预算。
  2. 可访问性: 没有数据团队的小型组织也能构建自定义分类器。
  3. 效率: 它证明了较小的模型 (如这里使用的 1.1 亿参数模型) ,如果训练得当,也可以是非常强大的工具。

随着我们在 AI 领域的不断发展,焦点正从“你的模型有多大?”转移到“你的数据效率有多高?”。像这样的论文为更可持续、更易获得的自然语言处理铺平了道路。