主题分类在内容检索和信息筛选中应用广泛,其核心问题可分为两部分: 文本表示和分类模型。近年来,基于分布式词向量对文本进行表示,使用卷积神经网络作为分类器的文本主题分类方法取得了较好的分类效果。本文研究了不同词向量对卷积神经网络分类效果的影响,提出针对中文语料的topic2vec词向量模型。本文利用该模型,对具有代表性的互联网内容生成社区“知乎”进行了实验与分析。实验结果表明,利用topic2vec词向量的卷积神经网络,在长内容文本和短标题文本的分类问题中分别取得了98.06%,93.27%的准确率,较已知词向量模型均有显著提高。 Topic classification has wide applications in content searching and information filtering. It can be divided into two core parts: text embedding and classification modeling. In recent years, methods have brought out significant results using distributed word embedding as input and convolutional neural network (CNN) as classifiers. This paper discusses the impact of different word embedding for CNN classifiers, proposes topic2vec, a new word embedding specifically suitable for Chinese corpora, and conducts an experiment on Zhihu, a representative content-oriented internet com-munity. The experiment turns out that CNN with topic2vec gains an accuracy of 98.06% for long content texts, 93.27% for short title texts and an improvement comparing with other word em-bedding models.
周盈盈,范磊
上海交通大学信息安全工程学院,上海
收稿日期:2016年10月18日;录用日期:2016年11月6日;发布日期:2016年11月9日
主题分类在内容检索和信息筛选中应用广泛,其核心问题可分为两部分: 文本表示和分类模型。近年来,基于分布式词向量对文本进行表示,使用卷积神经网络作为分类器的文本主题分类方法取得了较好的分类效果。本文研究了不同词向量对卷积神经网络分类效果的影响,提出针对中文语料的topic2vec词向量模型。本文利用该模型,对具有代表性的互联网内容生成社区“知乎”进行了实验与分析。实验结果表明,利用topic2vec词向量的卷积神经网络,在长内容文本和短标题文本的分类问题中分别取得了98.06%,93.27%的准确率,较已知词向量模型均有显著提高。
关键词 :主题分类,深度学习,卷积神经网络,词向量
文本主题分类将文本按照潜在的主题进行分类,在内容检索和信息筛选中应用广泛,涉及语言学、自然语言处理、机器学习等领域。文本主题分类的核心问题包括文本表示、分类模型等。
传统的文本表示方法主要基于词袋模型,该方法认为文档是无序词项的集合。词袋模型存在数据稀疏问题,并且丢弃了词序、语法等文档结构信息,对分类效果的提升存在瓶颈。传统的文本分类模型以词袋为输入特征,并基于一定的模型假设。其基本思想是,假设数据分类服从某种概率分布,利用贝叶斯理论获得最佳的分类器。由于对于数据附加了额外的假设,因此,一旦假设不成立则会严重影响模型准确率。
近年来,对文本分类问题的改进研究主要集中于深度学习。针对深度学习的分类模型,文本表示可使用Mikolov等人提出的分布式词向量 [
本文主要研究基于卷积神经网络的文本分类方法,并通过改进词向量空间模型提高分类的准确性。针对中文语料的特点,提出了改进的词向量模型topic2vec,并通过对比实验,研究不同词向量作为卷积神经网络的输入特征,对分类准确率的影响,其中,利用 topic2vec的卷积神经网络在长短语料中分别取得98.06%,93.27%的准确率,较其他词向量如word2vec [
本文的结构如下:第二章介绍文本分类的相关工作。第三章介绍topic2vec模型的原理及文本分类模型的结构。第四章介绍实验设定和实验结果,并对实验结果进行讨论。第五章为总结。
深度学习是文本分类的主流方法,取得比较好的效果。其核心是卷积神经网络作为分类器,同时使用词向量模型作为文本表示。
基于卷积神经网络的文本分类模型是一个有监督的三层网络模型,由输入层、隐层和输出层构成,通过后向传播算法 [
模型的训练使用极大似然估计,即求出一组参数
其中
Zhang等人 [
词向量是深度学习模型的输入特征,根据向量之间的相关性,可分为随机词向量和分布式词向量。随机词向量将词项随机表示为两两正交的单位向量,由1个1和W-1个0组成,其中W为字典长度,其构造方式简单,但词项之间的关联关系则被完全割裂,并可能造成维数灾难。分布式词向量则将词项表示为一个几十到几百维的稠密型实值向量,并可通过向量空间距离考察词项之间的语义相似度,其中,最具代表性的是word2vec。对于长度为N的文档,word2vec考察每个词项
图1. 基于卷积神经网络的文本分类模型
通过随机梯度下降法求解目标函数可得词向量。其中,词项上下文的条件概率
由于word2vec仅考察目标词
主题模型 [
将主题数设置为词向量的维度,得词项的稀疏主题分布向量,并可作为字典在向量空间的映射,通过向量空间距离考察词项的在全局语料范围内的主题相似度。
现有的分布式词向量,都直接沿用了比较上下文对单词建模的方法,缺少了在全局文档中对主题特征的刻画,针对这一局限性,本章提出topic2vec词向量模型,并将其作为卷积神经网络的输入特征。
word2vec等分布式词向量使用固定大小的滑动窗口对文档中每个词项的上下文进行统计,并给出词在向量空间中的映射。此类模型仅从局部文档考察词项的语义,并不统计词在全局文档中的主题信息。一般而言,词向量中保留越多的语义信息,深度学习模型对语料的特征学习效果更好。
topic2vec词向量模型主要基于这个猜想,设分词后的中文语料库为D,取语料库中所有独立词项
算法1通过伪代码描述了主题分布向量的生成过程。假设分词的主题分布均匀,使用Dirichlet分布 [
Algorithm 1. Topic model
算法1. 主题模型
由模型可知,对任意词项
算法2通过伪代码描述了词向量topic2vec生成的具体过程。第一步,对词项的邻近上下文进行考察,基于滑动窗口内的语义信息构造维数为d的word2vec词向量
由上述算法可知,
其中
利用topic2vec作为卷积神经网络的输入特征,得到改进的文本分类模型,模型结构如图2。
模型首先对文本进行数据清洗、分词、构建字典并完成词项到topic2vec的映射,接着将原始文本表示为对应词向量的级联,并在文末进行空格填充,以保证每个文档的输入矩阵高度相等
图2. 基于topic2vec的文本分类模型
Algorithm 2. topic2vec
算法2. topic2vec
对于高度为N,维度为d的文档矩阵M,卷积层用宽度恒定为d,高度h可变(
其中
由于滑动窗口的高度不尽相同,卷积得到的特征映射向量也有各自不同的维度,因此,为了对特征映射向量进行正则化,模型通过表决层(max pooling)从每个特征映射向量中挑选出最大项
模型输出层的节点个数K即为主题个数,通过Softmax分类器 [
其中x为输入文档,
本文实验主要以具有代表性的中文网络文本最为研究对象。知乎作为国内知名的社会化问答社区,截至2014年8月有活跃用户数有350万,具有较为完备的标签与分类机制,是理想的文本主题分类语料来源。
实验数据集采集自知乎,包括8个主题45063个精华提问及高票回答,话题涉及计算机、体育、经济、美食、教育、医疗、人际传播和艺术。以分词为文本长度的最小单位,统计各个文本的长度分布,如图3所示。
在数据预处理中,本文采用Stanford Core NLP 3.5.0 [
实验使用两个语料,“短语料”为数据集中所有标题信息,“长语料”为标题、问题详情、和高票回答的组合信息。“短语料”提供了话题的精简信息,词项少但涵盖关键词的比例较高,“长语料”提供了话题的全部信息,内容丰富但干扰项多。图4给出了两个语料的长度分布。
使用完整长语料作为词向量的训练集,并分别在两组语料上进行主题分类实验,考察分类模型在短文本和长文本中的分类效果。实验在配备Intel Core i7处理器,内存8GB的OS X EI Capitan操作系统下进行,卷积神经网络的训练使用Python的深度学习框架theano [
图3. 知乎原始数据集文本长度分布
原始文本 | 预处理后 |
---|---|
图灵机器人(http://www.tuling123.com/)这款智能自动问答应用在 业界处于什么水平?应用前景如何 | 图灵机器人智能自动问答应用业界处于 什么水平应用前景如何 |
假如你带领一个开发、一个美工、一个产品、 一个人资去开一家老北京炸酱面,你会如何各尽其能地让生意越来越红火? | 假如带领开发美工产品资去北京炸酱面 如何各尽其能生意越来越红火 |
2014年10月19日,在 PM2.5值超过 400的情况下 参加北京马拉松是什么体验? | PM2.5超过情况参加北京马拉松什么体验 |
表1. 数据预处理示例
对词向量的评价主要基于两个方面的考量:词向量的语言学特征和词向量作为分类模型的初始特征对模型效率的影响。
在评价词向量的语言学特征方面,本章选取了5个词项,考察它们在向量空间中的最邻近词项及语义相关性。表2比较了word2vec和topic2vec得到的最邻近词项:
由表2可知,利用word2vec训练得到的邻近词项具有词性相同、实体种类相近的特点,例如“苹果”与“香蕉”等;而topic2vec则能够找到同一主题下的强关联词,例如“乔布斯”与“苹果”,topic2vec可以更好地体现人类对词语的理解。
在将词向量作为特征提高模型性能方面,本章对长语料和短语料分别进行分类实验,并以不同词向量作为输入特征进行对比,这些词向量包括:随机词向量(rand)、word2vec、GloVe和topic2vec。将实验数据随机分成10组进行交叉验证。实验结果如下:
由表3可知,较于主题模型算法,CNN具有准确度高、鲁棒性好等优势。此外,影响CNN分类结果的主要因素包括文本长度和词向量的选择。对于长文本,topic2vec的平均准确度为0.98,word2vec的平均准确度为0.96,随机正交词向量的准确度为0.90;对于短语料,topic2vec和word2vec的平均准确度较为接近,为93.27%和91.54%,GloVe的准确度为69.72%。正交词向量则为67.17%。对于长语料,topic2vec的平均准确率为98.06%,word2vec、GloVe和随机正交词向量则分别为95.71%、92.4%、89.95%。由此可见,通过训练词向量,将词语之间的词性和语义关系表达为词向量之间的空间距离,这在CNN的分类过程中具有一定的积极影响。
图4. 知乎预处理后数据集文本长度分布
词项 | Word2vec | Topic2vec |
---|---|---|
苹果 | Apple, 黑莓,香蕉,橘子,橙子 | Apple,黑莓,乔布斯,小米,库克 |
锅包肉 | 锅包,咸口,包肉,茄盒,米豆腐 | 正宗,好吃,地道,吃到,小吃 |
足球 | 篮球,排球,五人制,橄榄球,曲棍球 | 篮球,打球,运动员,踢球,踢足球 |
大学 | 入读,早稻田,宾夕法尼亚,学校,CCER | 入读,早稻田,学校,就读,匹兹堡 |
禽流感 | H7N9,H1N1,流感,高致病性,H10N8 | 流感,高致病性,甲型,病毒,感染 |
表2. 两种词向量得到的最邻近词项
词向量 | 短语料(%) | 长语料(%) |
---|---|---|
Rand | 67.17 | 89.95 |
GloVe | 69.72 | 92.40 |
word2vec | 91.54 | 95.71 |
topic2vec | 93.27 | 98.06 |
表3. 不同词向量下的CNN文本分类准确率
本文研究了基于深度学习的文本分类,以及不同词向量输入对神经网络性能的影响,提出了一种改进的词向量表示方法Top2vec。通过实验数据表明,该方法对长短语料分类准确率均有提高。
上海市科委基础研究重点项目(13JC1403501)。
周盈盈,范磊. 基于改进词向量模型的深度学习文本主题分类Deep Learning on Improved Word Embedding Model for Topic Classification[J]. 计算机科学与应用, 2016, 06(11): 629-637. http://dx.doi.org/10.12677/CSA.2016.611077