system: [SYSTEM]

user: 2. 基于卷积神经网络的教育众筹成败预测 2.1. 教育众筹成败预测的基本原理 教育众筹的请求书上的主题信息大多以文本的形式呈现，需要大众做出接受或是不接受的判决，也就是说把文本分为两类：接受和不接受，因此教育众筹预测问题其实是个文本分类问题。文本分类系统的任务是：在给定的分类体系下，根据文本的内容自动地确定文本关联的类别。文本分类包括文本表示、训练过程和分类过程三部分内容。其中文本表示又可分为文本预处理、索引和统计、特征抽取等步骤；训练过程就是用训练文本对事先选定的分类器进行训练和学习；最后依据训练好的准则对未知文本进行分类决策。 图1. 文本分类流程 一个典型的文本分类流程如图1所示。因此文本的表示和分类器的设计是本文要解决的两个关键技术。 2.2. 基于word2vec的词表征数值量化算法 目前，在文本信息处理问题上，文本的表示主要采用向量空间模型。特征项的选取和权重的计算是影响向量空间模型表述文本的重要因素，要想提高分类器的效率和分类准确性必须合理选择和提取文本的特征 [ 6 ]。 word2vec就是将词表征为实数值向量的一种高效的算法模型，其利用深度学习的思想，可以通过训练，把对文本内容的处理简化为K维向量空间中的向量运算，而向量空间上的相似度可以用来表示文本语义上的相似 [ 7 ]。其基本思想是通过训练将每个词映射成K维实数向量(K一般为模型中的超参数)，语义相似度通过词与词之间的距离(比如cosine相似度、欧氏距离等)来衡量 [ 8 ]。其采用一个三层的神经网络，输入层-隐含层-输出层。其核心是根据词频用Huffman编码，使得所有词频相似的词隐藏层激活的内容基本一致，出现频率越高的词语，他们激活的隐藏层数目越少，这样可以降低计算的复杂度。而Word2vec大受欢迎的一个原因正是其高效性，一个优化的单机版本一天可训练上千亿词 [ 9 ]。 Word2vec实际上是两种不同的方法：Continuous Bag of Words (CBOW)和Skip-gram [ 10 ]。CBOW的目标是根据上下文来预测当前词语的概率。Skip-gram则根据当前词语来预测上下文的概率(如图2所示)。这两种方法都以人工神经网络作为它们的分类算法。起初，每个单词都是一个随机N维向量。经过训练之后，该算法利用CBOW或者Skip-gram的方法获得了每个单词的最优向量 [ 10 ]。 图2. CBOW和Skip-gram方法示意图 2.3. 卷积神经网络分类器设计 卷积神经网络(Convolutional Neural Network， CNN)是一个多层的神经网络，每层由多个二维平面组成，而每个平面由多个独立神经元组成。如图3所示，CNN受到Hubel和Wiesel对猫大脑皮层的研究启发，用卷积层与池化层代替了传统神经元。实验证明，卷积与池化的交替结构对文本特征的学习与抽象有十分优良的效果。 图3. 卷积神经网络结构示意图 1) 卷积层 卷积层本质上是一组滤波器，每个滤波器又称为卷积核。当文本输入网络时，单个卷积核通过固定步长下的不断滑动，与文本中的不同部分分别卷积，输出相应的特征二维矩阵。在神经网络中，滤波器的尺寸往往只覆盖部分特征，再通过滑动感知整个文本。滤波器尺寸的减少大大降低了神经网络的参数数量，提高了网络训练与预测的效率。 卷积层中的滤波器组权重不随输入的变化而变化，因此在卷积过程中，卷积核往往对某种特定特征输出较强，对其他特征响应较弱。因此每个滤波器都可以认为是一个特征提取方法，当文本局部输入符合滤波器条件时，输出的值越大，反之则输出值越小。 需要注意的是卷积核的维度是三维的，其参数除了二维尺寸(Kernel Size)，还有通道数(Channel)。当卷积层包含n个卷积核时，其输出n个二维特征图，此时下一层的卷积核的通道数维度应与上一层的输出相匹配。在参数总量固定的情况下，尺寸更小、卷积核数量更多的卷积层性能往往优于尺寸较大，卷积核数目较少的卷积层 [ 10 ]。 x j k = f ( ( ∑ i ∈ M j x i k − 1 W i j k ) + b j k ) 式中， x j k 是第k层第j维的特征平面， M j 是表示输入特征平面的集合， W i j k 表示由第k-1层到第k层要产生的特征的数量，称为卷积核(Convolution Kernel)。卷积核可以看作一个四维矩阵，其中第一维是希望输出的特征平面数，第二维是当前层的特征平面数，第三、四维是局部感知域的大小。 b j k 表示偏置(Bias)，是一个k维列向量，k是输出的特征平面数。 f (   ⋅   ) 表示一个激活函数 [ 11 ]，本文使用的是ReLU函数。 ReLU函数： f ( x ) = max ( 0 ， x ) 卷积层的输入输出特征平面尺寸一般满足 x o u t = x i n + 2 p a d − k s s t r i d e + 1 式中pad为填充宽度，ks为卷积核尺寸，stride为步长。以9 × 9特征平面作为输入为例，当pad = 0，ks = 3，stride = 1时，输出特征平面尺寸为7 × 7。 2) 池化层 池化本质是文本特征的一种聚合操作，通过统计一定区域内的平均值(平均池化)或最大值(最大池化)实现降采样的作用 [ 11 ]，如图4所示，它是卷积神经网络另一种降维的手段。即使文本中目标特征有一个较小的平移或缩放，经过池化操作依旧能够得到和未变化前相同的池化特征。池化单元使卷积神经网络具有了一定的旋转、平移、伸缩不变性。 图4. 最大池化和平均池化示意图 3) 全连接层 全连接层即将人工神经元以层内独立、层间全连接的方式构造的网络结构。全连接层优势为结构易于调整，参数量少，其缺点在于丢弃了文本原本的空间结构。因此CNN中，输入文本往往需要先经过多个卷积与池化的交替结构后，将特征高度抽象后，在通过全连接层展开并降维，以便最终通过Softmax函数输出分类结果。 本文算例CNN网络结构如表1所示： Table 1 Network model structure tabl Input (200 × 128) Conv1D (64，128，3) Conv1D (64，128，4) Conv1D (64，128，5) Relu Relu Relu Maxpooling (3) Maxpooling (4) Maxpooling (5) Reshape Reshape Reshape Merge Dense (128) Relu Dense (2) Softmax 表1. 网络模型结构表 表中Conv1D (a，b，c)表示卷积层，a为卷积核个数，b、c为感知野尺寸；Relu表示激活函数，Maxpooling(d)表示最大池化层，d为池化窗尺寸；Reshape为变形层，主要用来将多维输入进行一维展开；Merge为融合层，将多个输入融合；Dense(e)为全连接层，e为神经元个数；网络输出最终通过Softmax函数。 S i = e i ∑ j e j       ∀ i ∈ 1 ， 2 ， … ， C 其中，网络输出为i，输出个数为C。 2.4. 实验结果与分析 本文根据众筹网站https://www.donorschoose.org/的数据进行仿真分析 [ 12 ]，该网站是全美国任意地区的教育众筹申请书公开众筹的平台之一。文章先对初始数据进行错误信息的剔除，匹配等预处理后，共获得120，597个有效id，再对提取出的关键词进行数值量化处理。本文采用Matlab2015b作为软件平台，编程实现CNN分类模型的构建、训练和分类，将50%的id用于训练，剩下的50%的id用于测试。 2.4.1. 文本数值化处理结果 根据求得的词典和词语数值向量化的结果，对每个文本进行数值矩阵化处理，生成一个M × 128的特征矩阵，其中M为本文中能够与词典中的词语匹配的词语数，为了使每个文本的矩阵维数相同，这里选取所有文本中最大的词语匹配数，这里选取M = 200。 其中四个文本的数值化结果如图5所示： 图5. 四个文本的数值量化特征矩阵 2.4.2. 众筹成败预测结果 利用特征矩阵，对卷积神经网络进行训练，本文设计了感知野为M × 128的长矩形卷积核，保证每次卷积中单词信息的完整；针对单词间关联距离不确定问题，设计了64个M = 3/4/5三种尺寸的卷积核，同时对输入数据进行处理。不同卷积核的输出在融合层与全连接层进行信息融合与抽象，从而取得较之单一卷积核尺寸更好地结果。最终交叉验证正确率可达88.16%，结果如表2所示。 Table 2 Comparison of network performance under different perception 卷积核尺寸 3 × 128 4 × 128 5 × 128 本文网络 准确率 85.14% 85.31% 86.34% 88.16% 表2. 不同感知下网络性能比较