介绍
这篇文章是 对一个长视频 得到一个摘要, 是属于多模态的论文.
模型结构
模型总体结构如图, 还是非常易懂的 经典双线程, 其中两个模态有交叉(信息交换)的地方,模型总体还算简单
特征初步提取
-
video
ResNeXt-101 3D convolutional neural network 提取视频的16帧 , 然后 加入一个位置嵌入position embeddings
-
text
使用两种方式
- 每个单词 使用 biGRU得到单词 embedding
- 每个单词 使用 bTransform得到单词 embedding
特征融合
文中提出一个 Cross Fusion Generator, 用于将两个模态有意义的信息进行融合, 它可以将将一个模态编码到另一个模态中, 我们使用两个CFG,一个是从text 编码到video(T2VFG), 另一个是 video编码到text(V2TFG)。 其思想是由 计算两个序列的亲和度矩阵所启发的,当然现在用的不是这种方法, 下面分别介绍 这两个
Text-to-video Fusion Generator
这里其实也是运用了我们的 Attention Q K V 是不同模态 , 也就是mulitmodal-Attention
我们可以看到下面的计算公式
应该是 Q 是 text KV 是video
QT 代表的就是 Attention 的 Q的意思, T代表的是被encoder的模态
Video-to-Text Fusion Generator (V2TFG).
同理, 这个则是 Q是 video; K V 是 text
但是公式上写的是 V 是没有经过 矩阵变换的 所以这里需要小心
Fusion Forget Gate
提出此机制的目的就是为了处理噪声, 因为前面的CFG不能很好的抑制噪声, 所以提出融合遗忘门机制
FFG读取原始模态信息以及从其他模态得到的适配信息,并确定适配信息是否为噪声并且匹配原始模态。这一步的目的应该就是去噪声, 也就是说从其他模态的得到的信息可能有很多噪声, 需要和原有的比较来去除一些噪声
具体细节如下
- 把两个输入的向量(原始(source), 加入其他模态(target)) 拼接 输入到线性层 接上 solfmax 激活 得到 遗忘向量
-
target 也输入到其它的线性层得到记忆向量
-
两个矩阵进行点乘即可 Tgen 表示target
Feature-Level Fusion
就是将原来提取的特征和 多模态交互的特征进行融合, 进行进一步的提取
Hierarchical Fusion Decoder
因为我们最终是要得到一个文本的, 所以光提取特征还是不够的, 我们需要把特征decoder 出一个文本向量(word embedding), 也类似于一个翻译过程
由 多层次Attention 启发,
翻译的decoder 使用前面的RNN 或者 Transformer, 我们都知道翻译每一个词都会得到一个ht ,对每个时间的 ht 和 前面得到的两个模态的融合特征, 进行Attention 最终的一个特征表示, 然后进行decoder
实验结果
实验结果可以看出 效果还是不错的
论文评价和思考
- 这种遗忘门机制 听起来很高深, 但是看论文的描述其实实现也非常简单, 应该就是利用线性层操作的, 感觉稍微有点名不副实, 也可能是我看的不够深入吧, 过几天可能要看看LSTM的遗忘门和GRU的这些遗忘机制, 来比较一下
- Mulit-modal Attention 果然还是要用上的!!, 在之前的ACL2020 的几篇多模态论文 (包括多模态图像检索等)双模态融合都用上这些, 应该是个趋势, 但是可能有很多都已经被用完了。