- API 文档
- CLI
- 集成指南
- 博客
主动学习:在更短的时间内构建更好的 ML 模型
从头开始训练机器学习模型非常困难。 人们普遍错误地认为,构建模型本身是训练模型时最难的部分。 实际上,数据收集和标注过程远比人们想象的要困难。
确定模型应学习的概念、收集数据、让主题专家 (SME) 对其进行注释、确保它们一致以确保注释质量,所有这些流程都很耗时,并且需要多个团队和利益相关者之间的协作。
这种大量的时间消耗会延迟您本应从机器学习中获得价值的时间。 此外,这通常是通过分析和自动化使用 ML 驱动的价值的首要障碍。 数据注释的感知难度与实际难度之间的差异会导致 ML 项目由于错误估计的时间限制而失败。 如果使用机器学习是一个旅程,那么这就像没有地图就离开、迷路并在到达目的地之前放弃一样。
在这篇博文中,我们将讨论缓解这些问题的一种方法:主动学习,它是 Communications Mining 平台的核心。
主动 学习 概述
本质上,主动学习是一组方法,旨在减少训练机器学习模型所需的数据量。 这是一个迭代过程,其中人工注释者和模型可以协同工作。 其基本概念是,并非所有数据点的信息量都相同。 直观地说,一个好的导师可以构建最适合学生的课程,而不是让他们学习整本教科书。
- 与较难的概念相比,简单的概念需要更少的数据即可学好
- 如果有不同的方式来表达同一个概念,则多次向模型展示各种示例比向模型展示相同的短语更有价值
- 一旦模型确实理解了一个概念,在其他概念上训练模型比提供更多仅有助于模型理解的数据更有价值
主动学习的具体方法有很多,但它们都依赖于定义模型不确定性的概念,该概念量化了模型对其预测的置信度。 您可以在modAL python 库中找到各种常见不确定性指标的实现和说明,或者您可以在这份调查论文中了解有关主动学习研究的更多信息。 我们建议您将两者都查看一下。
传统的主动学习循环如下所示:
光说这些就足够了,让我们将其付诸实践。
路透 数据集
出于演示目的,我们使用NLMK提供的公开可用的路透语料库。 它是标有 90 个类别的 10,788 篇新闻文章的集合,任何文章都可以有一个或多个标签。
grain
、 ship
和wheat
的。
法国出口商看到对中国的小麦销售量增加
法国出口商估计,在 1986/87 年度(7 月/6 月),约有 60 万吨法国软质麦已销往中国交付。 1986 年 7 月至今年 2 月,向中国出口了约 30 万吨。 消息人士称,本月还将装运 100,000 至 150,000 公吨,4 月份装运量大致相同。 法国在 1985/1986 年度向中国出售了约 250,000 吨软质麦。 然而,某些出口商担心,在 1 月份,中国根据“出口促进计划”向法国提供了 100 万公吨美国软质麦,并根据该计划进行了一些采购后,可能会放弃与法国的部分合同。
您可以在此处找到我们清理/处理的数据。 欢迎您自己尝试!
简单的主动学习 比较
我们来比较 Communications Mining 的主动学习策略与从训练集中随机抽样,这是数据收集的标准基线。
对于所有实验,我们的设置如下:
- 我们选择 20 个最常见的标签,并仅学习这些标签
- 对于训练/测试拆分,我们使用数据集提供的拆分
- 我们会报告 10 次运行的平均值和标准偏差
- 基础机器学习模型完全相同,唯一的区别是注释策略
两种方法都从相同的 100 个随机选择的示例(初始集)开始。 主动学习需要少量的初始数据来获得可靠的不确定性估计,然后我们才能使用它们来指导训练过程。 在实践中,通常会使用 Communications Mining 的“ 发现” 页面中的 集群 创建此初始集,但为了尽可能公平地进行比较,我们对本文中的两种方法使用相同的随机初始集。
对于主动学习,我们以迭代方式选取 Communications Mining 主动学习策略估计的信息量最大的 50 个示例,然后重新训练模型,如此重复。 对于基线,我们在每次迭代时从剩余的未注释数据中随机抽样了 50 个示例。
在每个时间步骤,我们都会比较两个模型在完全相同的测试集上的性能,并使用平均精度 (MAP)作为主要指标。
主动学习的性能明显优于随机基线。 后者在 3050 个训练示例后实现了 80% 的 MAP,而主动学习驱动的训练仅在使用 1750 个示例(减少了1.7倍)后就实现了这一点。
我们已经凭经验证明,主动学习可以减少生成良好模型所需的数据量,但这真的是我们希望实现的目标吗?
我们认为,主动学习的真正目标应该是减少生成良好的机器学习模型所需的时间。 这些时间用于协调不同的团队和管理计划,数据科学家用于模型开发和训练,以及 SME 的数据注释。
主动 学习 中的学术误区
大多数主动学习研究旨在创建进一步减少模型数据需求的方法。 他们做出的假设在现实环境中不一定正确。
批注者不需要花费相同的时间来标记所有 输入
仅着眼于减少训练点数的做法忽略了这样一个事实,即即使是同一个人,标注不同输入的时间也会有很大差异。 文本较长或更复杂的输入需要更长的时间来阅读。 包含更多概念的输入需要更长的时间来注释,因为人们在阅读文本时必须跟踪许多不同的主题。
上下文切换也会产生成本。 让贴标签者连续标注同一概念 20 次比标注 20 个不同的概念要快,因为标注者必须不断切换思维上下文,并且无法进入良好的标注流程。
仅查看带注释的示例的数量可能会产生误导。 事实上,如果一个输入的信息量仅为另一个输入的一半,但注释速度比另一个输入快十倍,则就活跃的 SME 时间而言,对其进行注释是一个更好的权衡。 最终,这是需要最小化的最重要指标。
标注器未很好地集成到 循环 中
主动学习研究假设,要求注释者标记最新训练模型呈现的输入可以在即时发生。 在这个世界中,人工注释者已紧密集成到主动学习循环中,只需等待输入即可进行注释,就像注释机一样。
但实际上,负责标注数据的 SME 很少是控制模型训练的人员。 每次迭代都需要 SME 和数据科学家之间的协调,以来回传递数据并提供对新模型的访问权限,从而与每个人的忙碌日历同步。
模型重新训练不是 即时 的
由于主动学习需要多次迭代才能以最佳方式改进模型,因此一个常见的假设是,重新训练模型是即时发生的,唯一耗时的活动是数据注释。 但是,如果模型重新训练由单独的数据科学团队控制,或由最先进的云解决方案(如 Google AutoML)提供,则重新训练模型的时间实际上可能会很长。 Google AutoML 估计训练模型需要 6 小时到 24 小时。 这从根本上与快速迭代不兼容,如果 SME 每次为批次添加标签时都需要等待 6 小时才能获得下一批,那么训练模型将需要数周甚至数月的时间。
SME 不知道何时停止 训练
为了建立基准并进行可比较的研究,通常会根据定义良好的测试集对性能进行基准测试。 这对于学术研究是必要的,但在现实世界中并不存在这样的测试集,因为我们一开始根本没有任何带注释的数据。 要知道模型何时达到可以在生产中使用的足够性能,从而 SME 何时可以停止标注更多数据并开始获取价值,是一项艰巨的任务。
学术数据集有一组众所周知的标签,它们正在尝试学习,这使测试集准确性成为衡量进度的良好指标。 在现实中,SME 通常不确定其数据中存在哪些概念,并在注释时发现新概念。 一份好的进度报告需要考虑到这种不确定性。
适用于现实 世界 的主动学习
在 Communications Mining,我们构建了一个产品来挑战这些假设,并考虑到在具有多个利益相关者和具有挑战性要求的业务环境中训练机器学习模型的现实。
Communications Mining 用户界面旨在帮助 SME 尽快标注数据。 用户界面会根据最新的模型预测显示建议的标签,从而允许用户快速分配或关闭预测,而不必从整个标签集中进行选择。 随着模型变得越来越好,建议也会越来越好,从而使注释者可以更快地审核更多数据。
第二个关键因素是 Communications Mining 模型的训练速度很快,平均只需两分钟或更短时间。 由 SME 标注数据触发,模型在后台持续训练。
Communications Mining 模型 评分
Communications Mining 的主动学习策略由模型评分驱动。 其背后的驱动理念是提供易于理解的整体评分,概述模型的性能以及改进模型的最佳方法。
-
“余额”跟踪模型的训练数据在整体上代表数据集的程度
-
覆盖率用于跟踪概念分类涵盖数据中所有概念的准确度
-
“所有标签”跟踪每个标签的预测性能
-
表现不佳的标签会跟踪表现最差的标签的预测性能。 在完美的数据集中,即使性能最低的标签也应该表现良好
后两项与学术界使用的测试集性能非常相似,尽管经过修改,根据可用的已审核数据而不是先验已知的测试集进行估计。 前两个旨在帮助减少使用一组不断变化的标签进行迭代标注的潜在陷阱。 有兴趣的读者可以阅读我们即将发布的关于余额和覆盖率的博客文章,了解更多信息。
我们会将所有这些因素合并为一个分数,即模型评分。 这通过提供可用于跟踪进度的明确分数来尝试回答何时停止训练的问题。
对于 SME 来说,最好是轻松地注释许多信息量略少的输入,而不是因注释非常困难的输入而心力交瘁,并在只看几个示例后就放弃。
对操作进行分组,以便 SME 在执行一项操作时会尝试改进模型的一个特定区域,从而最大程度地减少上下文切换、工作量、沮丧程度和花费在注释上的时间。
让我们回到路透数据集,但根据人工小时而不是数据点重新构建我们之前的比较。
标注速度有多快 ?
为此,我们需要确定注释输入平均需要多长时间。 我们研究了用户在使用平台时的行为,以便估计这一点,我们发现决定注释速度的两个主要因素是,是否预测标签以及任务是否涉及上下文切换。
在 Communications Mining 平台中,某些训练视图(例如“随机播放” 、“低置信度”、“最近”和“重新平衡”)涉及显示未按任何特定主题分组的输入,这意味着需要频繁切换上下文。 其他操作(例如“发现” 、“教标签”或“按特定标签概率排序”)会显示所有相关的输入,从而带来更有针对性的体验。
下表显示了按这两个因素细分的每个注释的估计中值时间(以秒为单位)。
手动分配 |
确认预测 | |
---|---|---|
上下文切换 |
7.10 |
2.95 |
已聚焦 |
5.56 |
2.66 |
我们观察到,确认预测比手动分配标签要快得多,并且不使用工具的随机注释可能比在专用工具中确认预测慢 2.5 倍以上! 但是,即使没有预测,聚焦任务也比需要上下文切换的任务平均快 22%。
请继续关注后续博客文章,我们将深入研究这些数据,并揭开快速注释体验的成败因素。
使用这些数据,我们可以估计构建良好模型所需的活跃人工小时。
按活动注释 时间 比较策略
让我们回到最初的比较。 为了充分了解不同因素的影响,除了我们之前比较的两种方法外,我们还研究了另外三种场景。
-
我们在之前的比较中使用的 Communications Mining 主动学习功能。 在模型评分的指导下,在每个时间步骤,我们标记了前五个推荐操作中每个操作的前十个样本,然后重新训练模型。 实际上,Communications Mining 的模型通常会在提供 50 个新注释之前完成重新训练,因此在实践中,模型实际上会比模拟中的模型更新。
-
不带建议的主动学习,它使用 Communications Mining 策略,但不使用通过显示预测来加快注释速度的专用注释用户界面。
-
无建议的随机抽样,这是我们在上次比较中的基线。 在每个时间步骤,我们都会从剩余的未注释候选对象中随机抽样 50 个,并且不使用专用的注释用户界面。
-
带建议的随机抽样,与之前的策略相同,但增加了专用的标注用户界面。
-
随机批量学习,在 SME 未紧密集成到主动学习流程中并且无法访问 Communications Mining 用户界面等足够工具的情况下。 在这种情况下,我们假设模型训练是一个漫长的过程,因此批注会大批量进行,以摊销训练时间。 在每个时间步骤,我们会随机抽样 1000 个新输入并为其添加注释。
首先,我们研究一下,如果我们只关注活跃的 SME 时间,当他们坐在计算机前标注数据以进行模型训练时,会发生什么情况。
我们观察到,与随机基线相比,专用注释工具和主动学习分别取得了显着的改进。 将主动学习与良好的用户体验相结合,我们既可以提高数据效率,又可以减少标记每个输入所需的时间,从而结合两者的优势并产生更大的加速。
但是,中间场景有些人为。 实际上,打算开始利用机器学习的公司可能会购买具有这两个功能的工具,例如 Communications Mining,或者内部构建一个更接近于“随机批处理”场景的概念验证。 因此,在后续比较中,我们重点关注Communications Mining和Random Batch 。
我们对两种场景之间的时间增量进行了基准测试,生成的模型达到了 80% MAP。
与“随机批处理”标注相比,Communications Mining 的速度提高了3.1倍,从而使 SME 在 3 小时内实现所需的 MAP,而不是 9 小时 25 分钟。 这就是花费一个上午和一个半工作日注释的区别!
估计实现 价值 的时间
之前的估计值仍然相对乐观,因为它只考虑 SME 主动添加注释的时间。 虽然活跃的 SME 时间是一个需要考虑的重要因素,但机器学习项目的价值实现时间也以挂起时间来衡量,即项目开始和交付值得使用的模型之间的时间(以天为单位)。 在考虑挂起时间时,我们还需要考虑其他因素。
如前所述,如果由第三方云解决方案(例如 Google AutoML)提供,则训练时间可能长达 24 小时。 在最近将 Communications Mining 的模型与 AutoML 进行的比较中,我们发现训练 400-5000 个示例通常需要大约 4 小时,因此我们将以此作为估计时间。
此外,即使使用 Cloud ML 解决方案,模型训练也需要由内部数据科学团队触发。 在这种情况下,每轮注释都涉及以下步骤:
- 从参与注释的所有 SME 收集数据
- 将数据发送给数据科学团队
- 数据科学家手动检查新数据的格式是否正确,以及是否已填写所有必填字段
- 可以要求 SME 修复数据中的任何问题
- 将现有数据与新收集的数据集合并
- 训练新模型
- 验证新模型的性能,确保训练运行成功结束
- 使用新模型获取新一批未注释的数据,以由 SME 进行注释
- 发送数据以进行注释
所有这些步骤都需要在优先级和计划不同的多个团队之间进行协调,这会导致大量停机时间。 根据与合作伙伴的互动,我们估计每次迭代至少需要 48 小时,但我们已经发现,如果团队优先级不一致,则可能需要数周时间。
使用 48 小时作为由于跨团队沟通而导致的平均停机时间,我们可以对机器学习项目的价值实现时间进行切合实际的估计。
使用 Communications Mining,此任务可在 3 小时内完成,但如果没有适当的工具,可能需要长达 270 小时,即速度减慢 89 倍。
一个人半天工作后获得的价值,与多个团队花费两周工作周时间获得的价值之间的差异,关系到一家公司是否会采用机器学习,您可能会错失机器学习所能提供的价值。
我们在这篇博文中介绍了一些主题,但主要内容如下:
- 主动学习有助于减少训练良好的机器学习模型所需的数据点数量
- 主动学习研究做出的假设并不总是现实的
- 通过正视这些假设,并让人工注释者更多地参与注释流程,我们可以大大缩短机器学习项目的价值实现时间
- 优先考虑人类体验对于主动学习策略的成功至关重要
如果您想尝试使用 Communications Mining 来加快公司采用机器学习驱动的价值,请联系UiPath 。