前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【AAAI 2019 阿里】分层多任务的序列标注方法

【AAAI 2019 阿里】分层多任务的序列标注方法

原创
作者头像
CodeInHand
发布2019-03-17 16:30:20
1.6K0
发布2019-03-17 16:30:20
举报
文章被收录于专栏:Pytorch实践Pytorch实践

序列标注在SLU语义理解具有重要地位,主要用于语义槽的提取,便于机器理解用户query的语义。常见的序列标注方式有Jordan-RNN、BiLSTM-CRF等。为提高序列标注的准确度,加入用户意图的识别任务。

阿里的这篇论文主要观点也是加入多任务,但并非用户意图分类的任务,而是分词和NER的任务。分词任务(chunking)主要用于判别词语的边界、NER任务主要识别实体的类型(例如PERSON、LOCATION等),可以理解为分词任务纯是句法层面的任务(没有语义层面)、NER是底层的语义识别、上层的序列标注是更加细腻度的语义槽提取。三个任务加在一起的进行多任务训练的方式有很多种,具体如图1所示。

多任务的几种组合方式
多任务的几种组合方式

(b)中是最原始的multi-task方式,就是底层共享,output层分离分别用作三个不同的任务,共同tune底下共享部分的模型参数,(c)中结构的观点是深度学习模型在底层一般是句式句法上的特征、层数越深语义越抽象,(d)中沿用了(c)的假设但加入了残差连接,将上一层的输入以及输出的预测标签均残差连接到下一层的输入。具体看一下slot的定义就知道了三个不同的任务分别做什么,如图2所示。

槽值定义
槽值定义

分词任务就是找词语边界,NER任务就是识别实体的类型,slot label就是识别更加细腻的语义槽定义。表格中PV、PK、CG对应的语义如下图所示。

论文在两组数据集合上进行模型的效果验证,一个是ATIS、另一个是自己构建的真实数据集合ECSA,ATIS数据集合上的效果在这里就不报告了,ATIS数据量少没有说服力。ECSA是阿里自己构建的电商数据集合,拥有24,892训练数据、2,723条测试数据。具体效果如下:

思考: 这种分层解耦和的Multi-task方式很适合用于底层模型参数进行迁移,用于数据量较少的其他任务增强语义理解效果。

参考文献

Gong, Yu , et al. "Deep Cascade Multi-task Learning for Slot Filling in Online Shopping Assistant." (2018).

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档