循环智能的主动学习(Active Learning)技术探索与实践:减少 80% 标注量
LabelXL:让每一次标注的价值最大化
很多企业通过建立自己的客户联络中心,为客户提供服务、解答疑惑、推介新产品。在企业与客户的沟通过程中,产生了海量的非结构化录音和文本数据。为了让沟通更高效,服务质量更优,客户满意度更强,企业就需要从数据中洞察客户的真实需求、管理和提升业务员的沟通能力。
但由于需要收集分析的数据量急剧增加,从大量数据中手动提取有用的知识变得非常困难和不可能,因此需要利用自然语言处理(NLP)和数据挖掘(Data Mining)技术来帮助企业挖掘和发现有用的知识。
为了让机器快速学习,对沟通数据(电话录音、在线IM沟通记录)进行标注是必不可少的一步。但是,数据标注需要昂贵的人工或各种成本,面对海量的非结构化数据,如何经济又准确地进行标注是一个的棘手问题。
而主动学习(Active Learning)被认为是一种非常有效的解决方案:通过使用少量已有标注数据,让机器学习到的模型与标注专家进行高效的交互,选出最有价值和信息量的样本进行标注,能够在达到预设标准的情况下,有效降低模型学习所需要的标注数据量。
主动学习模型的分类
目前各类研究积累了大量的主动学习模型,通常,我们有几种不同的分类标准来划分这些模型。
根据输入数据的方式,主动学习可以分为:
基于流的主动学习,它将未标记的数据一次性全部呈现给一个预测模型,该模型将预测结果(实例的概率值),根据某些评价指标(比如margin)计算评估实例的价值,随后应用主动学习决定是否应该花费一些预算来收集此数据的类标签,以进行后续的训练;
基于池的主动学习,这个通常是离线、反复的过程。这里向主动学习系统提供了大量未标记的数据,在此过程的每个迭代周期,主动学习系统都会选择一个或者多个未标记数据进行标记并用于随后的模型训练,直到预算用尽或者满足某些停止条件为止。此时,如果预测性能足够,就可以将模型合并到最终系统中,该最终系统为模型提供未标记的数据并进行预测。
根据数据选择的角度,又可以分为具有渐进关系的两类:
一是仅基于独立同分布(IID)数据的不确定性进行主动学习,其中选择标准仅取决于针对每个数据自身信息计算的不确定性值;
二是通过进一步考虑实例相关性来进行主动学习,基于数据相关性的不确定性度量标准,利用一些相似性度量来区分数据之间的差异。
这里涉及几种不同的有意义的度量来对未标记数据进行打分排名,包括不确定性、代表性、不一致性、方差和错误率等。每个重要性度量都有一个标准,用于评估哪些数据对于提高分类器性能最重要。例如:
不确定性认为最重要的未标记数据是最接近当前分类边界的数据;
代表性认为可以表示一组新实例(例如一个聚类)的未标记数据更为重要;
不一致性认为在多个不同基准分类器中具有最大预测差异的未标记数据更为重要。
另外,根据采用的分类器,主动学习模型也可以分为不同的类别。一些流行的分类器,包括朴素贝叶斯,k近邻,决策树,多层感知机,逻辑回归,支持向量机和神经网络都有相应的研究。
解决主动学习中类不平衡问题的方法
主动学习无疑是有效的,但最近的一些研究表明,主动学习在应用于存在类不平衡问题时往往会失败:大类中的数据所占比例较大,可能会导致模型的训练和预测偏向一个类。之前的一些研究,试图通过使用不同的技术来解决这一问题。
Zhu和Hovy 等人尝试在主动学习过程中加入几种采样技术,以控制少数类和多数类中被标记实例数量的平衡,他们提出了一个基于bootstrap的过采样BootOS策略,该策略会基于该样本的所有k个邻居生成一个bootstrap样本。在每次迭代中,选择不确定性最大的数据进行标记并加入到已标记的数据集中。对应用该过采样策略来产生更加平衡的数据集,该数据集用于模型的重新训练。在每次迭代中选择具有最高不确定性的数据进行标记的操作涉及对已标记的数据进行重采样和使用重采样的数据集训练新的分类器,因此,此方法的可扩展性可能是大型数据集所关注的问题。
Ertekin 等人提出VIRTUAL,一种过采样和主动学习相结合的方法,它建立了一种对少数群体进行重采样的自适应技术学习者选择最有用的样本进行过采样,然后该算法沿着的k个邻居之一的方向构造一个伪样本。该算法是一个在线算法,且它在构造伪样本后无需在整个标记数据集上重新训练就可以逐步构建分类器。
Bloodgood和Shanker 等人利用了代价敏感学习的思想,用于在主动学习过程中处理失衡的数据分布,他们提出一种引入类特定代价的方法,扩展了基于SVM的主动学习的优势,然后利用经过适当调整的代价敏感的SVM,根据基于不确定性的“margin”标准选择数据。
Tomanek和Hahn 等人提出了两种基于不一致显著性度量的主动学习方法。
Hualong Yu 等人提出了一种基于极限学习机的主动在线加权模型。
但这些算法在很多实际场景中的效果并不尽如人意。首先,由于缺乏真实场景中的数据集,学术中的主动学习方法是针对模拟数据集,而且样本通常是均匀数据集,同时对数据集中待标记的样本进行了强假设;其次,很多主动学习方法忽略了通过主动学习选择样本的重要性,而且在初始训练集的选择上也存在欠缺;第三,真实场景中的数据集噪声更多、也更不平衡,而数据的不平衡性会在很大程度上影响主动学习策略的抽样性能,因此我们需要降低类不平衡性带来的影响。
综合以上分析,可以发现在真实场景中,类不平衡问题在很大程度上会限制主动学习策略在实际业务中的能力。
真实场景的主动学习策略 LabelXL
针对上述问题,循环智能(Recurrent AI)设计并提出了一种,在真实场景的不平衡文本分类任务中,有效的主动学习策略 LabelXL——让每次标注的价值最大化。
△ 主动学习策略 LabelXL 的工作流程
整个主动学习流程为一个闭环,在每一轮的迭代中,已标记的少量数据集用于训练分类模型,然后模型评估每个实例的价值,并选出最有价值和信息量的一些实例交给专家进行标注,然后将新标注的数据加入到已标记数据集中进行更新。然后主动学习重复上述过程,直至满足预设条件为止。
在实际训练时,不同的样本实例对于模型的学习贡献度不同,如果能够选出最有价值和信息量的一部分数据进行标注,那么就有可能仅使用少量的训练数据而获得同样性能的分类模型。因此主动学习的主题,就是为当前模型,选择信息最丰富的未标记实例。主动学习的核心任务就是采样策略的设计,即按照一定的度量准则来选择未标记实例。显然,对未标记实例价值的评估和合理的样本选择策略尤为重要。
考虑到实际业务场景下的真实数据十分复杂,捕捉和分析样本的空间信息比较困难,因此在选择价值度量时,我们优先选择了基于不确定性的度量指标margin,同时为了降低数据类不平衡性的影响,我们对少数类(正例)采用了过采样策略来优化训练。过采样方法能够从数据集发现我们更关注的样本,从而为算法提供足够的数据以输出更准确的结果。在类不平衡问题中,我们通常更关心的是少数类所蕴含和传递的信息。因此对少数类进行过采样,创建数据增强的方法来增加我们更关注类别的样本数量,并进行模型训练。
我们详细对比了使用主动学习策略 LabelXL 与未使用时(随机选取标注样本)的算法性能差异。两个典型的例子,如下:
金融行业客户的语义点“资金困难”,达到预设标准所需的标注量,降低了 80%。
教育行业客户的语义点“六级”,达到预设标准所需的标注量,降低了 65%。
综合来看,在实际业务场景下,应用主动学习策略 LabelXL 可以让每次标注的价值最大化,从而大幅降低达到同样的效果(F1值)所需的标注量。
同时,不同的语义点能降低的标注量比例会有区别。在我们的测试中,大部分语义点应用主动学习策略 LabelXL 可以降低 50% ~ 80% 的标注量。也就是说,生产一个语义点(画像/标签)的速度通常可以提升 2~3 倍。借助 LabelXL 策略,循环智能显著提升了 NLP 技术的规模化落地能力。