老师同学们大家好,讲这篇论文需要先了解下注意力机制,他就是在处理信息的时候,我们将注意力放在需要关注的信息上,对于其他无关的外部信息进行过滤。我们第一眼看到了这张图,我们会首先看有一台车,这就是个不随意线索,没有随着我们的意识,是下意识的行为,然后我们发现车之后,才会去想这个车在什么环境中,这就是个随意线索,是我们有意识去主导的事情,就是我们有意识的去观测我们想要的东西。
在注意力机制中,我们把随意线索称为查询,query,简称为Q,不随意线索为键,Key,简称为K,然后每一个键都对应一个值成对出现,值,value,简称为V。我们希望通过注意力机制来有偏向性的选择值。比如Q是代表猴子的一个向量,那么有个Key是代表香蕉的向量,那么很有可能这个Q和K的注意力评分函数的结果就会高,注意力权重就会高,然后我们就会选择香蕉这个Key对应的值,可能是香蕉的英文或者其他什么。
然后经典的里程碑式的模型,transformer,是论文Attention Is ALL You Need的模型,提出了自注意力如图所示,首先有T个token,被嵌入到潜空间,然后设置三个矩阵来对嵌入的向量进行空间变换,生成Q,K,V,然后Q与K进行点成,然后除以根号下D,为了减小过大方差。比如输入猴子喜欢吃香蕉,那么输入第一个词是猴子,他和第二个词香蕉的点积很大,然后也就是紫色框的第一行第二列的值很大,那么他再乘以V的时候,会把香蕉那一行的特征拿来的很多放入到最后的输出中,同时最终的输出向量会包含与输入 token 相关的上下文信息,能够捕捉到词语之间的关系。,这样最后
D
o
u
t
D_{out}
Dout就会输出一个和香蕉很相近的词语。
transformer的基本架构中,还有一个交叉注意力机制,比如中文经过左边的Encoder,英文单词经过右边的Decoder的前面的self-attention后与中文进行注意力机制的学习,在翻译方面,比如monkey就可以被翻译成猴子。我们需要知道我们可以通过把不同模态的特征当作q和k(v)可以实现交叉注意力机制,也就是让文字可以注意到图片中的一部分,或者反过来。
在这篇论文中,他提出了一个slot attention的attention机制,Slot attention 是一种与感知表示有关 并 产生与任务相关的表示 的架构组件 他可以被应用到一些工作或者架构中。下面a部分是Slot attention的基本原理,我们将之前的注意力机制中的q这里就是变为slot,而且是应用竞争性注意力机制的 Softmax ,该操作是在 slots 维度上进行归一化的。这意味着,对于每一个输入特征,所有的 slots 必须竞争去解释这个特征。使得每个slot绑定一个图像特征。
该部分展示了一个用于无监督对象发现的架构,主要由两个部分组成:编码器和解码器。
编码器:
CNN Backbone:首先,图像通过一个卷积神经网络(CNN)进行处理,以提取图像的特征。CNN 将输入图像转化为特征图,捕捉图像的空间信息。
Slot Attention Module:特征图和位置嵌入输入到 Slot Attention 模块中。这个模块通过竞争性注意力机制,将输入特征转化为多个 slots,每个 slot 表示图像中的一个对象。Slot Attention 能够自适应地将多个对象聚合到这些 slots 中,并且它们可以交换,反映了无序集的性质。
解码器:
Spatial Broadcast Decoder:每个 slot 通过一个空间广播解码器进行解码。这个解码器将每个 slot 的特征映射到一个二维网格上,以便于恢复对应的图像部分。
输出:每个 slot 输出的特征通过解码器生成图像的各个部分,最终合成完整的图像。解码器的设计是为了确保每个 slot 关注图像的特定区域,以便于重建原始输入图像。
自然图像和产品图像之间的域差异。对于自然图像,大多数像素在语义上与文本句子相关是常见的。然而,在电子商务中,这种相关性要稀疏得多(例如,“煎锅”或“咖啡机”仅占据整个图像的一小部分)。此外,通常从多个源(例如(a)广告视频、(B)产品页面、(c)客户评论)以组的形式提供产品的图像。
本文提出了一种预训练框架,被称为ECLIP(E为“电子商务”),采用两个独立的编码器来嵌入产品的图像和文本。本文作者的主要思想是开发一个解码器架构,建立在上述编码器,其目的是聚合以实例为中心的产品表示,而无需额外的手工制作的注释。
贡献:
提出了ECLIP,一个在电子商务的情况下有效的和简单的多模态表示学习范式。超越常规的全局表示,它可以成功地通过解码器架构获得实例为中心的产品表示。
通过充分利用电子商务数据的自然特征和本文提出的代理任务,ECLIP获得了细粒度对齐能力,以支持所需的产品实例,而无需依赖任何手动注释。
在大规模产品数据上进行预训练,本文所产生的基础模型可以无缝地推广到下游电子商务应用程序。全面的实验结果进一步证明了ECLIP的优越性:在没有任何微调的情况下,它在各种现实世界的电子商务任务上实现了对现有最先进方法的实质性改进。
左边是这篇论文的提出的实例级表示学习范例(ECLIP)的体系结构,它由一个图像编码器,一个文本编码器,和一个实例解码器。在大规模电子商务数据集上进行预训练时,通过三个代理任务对整个框架进行了优化,分别是一个图片文本的对比学习,还有商品内和商品间的对比学习,也就是相同商品和不同商品进行的对比学习。右边是核心解码器架构,旨在聚合所需产品的实例表示。我们一点点看这个图。
首先是我们数据中的图片经过被分解成一个个patch,然后经过patch Embedding,放入到Image Encoder 进行处理,生成很多特征,其中cls表示对整个图像信息进行编码的特殊标记 [CLS]。同理,文字的数据也通过Tonkenizer,变成一个个单词或者字母,然后Embedding后,放入Text的Encoder,进行处理,最后生成很多特征,也是有一个CLS的特殊特征可以总结文本语义。然后通过这些特征进行对比学习,这个任务有助于学习更好的单峰表示。
经过完对比学习之后,编码器都得到了学习,然后将视觉端的特征都放入到Instance Decoder作为K和V的输入,这里是
z
i
z_i
zi。还缺少Q,也就是查询。
在slot attention那片论文的启发下,引入了一组可学习的标记,称为实例查询,以在产品图像中找到潜在的实例。如公式所示,每个查询都与一个特定的文本或图像相关联,我们称之为多模态提示。这种设计背后的深刻之处在于,我们希望查询应探查的实例由提示内容指定。
这些查询负责经由解码器体系结构从编码的视觉特征聚集实例中心表示
H
=
{
h
t
}
t
=
1
T
H=\{h_{t}\}_{t=1}^{T}
H={ht}t=1T。在预训练期间,对于给定的样本,只有一个正提示(w. r. t是相同的产品),其余的
T
−
1
T-1
T−1是从其他产品中采样的负提示。
这个代理任务背后的动机是确保只有积极的查询可以探测实例,而不是消极的查询。
然后我们将Q也放入Decoder中,让每个slot可以比配到对应的实例。这里的两个公式和之前讲过的基本一样,一个是transformer的基本公式,还有一个就是slot attention的竞争注意力机制。最后来介绍一下最后两个代理任务。(最左上角的两个多模态学习)
我们产生了一个移动平均的模型,我们是想让模型产生的特征尽量的保持一致,Moco 论文发现在训练过程中如果有个尽量保持一致的字典对无监督的对比学习非常有好处。该目标最大化相同产品的不同样本之间的相似性,同时最小化不匹配的样本之间的相似性。由于产品的图像是从不同的来源收集的,因此它们的背景外观通常是多样的。
L
i
n
t
e
r
\mathcal{L}_{inter}
Linter将鼓励产生的表示与期望的产品高度相关,从而有助于以细粒度的方式将正面提示与对应的图像令牌对齐。
对于一个产品样本,在预训练过程中只有一个描述所呈现产品的肯定提示,其余的T−1提示是从其他产品中采样的。这个代理任务背后的动机是确保只有积极的查询可以探测实例,而不是消极的查询。为此,我们使用文本监督应用产品内对比损失。公式中 i i i和 j j j是正确配对,其他为负的。