多模态论文串讲·下【论文精读·49】

上次多模态串讲主要是讲了用transformer encoder的多模态模型
这一篇来讲使用transformer encoder + decoder的多模态模型
BLIP
结合了ALBEF (保证模态融合和图像的特征学好,同时计算量和CLIP相当) 和VLMO (比较灵活) 里的想法,设计了一个很灵活的框架
- 可以deal with noisy data
- 一个框架又干生成,又可以干image-text retrieval
贡献点1 - 模型结构

等于有3个task,根据不同的loss function,用不同的输入去做forward
先不看最右边的 image-grouded text decoder
如果我们把中间的image-grounded text encoder移到text encoder上面,和左边的image encoder组合起来其实就是ALBEF,但是有一点不同的是,借鉴了VLMO里self-attention共享参数的做法 (图中同样的颜色代表参数共享)
现在来看最右边的 image-grouded text decoder, causal self-attention, 即只通过前面的文本来预测后面的文本,最后的loss用的是LM而不是MLM因为不是在做完形填空了
大体来看,增加的参数量 也就是causal self-attention的地方
Unified Framework!! (虽然不是真正意义上的unified,但是很灵活)
同样地,这里训练时每一个iteration要做3次forward,来算不同的loss function
由于是ALBEF原班人马,这里用了很多ALBEF的技巧,例如在ITC上用momentum distillation,和利用ITC抽取最难的样本来计算ITM
贡献点2 - Dataset bootstrapping
Motivation - 网上扒下来的数据集质量不高

用高质量 (图中带绿色T的)图片文本对fine tune text encoder和decoder
- 用image-grounded text encoder过滤掉错误文本对
- 用decoder给图片生成新的高质量的caption,拿去过滤
最后数据集扩大了,质量也提高了