干货 | 弱监督学习框架 Snorkel 在大规模文本数据集"自动标注"任务中的实践

作者简介

 

Jay,携程高级算法经理,关注机器学习和深度学习领域在酒店场景可落地的相关技术。

引言

近年来,得益于深度学习的巨大发展,自然语言处理(NLP)领域也爆发了多个如 BERT 等state-of-the-art模型,供从业人员使用。但是这些开源的最先进的模型大多是在通用的基准数据集上训练得到的,当我们在具体工业场景中使用时往往还是需要在具体使用场景的数据集上进行微调。获得这些特定领域数据集的传统方式是人工标注。这些手工标注的数据集创建起来既昂贵又耗时,特别是对于一些比较难的任务往往人工标记的准确度也无法达到要求。


一、大量标注数据在深度学习任务中的重要性


1.1 训练数据瓶颈

即便深度学习的基石——神经网络早在1943年就被提出,但是深度学习在近十多年才获得了突飞猛进的发展。究其原因,深度学习的成功需要满足三大要素:先进的模型、大量的数据和高性能的硬件。对于深度学习领域的从业者来说,得益于大量的研究人员和开源社区,三大要素之一的最先进的深度学习模型也变得唾手可得。随着GPU和云计算的发展,高性能的硬件也不再遥不可及。然而,要收集足够多的标注数据,在这些硬件上训练这些开源模型,并不像看上去的这么简单。事实上,这个障碍已经成为大多数机器学习应用的主要瓶颈。所以说,当前深度学习项目的成功往往取决于一个隐性成本:庞大的、手工标注的训练数据集。


1.2 人工标注数据的劣势

手动标注训练数据非常昂贵,尤其是在需要专业知识和隐私的情况下。建立训练数据集通常需要大量的标注人员,这需要大量的成本和时间。例如,ImageNet是ML在图像领域获得爆炸性发展背后的基础项目之一,需要花费两年多的时间来创建。但是,给猫、狗、停车标志和行人打标是一回事;标记医学图像、法律和金融合同、政府文档、用户数据和网络数据等数据需要严格的隐私保护和主题专家标注。这意味着对于金融服务、政府、电信、保险、医疗保健等行业,人工创建训练数据是非常昂贵的,或者是无法实现的。

手动标注的数据不可能进行迭代开发。 从工程和数据科学的角度来看,手动标记的训练数据从根本上破坏了快速迭代的能力。这在输入数据、输出目标和注释模式始终在变化的现实环境中至关重要。从业务的角度看,训练数据是一项昂贵的资产。如果不能在各个项目中重复使用,那么由于条件或业务目标的变化,这些数据的价值通常会飞速地衰减。

正是由于人工标注的种种劣势,研究人员不得不思考其它能快速产出有效标注数据的方法。弱监督学习框架 Snorkel 便是其中一种。


二、Snorkel 框架介绍

Snorkel 是一种快速产出训练数据的弱监督系统,利用标签函数,可以快速产生、管理、建模训练数据。

在Snorkel中,不需要使用手工标记的训练数据,而是要求用户编写标记函数 (labeling functions, LF),即用于标记未标记数据子集的黑盒代码片段。

研究人员可以使用一组这样的标注函数来为机器学习模型标注训练数据。由于标记函数只是任意的代码片段,所以它们可以对任意信号进行编码:模式、启发式、外部数据资源、来自众包人员的带噪声的标签、弱分类器等等。还可以获得标注函数作为代码所特有的优点,比如模块化、可重用性和可调试性。例如,如果建模目标发生了变化,可以调整标注函数来快速适应这种变化。

三、Snorkel 在携程客服“事件小结”场景的应用<

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值