2. 智能信息处理与实时工业系统湖北省重点实验室, 武汉 430081
2. Key Laboratory of Intelligent Information Processing and Real-Time Industrial System of Hubei Province, Wuhan 430081, China
随着电子商务的快速发展, 电商数据呈指数式增长. 这些数据承载了各类消费群体的信息, 成为了极有价值的资产, 应用大数据正逐渐成为商业竞争的关键. 大数据的发展, 为企业带来了新的生产革命, 带来了一系列的机遇. 基于互联网实现电子商务数据收集, 大数据分析促进了企业客户服务的差异化, 强化了市场营销的针对性, 增强了电子商务企业竞争力. 而对电商数据的文本分类, 是进行一切数据分析的基础.
依靠人力对电商数据进行分类, 无法适应如今海量的电商数据且成本过高. 传统机器学习难以捕捉有用的人工特征, 深度学习可以自动提取特征. 近年来, 随着深度学习的快速发展, 深度学习在自然语言处理领域取得了良好的效果. 采用深度学习模型如卷积神经网络(Convolutional Neural Networks, CNN)[1]、循环神经网络(Recurrent Neural Network, RNN)[2]以及长短期记忆神经网络(Long Short-Term Memory, LSTM)[3]等进行文本分类, 都取得了比传统机器学习模型更好的结果.
文献[4]中, 作者使用深度学习模型对新闻文本进行分类. 采用的模型包括BPNN模型, BiLSTM模型, TextCNN模型和BiLSTM+TextCNN模型, 除了BPNN模型之外, 其他模型的F1值均超过0.9, 取得了较好的分类效果[4]. 这些模型取得的分类成果, 足以说明将深度学习模型应用于文本分类, 是一个不错的选择.
Attention机制模拟人类注意力机制, 对信息中的关键部分进行着重关注, 最早在计算机视觉领域被提出. 2014年, Google Mind团队发表的论文《Recurrent Models of Visual Attention》真正让Attention机制大火. 作者在RNN模型中引入Attention机制进行图像分类, 取得了良好的分类效果[5]. 2015年, Bahdanau等在文献《Neural Machine Translation by Jointly Learning to Align and Translate》中将Attention机制引入机器翻译中, 这是Attention机制首次在NLP任务中应用[6]. 随后, Attention机制被广泛应用于NLP的各个领域. 文献[7]中, 作者在BiLSTM模型中引入Attention机制对招聘信息进行分类, 分类准确率达到93.36%, 与其他没有引入Attention机制的模型相比, 提高约2%[7]. 可见, 注意力机制在文本分类中有良好的作用[8].
本文主要针对电商数据的文本分类, 分类过程中对上下文有较强依赖, 同时, 某些关键词对分类结果也有较强影响. BiLSTM模型在对词语进行编码时, 可以充分考虑上下文信息.
本文的数据来源于第9届中国大学生服务外包创新创业大赛中企业方提供的真实的电商数据, 从全部数据集中取部分样本, 数量为156788. 一共有24个类别, 且每个类别的样本数量分布不均衡. 为了确保模型能够充分学习到每个类别的特征, 本文采用分层抽样的方法, 将数据集划分为训练集和测试集, 样本比例为7:3, 划分后的数据集如图1所示. 对数据集使用jieba中文分词工具进行分词处理, 接着对分词结果进行停用词过滤, 停用词表为哈工大停用词表.
1.2 生成词向量
使用Word2Vec开源工具的CBOW模型训练词向量, 可以充分考虑到每个词语的上下文信息, 训练得到的词向量维度为64. 下文中提到的所有深度学习模型都将使用Word2Vec训练得到的词向量.
2 模型描述与实现 2.1 BiLSTM模型双向长短期记忆网络(Bi-directional Long Short-Term Memory, BiLSTM)是一种时序循环神经网络, 是由前向长短期记忆网络(Long Short-Term Memory, LSTM)和反向长短期记忆网络(Long Short-Term Memory, LSTM)组成. LSTM的提出是为了解决循环神经网络(Recurrent Neural Network, RNN)在长距离训练过程中存在的梯度消失和梯度爆炸问题, 因此LSTM在结构设计中引入了门控机制, 包含3种门: 遗忘门、输入门、输出门. 遗忘门决定上一时刻的细胞状态有多少信息需要被遗忘, 输入门决定当前时刻的输入中有多少信息需要被添加, 输出门决定当前的细胞状态有多少信息需要被输出. 通过这3种门控机制可以很容易解决RNN在长距离训练中存在的梯度消失和梯度爆炸的问题.
LSTM模型的第1步是通过遗忘门来计算
$ {f}_{t}=\sigma \left( {{W}_{f}\cdot \left[{h}_{t-1},{x}_{t}\right]+{b}_{f}} \right) $ | (1) |
第2步生成新的细胞状态
$ {i}_{t}=\sigma \left( {{W}_{i}\cdot \left[{h}_{t-1},{x}_{t}\right]+{b}_{i}} \right) $ | (2) |
$ {\tilde C}_{t}=\mathrm{t}\mathrm{a}\mathrm{n}\mathrm{h}\left( {{W}_{C}\cdot \left[{h}_{t-1},{x}_{t}\right]+{b}_{C}} \right) $ | (3) |
$ {C}_{t}={f}_{t}*{C}_{t-1}+{i}_{t}*{\tilde C}_{t} $ | (4) |
第3步决定细胞状态中哪些信息需要被输出. 首先, 将
$ {o}_{t}=\sigma \left( {{W}_{t}\cdot \left[{h}_{t-1},{x}_{t}\right]+{b}_{o}} \right) $ | (5) |
$ {h}_{t}={o}_{t}*\mathrm{t}\mathrm{a}\mathrm{n}\mathrm{h}\left({C}_{t}\right) $ | (6) |
以上, 就是LSTM模型的一次流程, LSTM可以编码句子中从前到后的信息, 但是无法编码从后到前的信息. 本文采用的BiLSTM模型由前向LSTM模型和后向LSTM模型构成, 因此, 既能编码从前到后的信息同时又能编码从后到前的信息, 可以更好的捕捉双向的语义依赖.
本文使用PyTorch实现BiLSTM模型, 模型结构如图2. 其中
2.2 注意力机制
近年来注意力机制被广泛应用于深度学习的各个领域, 都取得了良好的效果. 其模拟人脑中的注意力分配机制, 对信息中比较关键的部分进行着重关注. 本文以3种方案对BiLSTM模型添加注意力机制.
方案一. 按照文献[7]中的方式为BiLSTM添加注意力机制, 此模型为BiLSTM+Attention1模型. 计算过程如下:
$ {u}_{t}=\mathrm{t}\mathrm{a}\mathrm{n}\mathrm{h}({W}_{u}\cdot {H}_{t}+{b}_{u}) $ | (7) |
$ {a_t} = \frac{{{\rm{exp}}\left( {u_t^{\rm{T}}{u_w}} \right)}}{{\displaystyle\sum\nolimits_j {\rm{e}} {\rm{xp}}\left( {u_j^{\rm{T}}{u_w}} \right)}} $ | (8) |
其中,
方案二.
$ {tf}_{i}={\text{词语}}i{\text{在文档中出现的次数}} $ | (9) |
$ {idf}_{i}=\mathrm{l}\mathrm{o}\mathrm{g}\left(\frac{1+{\text{文档总数}}}{1+{\text{包含词语}}i{\text{的文档个数}}}\right)+1 $ | (10) |
$ {tf-idf}_{i}={tf}_{i}*{idf}_{i} $ | (11) |
$ {a}_{i}=\frac{\mathrm{e}\mathrm{x}\mathrm{p}\left({tf-idf}_{i}\right)}{\displaystyle\sum\nolimits_j{{\rm{e}}}\mathrm{x}\mathrm{p}\left({tf-idf}_{j}\right)} $ | (12) |
方案三.
$ \begin{split} {icf}_{i}=&{w}_{1}*\frac{1+{\text{类别总数}}}{1+{\text{包含词语}}i{\text{的类别个数}}}\\ &+{w}_{2}*\mathrm{l}\mathrm{o}\mathrm{g}\left(\frac{1+{\text{类别总数}}}{1+{\text{包含词语}}i{\text{的类别个数}}}\right) \end{split} $ | (13) |
$ {a}_{i}=\frac{\mathrm{e}\mathrm{x}\mathrm{p}\left({icf}_{i}\right)}{\displaystyle\sum\nolimits_j{{\rm{e}}}\mathrm{x}\mathrm{p}\left({icf}_{j}\right)} $ | (14) |
其中,
本文共有4组对照实验, 训练次数均为15次, 学习率为0.001. 模型分别为BiLSTM模型, BiLSTM+Attention1模型, BiLSTM+Attention2模型, BiLSTM+Attention3模型, 实验结果分别见表1至表4. 精确率(Precision), 召回率(Recall), F1值(F1-score)的加权平均值对比如图3所示. 加权平均值可以很好的反映模型在测试集上的分类效果. 4个模型在每个类别上的预测准确率如图4所示.
4类模型分类的准确率均超过90%. BiLSTM+Attention2模型和BiLSTM+Attention3模型均比BiLSTM模型的分类效果更好, BiLSTM+Attention1模型的分类效果最差. BiLSTM+Attention3模型在Precision, Recall以及F1-score值上均是最大的, 是4类模型中最优的, 但分类准确率的提升并不大.
3.2 原因分析
取潮流女包类和奢侈品类各5条数据进行比较, 如表5所示. 两个类别样本的相关性比较高, 甚至存在包含关系, 如: 潮流女包属于奢侈品. 类似关系的还有: 童书与中小学教辅, 男装与户外鞋服, 茶具/咖啡具与水具酒具, 内衣与妈妈专区等. Attention机制为文本中的关键词分配更多的权重, 当文本比较相近时, Attention机制起到的效果会有折扣.
4 结论与展望
逆类别率
[1] |
Gu JX, Wang ZH, Kuen J, et al. Recent advances in convolutional neural networks. Pattern Recognition, 2018, 77: 354-377. DOI:10.1016/j.patcog.2017.10.013 |
[2] |
Chien JT, Lu TW. Deep recurrent regularization neural network for speech recognition. 2015 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). South Brisbane, QLD, Australia. 2015. 4560–4564.
|
[3] |
Staudemeyer RC, Morris ER. Understanding LSTM — a tutorial into long short-term memory recurrent neural networks. arXiv: 1909.09586, 2019.
|
[4] |
涂文博, 袁贞明, 俞凯. 针对文本分类的神经网络模型. 计算机系统应用, 2019, 28(7): 145-150. DOI:10.15888/j.cnki.csa.006972 |
[5] |
Mnih V, Heess N, Graves A, et al. Recurrent models of visual attention. Proceedings of the 27th International Conference on Neural Information Processing Systems. Montreal, BC, Canada. 2014. 2204–2212.
|
[6] |
Bahdanau D, Cho K, Bengio Y. Neural machine translation by jointly learning to align and translate. arXiv: 1409.0473, 2014.
|
[7] |
吕飞亚, 张英俊, 潘理虎. 注意力机制的BiLSTM模型在招聘信息分类中的应用. 计算机系统应用, 2020, 29(4): 242-247. DOI:10.15888/j.cnki.csa.007364 |
[8] |
Wu TH, Hsieh CC, Chen YH, et al. Hand-crafted attention is all you need? A study of attention on self-supervised audio transformer. arXiv: 2006.05174v1, 2020.
|
[9] |
胡万亭, 贾真. 基于加权词向量和卷积神经网络的新闻文本分类. 计算机系统应用, 2020, 29(5): 275-279. DOI:10.15888/j.cnki.csa.007391 |
[10] |
牛雪莹, 赵恩莹. 基于Word2Vec的微博文本分类研究. 计算机系统应用, 2019, 28(8): 256-261. DOI:10.15888/j.cnki.csa.007030 |