• LXMERT: Learning Cross-Modality Encoder Representations from Transformers


    LXMERT: Learning Cross-Modality Encoder Representations from Transformers

    2020-12-24 14:24:05

     

    PaperEMNLP 2019 

    Codegithub 

     

    1. Background and Motivation

    本文提出一种 image-language pre-trained model,特征编码层面有三个 encoder,即:

    • an object relationship encoder,
    • a language encoder,
    • a cross-modality encoder.

    在5个任务上进行了预训练:

    • masked cross-modality language modeling,
    • masked object prediction via RoI feature regression,
    • masked object prediction via detected-label classification,
    • cross-modality matching,
    • image question answering. 

    实验结果提升巨大。有多巨大?先来看模型架构吧。

     

    2. Approach

     

     

    2.1. Input Embeddings

    模型的输入是 image 和 sentence,然后经过 input embedding layer 转换为 两组特征:word-level sentence embeddings, and object-level image embeddings. 

     

    Word-Level Sentence Embeddings

    对输入的 language,将其进行单词划分,转为固定长度的单词列表。然后对其中的 word 及其 index 进行映射,然后这两个映射向量相加,得到 index-aware word embeddings:

     

    Object-Level Image Embeddings

    本文不直接利用 CNN 的输出特征,而是将检测出来的物体作为图像的映射。如图 1 所示,本文将 RoI regions 抠出来,和其索引一起进行映射,然后相加:

     

     

    有了上述 image feature 和 language feature,接下来就是对其进行联合特征学习。

     

    2.2. Encoders

    如前文所述,本文设计了三种 encoder 模块,都是基于两种 attention layer:self-attention layer 和 cross-attention layer。作者这里回顾了一下 attention layer 和 self-attention layer,引出 transformer 模型。然后介绍了single-Modality encoders 以及 Cross-Modality Encoder。

     

    Attention Layers:假设给定两个向量,一个是 query vector x,另外一个是 context vector {yj},那么常规的 attention 层,就是计算这两者之间的相似度:

     

    输出就是加权之后的特征。

    Self-Attention Layers:当 x 是来自 y 本身的时候,就称之为 self-attention layer。

    Multi-head Attention:self-attention layer 堆叠多个,就是多头注意力机制了。

    Transformer:多头注意力机制 加上 位置编码,就是 transformer 模型的核心。

     

    Single-Modality Encoder

    在进行模态交互之前,作者首先对单个模态进行 self-attention 处理。也就是图 1 中的如下这个模块:

     

     

    Cross-Modality Encoder

    每一个 cross-modality layer 都包含

    • 两个 self-attention sub-layers,
    • 一个 bi-directional cross-attention sub-layers,
    • 两个 feed-forword sub-layers。

    作者对这种 cross-modality layers 进行了堆叠。在第 k 层,首先用一个 bi-directional cross-attention sub-layer,其中包含两个单向的 cross-attention sub-layers:

    • one from language to vision ; 
    • one from vision to language. 

    其 query 和 context vectors 都是来自上一层,即 k-1 层:

     

    为了构建中间的连接,作者用一个 self-attention sub-layers 来继续处理该输出:

     

    最后,经过 feed-forward layer 就可以得到第 k 层的输出。

     

     

    2.3 Output Representations:  

    本文模型的输出是三个部分:vision output,language output,以及 cross-modality output。

     

     

     

     

    3. Pre-Training Strategies:  

    3.1. Pre-training Tasks: 

    • Language Task: Masked Cross-Modality LM 
    • Vision Task: Masked Object Prediction
      •   RoI-Feature Regression
      •   Detected-Label Classification 
    • Cross-Modality Tasks 
      •    Cross-Modality Matching 
      •   Image Question Answering (QA) 

     

    对于 pre-trained,作者用 4 张 Titan XP 训练了 10天。然后对不同的任务,再进行微调。下面的表格是关于训练数据的相关信息。

     

    4. 实验效果:

     

     

      

  • 相关阅读:
    HDU 3577Fast Arrangement(线段树模板之区间增减更新 区间求和查询)
    POJ 3468 A Simple Problem with Integers(线段树模板之区间增减更新 区间求和查询)
    HDU 1754 I Hate It(线段树之单点更新 区间最值查询)
    CSU 2056 a simple game (正反进行KMP)超级好题!!!
    HihoCoder
    HDU 6318 Swaps and Inversions 思路很巧妙!!!(转换为树状数组或者归并求解逆序数)
    51 Nod 1107 斜率小于0的连线数量 (转换为归并求逆序数或者直接树状数组,超级详细题解!!!)
    POJ 2299 Ultra-QuickSort 求逆序数 (归并或者数状数组)此题为树状数组入门题!!!
    C# DBHelper类 参考
    C#学习之接口
  • 原文地址:https://www.cnblogs.com/wangxiaocvpr/p/14184033.html
Copyright © 2020-2023  润新知