基于深度神经网络的多模态信息检索
2022-01-28李光宇
李 光 宇
(天津美术学院信息化工作办公室 天津 300141)
0 引 言
随着计算机技术在各行各业蓬勃发展,越来越多的高等院校和企事业单位聚集了大量的数据信息。以上数据包含了不同类型的数据形式,如图像、中文文档、英文文档、音频数据和视频数据等[1-2],虽然数据管理人员能够对这些数据进行归纳和分类,但是其效率较低。信息查询和检索是使用最为频繁的一项数据库功能,而多模态数据检索因其特征提取难度大,成为目前信息检索领域的一个难题[3]。
多模态数据的泛化是跨模态信息检索技术的重中之重,直接决定了跨模态检索的准确率和效率。已有许多科研人员对多模态数据泛化问题进行了卓有成效的研究。黄名选等[4]针对信息检索中查询主题漂移和词不匹配问题,提出一种融合加权关联模态挖掘与规则混合扩展模型的跨语言信息检索算法。该算法通过项集权值比较从跨语言初检相关文档集挖掘含有原查询词项的频繁项集,对多语言文档检索有极好的效果。此类针对特定模态不同子模态的检索算法大多实现了较好的准确率,但其泛化学习能力也仅适用于特定的模态[5]。近期,深度学习检索框架在数据表征、数据索引及检索算法等方向上取得了一系列的成果[6],深度学习技术因其强大的学习能力和泛化能力成为了多模态信息检索领域的研究热点。文献[7]设计了基于对称深度神经网络的双向联合表示学习算法,该算法对多模态信息表现出较好的泛化能力,并且通过双向联合表示机制在不同模态之间建立了良好的相关性。文献[8]提出一种基于图正则的深度神经网络模型,在多模态图像数据上进行的实验验证了该模型具有较强的图像表示学习能力。
在利用深度学习对多模态数据表示学习的技术中,不同模态表示之间的相关性是决定性能的一个关键因素。卷积自编码器在多模态学习中具有忽略图像结构和权重贡献的特点,因此卷积自编码器保持了空间域局部化的特点,该特点有助于强化不同模态之间的相关性。本文采用深度自编码器实现多模态学习,在不同模态自编码器的隐藏层强化了特征相关性的计算。为了降低公共特征向量的维度,设计了稀疏编码技术对公共特征向量进行维度压缩,同时过滤冗余元素和噪声元素。最终将本文模型应用于多模态的图像检索问题中,获得了较好的检索性能,优于其他基于深度学习的同类技术。
1 神经网络结构设计
1.1 问题模型
1.2 卷积自编码器
卷积自编码器(Convolution Auto Encoder,CVAE)[9]是一种无监督特征学习模型,利用神经网络对数据进行无监督的预训练处理,然后使用反向传播微调网络的权重。假设输入数据为Z=(Z1,Z2,…,Zn),每个深度D的滤波map设为F=(F1,F2,…,Fm)。卷积运算产生m个激活map,m为网络深度,激活map定义为:
(1)
式中:α为非线性变量;p∈{1,2,…,m}。
图1为所设计的CVAE结构图。编码流程如下:激活map产生输入数据Z的低维编码表示,然后通过最大池化层对输入进行下采样。通过两个隐藏层分析激活map,再将特征投影到d维公共特征子空间。解码流程如下:采用去卷积对特征进行解码,将特征投影回输入空间。重建数据的表达式为:
(2)
最终,CVAE通过最小化输入数据和重建数据之间的损失完成对输入数据的重建工作。重建损失的计算式为:
(3)
式中:L(Z,Z′)为度量损失的均方误差。
(a)编码流程
图1中三个模态的输入数据传递到三个通道,经过卷积层和最大池化层获得低维的数据表示。在隐藏层最大化表示之间的相关性,隐藏层中采用Dropout机制防止过拟合。图中双向箭头表示相关性计算和跨模态重建。隐藏层的输出为一个公共表示,之后通过去卷积运算和上采样处理将公共表示投影回输入空间。
1.3 增强相关性的自编码器
传统自编码器在数据重建之前无法难以预测其他模态的相关性,因此本文设计了多通道自编码器在隐藏层强化相关性,本文设计的自编码器简记为(Correlation enhanced Auto-Encoder,CAE)。训练多通道自编码器的目标函数包括三个目标:(1)最小化自重建的误差;(2)最小化跨模态的重建误差;(3)最大化不同模态隐藏层表示间的相关性。
以两个模态的输入数据为例,输入数据设为zi={xi;yi},zi为模态xi和模态yi间的相关性。自重建损失的计算方法为:
(4)
输入xi和yi损失的计算方法分别为:
(5)
(6)
两个模态隐藏层表示间的相关性计算为:
(7)
(8)
式中:g和h为非线性激活函数,如sigmoid或ReLU;L为均方误差运算。
最大化两个模态间相关性损失的计算式为:
L6=λ·corr(h(X),h(Y))
(9)
(10)
式中:h(X)和h(Y)为公共表示的投影,其中X和Y分别为输入数据经过卷积层和池化层后的表示;λk为第k个编码的正则参数。模态h(X)和模态h(Y)间的相关性计算为:
corr(h(X),h(Y))=
(11)
采用如下的目标函数对CAE进行优化:
(12)
式中:θ为CAE的参数。
通过以上方法,最小化自重建损失和交叉重建损失,同时最大化两个模态间的相关性。
1.4 CAE的训练方法
神经网络的参数数量和输入数据的维度成正比例关系,而多模态自编码器需要重建输入数据,对高维数据的训练难度极大。因此设计了逐步重建和微调的预训练模型。使用预训练模型ResNet-50[10]提取数据集的2 048维表示特征。固定预训练的ResNet-50结构,根据式(7)和式(12)独立完成逐步的数据重建,在训练过程中不更新网络的参数。因此CAE不采用原始数据,而是通过ResNet-50获得原始数据的2 048维表示特征。式(3)的损失函数修改为:
(13)
1.5 Dropout技术
CAE使用Dropout技术来防止过拟合。训练模型时在卷积层和去卷积层随机选择k个神经元做失活处理。
1.6 联合表示的维度
公共表示的维度d是CAE的一个超参数。d值决定了模态相关性和重建准确性:d值越大,模态间的相关性越大,模型参数也增多,因此需要对d值进行优化处理。本文通过稀疏编码压缩公共表示的维度,并且最大化重建的准确性。
2 稀疏编码和分类器设计
2.1 稀疏编码模型
在稀疏编码的数学模型中,假设字典D为m×n的矩阵,通过稀疏模型将信号y∈Rm×1表示为一个字典元素的稀疏线性组合D=[d1,d2,…,dn]∈Rm×n。设L表示稀疏约束,稀疏编码的目标为如下的优化问题:
(14)
(15)
(16)
式中:n为x的维度;ω为正则系数。
2.2 稀疏编码分类器
稀疏编码的时间复杂度和字典大小成比例关系[11],因此通过减小字典大小来减少时间成本。本文设计了字典压缩方法,在保留关键特征的前提下,缩小字典大小,该过程可自动地过滤孤立点和噪声特征。
算法1SCC算法
输入:每个类的字典D1,D2,…,Dc;k值支持度大小L;测试样本y。
输出:y的类标签。
1.初始化w1=d1和字典W=[w1];
2.m=1,w1→count=1;
3.fori=2tonido
4.k=argmaxj{sim(di,wj)};
if(sim(di,wk) m++; wm=di; wm→count=1; else wk=((wk×wk→count)+di)/(wk→count+1); wk→count++; endif endfor fori=1toc endfor 在以下两个公开的模态识别数据集上验证本文跨模态信息检索和挖掘的效果。(1)MNIST手写数字数据集[12],它是一个常用的模态识别数据集。许多跨模态的研究人员均基于该数据集给出了跨模态的实验结果,因此采用该数据集验证本文算法的基本性能。(2)BioID数据集[13],它是一个跨模态人脸检索的数据集,该数据集共有1 521幅大小为384×286像素的灰度人脸图像,包含23个被拍摄人员。将其中1 064幅图像作为训练集,剩下的457幅图像作为测试集。该数据集的每幅图像包含一幅原图像和一幅失真图像,将原图像和失真图像输入本文的神经网络进行跨模态学习,采用学习的模型对测试图像进行检索。图2是BioID数据集的两个实例。 图2 BioID数据集的实例 MNIST数据集深度神经网络的编码部分包含1个卷积层、1个最大池化层和2个隐藏层,卷积层节点数量为40;其解码部分包含1个隐藏层和1个Dropout为50%的去卷积层。 BioID数据集的深度神经网络编码部分包含1个卷积层、1个最大池化层和5个隐藏层,BioID数据集的卷积层节点数量为120;其解码部分包含2个隐藏层和1个Dropout为50%的去卷积层。 本文算法将多个自编码器组合实现了跨模态的特征学习能力,并且利用稀疏编码减少公共表示的维度,因此选择了基于自编码器的算法做比较,包括基于对称自编码器的多模态深度学习技术BJRL[7]、基于图正则自编码器的多模态深度图像表示技术CVPR[8]、基于卷积自编码器的多模态深度学习技术MLSA[14];另外还选择了基于其他技术的先进算法做比较,包括基于多重词嵌入学习技术MCSSC[15]、基于跨权重的多模态深度学习技术MDL-CW[16]、基于注意机制神经网络的深度学习技术VAGNM[17]。 跨模态学习的首要目标是学习不同模态数据之间高度相关的共同表示。通常采用总相关性Corr评估跨模态学习的质量,Corr的计算方法: Corr(h(X),h(Y))= (17) 首先验证了本文算法中稀疏编码的有效性,分别评估了不同维度的公共表示向量间的总相似性,结果如图3所示。其中CAESE和CAE分别表示包含稀疏编码和包含稀疏编码的两个模型。可看出CAE的总相似性随着向量维度的升高而持续提高,CAESE则在35维时达到了50%的总体相似性,随着向量维度的进一步增加,其总体相似性保持稳定。CAESE算法能够在较低的维度达到较高的总体相似性,在计算复杂度和相关性之间实现了较好的平衡。 图3 表示向量间的总相似性 图4比较了不同多模态表示学习模型时间的最大总相关性,图中CAE为向量维度为50的模型,CAESE为向量维度为30的模型。可以看出基于自编码器的多模态学习技术能够获得较好的相关性结果,但自编码器之间的连接权重相对独立,因此相关性结果低于本文的CAESE和CAE两个模型。VAGNM为深度神经网络加入了注意机制,允许解码器在序列中的多个向量中关注所需要的信息,该过程使用了编码器的多步输出,而非单一定长的向量,因此保留了更多的信息。VAGNM也因此实现了较为理想的多模态表示学习能力。 图4 多模态表示学习的最大总相关性 将本文的CAE模型运用于BioID数据集的多模态图像检索实验,通过人脸的一个模态检索同一个人脸的其他模态。检索结果获得一个排列的候选集,采用平均精度均值(MAP)和平均排序倒数(MRR)评价检索结果的优劣,MAP的计算式为: (18) 式中:N为测试集的图像总数量;Ir为检索的图像;AP为平均精度。 MRR的计算式为: (19) 式中:N为测试集的图像总数量;Ir为检索的图像,r为列表中第一个相关图像的排名。排序倒数RR的计算式为: (20) 图5为不同多模态表示学习算法的图像识别结果,图5(a)和图5(b)中CAESE的MRR值和MAP值均高于CAE算法,佐证了稀疏编码的有效性。VAGNM的MRR结果高于CAE算法,但MAP结果低于CAE算法,说明本文CAE算法所检索的候选图像集具有较高的命中率,但是排名顺序有所偏差。图6为检索实验的图像实例,本文算法成功检索出和输入图像同一个人的三个失真右侧人脸图像。 (a)MRR结果 (a)查询图像 本文采用深度自编码器实现多模态学习,在不同模态自编码器的隐藏层强化了特征相关性的计算。为了降低公共特征向量的维度,设计了稀疏编码技术对公共特征向量进行维度压缩,同时过滤冗余元素和噪声元素。基于公开模态识别数据集的实验结果表明,本文算法能够有效地学习和泛化多模态数据,最终将本模型应用于多模态的图像检索问题中,获得了较好的检索性能,且优于其他基于深度学习的同类技术。 本文实验的硬件环境为Intel i5 9600KF处理器,主频为3.7 GHz,对BioID数据集的训练时间约为2.3小时,可见本文模型的训练时间较长。未来将研究应用分布式计算实现本文的多模态学习模型,从而提高神经网络的训练速度。3 实 验
3.1 实验方法和实验数据集
3.2 参数设置和对比方法
3.3 跨模态学习的性能实验
3.4 跨模态图像检索实验
4 结 语