Advertisement

论文阅读-Zero-shot Scene Graph Generation via Triplet Calibration and Reduction

阅读量:

TOMM 原文链接:基于三元校准与缩减的零样本场景图生成

扫码关注,获取更多内容

在这里插入图片描述

基本介绍

场景图生成(SGG)任务:从图片中识别目标之间的关系,并以结构化的形式展示这些关系。zero-shot SGG是指在训练阶段观察过某个主体、某个客体以及某种谓词关系的情况下,在测试时识别那些没有被这三个要素共同组合所涵盖的新三重组。下图直观地展示了这一任务的核心流程

零样本场景图生成任务示意图

主要贡献:

开发出了一种称为Triplet Calibration Loss的新损失函数,在处理未见三元组时能够有效平衡其约束问题,并避免将其误判为背景类别;此外该损失函数还能够增强稀有三元组类别在注意力机制中的表现
该研究又提出了一种名为Unseen Space Reduction Loss的新损失函数旨在减少原本庞大的未见三元组空间规模;通过这一改进模型能够更加专注地学习合理范围内的未见三元组合
研究团队采用了基于Contextual Encoding Network的技术来实现对相对空间特征的高效编码过程

整体模型框架图如下:

T-CAR模型总框架图

Contextual Encoding Network

在SGG任务中,在处理实体(主体与客体)时其主要特征表示通常会整合视觉信息与对应的标签信息(例如Word2Vec模型)。而关系则主要由主客体的空间信息构成。值得注意的是这些基于语言学的特征可能会引入一些先验性的偏见;简单地将主体与客体各自的空间特性结合起来同样不利于对未见过的三元组进行挖掘工作。

使用CEN就可避免语言学特征的运用;并且其中还显式地建模了主客体的相对空间特征;CEN由entity encoder、fusion layer与relation encoder组成。

Object Encoder

\{x_i\}_{i=1,\dots,N}等于\text{Enc}_{obj}作用于\{\{v_i,\text{FFN}(b_i)\}\}_{i=1,\dots,N}

其中 N 表示实体的总数,在此研究中采用一种基于深度学习的方法来处理这些数据点。将 x_i 视为精简后的实体表征,并通过视觉特征 v_i 和边界框坐标 b_i 对其进行表征提取。值得注意的是,在前馈网络(FFN)中采用了两层MLP结构(激活函数选择LeakyReLU),这种设计能够有效平衡模型的非线性表达能力与计算效率之间的关系。其中 \text{Enc}_{obj} 负责提取客体环境的上下文信息,并通过多选架构实现这一目标:该模块可选架构包括多层次LSTM网络、图神经网络(GNN)或Transformer架构;在此研究中采用四层Transformer架构作为核心组件来处理复杂场景下的数据建模问题。此外,在公式推导过程中,默认所有方括号均代表矩阵操作,并且仅在最后一维维度上执行拼接运算以实现多模态信息融合的效果。

Fusion Layer

x_p' = x_s \star x_o \star \text{FFN}\left(\left[v_u, b_{s,o}\right]\right)

其中x_p'被视为原始谓词表示,在计算过程中采用了 entity encoder 中提取的精炼实体表示。在当前关系中涉及的主体为x_s, 客体则对应于x_o. 其中v_u, 这一指标代表了主体st与客体ot所形成的联合框(Union Box)的部分视觉特征。而b_{s,o}则量化了这两者之间的相对空间特性。\n\n$\star~\text{的计算规则如下}: 其中投影矩阵定义为变量.

x \star y = \text{Rectified Linear Unit}\left(W_x x + W_y y\right) - \left(W_x x - W_y y\right) \odot \left(W_x x - W_y y\right)

联合框(union box)指的是同时包含需要内容的最小矩形框

相对空间特征由 b_{ul}(union box位置)、b_{sl}(size相关的位置)与b_{rl}(相对位置)构成, 即b_{s,o} = [b_{ul}, b_{sl}, b_{rl}], 具体而言, 这三者是如何计算的

该公式用于计算单元格的归一化边界坐标b_{ul}。具体来说:

  • 每个分量由基于图像宽度w和高度h的归一化运算生成。
  • 其中,
    • 前两个分量分别表示左上角单元格的x坐标值和y坐标值;
    • 接下来的两个分量分别表示右下角单元格的x坐标值和y坐标值;
    • 后面两个分量分别表示该单元格的宽度比例和高度比例;
  • 整个公式的结果即为该单元格在整体图像中的位置信息。

具体来说,在该算法中权重变化的计算涉及四个关键指标:首先是对宽度比值取对数值;其次是对高度比值取对数值;随后是对宽度比值倒数取对数值;最后是对高度比值倒数取对数值。这些指标共同构成了b_{sl}的空间特征向量。

b_{rl} = \left( \frac{x_s^1 - x_o^1}{w_o}, \frac{y_s^1 - y_o^1}{h_o}, \frac{x_s^2 - x_o^2}{w_o}, \frac{y_s^2 - y_o^2}{h_o}, \frac{x_o^1 - x_s^1}{w_s}, \frac{y_o^1 - y_s^1}{h_s}, \frac{x_o^2 - x_s^2}{w_s}, \frac{y_o^2 - y_s^2}{h_s} \right)

其中 \left(x^1,y^1\right)\left(x^2,y^2\right) 用于表示两个bounding box的对应角点坐标;例如主体bbox可简记为 b_s=\left(x_s^1,y_s^1,x_s^2,y_s^2\right) ,而客体的则表示为 b_o=\left(x_o^1,y_o^1,x_o^2,y_o^2\right)\left(w,h\right)\left(w_s,h_s\right)\left(w_o,h_o\right) 则分别代表整个图像、主体区域以及客体区域的宽度与高度。

Relation Encoder

通过relation encoder,可以获得谓词的精炼特征 z_j

定义一个集合作为z_j其中索引j取值于范围[1,N×(N−1)]等于将另一个集合作为x_j'经过关系编码器\text{Enc}_{rel}处理后的结果

其中 \text{Enc}_{rel} 是关系上下文提取模块,在本文中采用了双层的Transformer架构。

最后使用全连接层分别得到预测客体类别和谓词类别的logits, e_ir_j

e_i=\text{FC}_{obj}\left(x_i\right)\\ r_j=\text{FC}_{rel}\left(z_j\right)

Triplet Calibration Loss

Unseen Triplet Calibration

因为可见三元组类别占据主导地位,在这种情况下会导致模型预测结果倾向于出现频率较高的类别的问题。为此,在未见三元组类别中引入一个校正损失项\mathcal{L}_{cal},以防止其logits值过于偏小。在这里,C_{tpt}^u表示未见三元组集合;对于每个主体s与客体o之间的关系编码r_{s,o}^c(其中c属于所有关系类别集合\mathcal{R}_p),该校正损失的作用是平衡各类别的预测概率分布

该模型通过计算损失函数\mathcal{L}_{cal}(r_{s,o})得到结果为负对数值

同时,在防止潜在的问题时,在确保已有三元组的概率不受影响的前提下,并通过引入一个hard boundary 来限制损失函数\mathcal{L}_{cal}

\begin{aligned} \mathcal{L}_{\text{cal}}^m(\bm{r}_{s,o}) &\text{被定义为}\quad\mathcal{L}_{\text{cal}}(\bm{r}_{s,o}\text{并加入指示函数}\bm{\mathbb{I}}_m(s,:,o))\\ &=-\ln\left(\sum_{(s,c,o)\in C^{u}_{\text{TTP}}} {\frac{\exp(\bm{r}_{s,o}^{c,+})}{\sum_{{c'}\in C^{s}_{\text{TTP}}}\exp(\bm{r}_{s,o}^{c',-}) +\sum_{{c''}\in C^{u}_{\text{TTP}}}\exp(\bm{r}_{s,o}^{c'',+})}} }\right) \end{aligned}

其中 C_{tpt}^s 表示已观察到的三元组集合,在数学空间 \mathbb{R}^{\left|C_p\right|} 中定义了边界向量 \mathbb{I}_m(s, :, o) ,其具体数值计算过程如下所述

\mathbb{I}_m(s, c, o)= \begin{cases} 1,\quad &(s,c,o)\in C_{tpt}^u\\ -1,\quad &(s,c,o)\in C_{tpt}^s \end{cases}

Seen Triplet Calibration

关系在不同的主客体上的分布是不一样的,很可能存在某些主客体的关系分布和整体数据集上的大相径庭,模型会更加倾向于出现频率更高的三元组,因此需要一个细粒度更细的方法来平衡这种倾向性。调整上述的硬边界为一个动态 边界, \mathcal{L}_{cal}^m(r_{s,o}) 变为 \mathcal{L}_{cal}^{m,\alpha}(r_{s,o}) ,也就是说希望已见三元组中出现频率越高的约束越严格:

\begin{aligned} \mathcal{L}_{calculate}^{m}(r_{s,o}) &= \mathcal{L}_{calculate}(r_{s,o} + \mathbb{I}_{\alpha}(m, s, o))\\ &= -\log \left( \frac{\sum_{{(c)}\in {C}_{tpt,m}} (1 + r_{so,c})}{ {\sum_{{(d)}\in {C}_{tpt,s}} (1 - a_d) e^{-a_d}} } ) } \end{aligned}

即边界向量各元素的计算方式变为:

\mathbb{I}_{m}^{\alpha}(s,c,o)被定义为:
1(s,c,o)\in C_{tpt}^{u}
\alpha_{s,c',o}(s,c,o)\in C_{tpt}^{s}

该表达式的计算结果等于最大值与当前项的比值的对数值,并将其与各组项的加权平均值相乘得到。
具体而言,

\alpha _ { s , c , o } = \log _ { 10 } ( n _ {\text{max}} / n _ { s , c , o } )

再乘以

\frac { ∑ _ { i ∈ C _ { t p t } } ^ { } n_i } { ∑ _ { j ∈ C _ { t p t } } ^ {} n_j^{\text{term}} · \log ( n _ {\text{max}} / n_j ) }

其中 n_{max} 表示出现频率最高的三元组的数量,并且 n_{s,c,o} 则表示三元组 (s,c,o) 的计数次数。在此基础上可以看出,在这种情况下,系数 \alpha_{s,c,o} 随着对应三元组计数 n_{s,c,o} 的增大而减小。

同时,还将这种动态边界应用于CrossEntropyLoss:

\mathcal{L}_{ce}^{m,\alpha}(r_{s,o}) = -\log \frac{\exp(r_{s,o}^c - \alpha_{s,c,o})}{\sum_{c'} \exp(r_{s,o}^{c'} - \alpha_{s,c',o})}

最终结合上述Unseen和Seen两种Triplet Calibration得到最终的Loss

\mathcal{L}=\mathcal{L}_{ce}^{m,\alpha}+\lambda\mathcal{L}_{cal}^{m,\alpha}

另外,在推理时,会应用上硬边界来调整logits:

predicate = \arg \max_{c \in C_p} (r_{s,o}^c + I_m(s,c,o))

Unseen Space Reduction

在现有的SGG任务解决方案中,默认将所有未曾见过的三元组视为潜在的可能性;然而,在现实中存在许多这样的情况:这些组合往往不符合逻辑;通常情况下,在现实世界中这些情况极为罕见;因此,在缩减这些不可见组合的空间范围时,在一定程度上有助于模型更加精准地识别出这些潜在的情况

该流程遵循替换性假设:在某个三元组中,将其其中一个元素替换成具有相似特性的元素后,该三元组仍然保持其意义。

其中 d_s, d_p, d_o 分别代表基于另外两个元的情况下的当前元合理性;具体而言,则是先融合另外两个相关因素,在此基础上实现该元素与原有空间的关系构建;随后将该元素投影至由另外两个元素构成的空间中完成这一过程;其中 t_s, t_p, t_o 分别对应主语、谓语与宾语的语言学词向量表达。

\left\{ \begin{aligned} d_{s} &\text{对应于}\ \sigma\text{作用于}t_{p}\text{与}t_{o}\text{的卷积结果并乘以}\ \sigma(w_{s}t_{s}) \\ d_{p} &\text{对应于}\ \sigma\text{作用于}t_{s}\text{与}t_{o}\text{的卷积结果并乘以}\ \sigma(w_{p}t_{p}) \\ d_{o} &\text{对应于}\ \sigma\text{作用于}t_{s}\text{与}t_{p}\text{的卷积结果并乘以}\ \sigma(w_{o}t_{o}) \end{aligned} \right.

综合考虑上述三个元的合理程度进行拼接后,并将其映射至一维空间中以表征某一个三元组的整体合理程度:

d_{usrl}=w_{usrl}\left[d_s,d_p,d_o\right]

随后将其视作一个Positive-Unlabeled Learning的问题,并采用下面所述损失函数来进行优化;在此情境下将正例定义为潜在未见三元组候选类别的代表性实例;而负例则对应于被排除掉的实际三元组类别;值得注意的是,在此过程中unlabeled类别可被理解为涵盖所有潜在未见三元组类别的情况:

该损失函数由两部分组成:第一项为正样本交叉熵损失的加权平均值\frac{\pi}{n_{pos}} ∑_{{\rm h}_i}\mathcal{L}_{{\rm BCE}}^+({\rm h}_i);第二项为非负的最大值计算结果\max(0, ∑_{{\rm h}_j}\mathcal{L}_{{\rm BCE}}^-({\rm h}_j)/n_u - ∑_{{\rm h}_i}\mathcal{L}_{{\rm BCE}}^-({\rm h}_i)×π/n_{{\rm pos}}} )

其中 n_{pos}n_u 分别代表正例数量与未标记样本的数量;\pi 被定义为一个超参数, 用于表示正例在整体中的占比; \mathcal{L}_{bce}^+\mathcal{L}_{bce}^- 分别代表将样本分类为正类与反类的风险评估; 最后, h_ih_j 则分别表示被判定为正类样本与所有未标记样本的信任度。

经过对这个Positive-Unlabeled Learning问题的优化处理后, 能够使该指标\mathbb{I}_m^{\alpha}\left(s,c,o\right)\mathbb{I}_m\left(s,c,o\right)之间的差异持续缩小

实验结果

基于Visual Genome数据集进行了系统性的训练与测试,并且该数据集包含了以下三项具体任务:

  • Predicates Classification任务(PredCls)旨在通过输入图片及实体的 bbox 与类别信息来推断各 bbox 间的谓词关系。
  • 题图分类任务(SGCls)通过输入图片及实体的 bbox信息推断各实体分类及其间的谓词关系。
  • 图像场景图检测任务(SGDet)仅需输入图片即可识别出所有实体的 bbox 与类别,并推断其间的谓词关系。

首先比较了具有图约束(graph-based constraints)与无图约束(with/without graph constraints)情况下上述三个子任务下的零示例性能表现

zero-shot性能对比表

也对比了非zero-shot的性能

非zero-shot性能对比

随后与IMP++模型进行了 PredCls 和 SGCls 任务中各个关系类别中的 zero-shot 提升效果比较分析

PredCls上的zero-shot能力提高
SGCls上的zero-shot能力提高

扫码关注,获取更多内容

在这里插入图片描述

全部评论 (0)

还没有任何评论哟~