王兆平,陈炳坤
1)长沙民政职业技术学院,湖南长沙 410004;2)深圳大学计算机与软件学院,广东深圳 518060
随着社会化媒体的出现和移动设备的广泛使用,人们倾向于把图像上传到在线社交网络中,如Flickr在线图片分享网站(http://www.flickr.com/)和QQ空间等.这些图像通常携带着不同种类的社交网络信息,例如标签、用户、图片组、位置和评论等.这些社交网络信息包含了丰富的图像语义信息,在图像分析的过程中引入社交网络信息具有重要的意义,可以在一定程度上提升图像分类算法的性能[1-2].
目前,很多图像的应用都在图像分析过程中引入社交网络信息,如图像检索[3-4]、图像标注[5]和图像分类[1-2]等.GONG等[5]利用核典型相关分析(kernel canonical correlation analysis, KCCA)算法[6],把图像的视觉特征和标签信息投影到一个共同的空间,提升图像检索算法的性能.MCAULEY等[2]首次使用社交网络信息进行多类别图像分类,在设计分类器的过程中仅使用了社交网络信息.JOHNSON等[1]利用社交网络信息找出每一幅图像的邻居,使用深度神经网络混合图像和其邻居的视觉特征,从而提升多类别图像分类算法的性能.网络表征学习的目的是训练得到网络中每个节点的表征向量,这些表征向量可以较好地保存网络的拓扑结构.基于矩阵分解的方法,包括多维标度分析(multidimensional scaling, MDS)[7]、等度量映射(isometric mapping, Isomap)[8]、局部保持投影(locality preserving projections, LPP)[9]和GraRep[10]等.WANG等[11]提出基于自编码器的网络表征学习算法(structural deep network embedding, SDNE) .PEROZZI等[12]基于Word2vec模型[13]提出了DeepWalk算法,该算法在网络中进行随机漫步,采样得到多个随机路径,并使用Skip-Gram神经网络模型[14]学习节点的表示向量.GROVER等[15]使用深度优先搜索和广度优先搜索,提出node2vec模型作为DeepWalk的扩展.TANG等[16]提出LINE(large-scale information network embedding)算法,通过LINE训练得到的表征向量,可以保留网络的一阶近似性和二阶近似性[17].
然而,现有的基于社交网络信息的图像分类算法,通常是把图像的社交网络信息表示成一个集合,无法充分挖掘图像在社交网络信息中的联系,也无法有效利用多种不同的信息.为此,本研究提出一种基于社交网络元数据的图像分类(multiple social metadata image classification networks, 简称MSNet)算法.首先,根据图像的社交网络信息构造出图像的多个关系网络;然后,使用网络表征学习算法LINE学习出图像在关系网络中的表征向量;最后,使用图像的视觉特征和关系网络表征训练神经网络分类器进行分类.MSNet算法与传统的方法不同,通过构造出图像在社交网络信息上的关系网络,能够更好地捕捉图像之间的关系,也可以有效地利用多种不同类型的社交网络信息.
本研究提出的MSNet算法可结合图像的社交网络信息进行图像分类.图1是MSNet的结构图,其左边是数据集,该数据集除了图像,还包括大量的社交网络元数据,如Tags、Owner_id和Location等.MSNet算法分3个步骤:① 通过数据集构造出图像的m种关系网络,如Tags关系网络和Owner关系网络等;② 表征学习,MSNet使用卷积神经网络CNN[18-19]学习图像本身的视觉特征I, 利用LINE算法学习图像在m个关系网络中的表征向量Φ1,Φ2, …,Φm; ③ 利用图像的视觉特征I和网络表征
图1 MSNet结构示意图Fig.1 (Color online) Structural representation of MSNet
向量Φ1,Φ2, …,Φm训练神经网络模型,最终对图像进行分类.MSNet算法流程图见图2.
图2 MSNet程序流程图Fig.2 Program flow chart of MSNet
定义1图像关系网络.给定一个图像集合V和一种社交网络关系,把关系网络定义为一个无向图G=(V,E). 其中,V={v1,v2,…,vn},n为节点数,每个节点均是一幅图像.设E是图像社交网络关系的集合,若e=(i,j)∈E, 其中,i,j∈V, 则说明图像i,j之间在当前关系网络中具有联系.图像之间的联系强度用邻接矩阵An×n表示,则e=(i,j)的强度为aij.
每一种社交网络元数据都有一个字典T, 包含了这种元数据所有可能的取值.每一幅图像x∈V均携带了其中一部分的信息t(x), 即t(x)∈T. 对于标签来说,T包含了所有出现过的标签,而t(x)包含了图像x所拥有的标签.本研究根据图像的信息t(x)构造出关系网络(关系网络的构造方法示意图请扫描论文末页右下角二维码查看).关系网络的连接强度矩阵An×n中的元素为
(1)
使用上述方法可构造出多种关系网络.若图像包含m种元数据,则可构造出m个不同的关系网络{G1,G2, …,Gm}.
生成关系网络后,MSNet算法需要学习图像在这些关系网络中的表征向量.本研究采用TANG等[16]提出的网络表征学习算法LINE.若给定一个关系网络G=(V,E), 可以使用LINE算法学习出网络中所有节点的表征向量Φ={φ(v)∈Rd|v∈V}. 其中,φ(v)是节点v的表征向量;d是向量的维度.
给定一个要学习的网络G=(V,E), LINE算法直接使用网络中的每一条边{e=(i,j)|e∈E}作为训练样本.每一个网络对应一个连接强度矩阵An×n, 若给定一条边e=(i,j), 其对应的权重表示为aij, 则LINE定义边(i,j)出现的经验概率为
(2)
(3)
(4)
其中, KL(p,q)=plg(p/q).
直接优化LINE目标函数的计算量过大,因为p(j|i)的计算需要用到整个网络中所有节点的上下文表征向量.因此,使用负采样算法[14]表示的lg(p(j/i))为
lgσ(φ(vi)φ′(vj))+
(5)
在得到图像在关系网络中的表征向量后,MSNet算法还需获取图像的视觉特征.本研究利用一个卷积神经网络对图像进行特征的抽取,得到视觉特征矩阵I∈Rn×d′. 其中,d′是视觉特征的维度.
MSNet算法采用一个单隐藏层的全连接神经网络(fully convolutional networks,FCN)作为分类器.首先把图像的视觉特征矩阵I与图像在网络中的表征Φ1,Φ2, …,Φm直接拼接在一起, 形成图像最终的特征F=[I,Φ1,Φ2, …,Φm]. 隐藏层的激活函数采用线性整流函数ReLU,输出层的激活函数采用Sigmoid函数.
从在线图像分享网站Flickr中采集PASCAL[20]、MIR[21]、CLEF[22]和NUS[23]这4个标准的图像分类数据集中每一幅图像所包含的社交网络元数据,使用其中的标签、用户、图片组、位置和评论者5种社交网络元数据进行实验.表1显示了这4个数据集中各种社交网络元数据的量.
表1 四个图像数据集的各项属性Table 1 Characteristics of 4 image data sets
实验中的4个数据集均是多类标分类数据集,即一个图像可能包含多种类标.本研究采样以下评价8个指标:① preI为在图像上的整体查准率;② preL为分别计算每一个类标上的查准率,然后取平均值;③ recI为在图像上的整体召回率;④ recL为分别计算每一个类标上的召回率后取平均值;⑤ F1sI为在图像上的整体F1值;⑥ F1sL为分别计算每一个类标上的F1值后取所有类标的平均值;⑦ mAPI为均值平均精度(mean average precision),可测量模型生成的排名的质量,即在所有图像上mAP值的均值;⑧ mAPL为所有类标上mAP值的均值.
为验证MSNet算法的性能,本研究采用6种算法进行对比.
2.3.1 只使用视觉特征的全连接神经网络(visual only FCN,VisFCN)算法
该算法利用MSNet算法中提取的视觉特征I作为图像的特征,然后传入与MSNet算法一样的神经网络中进行训练.VisFCN算法与MSNet算法的区别仅仅在于前者未使用图像的网络表征.
2.3.2 最近邻投票(kNN-voting)算法
2.3.3 CNN-neighbor-tags算法[1]
这是一种利用社交网络信息进行图像分类的算法.给定一个测试集图像,先利用社交网络元数据找出该图像的邻居,再使用图像和其相邻的视觉特征训练神经网络模型进行图像的分类.该算法在查找图像近邻时只利用了图像的标签信息.
2.3.4 CNN-neighbor-all算法[1]
与上一种采用相同模型,但CNN-neighbor-all算法在查找图像近邻时利用了所有社交网络的信息.
2.3.5 核典型关联分析与神经网络结合(kernel canonical correlation analysis-fully connective networks, KCCA-FCN)算法
采用文献[25]算法,先生成图像的标签特征,再使用KCCA算法将图像特征与标签特征投影到共同的空间中.本研究保存投影后的视觉特征,并利用全连接神经网络进行分类.
2.3.6 核典型关联分析与k近邻结合(KCCA-kNN)
与上一个方法采用一样的特征学习过程,但是使用kNN算法进行图像分类.
特征学习.对于PASCAL、MIR、CLEF和NUS这4个数据集,本研究采用CNN模型提取出1 024维的视觉特征I. 在使用LINE算法学习网络表征的过程中,对于PASCAL、MIR和CLEF数据集,LINE算法学习的表征维度设为50;对于NUS数据集,LINE算法学习的表征维度设为100.
神经网络分类器.实验中的神经网络采用L2正则化,系数为5×10-4;隐藏层维度为1 000;模型采用glorot uniform算法初始化;模型优化采用adadelta算法;训练迭代次数设为10.
使用MSNet和6种对比算法分别在PASCAL、MIR、CLEF和NUS这4个数据集上进行图像分类实验,对比其性能.每个数据集划分为80%的训练集与20%的测试集,并随机进行10次划分,再记录各种算法在各项分类指标上的均值.实验结果如表2.
表2 四个数据集的实验结果*Table 2 Experimental results on four data sets %
*加粗数据为7种算法在不同数据集中的最佳指标值.
从PASCAL数据集实验结果可见,MSNet算法在F1sL、mAPL和mAPI这3项评价指标中的表现都是最好的.MSNet和VisFCN算法采用相同的模型与视觉特征,但前者在分类时利用了图像在社交网络中的表征向量.MSNet算法在preL、recL、recI、F1sL、F1sI、mAPL和mAPI指标上的得分均高于VisFCN算法.CNN-neighbor算法与MSNet算法均利用了社交网络信息.对比MSNet算法与CNN-neighbor算法,发现前者的分类性能更佳,在recL、recI、F1sL、mAPL和mAPI这5项指标上都比CNN-neighbor-tags好.这说明与CNN-neighbor算法相比,MSNet算法能更有效地利用图像所携带的社交网络信息来进行图像分类.
在CLEF数据集上,MSNet算法性能表现最佳,在除了preL和preI外的其他评价指标上的得分都是最高的.比较MSNet与VisFCN算法的各项性能指标,发现MSNet算法的F1sL提升了2.42%,mAPL提升了1.96%,F1sI提升了0.97%,mAPI提升了0.97%.使用MSNet算法后,在F1sL和mAPL上的提升比在F1sI和mAPI上的提升相对要大一点.mAPL、F1sL指标与mAPI、F1sI指标的区别在于,mAPL、F1sL指标的得分受包含样本数量较少的类别影响更大,说明MSNet算法能够更好地照顾到一些包含样本数量较少的类别.从PASCAL数据集的实验结果中也可发现此规律.MSNet算法能够更好地照顾少样本类别,与其在分类时利用社交网络信息是密不可分的.若某个类别包含的样本过少,会使分类器无法获得足够的信息去辅助分类,导致出现歧义.MSNet算法在分类时引入了社交网络信息,使分类器可根据图像在社交网络中的表征消除一部分的歧义,从而提升了少样本类别的分类效果.该现象在CLEF数据集上表现更加明显,主因是CLEF数据集中包含的类别比PASCAL数据集多,且少样本的类别相对也比较多.
在MIR数据集上的实验结果标明,MSNet算法在preL、F1sL和mAPL等几项指标上均表现最好,且在F1sI和mAPI上的取值与最好的相差不大,说明MSNet算法在MIR数据集上整体的性能相对较好.在MIR数据集上,CNN-neighbor和MSNet算法的mAPI值几乎一样,均比VisFCN算法稍微低一点.然而,在F1sL指标上,MSNet算法要优于其他算法,比VisFCN算法提升了1.19%,比CNN-neighbor-tags算法提升了4.21%.在mAPL指标上,MSNet算法同样优于其他算法,比VisFCN提升了1.66%,比CNN-neighbor-tags算法相比提升了2.27%.
NUS是4个数据集中最大的,包含20万个图像,分为81个不同的类别.MSNet算法在NUS数据集的8项指标上的效果均是最好的.与之前的结果相似,MSNet算法在F1sL与mAPL指标上分别提升了4.43%和4.05%,而在F1sI和mAPI指标上分别提升0.92%和1.00%,说明MSNet算法可有效提高图像分类的整体性能,且能更好地支持少样本的类别.在NUS数据集上,CNN-neighbor算法同样可提高图像分类性能,但比MSNet算法略差.
本研究提出的MSNet算法,首先根据图像的社交网络元数据构造出图像的关系网络;然后,使用网络表征学习算法学习出图像在关系网络中的表征;最后,使用图像的网络表征与视觉特征来训练分类器.在4个包含社交网络元数据的图像数据集上进行了对比实验,证明了MSNet能够有效利用社交网络数据提升图像分类的性能.在利用视觉特征和网络表征训练神经网络分类器时,笔者同样尝试采用卷积层进行特征的抽取,但效果并不理想,MSNet算法中直接采用简单的全连接网络效果更好.