您好, 访客   登录/注册

对文本分类算法选择和数据标注的研究

来源:用户上传      作者:

  摘要:本文針对层出不穷的文本分类需求,重点针对基础算法和数据标注进行了研究。
  [关键词]自然语言处理 文本分类 主动学习
  1 文本分类引擎
  对于一个文本分类项目,在架构上分为数据处理、文本分类、文本挖掘和结果展现四个部分。本文着重在分类引擎的设计上。
  引擎需要考虑的因素很多,基于目前的技术发展,以下几点需要重点考虑并解决:
  (1)分类效果如何评价。
  (2)如何选择基础算法。
  (3)如何减少标签数据量。
  (4)如何处理训练数据的不均衡。
  (5)如何处理多达几十上百的类别。
  篇幅所限,本文重点关注算法选择和数据标注
  2 自然语言处理算法选择
  从2013年Word2Vec开始,可以选择的常用基础算法有GloVe,FastText,ELMo,GPT1.0,BERT,Bert as a service,MT-DNN,GPT2.0等等,最近一段时间发展的速度令人咋舌。具体如何进行选择呢?
  首先要选择句子级别的算法,因为词级别算法没有考虑词之间的关系和语序,不仅处理不了语义组合、多义词、转折、依赖等各种语言学上的语法现象,连简单的语序也处理不了,我欠你一百万和你欠我一百万这种在语义上/现实社会中巨大的差异被忽视,语言处理能力较低。
  其次要选择预训练模型,而不是从零开始构建。动辄几亿参数的预训练模型以多层的神经网络结构和巨大的训练数据量,已经学会了大量的语言知识,具有了超凡的语言理解能力。而且这类模型很多公司从成本角度是无法自己训练的,站在巨人的肩膀上会是明智的选择。
  再次,从实际应用的角度,算法是否易用,网络资料是否齐全,也是要考虑的因素。因此上述的各种选择中,基于Transformer/Self一Attention,并能提供下游任务接口的BERT就成为不让之选。
  3 高成本的数据标注
  AI目前整体上还是处于弱人工智能阶段,简单说就是有人工才有智能,只有人类教会机器/算法如何工作,机器/算法才能分辨出不同的类别。这个教的具体动作,就是提供打好标签的数据来训练模型。大家常说的数据是基础,数据是燃料,数据是动力都是这个意思。
  而给数据打标签的工作,也是目前人工智能领域的痛点之一,还催生了专门做数据标注的公司。常有人抱怨人工智能的项目一半以上的时间和费用都投入到了做数据标注上。
  那么有没有技术上的方法来减少这种痛苦呢?有,那就是主动学习(Active Learning),其目的不是不再标注数据,而是大大减少标注的数据量。其基本的原理是,通过人工智能的方法来主动选择出标注意义更大的数据,以达到用一半的数据标注就能训练出满意效果的目的。
  此方法的理论依据是标注数据量和模型正确率之间的关系。人们往往以为随着数据量的增长,准确率会持续提升,其关系是向右上方升起的一根直线,即线性关系。而根据实际试验,两者的关系是一条弧线,在初始阶段随着标注数据量的增长,多次训练的准确率会大幅提升,之后增幅就逐渐减小,效果越来越不明显。
  如何主动学习呢?方法很多,使用算法和信息熵迭代操作会大大提升效率。具体步骤说明如下:
  第一个启动模型采用迁移学习的思路,选择其它项目的成熟模型作为启动点。由于每个项目的具体分类不同,模型不能重用,但举例来说,对洗衣机的负面评价判别模型,用在冰箱评价上也是一个好的起点,比起从零开始构造模型,会大大减轻工作量和缩短项目时间。
  以迁移过来的模型作为初始模型,对全部没有标注的数据直接分类。由于没有标注,分类结果无法判断对错,但是每一行数据的分类结果可以生成总和为一的概率分布,而排在第一位的概率数字代表了模型对于分类的信心。概率越高,确定性越大,则信息熵越小,而我们需要挑选出来的是信息熵最大的那一批数据,对其进行标注。如果最难分类的数据都被成功归属到了正确的类别,那么其它数据就更容易分类了。这样标注的数据就不再是随机进行选择,而是被精准定位,从而大大降低标注量。
  用第一批标注的数据来训练出第一个真实模型,而用此模型来挑选出下一批需要标注的数据,多次重复此过程,直至准确率曲线不再升高,或升高的幅度不值得再投入人员和时间进行标注,就结束模型训练,完成分类任务。
  参考文献
  [1]AshishVaswani et al.Attention is All You Need. arXiv 1706.03762.
  [2]Jonas Gehring et al.Convolutional sequence to sequence learning.arXiv:1705.03122.
  [3]Yonghui Wu et al. Google’s neural machine translation system:Bridging the gap between human and machine translation. arXiv:1609.08144.
  [4]Christian Szegedy et al.Rethinking the inception architecture for computer vision.CoRR,abs/1512.00567.
  [5]Jacob Dev1in et al.BERT:Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv 1810.04805.
  [6]Denny Britz et al. Massive exploration of neural machine translation architectures.CoRR,abs/1703.03906.
转载注明来源:https://www.xzbu.com/1/view-14928111.htm