基于注意力机制的循环网络进行层级性多元标签文本分类

1 前言

今天分享一篇做层级性多元标签文本分类任务的paper,题目为:,论文是发表在2019年CIKM上,下载地址为:https://base.ustc.edu.cn/pdf/Wei-Huang-CIKM2019.pdf,论文也公开了源码:https://github.com/RandolphVI/Hierarchical-Multi-Label-Text-Classification。从题目也能看出,论文的核心是作者提出Attention-based Recurrent Network方法来解决多标签分类任务中层级性问题。

基于注意力机制的循环网络进行层级性多元标签文本分类_第1张图片
参考上图,论文将HMTC任务定义为:
定义1:Hierarchical Structure γ \gamma γ .
C = ( C 1 , C 2 , . . . , C H ) C=(C^1,C^2,...,C^H) C=(C1,C2,...,CH),其中 C C C为categories label集合,H为label的层级数量, C i C^i Ci为第i层label的集合。
定义2:HMTC Problem
给定文档集合 D D D,及相关的层级标签结构 γ \gamma γ,HMTC问题可以转成学习一个分类模型 Ω \Omega Ω进行标签预测,即为:
Ω ( D , γ , Θ ) → L \Omega(D,\gamma,\Theta) \to L Ω(D,γ,Θ)L
其中 Θ \Theta Θ 为要学习的参数, D i = { w 1 , w 2 , . . . , w N } D_i=\{w_1,w_2,...,w_N\} Di={w1,w2,...,wN} 为第 i i i个文本,有 N N N个序列词组成;对应 L i = { l 1 , l 2 , . . . , l H } L_i=\{l_1,l_2,...,l_H\} Li={l1,l2,...,lH} l i l_i li为第 i i i层标签集合。
其实,文中解决HTMC任务场景是有一定限制的:对应输入的文本x来说,它在H层标签体系中,每层都是有标签的,而且每层标签的数量是1个或多个。

2 模型

基于注意力机制的循环网络进行层级性多元标签文本分类_第2张图片
上图为论文的整体模型架构图,分为三层:(1)Documentation Representing Layer (DRL)——进行文本和层级标签的表征学习;(2)Hierarchical Attention-based Recurrent Layer (HARL)——使用注意力机制,让学习的文本向量和标签向量进行循环学习,交互;(3)Hybrid Predicting Layer (HPL)——混合方式进行标签预测。下面重点介绍这三部分内容。

2.1 Documentation Representing Layer

在文本表征上,先使用worde2vec获取词向量,然后使用Bi-LSTM网络进行表征学习,学习得到序列向量 V V V

在后续操作上,作者使用了基于词的平均池化操作(word-wise average pooling operation),将 V V V变成 V ~ \tilde{V} V~

在层级标签表征上,是使用lookup方式生成初始化矩阵标 S S S

最后,将表征学习到的 V V V S S S进行拼接,进入下一个layer进行学习。

2.2 Hierarchical Attention-based Recurrent Layer

这一层是论文核心的体现,其主要思想就是:将第一个layer学习的向量接入一个rnn网络,该网络的内部是HAM结构,而HAM在文中称为Hierarchical Attention-based Memory,意思就是基于attention的层级记忆单元。另外,这个循环网络的节点数应该就是标签的层级数,如数据集的标签有5个层级,那么这一层的rnn节点就为5,可以理解为一层接着一层进行递进式学习,像标签的层级结构一样。
基于注意力机制的循环网络进行层级性多元标签文本分类_第3张图片
上图为HAM示意图,有点类似LSTM结构,其有三部分组成: Text-Category Attention (TCA),Class Prediction Module (CPM),Class Dependency Module(CDM),其计算公式为:
基于注意力机制的循环网络进行层级性多元标签文本分类_第4张图片

其中 r a a t h , W a t t h r_{aat}^{h},W_{att}^h raath,Watth 分别代表h-level层的文本与标签交互信息,与h-level层文本与标签交互的attention权重。

P L h , A L h P_L^h,A_L^h PLh,ALh分别代表h-level层标签预测的概率,与h-leve层模型整体表征的信息。

ω h \omega^h ωh为h层学习到的信息,作为记忆信息,进行传递学习用。

Text-Category Attention
基于注意力机制的循环网络进行层级性多元标签文本分类_第5张图片
上图为Text-Category Attention计算图,其主要目标是让输入的文本与各层级的标签进行交互学习,使用的方法类似注意力机制,计算公式对应如下:



看着上图觉得挺复杂的,其实计算起来很简单, V h V_h Vh是利用上一层的信息进行更新,可以理解接受上一层与label相关用的信息; O h , W a t t h O_h,W_{att}^h OhWatth是计算输入的文本与第h层标签的attention,后者为权重值; M h , r a t t h M_h,r_{att}^h Mh,ratth为计算带标签的文本信息,并平均方式得到最终的文本表征信息。

Class Prediction Module
该模块目的为:将原始文本语义表示与引入前一层信息的关联文本类别表征相结合,生成整体的表征并预测每一层的类别,下为更新公式:

Class Dependency Module

该模块目的为:通过保留各层级的层次信息,对不同层次之间的依赖关系进行交互传递学习,其主要意思想学习到文本中每个序列的词对各级label的关联程度,并将信息进行循环学习。


2.3 Hybrid Predicting Layer

利用第二层的信息进行混合预测,为何是混合预测?原因为:在作者看来,前面学习的每层 P L h P_L^h PLh预测只是局部的预测,需要将每次的信息融合起来进行一个全局的预测 P G P_G PG

接着将局部预测值和全局预测值加权作为最终预测的值 P F P_F PF

此处阈值$\alpha $取0.5,认为局部与全局同样重要。

2.4 Loss Function

在预测的时候使用了局部预测和全局预测,作者就对应做了两个loss function,第一个是每个层级的label预测的损失,第二个是全局label预测的损失,最后二者加起来并加一个L2正则作为最终的loss。
基于注意力机制的循环网络进行层级性多元标签文本分类_第6张图片

3 Experiment

论文使用了两个数据集进行了实验,对比的方法是设置了不同的变体进行对比,并未跟先前类似的paper试验进行比较,各个变体的详情可以阅读论文。
基于注意力机制的循环网络进行层级性多元标签文本分类_第7张图片
基于注意力机制的循环网络进行层级性多元标签文本分类_第8张图片
上面两种表图都是体现文中提出的HARNN模型得到最佳结果,表现论文提出方法的有效性,具体试验结果建议有兴趣读者去githup看看源码。

4 简单总结

(1) 在做层级性多元标签文本分类时,文中提出的基于层级数量进行循环学习的方式是值得借鉴的,因为层级性label在父类与子类上是有共性和差异性。
(2) 文中提出的局部预测和全局预测融合的思路也是挺好的,吻合提出的框架结构特性。
(3) 在HAM结构上,有一定的参考意义,但个人觉得有点过于复杂,可以类似GRU结构,设计一个更为简单的处理流程。
(4) 如果处理有些样本并不是每个层级都有对应的label的数据场景时,该模型框架可能需要重新的调整。

更多文章可关注笔者公众号:自然语言处理算法与实践

你可能感兴趣的:(自然语言处理,深度学习,机器学习)