垂直领域内的自然语言处理任务往往面临着标注数据缺乏的问题,而近年来快速发展的半监督学习技术为此类问题提供了有希望的解决方案。文本以 Google 在 2019 年提出的 UDA 框架为研究主体,详细探索该技术在熵简科技真实业务场景中的实践效果。
本文主要有三方面的贡献。第一,以金融文本分类为案例,探索了 UDA 在真实场景中的效果和不足;第二,探索了 UDA 在轻量级模型上的效果;第三,增加了原始 UDA 论文中未披露或未完成的研究,如领域外数据的影响,错误标记数据的影响。
1 背景
2 金融领域的问题为什么需要半监督技术
3 UDA 技术介绍及特性
3.1 UDA 技术的基本框架和核心思想
3.2 在少量标签数据上的表现,by Google 团队
3.3 在领域外数据上的表现,by 熵简团队
3.4 在错误数据上的表现,by 熵简团队
4 UDA 技术在金融文本分类上的实践
4.1 案例背景及数据集特点
4.2 实验方案
4.3 主要实验结果及分析
4.3.1 有标签数据的数据量对于模型的影响
4.3.2 对比不同的增强方案
4.3.3 CNN 与 BERT 的对比实验
5 总结
1 背景
前段时间我们团队针对深度学习时代的半监督学习技术进行了梳理,详细介绍了半监督技术的发展历程,以及各技术在核心思想、方法论上的演进,感兴趣的朋友可以查看原文:
我们真的需要那么多标注数据吗?半监督学习技术近年来的发展历程及典型算法框架的演进 - 知乎
从文中我们似乎看出,当前的半监督技术似乎已经具备了与监督学习相比拟的优势。那么在真实场景中,半监督技术是否依然可以如实验室中的表现,可以在真实问题上发挥出独特的优势,降低我们对于标签数据的需求。
本文基于熵简NLP团队在真实业务场景上的实践经验,从垂直领域对于半监督技术的需求出发,详细介绍半监督学习中最新的代表技术之一UDA 算法的特性,以及在金融文本分类任务上的落地实践。
借此,我们可以在2020年这个时间点,初窥半监督技术对于真实场景问题的价值。
2 金融领域的问题为什么需要半监督技术
我们在前面一篇文章已经提到,金融领域内的自然语言处理问题属于典型的垂直领域问题,在面对特定任务场景时,常常面临的一个重要挑战就是少样本。这主要体现在两个方面:
1、可收集到数据总量少,数据收集的时间成本很高,尤其在从0到1的立项初期。曾经在某个项目上,我们用了三周时间才搜集到1000多条有效样本。
2、数据的人工标注成本很高。由于自然语言处理任务大部分属于认知层面的任务,因而数据标注的难度和不确定性显著高于感知层面的任务,例如图像识别、语音识别等。而对于金融领域的问题,往往需要资深金融分析师的参与才能实现相对准确的数据标注,满足业务需求。这不仅增大了标注的成本,也会显著延长标注的时间。因为在实际中,金融分析师很难有大块的时间来协助标注,这往往会延长项目周期。
对于第一点,我们可以通过文本增强、迁移学习、few-shot learning 以及元学习等等技术或者思想来尝试解决。对于特定的任务,我们目前已经取得一些较好的成果,由于不属于本文的讨论范围,这里就不再详细展开,有兴趣的同学可以查看专栏的其他相关文章。
对于第二点,为了让大家有更直观的感受,下面给出一个实例。对于金融文本,为了方便阅读和快速筛选,往往需要对文本按照内容分为不同的类型,比如公司点评、公司深度、行业点评、行业深度等等。如下案例所示:
文本1:非银金融周观察:坚守长期价值,优选个股。
文本2:生猪养殖行业专题报告三十六:当下养殖板块投资的核心矛盾是什么?
对于上述的两个文本,到底哪个文本属于行业点评,哪个属于行业深度呢?(具体答案可查看 4.1 节) 显然,只有金融领域相关的专业人士才能做出比较准确的标注。
因此,对于人工标注成本高的问题,我们希望能够找到这样的解决方案:
首先由人类专家对数据进行少量