«上一篇 下一篇»
  计算机工程  2019, Vol. 45 Issue (7): 303-308, 314  DOI: 10.19678/j.issn.1000-3428.0051312
0

引用本文  

刘月, 翟东海, 任庆宁. 基于注意力CNLSTM模型的新闻文本分类[J]. 计算机工程, 2019, 45(7), 303-308, 314. DOI: 10.19678/j.issn.1000-3428.0051312.
LIU Yue, ZHAI Donghai, REN Qingning. News Text Classification Based on CNLSTM Model with Attention Mechanism[J]. Computer Engineering, 2019, 45(7), 303-308, 314. DOI: 10.19678/j.issn.1000-3428.0051312.

基金项目

国家自然科学基金(61540060)

作者简介

刘月(1993-), 女, 硕士研究生, 主研方向为数据挖掘、自然语言处理, E-mail:912895630@qq.com;
翟东海, 副教授、博士;
任庆宁, 硕士研究生

文章历史

收稿日期:2018-04-23
修回日期:2018-06-07
基于注意力CNLSTM模型的新闻文本分类
刘月 , 翟东海 , 任庆宁     
西南交通大学 信息科学与技术学院, 成都 610097
摘要:结合卷积神经网络(CNN)和嵌套长短期记忆网络(NLSTM)2种模型,基于注意力机制提出一个用于文本表示和分类的CNLSTM模型。采用CNN提取短语序列的特征表示,利用NLSTM学习文本的特征表示,引入注意力机制突出关键短语以优化特征提取的过程。在3个公开新闻数据集中进行性能测试,结果表明,该模型的分类准确率分别为96.87%、95.43%和97.58%,其性能比baseline方法有显著提高。
关键词卷积神经网络    特征表示    嵌套长短期记忆网络    注意力机制    文本分类    
News Text Classification Based on CNLSTM Model with Attention Mechanism
LIU Yue , ZHAI Donghai , REN Qingning     
School of Information Science and Technology, Southwest Jiaotong University, Chengdu 610097, China
Abstract: Combining Convolutional Neural Network (CNN) and Nested Long Short-Term Memory (NLSTM) models, this paper proposes a CNLSTM model for text representation and classification based on the attention mechanism.The model uses CNN to extract feature of phrase sequences, and then uses NLSTM to learn the representation of text features.By introducing attention mechanisms, the key phrases are highlighted to optimize feature extraction.Experiments on three published news data sets demonstrate that the classification accuracy of the model is 96.87%, 95.43%, and 97.58%, respectively, and its performance is significantly improved compared with the baseline methods.
Key words: Convolutional Neural Network (CNN)    feature representation    Nested Long Short-Term Memory(NLSTM)    attention mechanism    text classification    
0 概述

文本分类是自然语言处理的热点和关键技术之一, 在许多实际系统如Web内容管理、搜索引擎、邮件过滤等中都扮演着至关重要的角色。而文本分类所要解决的首要问题是捕捉不同文本单元的特征, 如短语、句子和文档等。

由于具有捕捉局部空间或时间结构相关性的能力, 卷积神经网络(Convolutional Neural Network, CNN)自提出以来就受到广泛的关注和应用, 例如在自然语言处理领域。文献[1]提出一种结合情感词典和CNN的情感分类方法, 将CNN提取的抽象词语序列特征用于情感极性分类; 文献[2]提出一种基于事件卷积特征的文本分类方法, 即通过CNN提取文本的事件特征并用于文本分类。然而, CNN在处理文本时仍然存在局限性, 它没有考虑距离较远的词语之间的联系, 忽视了语言中依存关系的结构特点。

文献[3]提出利用基于时间序列的循环神经网络(Recurrent Neural Network, RNN)进行文本分类。RNN是一种具有“记忆”功能的网络模型, 通过链式神经网络架构传播历史信息, 因此能够捕获序列的长期依赖关系。但实际上, 随着2个时间步长之间的差距变大, 标准RNN也无法学习长期依赖性。文献[4]提出的长短期记忆网络(Long Short-Term Memory, LSTM)从根本上解决了长期依赖问题。当前, LSTM主要通过堆叠的方式构造多层前馈网络来处理数据, 上一层输出为下一层的输入。而文献[5]提出一种嵌套LSTM(Nested LSTM, NLSTM), 其含有多层记忆单元, 通过嵌套而不是堆叠的方式增加LSTM的深度。NLSTM可以选择性地访问内部记忆, 这使得内部记忆能够在更长的时间尺度上记忆和处理事件, 即使这些事件与当前事件无关。因此, 与简单的LSTM和堆叠式LSTM相比较, NLSTM能够处理更长时间尺度的历史信息。

本文结合CNN与NLSTM 2种结构的优点, 构造一个CNLSTM混合体系结构, 将基于词语序列的简单NLSTM模型扩展到基于短语序列的混合模型以学习文本特征。由于新闻文本通常为长文本, 因此文本中可能存在与新闻主题无关的信息。通过在NLSTM后引入注意力机制计算注意力概率分布, 获得具有短语重要性区分度的文本特征表示。

1 相关工作 1.1 文本分类

文本分类的基本过程为文本预处理、特征选择、分类器训练及结果评估, 目的是将文档归类到一组预定义的类中[6]。传统的文本分类通常采用机器学习算法, 如K近邻(K-Nearest Neighbor, KNN) [7]、朴素贝叶斯[8]和支持向量机(Support Vector Machine, SVM)[9]等, 这些方法通常存在维度高、数据稀疏性问题。神经网络的出现为解决数据稀疏性问题提供了新的思路, 并提出了许多学习词语特征表示的神经模型, 如文献[10]用于文本建模的卷积模型和文献[11]概率语言模型。

中文文本与英文文本分类的一个重要差别在于预处理阶段, 中文文本的读取需要分词, 而英文文本直接通过单词间的空格区分词语。从简单的查词典方法, 到基于统计语言模型的分词方法, 中文分词的技术已趋于成熟, 很多开源分词器可直接对中文进行分词, 如jieba、中国科学院计算所开发的汉语词法分析系统ICTCLAS等。本文使用jieba分词器对文本数据进行分词。

1.2 词向量

要将自然语言理解的问题转化为机器学习的问题, 第一步将自然语言数学化, 转化为计算机能够识别和处理的形式, 即将文本的表达映射到k维向量空间[12], 用词语的分布式表示法——词向量表示词语。

本文使用Skip-gram模型训练词语的连续词向量表示。Skip-gram模型是一个带有单层隐藏层的简单神经网络, 通过训练该网络得到隐藏层的权重, 这些权重就是希望学习的词向量。Skip-gram算法已经集成在word2vec开源包中, 可直接调用该软件包训练词向量。将由Skip-gram模型训练得到的词向量存储在一个词嵌入矩阵E$\mathbb{R}$n×|V|中, 其中, |V|表示词汇表的大小, n为词向量维度。假设一个语句X包含有j个词, 则此语句可以表示为X[1:j], 每个词语在词嵌入矩阵E中都有一个唯一的用于检索其对应词向量的索引k, 句子中第i个词的词向量用xi表示:

$ \boldsymbol{x}_{i}=\boldsymbol{E} \boldsymbol{b}_{k} $ (1)

其中, bk是一个维度为词表大小, 值为0或1的二值向量, 除了第k个索引之外的所有位置都是0。则一个分词后的中文句子可以用矩阵X表示, 计算公式如下:

$ \boldsymbol{X}=\left(\boldsymbol{x}_{1}, \boldsymbol{x}_{2}, \cdots, \boldsymbol{x}_{j}\right) $ (2)

在训练本文模型的过程中还将对词向量和其他模型参数进行微调, 以期能够达到最佳分类效果。

2 网络模型

为了有效提高新闻文本分类的准确率, 本文提出一种引入注意力机制的CNLSTM模型用于中文新闻文本分类, 其结构如图 1所示。模型主要包括4个部分:第1部分是短语特征序列提取操作, 主要使用一维卷积对词向量提取特征, 利用滑动窗口计算前后词对当前词的影响, 生成短语特征表示; 第2部分是新闻文本特征提取操作, 该部分使用NLSTM处理短语特征序列, 逐步合成文本的向量特征表示; 第3部分采用注意力机制计算短语的重要性分布, 生成含有注意力概率分布的文本特征表示; 第4部分是分类器, 主要由dropout技术防止过拟合, 用Softmax分类器预测文本类别。

Download:
图 1 CNLSTM模型结构
2.1 短语特征序列提取

本文采用一维卷积核在文本的不同位置滑动来提取词语的上下文信息, 生成短语的特征表示。用xi$\mathbb{R}$d表示句子中第i个词语的d维词向量表示, X$\mathbb{R}$L×d代表输入句子, 其中L是句子的长度。用k$\mathbb{R}$m×d表示卷积操作所采用的卷积核向量, m为卷积核窗口大小。则在句子中的第j个位置上, 可以得到由m个连续词向量组成的一个窗口矩阵wj, 其表示如下:

$ \boldsymbol{w}_{j}=\left[\begin{array}{lll}{\boldsymbol{x}_{j}, \boldsymbol{x}_{j+1}} & {\cdots} & {\boldsymbol{x}_{j+m-1}}\end{array}\right] $ (3)

其中, 逗号表示行向量连接。卷积核k以有效的方式在每个位置处与窗口向量(m-gram)进行卷积以生成输入文本的特征映射F$\mathbb{R}$L-m+1, 其原理如图 2所示。

Download:
图 2 短语特征提取

图 2中, 输入的句子为“广播/中/传来/女/播音员/中英文/抱歉/的/通知”, 每个字用一个8维向量表示, 卷积核的窗口大小为3, 不同颜色的网格代表同一卷积核在输入句子的不同位置进行特征提取的过程。由于是一维卷积, 图中向下的箭头表示卷积过程中卷积核的移动方向自上而下, 即只在行方向上进行卷积。此外, 为了方便说明卷积过程, 图 2所示的卷积操作的步长stride设为3。图 2f1f2f3代表提取获得的短语特征, 例如:f3代表短语“抱歉的通知”的特征。f1f2f3连接后的特征向量F即是整个句子的特征表示。特征映射F的每个元素fj计算方法如下:

$ \boldsymbol{f}_{j}=g\left(\boldsymbol{w}_{j} \odot \boldsymbol{k}+\boldsymbol{b}\right) $ (4)

其中, ⊙是矩阵的元素相乘, b是偏置项, g是激活函数, 本文选用修正线性单元ReLU[13]。在模型中使用多个卷积核以产生多个特征映射。用n个具有相同长度的卷积核, 所生成的n个特征映射可以被重新排列为特征表示:

$ \boldsymbol{T}=\left[\boldsymbol{F}_{1} ; \boldsymbol{F}_{2} ; \cdots ; \boldsymbol{F}_{n}\right] $ (5)

其中, 分号表示列向量连接, Fi是用第i个卷积核在整个输入数据上卷积生成的特征映射, T$\mathbb{R}$(L-m+1)×n中的每一行Tj是用n个卷积核在句子中的同一位置j处进行卷积操作产生的新的特征表示。然后将这个新的、连续的高阶特征表示T传送至下文描述的NLSTM中。

通过卷积操作提取短语特征之后, 会进一步执行池化操作, 但是文本分类是利用现有信息进行预测, 强调特征序列的连续性, 而池化操作会破坏特征序列的连续性。因此, 本文在CNN卷积层之后直接采用NLSTM模型。

2.2 文本特征提取

虽然通过CNN提取到了短语的特征, 但在卷积的过程中并没有考虑短语之间的相互联系。此外, 由于中文文本中通常含有倒装、前置等复杂的表达形式, 在文本分类过程中可能需要用到以前的某些历史信息。LSTM作为一种经典的改进结构, 它采用门结构调节信息流动, 通过存储单元存储历史信息, 因此被广泛应用于各种应用中, 且表现突出。

基于LSTM的特点, 本文采用文献[5]提出的NLSTM结构。NLSTM通过嵌套增加LSTM的深度, 即NLSTM中记忆单元的值ct是通过一个LSTM计算而来, 其结构如图 3所示。

Download:
图 3 NLSTM记忆单元结构

在LSTM中, 各状态和各门的更新方式如下:

$ \boldsymbol{i}_{t}=\boldsymbol{\sigma}_{i}\left(\boldsymbol{x}_{t} \boldsymbol{W}_{x i}+\boldsymbol{h}_{t-1} \boldsymbol{W}_{h i}+\boldsymbol{b}_{i}\right) $ (6)
$ \boldsymbol{f}_{t}=\boldsymbol{\sigma}_{f}\left(\boldsymbol{x}_{t} \boldsymbol{W}_{x f}+\boldsymbol{h}_{t-1} \boldsymbol{W}_{h f}+\boldsymbol{b}_{f}\right) $ (7)
$ \boldsymbol{c}_{t}=\boldsymbol{f}_{t} \odot \boldsymbol{c}_{t-1}+\boldsymbol{i}_{t} \odot \boldsymbol{\sigma}_{c}\left(\boldsymbol{x}_{t} \boldsymbol{W}_{x c}+\boldsymbol{h}_{t-1} \boldsymbol{W}_{h c}+\boldsymbol{b}_{c}\right) $ (8)
$ \boldsymbol{o}_{t}=\boldsymbol{\sigma}_{o}\left(\boldsymbol{x}_{t} \boldsymbol{W}_{x o}+\boldsymbol{h}_{t-1} \boldsymbol{W}_{h o}+\boldsymbol{b}_{o}\right) $ (9)
$ \boldsymbol{h}_{t}=\boldsymbol{o}_{t} \odot \boldsymbol{\sigma}_{h}\left(\boldsymbol{c}_{t}\right) $ (10)

而NLSTM通过一个已经学习的状态函数式(11)来替代LSTM中计算ct的加运算。

$ \boldsymbol{c}_{t}=\boldsymbol{m}_{t}\left(\boldsymbol{f}_{t} \odot \boldsymbol{c}_{t-1}, \boldsymbol{i}_{t} \odot \boldsymbol{g}_{t}\right) $ (11)

状态函数mt被称为t时刻的内部记忆, 将这个状态函数作为另一个LSTM的记忆单元, 产生一个NLSTM网络。在NLSTM中, 内部记忆函数的输入和隐层状态就变为:

$ \tilde{\boldsymbol{h}}_{t-1}=\boldsymbol{f}_{t} \odot \boldsymbol{c}_{t-1} $ (12)
$ {\mathit{\boldsymbol{\tilde x}}_t} = {\mathit{\boldsymbol{i}}_t} \odot {\mathit{\boldsymbol{\sigma }}_c}\left( {{\mathit{\boldsymbol{x}}_t}{\mathit{\boldsymbol{W}}_{xc}} + {\mathit{\boldsymbol{h}}_{t - 1}}{\mathit{\boldsymbol{W}}_{hc}} + {\mathit{\boldsymbol{b}}_c}} \right) $ (13)

则内部LSTM的状态和门控信息的更新过程为:

$ {\mathit{\boldsymbol{\tilde i}}_t} = {\mathit{\boldsymbol{\sigma }}_t}\left( {{{\mathit{\boldsymbol{\tilde x}}}_t}{{\mathit{\boldsymbol{\tilde W}}}_{xi}} + {{\mathit{\boldsymbol{\tilde h}}}_{t - 1}}{{\mathit{\boldsymbol{\tilde W}}}_{hi}} + {{\mathit{\boldsymbol{\tilde b}}}_i}} \right) $ (14)
$ {\mathit{\boldsymbol{\tilde f}}_t} = {\mathit{\boldsymbol{\tilde \sigma }}_f}\left( {{{\mathit{\boldsymbol{\tilde x}}}_t}{{\mathit{\boldsymbol{\tilde W}}}_{xf}} + {{\mathit{\boldsymbol{\tilde h}}}_{t - 1}}{{\mathit{\boldsymbol{\tilde W}}}_{hf}} + {{\mathit{\boldsymbol{\tilde b}}}_f}} \right) $ (15)
$ {\mathit{\boldsymbol{\tilde c}}_t} = {\mathit{\boldsymbol{\tilde f}}_t} \odot {\mathit{\boldsymbol{\tilde c}}_{t - 1}} + {\mathit{\boldsymbol{\tilde i}}_t} \odot {\mathit{\boldsymbol{\tilde \sigma }}_c}\left( {{{\mathit{\boldsymbol{\tilde x}}}_t}{{\mathit{\boldsymbol{\tilde W}}}_{xc}} + {{\mathit{\boldsymbol{\tilde h}}}_{t - 1}}{{\mathit{\boldsymbol{\tilde W}}}_{hc}} + {{\mathit{\boldsymbol{\tilde b}}}_c}} \right) $ (16)
$ {\mathit{\boldsymbol{\tilde o}}_t} = {\mathit{\boldsymbol{\tilde \sigma }}_o}\left( {{{\mathit{\boldsymbol{\tilde x}}}_t}{{\mathit{\boldsymbol{\tilde W}}}_{xo}} + {{\mathit{\boldsymbol{\tilde h}}}_{t - 1}}{{\mathit{\boldsymbol{\tilde W}}}_{ho}} + {{\mathit{\boldsymbol{\tilde b}}}_o}} \right) $ (17)
$ {\mathit{\boldsymbol{\tilde h}}_t} = {\mathit{\boldsymbol{\tilde o}}_t} \odot {\mathit{\boldsymbol{\tilde \sigma }}_h}\left( {{{\mathit{\boldsymbol{\tilde c}}}_t}} \right) $ (18)

外部LSTM的记忆单元状态信息更新为:

$ {\mathit{\boldsymbol{c}}_t} = {\mathit{\boldsymbol{\tilde h}}_t} $ (19)

由此可见, 在NLSTM中, LSTM通过标准的门控结构选择性地访问内部存储单元, 这一关键特征使得NLSTM比传统的堆栈式LSTM实现更有效的时间层级。因为在访问内部记忆时, NLSTM拥有更高的访问自由度, 从而能处理更长时间规模的历史信息。且实验结果证明, 在参数量相同的情况下, NLSTM表现优于堆栈式LSTM和单层LSTM, 与堆栈式的多层LSTM相比, NLSTM的内部记忆单元能够学习更长期的依赖关系。

2.3 注意力分布计算

注意力机制是一种资源分配制度, 它通过模拟人脑注意力的特点, 对重要的信息给予较多的注意力, 而对其他内容分配较少的注意力。目前注意力机制已被应用于各领域中, 如文献[14]将注意力机制应用于RNN模型进行图像分类; 文献[15]将注意力机制应用于机器翻译任务中, 提出基于注意力机制的encode—decode模型, 大幅提高了翻译效果; 文献[16]基于注意力机制进行微博情感分析, 也取得了较好的结果。在自然语言处理中引入注意力机制计算注意力的分布概率, 突出输入各部分对输出的影响程度, 可以达到优化传统模型的效果。本文在NLSTM模块之后引入注意力机制, 以生成含有注意力概率分布的文本语义特征表示, 由此突出输入文本中不同短语特征对文本类别的影响作用, 提高模型分类的准确度。引入注意力机制后, 文本的特征表示计算过程如下:

$ \boldsymbol{u}_{t}=\tanh \left(\boldsymbol{W}_{s} \boldsymbol{h}_{t}+\boldsymbol{b}_{s}\right) $ (20)
$ {\alpha _t} = \mathit{Softmax}\left( {\mathit{\boldsymbol{u}}_t^{\rm{T}}, {\mathit{\boldsymbol{u}}_s}} \right) $ (21)
$ \mathit{\boldsymbol{v}} = \sum\limits_t {{\mathit{\boldsymbol{\alpha }}_t}} {\mathit{\boldsymbol{h}}_t} $ (22)

其中, ht是由NLSTM学习得到的t时刻的特征表示, utht通过一个简单神经网络层得到的隐层表示, us是一个随机初始化的上下文向量, 可视为对输入的一种语义表示, αtut通过Sotfmax函数归一化得到的重要性权重, v即是最终文本信息的特征向量。

2.4 Softmax分类

为防止模型在训练时出现过拟合现象, 本文引入dropout技术, 并采用Softmax分类器对所获得的文本特征进行多分类处理:

$ \mathit{\boldsymbol{y}} = \mathit{Softmax}(\mathit{\boldsymbol{v}}) $ (23)

其中, y是一个维度为类别数量大小的向量, 其每一维都是一个[0, 1]范围内的数字, 代表该文本属于某个类别的概率。n是可能的类别个数, 则输入句子的类别为:

$ \mathit{\boldsymbol{\hat y}} = \arg \max (\mathit{\boldsymbol{y}}) $ (24)

在本文模型的训练过程中, 通过最小化输出类别与句子真实类别之间的交叉熵误差训练整个模型。给定训练样本x和样本的真实类别l, 则其交叉熵误差为:

$ E(\mathit{\boldsymbol{x}}, \mathit{\boldsymbol{l}};\mathit{\boldsymbol{\theta }}) = - \sum\limits_{i = 1}^n {{l_i}} \ln \left( {{y_i};\mathit{\boldsymbol{\theta }}} \right) $ (25)

其中, θ为模型的参数, li指实际的类别标签向量中的第i个值, yi为Softmax的输出向量y的第i个值。对于所获得的误差, 最后取其平均即是该模型的损失函数。此外, 本文还对其进行L2正则化, 则最终的目标函数为:

$ J(\mathit{\boldsymbol{\theta }}) = \frac{1}{N}E(\mathit{\boldsymbol{x}}, \mathit{\boldsymbol{l}};\mathit{\boldsymbol{\theta }}) + \frac{\lambda }{2}{\left\| \mathit{\boldsymbol{\theta }} \right\|^2} $ (26)

其中, λL2正则项系数, N为训练样本大小。在训练模型的时候可以采用Adam方法来最小化目标函数J(θ), 它主要利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率。Adam的优点主要在于经过偏置校正后, 每一次迭代学习率都有个确定范围, 使得参数变化比较平稳。

综上, 本文进行文本分类时所用算法描述如下, 其中, TrainingData为训练数据集(有标签的中文语料库), θ为模型参数集, J为优化目标函数, Jsum为训练集误差和, X为训练集中的一个新闻文本, l为训练样本的真实类别, L为词数, d为词向量维度, n个卷积核的大小均为k, epochNum为总迭代次数。

算法1  CNLSTM +Attention模型训练算法

输入  TrainingData

输出  权值确定的多层模型

1.初始化参数θ, 用Word2vec训练获得词向量;

While迭代次数<epochNum

2.J←0;Jsum←0;

3.For X∈TrainingData

4.E(X, l; θ)←0;

5.输入X得出模型产生的X的类别概率向量y:

y=model (X; l)

6.计算训练样本X的误差:

${\rm{E}}({\rm{X}}, 1;{\rm{ \mathit{ θ} }}) = - \sum\limits_{{\rm{i = 1}}}^{\rm{K}} {{1_{\rm{i}}}} \log \left({{{\rm{y}}_{\rm{i}}}; {\rm{ \mathit{ θ} }}} \right)$

7.计算训练样本集损失:

Jsum←Jsum+E(X, l; θ)

8.End for

9.J←Jsum+$\frac{{\rm{ \mathit{ λ} }}}{{\rm{2}}}$‖θ‖2

10.用Adam计算梯度$\frac{{\partial {\rm{J}}}}{{\partial {\rm{ \mathit{ θ} }}}}$并更新θ;

11.End while

经过上述训练步骤后, 本文网络模型即可用于对未知类别的测试集进行分类处理, 将测试数据集中的新闻样本X输入到模型中, 该模型的输出即为X所属类别的概率向量y, 取y中最大概率对应的类别为测试样本X的类别。其具体算法如下, 其中, TestData为测试数据集, $\mathit{\boldsymbol{\hat y}}$为所求测试样本的类别, X为测试数据集中的一条新闻文本, L为词数, d为词向量维度。

算法2  测试样本分类算法

输入  TestData

1.初始化:对测试集进行分词, 然后用Word2vec求得词向量。

2.For X∈TestData

3.向模型中输入X, 得出X的类别概率向量y:

y=model (X; l)

4.输出:该样本的类别

${\rm{\hat y}}$=argmax(y)

5.End for

3 实验与结果分析 3.1 实验数据

本文使用了3个数据集进行文本分类, 以测试Attention-based CNLSTM模型的分类效果, 包括THUCNews新闻数据集(下载地址:http://thuctc.thunlp.org/message)、Sogou新闻语料库(下载地址:http://www.sogou.com/labs/resource/tce.php)以及复旦新闻语料库(下载地址:https://dvn.fudan.edu.cn/dataverse.xhtml)。

THUCNews是由清华大学自然语言处理实验室推出的新闻文本数据集, 包含74万篇新闻文档, 分为14个候选新闻类别。本文使用其中的10个类别, 每个类别包含5 000个训练样本, 500个验证集样本和1 000条测试样本。

Sogou语料库是搜狗实验室提供的全网新闻数据, 该数据集来自2012年6月—7月新浪、网易、腾讯以及凤凰资讯等若干个新闻站点。由于完整的实验数据量过于庞大, 本文使用其中的9个类别, 每个类别包含2 000个训练样本, 500个验证集样本和500条测试样本。

复旦大学新闻语料库由该校李荣路老师整理并提供, 分为20个新闻话题类别, 共包括9 000多个文档。但由于该数据集中某些类别数量过少, 因此本文实验不使用文本数量低于1 000的类别文本。本文使用了5个类别, 每个类别包含1 500个训练样本, 500个验证集, 500条测试样本。

3.2 模型训练及实验设置

本文采用mini-batch梯度下降法进行模型的训练。网络模型为1层卷积层、1层NLSTM层和1层注意力层, 参数设置如表 1所示。

下载CSV 表 1 参数设置
3.3 实验结果

为了测试模型的有效性, 本文选择了多个目前在中文文本分类任务上应用广泛且效果较好的网络结构作为Baseline模型进行比较。比较模型包括:单层CNN、单层LSTM、单层NLSTM、CNN+NLSTM、Attention-based LSTM[17]、BiLSTM[18]、Attention-based BiLSTM[19]、BiLSTM+ max-pooling[20]。本文也引用在相同数据集上已有的代表性工作作为比较, 其中:文献[21]提出一种VDCNN与LSTM相结合的混合模型, 该混合模型在搜狗和复旦数据集上取得了较好效果; 文献[22]的方法对整个文本的词向量进行多种池化, 最后将多种池化的特征作为一个整体输入到Softmax回归模型中得到文本的类别信息, 该方法在复旦大学的数据集上取得了较好效果。具体对比结果如表 2所示。

下载CSV 表 2 模型精确度对比

表 2可以看出, NLSTM的分类准确率均高于LSTM, 由此可以说明NLSTM的确能够更有效地学习到文本中的长期依赖关系。从CNN与CNN+NLSTM的对比结果可以看出, 在CNN中引入NLSTM网络层, 使得分类准确度得到显著提升。最终注意力机制的引入更进一步提升了模型的性能。通过表 2还可以看出, 在THUCNews数据集和复旦数据集上, 本文模型优于其他的比较模型取得了最佳的效果。与单层CNN和单层NLSTM的比较表明, 本文混合模型的优点在于不但能够更好学习到句子的全局特征表示, 而且能更好地学习具有注意力分布的更高级别表示的长期依赖关系。特别是通过与Attention-based LSTM的比较, 更加突出显示了本文模型的优越性。虽然在Sogou数据集上, 本文模型取得的效果不是最佳, 低于VDCNN+LSTM, 但与其他模型相比, 本文模型的分类准确率高, 且接近VDCNN+LSTM的准确率。

3.4 模型分析

本文以THUCNews新闻数据集为例进行10分类验证, 考察了卷积核窗口大小、NLSTM嵌套深度2个因素对模型精确度的影响。

在本文模型的卷积层中, 卷积核用于捕获局部n-gram特征, 即短语特征。因此不同大小的卷积核可以捕获不同的n-gram特征。本文在其他参数保持一致的情况下, 以不同卷积核大小做实例验证观察模型预测精确度的变化, 结果如图 4(a)所示。从图中可以得出:当窗口大小低于5时, 模型的精确度随着卷积核窗口的增大而逐渐增大; 但窗口大小大于5时, 模型的精确度反而随窗口增大而减小。由此可以得出:对于THUCNews数据集而言, 窗口大小为5的卷积核能够捕捉到更加充分、准确的短语特征使得本文模型达到最佳效果。此外, 由于随着NLSTM嵌套深度的增加, 整个模型的复杂度也会增加, 因此需要选择一个合适的嵌套深度, 使得模型在该深度下可以取得最佳效果。图 4(b)是在THUCNews数据集上使用不同深度得到的本文模型精确度的变化结果, 可以看出对该数据集而言, 最佳嵌套深度为5。

Download:
图 4 各参数对实验效果的影响
4 结束语

本文利用CNLSTM模型对词向量化后的文本进行分类处理。CNLSTM模型将CNN和NLSTM相结合, 利用卷积层学习短语级别的特征表示, 这些高层的短语特征表示序列被输入到NLSTM网络中进一步学习短语间的长短依赖关系, 得出整个输入文本的特征表示。在此基础上, 引入注意力机制捕获输入文本中的重要信息, 减少特征提取过程中的信息丢失和信息冗余问题。在3个公开新闻数据集上测试模型性能, 结果表明, 该混合模型在特征提取过程中, 具备保留历史信息且利用前后文信息的能力, 弥补了简单卷积层的不足, 从而有效提高了文本分类的准确率。下一步将优化CNLSTM模型, 在提高模型分类准确度的情况下同时提升其运行速度。

参考文献
[1]
陈钊, 徐睿峰, 桂林, 等. 结合卷积神经网络和词语情感序列特征的中文情感分析[J]. 中文信息学报, 2015, 29(6): 172-178. DOI:10.3969/j.issn.1003-0077.2015.06.023 (0)
[2]
夏从零, 钱涛, 姬东鸿. 基于事件卷积特征的新闻文本分类[J]. 计算机应用研究, 2017, 34(4): 991-994. DOI:10.3969/j.issn.1001-3695.2017.04.007 (0)
[3]
MIKOLOV T, SUTSKEVER I, CHEN Kai, et al.Distributed representations of words and phrases and their compositionality[C]//Proceedings of Advances in Neural Information Processing Systems.[S.l.]: Neural Information Processing Systems Foundation, Inc., 2013: 3111-3119. (0)
[4]
HOCHREITER S, SCHMIDHUBER J. Long short-term memory[J]. Neural Computation, 1997, 9(8): 1735-1780. DOI:10.1162/neco.1997.9.8.1735 (0)
[5]
MONIZ J R A, KRUEGER D.Nested LSTM[EB/OL].[2018-04-01].https://arxiv.org/pdf/1801.10308.pdf. (0)
[6]
AGARWAL B, MITTAL N.Text classification using machine learning methods: a survey[C]//Proceedings of the 2nd International Conference on Soft Computing for Problem Solving. Berlin, Germany: Springer, 2014: 701-709. (0)
[7]
李荣艳, 金鑫, 王春辉, 等. 一种新的中文文本分类算法[J]. 北京师范大学学报(自然科学版), 2006, 42(5): 510-505. DOI:10.3321/j.issn:0476-0301.2006.05.018 (0)
[8]
PENG Fuchun, SCHUURMANS D.Combining naive Bayes and n-gram language models for text classification[C]//Proceedings of European Conference on Information Retrieval.Berlin, Germany: Springer, 2003: 335-350. (0)
[9]
翟林, 刘亚军. 支持向量机的中文文本分类研究[J]. 计算机与数字工程, 2005, 33(3): 21-23, 45. DOI:10.3969/j.issn.1672-9722.2005.03.006 (0)
[10]
KALCHBRENNER N, GREFENSTETTE E, BLUNSOM P.A convolutional neural network for modelling sentences[EB/OL].[2018-04-01].https://arxiv.org/pdf/1404.2188.pdf. (0)
[11]
BENGIO Y, DUCHARME R, VINCENT P, et al. A neural probabilistic language model[J]. Journal of Machine Learning Research, 2003, 3: 1137-1155. (0)
[12]
谢逸, 饶文碧, 段鹏飞, 等. 基于CNN和LSTM混合模型的中文词性标注[J]. 武汉大学学报(理学版), 2017, 63(3): 246-250. (0)
[13]
NAIR V, HINTON G E.Rectified linear units improve restricted Boltzmann machines[C]//Proceedings of the 27th International Conferenceon Machine Learning.Haifa, Israel: [s.n.], 2010: 807-814. (0)
[14]
MNIH V, HEESS N, GRAVES A, et al.Recurrent models of visual attention[C]//Proceedings of the 27th International Conference on Neural Information Processing Systems.Montreal, Canada: MIT Press, 2014: 2204-2212. (0)
[15]
BAHDANAU D, CHO K, BENGIO Y.Neural machine translation by jointly learning to align and translate[EB/OL].[2018-04-01].https://arxiv.org/pdf/1409.0473.pdf. (0)
[16]
周瑛, 刘越, 蔡俊. 基于注意力机制的微博情感分析[J]. 情报理论与实践, 2018, 41(3): 85-94. (0)
[17]
张冲.基于Attention-Based LSTM模型的文本分类技术的研究[D].南京: 南京大学, 2016. http://cdmd.cnki.com.cn/Article/CDMD-10284-1016136802.htm (0)
[18]
黄磊, 杜昌顺. 基于递归神经网络的文本分类研究[J]. 北京化工大学学报(自然科学版), 2017, 44(1): 98-104. (0)
[19]
胡朝举, 梁宁. 基于深层注意力的LSTM的特定主体情感分析[J]. 计算机应用研究, 2019, 36(5): 10-15. (0)
[20]
LAI Siwei, XU Liheng, LIU Kang.Recurrent convolutional neural networks for text classification[C]//Proceedings of the 29th AAAI Conference on Artificial Intelligence.Palo Alto, USA: AAAI Publications, 2015: 2267-2273. (0)
[21]
彭玉青, 宋初柏, 闫倩, 等. 基于VDCNN与LSTM混合模型的中文文本分类研究[J]. 计算机工程, 2018, 44(11): 190-196. (0)
[22]
阳馨, 蒋伟, 刘晓玲. 基于多种特征池化的中文文本分类算法[J]. 四川大学学报(自然科学版), 2017, 54(2): 287-292. (0)