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

2019-03-17 16:30:20 浏览数 (1)

序列标注在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).

0 人点赞