文章目录
1. 前景介绍
这篇文章讲的是 多模态机器翻译
- 首先把图和句子用一个统一多模态图来表示
图结构如下
- 每个结点包含,文本信息和图片信息
- 图有两种边, 一种是相同模态相连的边, 一种是不同模态相连的边
然后基于该图,我们堆叠基于多个图的多模态融合层,这些层迭代地表示节点之间的语义交互以进行图编码, 依次进行模态内和模态间融合以学习多模态节点表示。 最后,解码器可以通过注意机制来利用这些表示形式
2. 模型结构
此多模态NMT模型基于常规的编码器-解码器框架
模型总体结构如图, 乍一看有点transformer内味了
2.1 编码器
编码器可以看作是GNN的多模态扩展。 为了构造编码器,首先将输入的句子-图像对表示为统一多模态图。 然后基于该图,我们堆叠多个多模态融合层以学习节点表示,这为解码器提供了基于注意力的上下文向量。
2.1.1 Multi-modal Graph
首先建造一个图, 按照以下步骤建立 (无向图)
1.建结点
在节点集V中,每个节点代表一个文本单词或一个视觉对象。 具体来说,我们采用以下策略来构造这两种节点:
- 我们将所有单词作为单独的文本节点包括在内,以便充分利用文本信息
- 我们使用斯坦福解析器来识别输入句子中的所有名词短语,然后应用可视化基础工具包检测每个名词短语的边界框(视觉对象)。随后,将所有检测到的视觉对象都包括为独立的视觉节点。
2.建造边
- 同一模态中的任何两个节点通过模态内边连接;
- 表示任何名词短语的每个文本节点和相应的视觉节点之间通过模态间边连接。
2.1.2 Embedding Layer
用Embedding Layer 来初始化结点内容
具体来说,
- 对于每个文本节点v,我们将其初始状态定义为其词嵌入和位置编码的总和
- 对于视觉节点,我们首先从Faster-RCNN中的全连接层中提取视觉特征,然后采用ReLU激活功能的多层感知器,将这些特征映射到与文本表示形式相同的维度上。
2.1.3 Graph-based Multi-modal Fusion Layers
这是基于图的多模态融合层, 总体结构如图
在embedding层的后,我们堆叠了多个基于图的多模态融合层进行编码。
在每个融合层,我们依次进行模态内融合和模态间融合以更新所有节点状态。
最终节点状态对模态内和模态间信息同时进行编码。由于视觉节点和文本节点是包含不同模态信息的两种语义单元,因此我们分别应用相似的操作,但使用不同的参数来对它们的状态更新过程进行建模。
下面我们继续看 是如何进行模态融合的:
模态内融合
通过收集来自相同模态邻居的消息,利用self-attention来生成每个节点的上下文表示。
- 对于文本上下文语义,通过mulit-head attention 来提取, 上一次的隐层当做QKV 输入
- 同样的, 对于视觉object 也是如此
模态间融合
受多模态特征融合研究的启发,我们采用了跨模态门控机制,得到跨模式特征的语义信息。
-
通过下面公式计算 文本跨模态信息M, A(Vx) 是Xi的视觉邻居,其中 aij 是由 节点的语义信息和 视觉信息算出来的 权重, 这里指的是 第i个文本结点 对第j个 邻居视觉结点的 权重
-
同理 也可以算出 视觉跨模态信息M
最后,我们采用位置前馈网络FFN,生成文本节点的隐层H 和 可视节点隐层H
2.2 解码器
解码器类似于传统的Transformerr解码器。 由于视觉信息已通过基于多个图的多模式融合层合并到所有文本节点中,因此我们允许解码器仅通过关注文本节点状态来动态利用多模式上下文。
经过两种attention
一个是decoder 内部的, 一个是 encoder 和 decoder的 attention
然后过线性层 solfmax 分类即可。
3. 实验结果
可以看到效果基本非常不错
4. 模型评价
4.1 模型的贡献
-
提出统一的图来表示输入的句子和图像,来表示模态间和模态内的关系
-
提出了一种基于图的多模态融合编码器,基于上述图进行图编码。 是探索NMT的多模态 ** 图神经网络(GNN**的首次尝试。
-
开放源码hhhh