Multimodal Transformer with Multi-View Visual Representation for Image Captioning

Introduction

之前方法的主要问题:

  • 注意力机制只关注模态间的相互影响(object to word)
  • 目前的模型都太小可能无法完全理解 visual object 之间的复杂关系
  • region-based visual features 可能无法涵盖图中所有的 object,不足的视觉表达导致无法产生精准的 caption

针对前两点:

  • 使用MT(Multimodal Transformer)model for image captioning,与CNN-RNN

captioning 模型不同,MT不使用RNN,完全依赖注意力机制,使用深度 encoder-decoder来同时获得每个模态的 self-attention 和跨模态的 co-attention

针对最后一点:

  • 使用 multi-view feature learning 以适应对齐和非对齐的 multi-view visual features

Multimodal Transformer

The Transformer Model

Transformer的核心构成是scaled dot-product attention

点积attention包含一个query和keys与values的集合,计算query与所有keys的点积,再除以维度d的开方,然后使用softmax得到attention weights作用于values上

在实现中,keys和values是两个n\times d的矩阵KV,m个query由m\times d的矩阵Q表示,attention function表示为:
\huge{F = A(Q, K, V)=\operatorname{softmax}(\frac{QK^T}{\sqrt{d}})V}
m\times d的矩阵F表示Q的attended features

multi-head attention(MHA)

multi-head attention可以使模型关注不同representation子空间的不同信息

multi-head包含h个平行的head,每一个对应一个独立的scaled点积attention function,multi-head attention functions的attended features F表示为:
\huge{F = MA(Q,K,V)=\operatorname{Concat}(h_1,...,h_h)W^o}

\huge{h_i=A(QW^Q_i,KW^K_i,VW^V_i)}

其中d\times d_hW_i是第i个head的投影矩阵,h*d_h\times dW^o是各heads的信息相加的output投影矩阵。d_h是各head输出的features的维度,为了防止模型过大,d_h被设置为d/h

feed-forward networks(FFN)

FFN的输入来自MHA,使用两个包含ReLU激活函数和dropout的线性层进一步transforming:
\huge{\operatorname{FFN}(x)=\operatorname{FC}(\operatorname{Dropout}(\operatorname{ReLU}(\operatorname{FC}(x))))}
Transformer是一个深度端到端架构,以encoder-decoder的策略堆积attention blocks:

Transformer

L是堆叠的attention blocks的数量,encode和 decoder中的blocks数量相同

MHA学习考虑两个输入特征之间相互作用的attended features,FFN对attended features进一步非线性处理。在encoder中,每个attention block是self-attentional的,queries、keys和values来自于同一个输入特征,而decoder中的attention block包含一个self-attention层和一个guided-attention层,用encoder最后一个attention block的输出来guide attention learning

为了便于优化,跳层连接和layer normalization被用于MHA和FFN

Multimodal Transformer for Image Captioning

MT架构被描述为由image encoder和textual decoder组成

image encoder输入一张图像,使用预训练的Faster R-CNN提取region-based visual features,然后送入encoder通过self-attention learning获得attended visual representation

decoder输入attended visual features和previous word,循环预测next word

MT架构的流程图:

MT架构流程图

图中[s]是caption开始或结束的界定符

Image Encoder

输入图像先经过在Visual Genome数据集上预训练的Faster R-CNN提取一组visual features。然后根据检测到的目标的置信度降序排序,并取前m个目标。每个目标区域的卷积特征再经过一个mean-pooling得到一个d_x维的feature vector。最终,这个图像由m\times d_x的特征矩阵X表示。

X输入进一个全连接层调整维度,使之与encoder匹配,再输入进L个attention blocks的encoder。第i个attention block A_{\operatorname{enc}}^l将第i-1个attention block的输出X^{l-1}作为输入,然后输入X^l
\huge{X^l=A^l_{\operatorname{enc}}(X^{l-1})}
每个A_{\operatorname{enc}}^l包含独立权重的MHA和FFN

Caption Decoder

输入caption首先进行tokenized,并限制到最大长度为n个词,每个词由300维的词向量表示,词向量使用在大规模语料库上预训练的300-D GloVe word embedding得到

一个caption句子由n\times 300的特征矩阵Y表示,对于小于16个词的captions使用0-padding填充至最大尺寸

word embeddings输入一层有d_y个hidden units的LSTM,得到的caption representations为n\times d_y的矩阵Y

训练阶段

caption decoder的输入来自image encoder和caption representations

给定attended image features X^L以及caption input features Y,包含L个attention blocks的caption decoder使用和encoder类似的策略学习去预测attended word features:
\huge{Y^l=A^l_{\operatorname{dec}}(X^L,Y^{l-1})}
其中每个A_{\operatorname{dec}}^l包含两个MHA和一个FFN,第一个MHA在caption words上进行self-attentions的modeling,第二个MHA在caption words上学习image-guided attention

需要注意的是self-attention只能attend输出句子中较早的位置,并且是通过在计算self-attention的softmax步骤之前masking后续位置来实现的,因此会产生一个n\times n的三角mask矩阵M。

输出特征YL输入到一个线性word embedding层,将features transform到d_v维空间,d_v是词库的大小。随后,在每个词计算下一个词的可能性的时候都使用softmax交叉熵损失。

测试阶段

caption通过word-by-word的序列方式生成。当生成第t个词时,输入特征表示为Y_{\leq t}=[y_1,y_2,...,y_{t-1},0,...,0]n\times d_y维空间,其中0对应0-padded feature。input caption features和image features输入模型得到词库中可能性最大的词。预测得到的词随后被整合进inputs,进行循环生成新的inputs Y_{\leq{t+1}}

为了增加生成captions的多样性,在test阶段还引入了beam search策略

Image Encoder with Multi-view Visual Representation

使用region-based local multi-view features来表示图像,每个object detector都被当做是one single view

不同detectors提取到的objects是unaligned的,为了能够在不同的views中学习相关性,前述image encoder模型进一步演化出了两个multi-view image encoder模型,Aligned Multi-View(AMV)image encoder和Unaligned Multi-View(UMV)image encoder

Aligned Multi-View Image Encoder

AMV使用一个简单的策略从不同的detectors中获得aligned multi-view features:两阶段特征提取网络

给出M个预训练的Faster R-CNN,首先选出一个检测器作为primary模型来生成对于所有views的unified bboxes,不同primary模型的选择对于生成特征的质量有一定的影响,这里直接选择了表现最好的模型来作为primary

随后,unified bboxes输入进不同的Faster R-CNN模型提取特征。实际上这些Faster R-CNN模型以及退化到各自的Fast R-CNN版本,以pre-computed bboxes作为输入,输出的multi-view features就是aligned的,这样每对multi-view features就与图像中的一个object相对应

假设生成了m个unified bboxes,第i个view提取的features可以被表示为m\times d_i的矩阵X_id_i是features的维度。通过在列方向上的concatenate就可以得到m\times (d_1+d_2+...+d_M)的multi-view features X。这些aligned multi-view features可以代替前面提到的single-view feature,并且可以无缝输入至image encoder。AMV的流程如图:

AMV流程图

其中的AMV Image Encoder和之前提到的image encoder是一样的

但是AMV使用unified bboxes的策略可能对multi-view features的多样性不利,对encoded image features的representation 能力会造成限制。此外,AMV隐式约束了每个view的目标检测器为Faster R-CNN,既可以使用pre-computed 的bboxes也可以使用built-in的RPN。这限制RetinaNet或YOLO等一阶段模型的使用。

Unaligned Multi-View Image Encoder

为了解决AMV的限制,提出了更generalized的UMV,可以直接整合不同目标检测器的unaligned multi-view features:

UMV流程图

i个view的visual features可以由m_i\times d_i的矩阵X_i表示,m_i是features的数量,d_i是feature的维度,不同的view可以有不同的m_id_i。Unaligned multi-view features将送入一个encoder同时进行aligned和fused。这里将同样选择其中一个view作为primary,primary输出的features将guide其他views的attention learning。其他views的attended features将被整合进primary view的features来输出output features。

给出multi-view features X_1,X_2,...,X_M,它们先线性映射至统一的维度d,变换后的representations为F_1,F_2,...,F_M。假设F_1是primary view的features,这里有M-1个MHA模块去对F_1F_i,i∈{\{2,3,...,M\}}之间的相互作用进行modeling:
\huge{\tilde{F}_{(i)}=\operatorname{MHA}_{(i)}(F_{(1)},F_{(i)},F_{(i)})}
F_1有相同的m_1\times d大小的\tilde{F}_i是第i个view的attended output features,并且可以通过element-wise summation与F_1进行整合。这里的MHA可以被理解为从其他views的image features上学习image-guided attention。
\huge{\tilde{F}_{(1)}=F_{(1)}+\tilde{F}_{(2)}+\tilde{F}_{(3)}+,...,+\tilde{F}_{(M)}}
最后所有的\tilde{F}_iF_1整合在一起得到\tilde{F}_1,再Normalize之后输入FFN,得到transformed representations

值得注意的是,还可以对UMV模型进行深度叠加,以了解不同views之间更准确的相互作用,从而输出更具鉴别性的视觉特征。

Experiments

Datasets

提取bottom-up attention的视觉特征的目标检测器使用Visual Genome数据集预训练。

MSCOCO

原本的83k training images,40k validation images 和 83k test images 使用 Karpathy splits分为113k training images,5k validation images 和 5k test images

Visual Genome

使用object和attribute annotations 预训练 bottom-up-attention 模型,同样使用Karpathy splits分为98k training images,5k validation images 和 5k test images。由于Visual Genome中部分数据与MSCOCO中重叠,validation 和 test splits中的内容需要仔细检查,避免影响。同时数据进行清理和筛选后使用1600个object类和400个attributes进行训练。

Implementation Details

captions将进行一系列预处理:caption sentences首先转化为小写然后tokenized为包含空格的words,丢弃预训练GloVe词库中出现次数少于5次或不存在的稀有词之后得到9343个words。通过GloVe词库,将caption中的每个word表示为word embedding vector。词库之外的words被表示为全零向量。

预训练的bottom-up-attention模型用于检测object,并从检测到的object中抽取视觉特征。对于M=3时的multi-view image representation,分别训练三个不同backbone(ResNet-101,ResNet-152和ResNeXt-101)的Faster R-CNN模型。在每个模型中,每张图像由置信度最高的100个object表示,每个object又由detected region的最后卷积特征经过mean-pooling得到的向量表示。

输入的image feature维度d_x和输入的caption feature维度d_y分别是2048和512。MHA中latent的维度d为512,head的数量h为8,每个head的latent维度d_h=d/h=64。encoder和decoder中attention block的数量L∈\{1,2,4,6,8\}

训练MT模型时使用Adam solver和大小为10的batch size。初始学习率为\min(1te^{-4},3e^{-4})t是从1开始的当前epoch数。在6个epochs之后,学习率每3个epochs减半。所有模型现使用交叉熵损失训练15个epochs,然后使用self-critical损失继续训练10个epochs以减轻交叉熵优化的exposure bias。

Ablation Studies

Conclusions

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342