Professional Documents
Culture Documents
文章编号: 1001-9081( 2019) 03-0644-07 DOI: 10. 11772 / j. issn. 1001-9081. 2018081757
SVD-CNN barrage text classification algorithm combined with improved active learning
*
QIU Ningjia , CONG Lin, ZHOU Sicheng, WANG Peng, LI Yanfang
( College of Computer Science and Technology, Changchun University of Science and Technology, Changchun Jilin 130022, China)
Abstract: For the loss of much semantic information in dimension reduction of text features when using pooling layer of
the traditional Convolutional Network ( CNN ) model, a Convolutional Neural Network model based on Singular Value
Decomposition algorithm ( SVD-CNN) was proposed. Firstly, an improved Active Learning algorithm based on Density Center
point sampling ( DC-AL) was used to tag samples contributing a lot to the classification model, obtaining a high-quality model
training set at a low tagging cost. Secondly, an SVD-CNN barrage text classification model was established by combining SVD
algorithm, and SVD was used to replace the traditional CNN model pooling layer for feature extraction and dimension
reduction, then the barrage text classification task was completed on these bases. Finally, the model parameters were
optimized by using Partial Sampling Gradient Descent algorithm ( PSGD) . In order to verify the effectiveness of the improved
algorithm, multiple barrage data sample sets were used in the comparison experiments between the proposed model and the
common text classification model. The experimental results show that the improved algorithm can better preserve semantic
features of the text, ensure the stability of training process and improve the convergence speed of the model. In summary, the
proposed algorithm has better classification performance than traditional algorithms on multiple barrage texts.
Key words: Convolutional Nerual Network ( CNN) ; Singular Value Decompostion ( SVD) ; Active Learning ( AL) ;
gradient descent; text classification
[2]
等 提 出 一 种 基 于 委 员 会 投 票 选 择 算 法 ( Query By
0 引言 Committee,QBC ) 的 支 持 向 量 机 ( Support Vector Machine,
国内外研究者使用有监督的深度学习神经网络进行文本 SVM) 主动学习算法,将改进的 QBC 与加权 SVM 有机结合并
分类,这种监督型检测方法需要大量已标记数据,人工标注大 应用于 SVM 训练学习中,有效地减少了样本分布不均衡对主
[3]
量数据耗时耗力,因而难以实施。针对已有方法存在的问题, 动学习性能的影响。姚拓中等 将 Boosting 思想应用到多视
[1]
谭侃等 提出一种基于双层采样主动学习方法,用样本不确 角主动学习框架中,通过将历史上各次查询得到的分类假设
定性、代表性和多样性来评估未标记样本的价值,使用排序和 进行加权式投票来实现每次查询后分类假设的强化,相比于
聚类相结合的双层采样算法对未标记的样本进行筛选,使用 传统单视角主动学习算法能够更快地完成收敛并达到较高的
[4]
少量有标签样本达到与有监督学习接近的检测效果。徐海龙 场景分类准确性。Li 等 提出了结合半监督的主动学习方
法,
将主动学习过程产生的价值样本用来加速分类器的训练, 高分类器和精度,降低领域专家的工作量。如何高效地选出
[5]
和伪标签一起辅助分类器进行高效的分类。Wan 等 提出 具有高分类贡献度的未标记样本进行标注并补充到已有训练
了基于主动学习的伪标签校验框架,极大地提高了半监督学 集中,逐步提高分类器精度与鲁棒性是主动学习亟待解决的
[6]
习中伪标签的置信度。Wang 等 提出了主动学习与聚类相 问题。
结合的伪标签校验的方法,进一步提高了伪标签的置信度。 主动学习根据选择未标记样本方式的不同,可以分为成
Samiappan 等[7] 提出了 Co-Training 与主动学习算法进行组合 员查询综合主动学习、基于流的主动学习和基于池的主动学
的半监督算法,缓解了 Self-Training 中容易产生的数据倾斜问 习。其中,基于委员会的主动学习是当前应用最广泛的采样
题而导致的分类器持续恶化的情况。上述主动学习采样方法 策略。根据选择未标记样例的标准不同,基于池的采样策略
普遍面临以下问题: 1) 基于概率型的采样算法不适用句子型
又可分为: 不确定性的采样策略、基于版本空间缩减的采样策
文本。2) 只考虑分类结果最明确的样本,这种样本对当前分
略、
基于模型改变期望的采样策略以及基于误差缩减的采样
类器影响较小,并不能提高模型的泛化能力。本文提出基于
策略。
密度中心点采样的主动学习算法,根据样本间的可连接性不
1. 2 卷积神经网络文本分类
断扩展聚类簇,选择每个类别中与密度中心相似度最高与最
近年来,CNN 模型在文本分类任务上取得了很好的实用
低的样本进行标注,实现采样的多样性,从而适用于大规模未
效果。CNN 模型首先根据输入文本和词向量构建输入矩阵,
标注句子级弹幕样本,使用极少量的标签样本训练初始分类
然后通过卷积和池化操作,筛选和组合词的分布式信息。其
器,
迭代选择信息量最大的未标记弹幕样本加入训练集,以此
模型结构如图 1 所示,在这样一个网络中,输入层表示的是由
提高分类器的分类性能,完成弹幕文本分类任务。
随着深度学习的发展,越来越多的深度学习模型被应用 每个词的分布式向量组成的句子矩阵; 卷积层使用若干个卷
于短文本分类任务中,魏超等
[8]
提出基于自编码网络的短文 积核对于局部的词向量矩阵进行卷积运算; 池化层使用最大
本流形表示方法实现文本特征的非线性降维,可以更好地以 池化策略把卷积的结果转换为一组特征向量; 基于前两层运
非稀疏形式更准确地描述短文本特征信息,提高分类效率。 算得到的特征向量,使用 Softmax 函数进行分类。
[9]
谢金宝等 提出一种基于语义理解的多元特征融合中文文
本分类模型,通过嵌入层的各个通路提取不同层次的文本特
征,比神经网络模型 ( Conveolutional Neural Network,CNN) 与
长短期记忆网络模型( Long Short-Term Memory,LSTM) 的文本
[10]
分类精度提升了 8% 。孙松涛等 使用 CNN 模型将句子中
的词向量合成为句子向量,并作为特征训练多标签分类器完
[11]
成分类任务,取得了较好的分类效果。Kalchbrenner 等 提
出 DCNN 模型,在不依赖句法解析树的条件下,利用动态 k-
max pooling 提取全局特征,取得了良好的分类效果。Kim[12]
采用多通道卷积神经网络模型进行有监督学习,将词矢量作
为输入特征,可以在不同大小的窗口内进行语义合成操作,完
[13]
成文本分类任务。郑啸等 结合 CNN 和 LSTM 模型的特点, 图1 CNN 模型结构
提出了卷积记忆神经网络模型 ( Convolutional Memory Neural Fig. 1 CNN model structure
Network,CMNN) ,相比传统方法,该模型避免了具体任务的特
[14]
征工程设计。Hsu 等 将 CNN 与循环神经网络 ( Recurrent 2 CNN 分类模型改进算法
Neural Network,RNN) 有机结合,从语义层面对 sentense 进行
[15]
2. 1 主动学习算法的改进
分类,取得良好的分类效果。Yin 等 提出一种基于注意力
大多数传统的主动学习算法使用基于概率的启发式方
机制的卷积神经网络,并将该网络用在句子对建模任务中,证
法,
这种方法建立在样例的后验概率分布基础之上,用信息熵
明了注意力机制和 CNN 结合的有效性。上述方法使用传统
较大的样本训练分类模型。这种基于概率的信息熵计算方法
CNN 模型对文本进行特征提取和分类,但池化操作在进行特
并不适用于句子级弹幕文本,所以本文在原有主动学习算法
征提取和降维时会损失较多的文本语义信息,从而导致分类
精度下降。本文使用奇异值分解算法代替池化层的特征提取 的思想基础上,提出一种基于密度中心点的主动学习采样算
与降维工作,将奇异值较高的特征作为主要特征来代替原有 通过比对句向量间相似度与设定最小密度阈值对样本进
法,
目标矩阵的表达,更好地保存句子原有的语义结构,提升分类 行划分,根据阈值的约束条件来选择价值高的样本标注,增强
模型的精度。 了样本选择算法的鲁棒性。
2. 1. 1 基于相似度的密度聚类算法
1 相关研究 传统的密度聚类算法是基于样本间距离的考察,本文针
1. 1 主动学习算法概述 对句向量的空间分布提出向量间的相似度阈值来刻画样本类
主动学习算法是为了解决现实中标签数据不足、标注数 型的贴近程度,设计基于相似度的密度聚类算法,设置相似度
据耗时耗力的问题而提出的。该算法能够从未标记样例中挑 与最小密度阈值,聚类核心步骤如下。
选部分价值量高的样例,标注后补充到已标记样例集中来提 1) 首先利用分词工具进行弹幕句子样本分词,将句子以
646 计算机应用 第 39 卷
槡 i =1
N (g)
i
≥ MinPts
槡 i =1
j
( 6)
14)
15)
while Q ≠ do
取出队列 Q 中的首个样本 q
∈ j
16) if N ε ( q) ≥ MinPts then
其中,g j 为核心密度点,N ∈ ( g j ) 表示以 g j 为中心点的邻域。
17) 令 Δ = N ε ( q) ∩ ζ
3) 从步骤 1) 中筛选出符合步骤 2) 中条件的点,加入到
18) 将 Δ 中的样本加入队列 Q
核心对象集合 Ω 中,如式( 7) 所示: 19) ζ = ζ -Δ
Ω = Ω ∪ { gj } ( 7) 20) end if
4) 在核心对象集合中随机选取一个点 α,找出由它密度 21) end while
可达的所有样本,生成第一个聚类簇 B1 。 22) l = l + 1,B l = ζ old - ζ / / 生成聚类簇
23) Ω = Ω - Bl
5) 将 B1 中包含的核心对象从 Ω 中去除,再从更新后的 Ω
24) end while
中随机选取一个核心对象,作为种子来生成下一个聚类簇,反
25) while B ≠ do
复迭代上述步骤,直至 Ω 为空。 26) 取出 B 中一个簇 B l
2. 1. 2 主动学习采样策略 27) gj × gi
SimG =
普通的主动学习采样策略,存在采样单一、采样偏置的问 2 2
槡 j × 槡g i
g
题。结合样本在特征空间中的分布结构,本文提出一种带约 / / 由式( 8) 计算 B l 中每个元素到密度中心
束条件的主动学习采样策略对未标记样本进行筛选,以聚类 / / o l 的相似度 SimG 并加入集合 S
簇为单位,计算聚类中心点与其他样本间的相似度,其中相似 28) MaxSim = arg max( SimG) ; MinSim = arg min( SimG)
/ / 取出集合 S 中最大元素 MaxSim 和
度最高与最低的样本最能代表整个聚类簇的分布状态,依据
/ / 最小元素 MinSim 加入待标注样本集 R
上述方法可以在样本的信息性和预测标号的准确性两者之间 29) end while
获得较好的平衡,选出最有价值的弹幕样本给专家标注。核 2. 2 SVD-CNN 模型
心步骤如下。 在自然语言领域,传统的 CNN 使用池化层对文本进行采
1) 计算属于同一个密度中心点 g j 阈值范围内的所有样 样降维工作,该操作只是简单地从前一维 FeatureMap 中提取
本 i 到密度中心的相似度 SimG,如式( 8) 所示:
g 了最大值,并不关心特征的分布状态,从而导致特征的位置信
gj × gi 息丢失,文本语义发生变化的问题。本文使用奇异值分解算
SimG = ( 8)
2 2
槡gj × 槡gi 法( Singular Value Decomposition,SVD) 代替池化层的特征提
其中,g i 为中心点 g j 阈值范围内的所有样本。 取工作,根据奇异值的大小选取矩阵的主要特征。奇异值往
2) 选 择 相 似 度 最 高 与 最 低 的 两 个 样 本: MaxSim、 往对应着矩阵中隐含的重要信息,每个目标矩阵都可以表示
MinSim,如式( 9) 、( 10) 所示: 为一系列秩为 1 的特征矩阵之和,而奇异值则表征了这些特
MaxSim = arg max( SimG) ( 9) 征矩阵对于目标矩阵的权重,因此奇异值较高的特征能够作
MinSim = arg min( SimG) ( 10) 为主要特征来代替原有目标矩阵的表达。如式( 11) 所示:
3) 将 MaxMin、MinSim 进行人工标注,加入到训练样本集 A = U1 δ 1 V1 T + U2 δ 2 V2 T + … + U n δ n V n T ( 11)
S 中。 其中: A 为目标矩阵,U n 为左奇异值矩阵,δ n 为特征矩阵,V n
T
结合上述两个算法将基于密度中心点采样的主动学习算 为右奇异值矩阵。
法( Density-Based Clustering of Active Learning,DBC-AL) 归 本文在传统 CNN 分类模型基础上设计了基于奇异值分
纳如下: 解算法的 卷 积 神 经 网 络 模 型 ( Convolutional Neural Network
算法 1 DBC-AL 算法。 based on Singular Value Decomposition,SVD-CNN) ,利用 SVD
第3 期 邱宁佳等: 结合改进主动学习的 SVD-CNN 弹幕文本分类算法 647
算法良好的数值稳定性和几何不变性完成对矩阵的主要特征 模型参数进行优化以得到全局最优解。
提取和降维,较好地保留文本语义信息的完整性,整个模型体 兼顾 随 机 梯 度 下 降 算 法 ( Stochastic Gradient Descent,
系如图 2 所示。 SGD) 的随机性,本文设计一种通过选取数据相关性较高的样
1) 输入层。 本来形成批量数据训练集的梯度下降算法 ( Partial Sampling
模型的输入为一个 n × m 的句子矩阵,矩阵的每一行代表 Gradient Descent,PSGD) ,该算法在保证训练过程稳定性的同
句子中每个词对应的向量,行数 n 代表句子的词数,列数 m 为 时,提高模型的学习速度,使模型更快速地收敛,参数更新公
向量的维数。 式如式( 17) 所示:
2) 卷积层。 θ ← θ - ε θ J( θ) ( 17)
采用列数与行数相同的卷积矩阵窗口 h ∈ R
n ×m
,
为了获取 其中: θ 为优化参数,ε 为学习率, θ J( θ) 为参数梯度。
不同类别的语义特征,采用多个不同尺寸( h) 的卷积窗口与原 考虑到随机选取训练样本的不确定性可能会导致目标函
得到卷积语义特征Fi ,
矩阵进行卷积运算, 如式( 12) 所示: 数值出现震荡的现象,本文从模型正确预测出的数据集中随
F i = relu( W·x i: i +h -1 + b) ( 12) 机抽取 10% 样本,结合所有错误预测的样本,形成新的训练
3) 奇异值分解层。 集来训练模型,具体算法描述如下:
对特征矩阵F i 进行奇异值分解运算,降维后的特征矩阵 算法 2 PSGD 梯度下降算法。
记为 A,如式( 13) 所示: 输入: 全样本训练集 U,误差函数 loss 和迭代终止阈值 p,
( )
k
δi 学习率 ε,初始参数 θ;
A = f ∑ wa Ui V T + ba ( 13)
i =0 ‖ δi ‖ i 输出: 更新后的参数 θ。
1) 初始化 SVD-CNN 模型
2) 使用全样本训练集 U 对模型进行训练
3) while loss > p do
4) 从训练集 U 中的所有 n 个样本( m 个正确样本,n - m 个错
误样本) 中,采包含 z 个正确样本{ x ( 1) ,x ( 2) ,…,x ( z) } 和
n - m 个 错 误 样 本 { x ( n -m +1) ,…,x ( n) } 的 小 批 量,其 中
z / m = 0. 1,x ( i) 对应目标为 y ( i) 。
5) 1
L( f( x ( i) ,y ( i) ) ,y ( i) )
z + n - m θ∑
J( θ) ← +
i
/ / 计算梯度估计
6) θ ← θ - εJ( θ) / / 应用更新
7) end while
图 2 SVD-CNN 模型 8) return θ
Fig. 2 SVD-CNN model
3. 2 模型描述
为了使各个特征处于同一数量级,在奇异值分解后,对各 本文使用改进的主动学习采样策略, 从未标注弹幕样本集
个特征进行归一化处理,δ i / ‖δ i ‖ 代表第 i 个特征的归一化 中根据算法 1 设定的规则挑选少量弹幕样本,交由人工标注,
T
奇异值,w a 表示权重矩阵,其中 U i V i 表示文本的第 i 个特征 使用标注好的弹幕样本训练 SVD-CNN 分类模型,为了能够较
向量,b a 表示偏置项。选择奇异值较大的特征向量组成原矩 好保存句子的语义信息,模型使用 SVD 算法代替池化层来完
阵的主要特征向量,完成降维和特征提取工作,降维后的维数 成特征提取与特征降维,将得到的主要特征进行信息融合,并
k 可以通过设置阈值 t 来界定,如式( 14) 所示: 输入到 Softmax 函数中完成分类任务。整体结构如图 3 所示。
k n
∑ δ /∑ δ
i =1
i
i =1
i ≥t ( 14)
根据阈值选择前 k 个奇异值与其对应的标准正交基,构
建原矩阵 A 的 k 秩近似矩阵 A k 如式( 15) 所示:
k
Ak = ∑U i δ i Vi
T
( 15)
i =1
T
其中: U i 为左奇异矩阵,δ i 为奇异值矩阵,V i 为右奇异矩阵。
4) 输出层。
将得到的多个 A k 矩阵融合,记为 S,如式( 16) 所示:
S = { A1k ,A2k ,…,A kλ } ( 16)
其中,λ 为语义特征 F i 的个数,使用 Softmax 函数对 S 进行分
类,最终输出弹幕样本在不同类别上的分布概率。 图 3 SVD-CNN 算法解决方案
Fig. 3 SVD-CNN model solution
3 弹幕分类解决方案的构建
在数据预处理阶段,首先对弹幕样本进行数据清洗,然后
3. 1 弹幕分类模型优化算法 利用分词工具与 Word2vec 模型将每一个词映射为一个多维
考虑到深度学习模型是较复杂的非线性结构,在这种非 的连续值词向量序列,最后利用 LSTM 模型将词向量序列结
凸问题上往往很难直接求解,所以本文采用梯度下降算法对 合文本语序信息生成语义向量。
648 计算机应用 第 39 卷
本文在实验中选择不同尺寸的卷积核对输入的句子矩阵进
行卷积操作,
结合设定的阈值选取特征,使用奇异值分解算法完
成矩阵的特征降维和特征提取,
具体参数设置如表 2 所示。
表 2 模型参数设置
Tab. 2 Model parameter settings
参数 参数描述 值 参数 参数描述 值
图5 不同数据集下各个分类模型的分类性能
h 窗口大小 3,
4,5 ε 学习率10 - 3 Fig. 5 Classification performance of each classification model under
F 特征图数 32 k 奇异值特征选取阈值 80% different datasets
P Dropout 大小 0. 5
从图 5 可以看出,SVM 模型最高取得了 78. 9% 的分类正
第3 期 邱宁佳等: 结合改进主动学习的 SVD-CNN 弹幕文本分类算法 649