【论文阅读】Iterative Matching with Recurrent Attention Memory for Cross-Modal Image-Text Retrieval
Iterative Matching with Recurrent Attention Memory for Cross-Modal Image-Text Retrieval
- 介绍
- 模型
- 跨膜态特征表示
- RAM:重复记忆模块
- CAU:跨膜态注意单元
- MDU:记忆提取单元
- RAM Block
- 图文匹配中应用RAM
- 损失函数
- 实验结果
论文引用:Chen, Hui, et al. “Imram: Iterative matching with recurrent attention memory for cross-modal image-text retrieval.” Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2020.
时间:2020(CVPR)
论文链接:https://openaccess.thecvf.com/content_CVPR_2020/html/Chen_IMRAM_Iterative_Matching_With_Recurrent_Attention_Memory_for_Cross-Modal_Image-Text_CVPR_2020_paper.html
代码链接:https://github.com/HuiChen24/IMRAM
介绍
作者考虑到文本是由不同含义的不同种类的语义概念构成的,比如有对象、属性和关系等,而不同概念之间通常又存在着很强的相关性,比如说动词会经常性地用来表示不同对象之间的关系等等。并且,人们经常遵循一种潜在结构(如树状结构等)将不同的语义概念组合成可理解的语言。但这些是以往模型都没有考虑到的点,它们会平等地对待不同种类的语义,那么作者在这里就考虑到了不同语义之间的复杂性,并对此进行研究。
人在进行图文匹配的时候,会优先看低级语义概念,再看高级语义概念。受此启发,作者提出一种迭代匹配与重复注意记忆方法,使用多步对齐来捕获图像和文本之间的对应关系。也就是结合跨膜态注意单元和记忆提取单元来细化图像和文本之间的对应关系。
模型
整体结构如下图所示:
总的分为以下几步:
- 描述学习跨模态特征表示方法
- 使用重复注意记忆模块
- 形成最终的损失函数
跨膜态特征表示
这边的话对于图像和文本与此前的论文一致,图像Faster-RCNN,文本双向GRU
RAM:重复记忆模块
这个模块以循环的方式提炼关于先前片段对齐的知识来达到对齐嵌入空间的片段的目的。也就是说对于给定的两组特征点V和T,使用RAM来计算它们之间的相似度,他又分成CAU、MDU和RAM Block这样三个子块
CAU:跨膜态注意单元
现在给定两组特征点X={x1,...,xm′}X=\{x_{1},...,x_{m^{'}}\}X={x1,...,xm′}和Y={y1,...,yn′}Y=\{y_{1},...,y_{n^{'}}\}Y={y1,...,yn′}
CAU用于为X中的每一个xix_{i}xi特征总结Y中的上下文信息,具体来说,分为以下几点:
- 首先计算每队(xi,yj)(x_{i},y_{j})(xi,yj)之间的相似度并归一化,(这里与SCAN一致):zij=xiTyj∥xi∥∥yj∥z_{ij}=\frac{x_{i}^{T}y_{j}}{\left \| x_{i}\right \|\left \| y_{j}\right \|}zij=∥xi∥∥yj∥xiTyj,zijˉ=relu(zij)∑i=1m′relu(zij)2\bar{z_{ij}}=\frac{relu(z_{ij})}{\sqrt{\sum_{i=1}^{m^{'}}relu(z_{ij})^{2}}}zijˉ=∑i=1m′relu(zij)2relu(zij)
- 对于给定的特征集X,得到Y的注意力为:cix=∑j=1n′αijyj,αij=exp(λzijˉ)∑j=1n′exp(λzijˉ)c_{i}^{x}=\sum_{j=1}^{n'}\alpha _{ij}y_{j},\alpha _{ij}=\frac{exp(\lambda \bar{z_{ij}})}{\sum_{j=1}^{n'}exp(\lambda \bar{z_{ij}})}cix=∑j=1n′αijyj,αij=∑j=1n′exp(λzijˉ)exp(λzijˉ)
- 最终得到Cx={c1x,...,cm′x}C^{x}=\{c_{1}^{x},...,c_{m'}^{x}\}Cx={c1x,...,cm′x}
MDU:记忆提取单元
该单元通过动态聚合查询特征X与基于X的对准特征CxC^{x}Cx来更新查询特征X,公式为:xi∗=f(xi,cix)x_{i}^{*}=f(x_{i},c_{i}^{x})xi∗=f(xi,cix),其中f()f()f()为聚合函数,可以用加法、MLP、Attention等,在这里它的计算方法为:
gi=gate(Wg[xi,cix]+bg)g_{i}=gate(W_{g}[x_{i},c_{i}^{x}]+b_{g})gi=gate(Wg[xi,cix]+bg)
oi=tanh(Wo[xi,cix]+bo)o_{i}=tanh(W_{o}[x_{i},c_{i}^{x}]+b_{o})oi=tanh(Wo[xi,cix]+bo)
xi∗=gi∗xi+(1−gi)∗oix_{i}^{*}=g_{i}*x_{i}+(1-g_{i})*o_{i}xi∗=gi∗xi+(1−gi)∗oi
在这里面,gig_{i}gi门用于选择最为显著的信息,oio_{i}oi用于融合并增强xix_{i}xi和cixc_{i}^{x}cix的交互作用。有了门机制,输入查询的信息可以被细化,gig_{i}gi可以帮助过滤掉查询中的琐碎信息,更有利于增强跨模态特征之间的交互。
RAM Block
CAU+MDU构成了RAM模块,写成如下形式:
Cx,X∗=RAM(X,Y)C^{x},X^{*}=RAM(X,Y)Cx,X∗=RAM(X,Y)
图文匹配中应用RAM
对于给定的图像和文本,他们得到的特征分别为V和T,根据RAM公式,得到:
Ckv,Vk=RAM(Vk−1,T)C_{k}^{v},V^{k}=RAM(V_{k-1},T)Ckv,Vk=RAM(Vk−1,T),Ckt,Tk=RAM(Tk−1,V)C_{k}^{t},T^{k}=RAM(T_{k-1},V)Ckt,Tk=RAM(Tk−1,V)
这里k指的是迭代的次数
每一次迭代,计算匹配得分:Fk(I,S)=1m∑i=1mFk(ri,S)+1n∑j=1nFk(I,wj)F_{k}(I,S)=\frac{1}{m}\sum_{i=1}^{m}F_{k}(r_{i},S)+\frac{1}{n}\sum_{j=1}^{n}F_{k}(I,w_{j})Fk(I,S)=m1∑i=1mFk(ri,S)+n1∑j=1nFk(I,wj)
其中,Fk(ri,S)=sim(vi,ckiv)F_{k}(r_{i},S)=sim(v_{i},c_{ki}^{v})Fk(ri,S)=sim(vi,ckiv),Fk(I,wj)=sim(ckjt,tj)F_{k}(I,w_{j})=sim(c_{kj}^{t},t_{j})Fk(I,wj)=sim(ckjt,tj)
其中sim表示余弦距离计算
那么,最后,K次匹配后,最终得分为:F(I,S)=∑k=1KFk(I,S)F(I,S)=\sum_{k=1}^{K}F_{k}(I,S)F(I,S)=∑k=1KFk(I,S)
作者在这里用迭代的方式,其实也就是一个从低级语义到高级语义的过程。
损失函数
L=∑b=1B[△−F(Ib,Sb)+F(Ib,Sb∗)]++∑b=1B[△−F(Ib,Sb)+F(Ib∗,Sb)]+L =\sum_{b=1}^{B}[\triangle -F(I_{b},S_{b})+F(I_{b},S_{b}^{*})]_{+}+\sum_{b=1}^{B}[\triangle -F(I_{b},S_{b})+F(I_{b}^{*},S_{b})]_{+}L=∑b=1B[△−F(Ib,Sb)+F(Ib,Sb∗)]++∑b=1B[△−F(Ib,Sb)+F(Ib∗,Sb)]+
实验结果
作者在这里有给出迭代次数的消融实验和可视化结果:
可视化结果:
可以看到的是,随着迭代次数的增大,模型更能对齐到细粒度的物体,尤其是面对非对象语义时(如laid、beautiful、petting等)
【论文阅读】Iterative Matching with Recurrent Attention Memory for Cross-Modal Image-Text Retrieval相关推荐
- 【论文阅读】Hierarchical Multi-modal Contextual Attention Network for Fake News Detection --- 虚假新闻检测,多模态
本博客系本人阅读该论文后根据自己理解所写,非逐句翻译,欲深入了解该论文,请参阅原文. 论文标题:Hierarchical Multi-modal Contextual Attention Networ ...
- 论文阅读笔记(11)--- Attention is all you need(Transformer)逐段精读
根据李沐读论文学习一下这篇论文. Transformer Introduction Background Model Architecture Encoder and Decoder Stacks A ...
- 【论文阅读】MFAN: Multi-modal Feature-enhanced Attention Networks for Rumor Detection --- 多模态,谣言检测,注意力机制
本博客系博主根据个人理解所写,非逐字逐句翻译,预知详情,请参阅论文原文. 论文标题:MFAN: Multi-modal Feature-enhanced Attention Networks for ...
- 论文阅读 2021 —— DRO: Deep Recurrent Optimizer for Structure-from-Motion
阅读一个关于预测深度图和相机姿态的一篇论文<DRO: Deep Recurrent Optimizer for Structure-from-Motion>用于SFM的深度循环优化器. 通 ...
- 论文阅读:FFA-Net: Feature Fusion Attention Network for Single Image Dehazing
代码:https://github.com/zhilin007/FFA-Net 目录 1. 摘要 2. 网络结构 2.1 Feature Attention(FA) Channel Attention ...
- 论文阅读:Stroke Based Posterior Attention for Online Handwritten Mathematical Expression Recognition
一.问题 OHMER旨在将人类手写轨迹点的坐标转换为计算机可以处理的格式化文件,如LaTeX字符串和inkml.与在线手写文本识别问题相比,OHMER面临着两个独特的挑战:复杂的二维空间结构和较小的开 ...
- 【论文阅读-句向量】Whitening Sentence Representations for Better Semantics and Faster Retrieval
这是苏神的论文,从BERT-flow到BERT-whitening,越来越接近文本的本质,处理方法也越来越简单了.其实昨天已经看完这个论文了,但是在看苏神的博客时发现这篇论文竟然还有一点小插曲:一篇使 ...
- 【论文阅读 WSDM‘21】PROP: Pre-training with Representative Words Prediction for Ad-hoc Retrieval
文章目录 前言 Abs 1.Intro 2.Background 3.PROP 3.1.Pre-training Methods 3.2.Discussion 4.Experiments 4.1.Da ...
- 【论文阅读】AI20 A Dirichlet process biterm-based mixture model for short text stream clustering
AI20 A Dirichlet process biterm-based mixture model for short text stream clustering_note 源代码 The so ...
最新文章
- 实战:基于tensorflow 的中文语音识别模型 | CSDN博文精选
- Bhaskar Chowdhury: Kernel build failed ...SPHINX extension error
- 通过重建Hosting系统理解HTTP请求在ASP.NET Core管道中的处理流程[上]:采用管道处理请求...
- linux sed命令的常用方法
- dorado-SplitSpanel控件
- 吴恩达深度学习 —— 2.4 梯度下降
- java取set中的元素个数_java中的Set的使用以及各种遍历方法(较为全面)
- 土地覆盖和土地利用的区别
- 拓端tecdat|R语言基于Garch波动率预测的区制转移交易策略
- CAD中如何使用Lisp程序编写坐标标注功能
- Pytorch总结十五之优化算法:AdaGrad、RMSProp、AdaDelta、Adam算法详解
- 中国省份地级市政区图大全
- 微软已修复Windows10蓝屏死亡(BSOD)错误
- 远程桌面连接方式造成键盘鼠标失效(UI自动化)
- 【实操】下载在线m3u8视频为本地mp4
- 清华大学镜像站miniconda下载地址
- 单目图像3D物体的姿态检测
- prototype鼠标指针_html5鼠标点击页面光标圆点动画特效
- error:command ‘gcc‘ failed with exit status 1 记录
- html+css主页页眉实现
热门文章
- 十个方面学习Java8
- PyCharm官网无法访问的解决办法
- 拯救者r720黑苹果_拯救级手游语音,大象声科助力联想拯救者电竞手机
- 前端小白学习路线及知识点汇总(三)-- JavaScript基础
- 什么是函数?怎么了解函数?为什么需要函数呢?我来给你解答(上)
- 记一次@Lazy问题
- rod 基于CDP协议的web自动化工具(爬虫)
- windows10 mysql-8.0.20 重新初始化
- python移动文件的函数_移动并重命名2000个文件,用Python,只需3秒
- ECLIPSE android 布局页面文件出错故障排除Exception raised during rendering: java.lang.System.arraycopy([CI[CII)V