文章目录
- 前言
- 一、文章模型描述
- 二、模型优劣分析
- 三、代码地址
前言
原文地址:https://paperswithcode.com/paper/semi-supervised-sequence-modeling-with-cross
一、文章模型描述
该文章介绍了一种应用在NLP领域的半监督的学习的模型CVT,(半监督学习是使用大量的未标记数据,以及同时使用标记数据,来进行模式识别工作的学习方式,还有自监督学习是一种无监督学习的方式,学习过程中没有使用标签数据来学习,使用的是数据本身天然的特性标签来进行学习的。)
这种模型的结构如下:
- 模型整体采用了encoder-decoder结构,encdoer称为teacher,decoder称为student
- 模型训练分为两个类型,对于有标签数据就按照有监督的学方法来进行学习,如第一个图所示。对于无标签的数据就用第二个图所示的方式来学习的,设置多个辅助的decoder来进行估计,这种思想借鉴了Multi-viewl来的,四个辅助器(Auxiliary)预测的结果和teacher预测的结果进行比较计算损失值
- 模型的辅助器根据不同的任务(序列标注,多任务学习等任务)能进行调整,具体看代码吧
- 模型运行过程为:首先让所有主要预测模块运行推断,然后让所有辅助预测模块从预测中学习。模型在小批量标注数据和无标注数据上进行交替训练。
- 最终模型进行预测的时候会把那些辅助分类器去掉的。
二、模型优劣分析
1.半监督学习的优势,一方面结合了无监督学习的优势——可以在海量的无标签数据集上学习,另一面也吸取了有监督学习的优势,使得整个学习过程中能根据目标来学习跟任务有关的特征,避免了无标签情况下进行无监督学习的时候,模型学习到无关的特征。同时减少了标注的时间消耗,也提高了训练的效率。
2.模型的优势是监督学习和无监督学习两个过程都共用一个decoder的参数,减少了学习成本,CVT 的作用在于改善模型的表征学习。辅助预测模块可以从整个模型的预测中学习,因为整个模型具备更好、视角不受限的输入。尽管辅助模块的输入对应受限视角的输入样本,但它们仍然能够学习作出正确的预测,因此能够改进表征的质量。这反过来改善了整个模型,因为它们使用的是同样的表征。简而言之,该方法将在无标注数据上进行表征学习与传统的自训练方法结合了起来。
3.具体模型如何进行多视图的辅助器训练没有让人搞明白,得看看代码再说。
三、代码地址
- Cross view training for sequence labeling in pytorch
- 官方论文代码地址