论文阅读:Deep Neural Networks with Multitask Learning(多任务模型应用到自然语言处理)

文章摘要

文章讲述一个使用基于单一卷积神经网络的多任务学习模型,可以给一个句子输出预测一系列语法或语义上的输出:如词性标注、命名实体识别、语言角色,语义相近的单词,自然语言模型(句子有意义的概率)。所有这些任务上使用一个网络实现权重共享,即一个多任务学习实例。除了语言模型,所有的任务都使用打标签的数据,这样的组合代表了一个通过共享任务的进行半监督学习形式【语言模型是无监督的,而其他任务有监督】。文中表明这种多任务学习以及半监督学习改进了共享任务的生成,带来了最佳的效果。

文章指出过往的统一框架都有如下三个失败之处:1.分类器是浅层的,经常是线性分类器。2.浅层分类器需要人工抽取出较好的特征。3.独立学习这些特征会分别引入误差。如果能够进行统一学习,能够通过不同任务的进行更好的泛化。文中也表明,在非监督任务上,也能学习好很好的语义特征。

文中的参与使用的任务:

  • 词性标注(Part-Of-Speech Tagging, POS):语法层面,标注每个单词的语法角色
  • 浅层句法分析(Chunking or shallow parsing):语法层面,如判断子句是名词短语(NP)或动词短语(VP),每个词encode为begin-chunk(B-NP) 或inside-chunk (I-NP)或end-chunk(E-NP)等
  • 命名实体识别(Named Entity Recongnition, NER):单词在句子中的成分类别,如人名(Person),公司名(Company),地点(Location)等
  • 语义角色标注(Semantic Role Labeling,SRL):语法层面,如主语,谓语等语义角色标签
  • 语言模型(Language Model):传统语言模型根据前面词序预测下一个单词,在本文中则是判断一个句子是否有意义(转换为分类问题,并要构造负例样本)
  • 近义词(Synonyms or Semantically Related Words,SRL):语义层面,使用WordNet数据集作为ground truth,
  • 作者认为在上述任务中,语义角色标注(SRL)是最难的,通过使用这些任务表明模型的泛化能力,并提升SRL的性能。并且上述任务中,都可以看做是给单词赋予一个新标签。

网络结构:

过去the feature selection is task dependent, imply additional researchfor each new NLP task. 作者提出如下的的结构框架,第一层提取出每一层的特征sk(n),k表示特征类别,n表示单词序列。第二层将每个特征映射到一个dk维的向量中,故而映射后的大小为(d1+d2+…+dk)*n。接下来是正常的分类层。

Architecture 1

Relatedtasks: features useful for one task might be useful for other ones. In NLP forexample, POS predictions are foften used as features for SRL and NER. Improvinggeneralization on the POS task might therefore imporve both SRL and NER.

文中特别提及,如果只是共享这些任务的lookup-tables,这些相关任务能够得到比较大的提升如下结构所示。如下图所示

Architecture 2

更新算法类似于随机梯度下降:

过去在NLP中的Multitask应用

  • Casading Features:最简单的方法是,将一个任务模型的预测结果当做输入特征输入到另外一个任务模型中,即类似于单纯的将模型进行串联。但是这样分别进行训练的可能会有导致误差传播,即前面任务产生的误差会持续传播影响后面的任务。
  • Shallow Joint Training:如果一个数据集有多个不同任务的标签,那么使用一个单一的模型就能同时预测所有任务的label【即同一数据集有相似分布,如果不同数据集混合,那么对于模型更难学习,比如一个正态分布和一个平均分布的数据集叠加就很难学习到一个能够表示这些数据的模型】,如下图所示:

文中提出,如果仅仅使用有监督任务,所能使用的数据集是非常有限的,那么我们需要有非监督的任务来更好的利用广大的数据集。在文章中,作者是使用稍微修改后的语言模型来实现的——将其转换为二分类问题:在input widow正中间的单词是否与上下文相关。正例即为维基百科原文,而负例通过随机替换正中间的词产生。

对比Bengio提出的语言模型,其是根据前面的句子序列预测下一个单词出现的概率,而本文用的是全部上下文,而不仅仅是前面的句子。而且文中提到,如果使用概率预测使用cross-entropy作为需要更多的加速技巧,而本文通过二分类之后会更简单(Usingprobabilities imposes using a cross-entropy type criterion andcan require many tricks to speed-up the training,due to normalization issues. Our criterion (4) is muchsimpler in that respect.)

SemanticallyRelated Words Task:比较通过unlabeleddata和labeled data获取的单词的embedding结果。训练一个和上述语言模型类似的网络,positive:paris inWordnet;negative:random pair。

实验

SRL任务使用ProBank的数据,语言模型使用Wiki的数据,synonyms使用WordNet的数据,所有任务使用wiki中频次最高的3W个单词,其他单词被设为unknown

所有任务上使用ARC①,POS,NER和chunking任务窗口大小ksz=5,POS和NER使用线性模型,chunking的hidden sizes=200;语言模型使用ksz=11,hidden sizes为100;使用两个lookup-tables:一个对应小写单词的,一个是2维的记录单词第一个字母是否大写

SRL:卷积ksz=3,100-100;3个lookup-tables:一个对应小写单词,两个单词向量对应相对距离。另外两个look-tables使用5维的空间记录动词位置。

LanguageModel先单独训练,得到词向量,文中表明这些词向量的效果很好,并且有对比使用WordNet同义词训练的单词。通过languagemodel训练得到的词向量初始化多任务实验中的词向量。

文中强调实验是希望提升SRL的性能,并且认为这是最复杂的任务。实验表明,多种组合的MTL实验均比单任务的SRL要好。使用更大的wsz会导致overfiting,但是使用多任务的结果并没有出现这种情况,故而作者认为MTL能起到较好的泛化能力,同时在POS和Chunking任务上都有提升:

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Matlab深度学习工具箱(Deep Learning Toolbox)是一个为机器学习、神经网络和人工智能设计的工具,它提供了一系列用于深度学习任务的函数和工具。深度学习是一种机器学习方法,通过多层神经网络模拟人脑神经元之间的连接来进行数据建模和分析,从而实现学习和认知。在深度学习中,使用的神经网络通常包括输入层、隐藏层和输出层。隐藏层可以有多个,每一层都通过学习参数来提取输入数据的高阶特征。 Matlab的深度学习工具箱提供了各种用于训练和评估神经网络的函数,包括数据预处理、网络搭建、参数初始化、训练和测试。用户可以选择不同类型的网络结构,如全连接网络、卷积神经网络(CNN)和循环神经网络(RNN),以适应不同的任务和数据类型。此外,Matlab还提供了一些预训练的网络模型,可以用于特定的图像分类、物体检测和语音识别任务。 使用Matlab进行深度学习可以帮助研究人员和工程师在各种领域中解决实际问题。例如,在计算机视觉领域,可以使用深度学习进行图像识别、目标检测和图像分割。在自然语言处理领域,可以使用深度学习进行文本分类、情感分析和机器翻译。在声音处理领域,可以使用深度学习进行语音识别和音频分类。 总之,Matlab深度学习工具箱为用户提供了方便易用的函数和工具,帮助他们设计、训练和评估各种类型的神经网络。通过深度学习,可以从复杂的数据中提取有用的特征,并进行高效准确的数据建模和分析,从而推动各个领域的研究和应用
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值