论文《Composing Text and Image for Image Retrieval - An Empirical Odyssey》的理解与复现(一)
去年只是精读了这篇论文,但还是有点浮在上面的感觉,所以从上个月(2022年7月)开始对此论文进行复现工作,因为个人喜欢彻底搞懂新东西,不是泛泛的运行出来结果就了事,基本花了一个多月的时间基本全部搞懂了此论文包括代码逻辑分析和复现。
这篇论文是在2018年发表的,因为作者中有飞飞女神,所以就比较关注了。这篇论文在多模态方面的最新研究也是老的了,现在都是基于transformer。论文中主要使用了two streams方法查询图像经过ResNet18模型后得到长度为512的图像特征,文本经过LSTM模型后得到长度也为512的文本特征,接着对两种特征进行融合,最后经过三元组损失函数进行损失计算。
这篇论文的创新的一面是在特征融合中为了更好的图像+文本的多模态检索性能,在两种特征融合过程中,一方面将网络层加深,另一方面使用残差结构,随着网络层加深的同时有可能学习效果并非好(梯度消失和梯度爆炸问题)加了残差后保证了学习的效果至少不比原来差。这种残差模型论文中定义为Text Image Residual Gating(TIRG)。
图像特征和文本特征在什么地方进行融合,残差结构如何,论文中有不同的尝试:
TIRG-Last Conv结构如下图:
>> Query Images、Texts分别经过ResNet18、LSTM网络之后,进行按列concat操作;
>> 之后再次用包含两个卷积的mod块的浅层网络进行融合特征学习;
>> 接下来是一个残差块,gate块的结构与 mod块相同,包含两个卷积,再次学习融合特征,为了保证学习效果至少不比mod块差,将mod出来的融合特征t作为identity,建立一个residual connection。可以看到gate块出来融合特征g并不是简单的相加。而是有两个可学习的系数、(论文中为),使得学习效果更好;
>>有一点注意的是这个结构中没有经过ResNet18的最后两步:Average Pooling和Full Connection,x的大小为[32, 512, 7, 7],经过融合mod块和残差块学习后再完成verage Pooling和Full Connection。所以这个结构叫TIRG Over the Last Conv.
TIRG结构如下图:
>> Query Images、Texts分别经过ResNet18、LSTM后,再分别经过并行的gate块和Residual块进行特征融合,而TIRG-Last Conv只有一路;
>> 然后将gate块和residual块出来的融合特征进行相加,论文中说这也是残差结构,与我们平时理解的确实有点不同哦,姑且认为右边是含两个FC层的深度网络块作为identity,因为左边的gate块如果不起作用相当与加法式子的左一项为0,右边确实是identity了。这个结构中的gate块、residual块可以看作是一个两层的MLP。TIRG-Last Conv结构中的gate块和TIRG中的gate块的意思,个人猜想如果经过gate块学习更好,算是gate门控开了,否则算是gate门控学的不好,门关闭了;
>>与TIRG-Last Conv结构一样,有两个可学习的系数、,使得学习效果更好;
>> 可以看到此结构中第一个FC是1024的,这样让网络学得更多的特征;
论文《Composing Text and Image for Image Retrieval - An Empirical Odyssey》下载地址:https://arxiv.org/pdf/1812.07119