专栏首页Pytorch实践迁移学习在自然语言处理领域的应用
原创

迁移学习在自然语言处理领域的应用

迁移学习

       迁移学习近年来在图形领域中得到了快速的发展,主要在于某些特定的领域不具备足够的数据,不能让深度模型学习的很好,需要从其它领域训练好的模型迁移过来,再使用该模型进行微调,使得该模型能很好地拟合少量数据的同时又具备较好的泛化能力(不过拟合)。

        在迁移学习任务中,需要事先定义一组源数据集合,使用该集合训练得到预训练好的模型,该模型具备了源数据集合中的一些知识,在目标数据集合上微调该预训练的模型,使得模型能够很好地完成目标数据集合定义的任务,即完成了迁移学习。

        由于深度学习模型结构复杂,在NLP领域中迁移学习不够成熟,不知道如何进行迁移、迁移模型的哪个结构部分、源数据集合与目标数据集合之间需要满足怎样的关系。本文以CNN文本分类任务为例进行描述,总结一下迁移学习在NLP领域文本分类任务中的一些经验。

CNN文本分类模型框架

        如上图为CNN文本分类的模型结构图,总的模型结构来说可以分为四层:Embedding层、卷积层(含池化层)、全连接隐层、输出层。Embedding层主要将词语映射为词向量表示、卷积层主要对词语矩阵进行卷积操作得到句子的抽象表示、全连接隐层一般是进行维度压缩、输出层是进行分类(对应类别的数量)。

        在文本分类任务中的迁移学习,例如源数据集合为新闻文本的分类(数据量大),目标数据集合为短视频标题分类(标注的数据少),通过预先训练的新闻分类模型,在短视频标题分类任务上进行模型(Embedding层、卷积层、全连接隐层、输出层)的微调,使得模型既能完成对少量有监督数据的拟合,又具备相应的泛化能力。下边将针对CNN文本分类任务进行经验总结。

经验与建议

经验

(1)目标数据集合与源数据集合在语义上太相似,反而会影响迁移学习的效果,部分相似效果最好;

(2)源数据集合的词典大小越大、OOV比例越小,迁移效果越好;

(3)对于Embedding层的迁移,无论是固定不变、还是微调效果都挺好;

(4)对于卷积层和隐层,若模型参数固定不变,很难提高迁移学习的效果,除非目标数据集合与源数据集合语义上非常相似、很少的OOV、具备很大的词典;

(5)输出层参数的迁移效果很差;

(6)源数据集合上训练的模型最好不加非线性激活函数,目标数据集上再添加

(7)dropout rate设置在0.5-0.7之间比较好

建议

(1)选择源数据集合时,尽量保证数据量大、OOV少、词典大,语义上与目标数据集合部分相似就行(不要太像);

(2)最好迁移Embedding层;

(3)如果考虑迁移卷积层和隐层,尽量考虑微调,不要使用固定参数。

(4)如果分类类别数量不相同,尽可能不要迁移隐层;

(5)不要试图迁移输出层,除非是在线学习,使用少量数据进行微调(源数据与目标数据基本一致)

参考文献

[1] Semwal T, Mathur G, Yenigalla P, et al. A Practitioners' Guide to Transfer Learning for Text Classification using Convolutional Neural Networks[J]. 2018.

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 迁移学习在自然语言处理领域的应用

    迁移学习近年来在图形领域中得到了快速的发展,主要在于某些特定的领域不具备足够的数据,不能让深度模型学习的很好,需要从其它领域训练好的模型迁移过来,...

    CodeInHand
  • 微软小冰的设计与实现

    小冰设计相关的论文多年来一直没有对外公布,得益于近几年小冰的快速发展,在对话领域形成技术壁垒。与此同时拥有大量的用户和数据,我们才有幸看到如下的...

    CodeInHand
  • Tensorflow实现部分参数梯度更新

    在深度学习中,迁移学习经常被使用,在大数据集上预训练的模型迁移到特定的任务,往往需要保持模型参数不变,而微调与任务相关的模型层。本文主要介绍,使用tensorf...

    CodeInHand
  • 迁移学习在自然语言处理领域的应用

    迁移学习近年来在图形领域中得到了快速的发展,主要在于某些特定的领域不具备足够的数据,不能让深度模型学习的很好,需要从其它领域训练好的模型迁移过来,...

    CodeInHand
  • MF前传——探索者二号简介

       因为探索者一号供不应求,远超预期,并且我们自己设计制造的成本太高,所以没有再次生产。而是选择较高性价比的第三方STM32开发板作为MF学习板,是为探索者二...

    大石头
  • css3在IE下兼容

    原文地址:http://blog.csdn.net/bingqingsuimeng/article/details/44201433

    用户3055976
  • python练习题-day20

    首先,这三个模块都是序列化工具。 1. json是所有语言的序列化工具,优点跨语言、体积小.只能序列化一些基本的数据类型。int\str\list\tuple...

    郭耀华
  • [PHP] 最新抢先编译安装PHP8.0.0 alph1以及FPM

    所有操作需要在root用户下 本机测试案例系统信息:ubuntu 安装路径:/usr/local/php8

    陶士涵
  • Django实现列表页商品数据返回教程

    补充知识:django通过ajax请求接口返回多条数据,并动态生成表格,请求表单后将表格数据并入库

    砸漏
  • SAS创建单级书签的PDF文件

    在用ODS PDF生成PDF文件时,为了美观有时只要一层书签(如上图),下图为多层级书签。

    专业余码农

扫码关注云+社区

领取腾讯云代金券