Federated Learning for Vision-and-Language Grounding Problems

文章背景

这篇文章的背景是这样的,首先我的每个客户端输入的都是图像,这些图像可以是不同类型的,作者在实验中是用了两个不同的数据集来表示这一点。其次是每个客户端的任务也可以是不同的,比如一部分做视觉问答,另一部分做图像描述。因为他们的任务不一样,所以传统的联邦学习方法就不适用了。作者的方法概括的说就是让服务端去学习一个对应于不同任务的图像表示。具体的我们看下面这张图,可以简单的分为三个阶段,首先第一个阶段客户端在自己的模型上得到一个原始图像表示,也就是一个向量。然后把这个向量发送给服务端。第二个阶段服务端通过聚合不同客户端传来的信息加工得到一个更好的图像表示,再把这个表示发送给客户端,最后第三个阶段客户端就可以用这个图像表示来做自己的任务。

幻灯片1.PNG

阶段一

我们看第一个阶段,这个阶段提取输入图像的一个表示,它用到的网络都是预先训练好的,所以不展开讲。作者提取了两种特征,一种是从 Fast R-CNN 的全连接层中提取到的视觉特征,这里 d 表示的是隐藏层神经元的个数,N 表示的是候选区域的个数。另外一种是文本特征,这里解释一下这个网络,他的功能是从原来的图像中框出 M 个候选区域,类似于下面这样,然后他从 1000 个单词中找出和这个区域最匹配的单词,每个单词都是用 d 维的词向量表示的。假设客户端输入一张图像的话,那么经过这个阶段,客户端就得到了两个向量组,一个是表示这个框中图像的 I,另一个是表示这些单词的 T,其实就是两个序列或者说两个矩阵。每一个客户端都会得到这样的两个矩阵,然后他们发送给服务端,服务端需要对些矩阵进行加工,这就是第二个阶段。

幻灯片2.PNG

阶段二

第二个阶段也可以分为三个步骤

Aligning Module

首先第一个步骤 Aligning Module,这个我不知道怎么翻译,他的出发点是这样的。这个 I 中的一个向量表示了图像的某一个区域,我需要结合语义来得到一个更好的表示,同样的 T 中的单词需要对应于区域来避免歧义的产生。比如 mouse 这个单词,需要对应到图像后才知道是老鼠或者鼠标。具体的方法的话,作者是用了下面的这个公式,我们一步步的看,首先是 MHA 的计算,根据这个公式计算得到一个 Attention 矩阵,这里 I 就是图像矩阵,T 就是文本矩阵,用图像矩阵点积文本矩阵的转置,然后进行缩放,再经过 softmax 输出后与文本矩阵做点积。我说一下自己对这个公式的理解,分子中的这个点积操作得到的是两个矩阵之间的相似度,这个相似度除了点积之外还有其他的一些计算方法,作者选取点积是因为这个更快而且不占内存空间。这个相似度就是对于当前模型来说,每一个图像区域对于每一个单词的重要程度,最后点积 T 就是把这个信息融入到了文本特征中,同样的如果换成下面的 TII 的话,就是把这个信息融入到了图像特征中。最后,做多次 Attention 计算,将每一次得到的矩阵进行通道维度的拼接,就是完整的 MHA 操作。然后是最外面一层的 FFN,这个就比较简单了,他的公式是这样的,就是一个两层的前馈神经网络,中间用了 Relu 激活函数。

幻灯片3.PNG

更加直观的理解这个过程的话我们可以看下面这张图,他要做的就是图像和文本信息的结合,比如,下面这个高亮的人用这些词表示,高亮的狗用这些词来表示。所以经过这个 Aliging Module 的步骤,我们得到的还是两个矩阵。

幻灯片4.PNG

Integrating Module

然后我们看第二步,这一步的公式就是下面这个,乍一看这个不是和之前那个一模一样吗,只不过输入变成了三个一样的矩阵,那么这个公式是什么意思呢?我们说前一步是结合了图像和文本的信息,那这一步的目标是得到区域之间或者单词之间的一个关系,这是一个自注意力机制。更直观一点的话我们可以看下面这张图,假设我输入的是两个一模一样的句子,那最后得到的就是单词之间的一些句法特征或语义特征,比如他会注意到 its 指代的对象就是下面的 Law,以及和它相互依赖的 application。这一步的输出也是两个矩阵。

幻灯片5.PNG

Mapping Module

最后第三步,看这个公式一样的也是一个两层的前馈神经网络,值得注意的是,它是一个分叉的结构,这个分叉的数量取决于客户端所作的任务的种类。也就是说,给视觉问答和图像描述的两个任务的图像表示是不一样的。

幻灯片6.PNG

阶段三

之前说的所有的这三步,都是在对客户端得到的图像表示进行一个加工,最后的输出也是矩阵的形式。光有这个矩阵是不能进行反向传播的,所以需要把这个矩阵回传的客户端,然后让他们用这个矩阵去做各自的一个下游任务,通过这个下游任务来评判得到的这个矩阵的好坏。所以他的整个流程应该是这样的,客户端通过两个预训练好的模型得到图像的两种表示,然后传给服务服务端,服务端加工后得到另外的两种图像表示并传回给客户端,客户端用这两个表示作为输入传入自己的网络做对应的任务,然后每一个客户端根据自己任务的评判指标去更新自己的网络以及服务端的网络,直到他达到一个收敛的状态。

幻灯片7.PNG

实验

总体效果

作者首先模拟了联邦学习的三种情况,这里下面的表是第一种垂直情况的,就是每个客户端使用不同的数据集做相同的任务,我们可以看到对于 baseline 来说的话不管是什么数据集都是作者提出的这种要好。其他的两种情况也都是这样的,这就说明作者提出的这个方法是确实有效的,这是他的一个总体情况。

幻灯片2.PNG

细致分析

此外作者还对模型的每一部分做了分析。分别用 Aligning 和 Integrating 去做图像描述和视觉问答,以这张图为例,在做图像描述的时候,Aligning 会注意到这是个红色的杯子以及桌子的材质,而 Integrating 则是注意到了与杯子相邻的菠萝。更通用的说,Aligning 偏向于物体的颜色或者某种属性,这个是物体本身固有的,而 Integrating 更偏向于和当前物体有关的其他的一些物体。同样的,在视觉问答中,Aligning 偏向于回答在哪里或者是什么这种问题,而 Integrating 对物体的数量特别的敏感。

幻灯片4.PNG

这和我们之前的分析是一致的,Aligning 得到的是图像和文本间的关系,也就是图中红色的框对应蛋糕,红色,而蓝色的框对应胡萝卜、蔬菜。而 Integrating 则是会从蛋糕出发,找到一些和他相关的区域,或者是一些和他相关的单词。所以 Aligning 对视觉问答的提升较大而 Integrating 对图像描述的提升会较大,另外同时使用这两个会在不同的任务上得到更好的效果。

幻灯片5.PNG

可能存在的问题

最后是我自己觉得他可能存在的问题。这里服务端虽然没有直接获取客户端输入的图像,但是却可以得到所有输入图像的两种表示,而每个客户端得到这两种表示的网络模型是完全固定的。如果这个模型被获取到,或者是通过反向计算得到输入的图像,就会造成客户端数据的泄露。

丨fengche丨 wechat
来找我聊天吧~
-------------本文结束感谢您的阅读-------------