人们可以根据自己的意愿使用粗糙到精细的细节来描述图像内容。然而,大多数图像字幕模型是与意图无关的,不能主动根据不同的用户意图生成各种描述。本文提出了抽象场景图(ASG)结构来细粒度地表示用户意图,并控制生成的描述的内容和详细程度。ASG是一个有向图,由基于图像的三种类型的抽象节点(对象,属性,关系)组成,没有任何具体的语义标签。因此,很容易手动或自动获得。
文章链接:Say As You Wish: Fine-grained Control of Image Caption Generation with Abstract Scene Graphs
一、文章引入
最近的图像字幕模型已经取得了长足的进步,甚至在一些基于准确率的评估指标方面超过了人类。然而,大多数图片字幕模型都是不确定意图的,只是被动地生成图片描述,而不关心用户对什么内容感兴趣,以及描述应该有多详细。相反,人类能够按照自己的意愿,从粗到细地描述图像内容。例如,如果我们被要求在图1中描述更多有区别的细节(比如花的数量和颜色),目前的系统完全不能实现这样的用户意图。更糟糕的是,这种被动的字幕生成会极大地阻碍多样性,容易生成平庸的描述。这些描述虽然具有很高的准确性,但主要是捕捉频繁的描述模式,不能代表整体图像理解,而整体图像理解应该识别图像中的不同方面,从而能够产生更加多样化的描述。
图1:尽管意图不可知的标题可以正确描述图片内容,但它们没有意识到用户想要描述什么,并且缺乏多样性。因此,本文提出了抽象场景图(ASG)来控制用户所需的、不同的细粒度图像标题的生成。将相应的区域、ASG节点和生成的短语标记为相同的颜色。
本文提出了一个更细粒度的控制信号,即抽象场景图(ASG),来表示不同的意图,以实现可控制的图像标题生成。如图1所示,ASG是一个有向图,它由基于图像的三种抽象节点组成,即对象、属性和关系,每个节点不需要具体的语义标签。因此,这种图结构不需要语义识别,易于手动或自动获取。更重要的是,ASG能够反映用户对描述内容和描述细节的细粒度意图。
为了生成有关指定ASG的字幕,本文提出了基于编码器-解码器框架的ASG2Caption模型,该模型解决了ASG控制字幕生成中的三个主要挑战。首先,ASG仅包含一个抽象的场景布局,没有任何语义标签,因此必须同时捕获图像中的意图和语义。因此,作者提出一种角色感知图像编码器,以区分节点的细化意图角色,并通过图像上下文增强每个节点,以改善语义表示。其次,ASG不仅控制通过不同节点描述的内容,而且通过节点的连接方式隐式确定描述顺序。因此,本文提出的解码器会同时考虑节点的内容和结构,以引起注意以图流顺序生成所需的内容。重要的是要完全覆盖ASG中的信息,而不会丢失或重复。为此,本文的模型在解码期间逐渐更新图形表示,以跟踪图形访问状态。
二、Abstract Scene Graph
为了以细粒度级别表示用户意图,本文首先提出了抽象场景图(ASG)作为控制信号,以生成自定义图像标题。 图像I的ASG表示为G =(v,ε),其中v和ε分别是节点和边缘的集合。 如图2左上方所示,节点可以根据其意图角色分为三种类型:对象节点o,属性节点a和关系节点r。 用户意图被构造为G,如下所示:
•将用户感兴趣的对象oi添加到G中,其中对象oi以I为基础,并带有相应的边框;
•如果用户想了解oi的更多描述性详细信息,可以将属性节点ai,l添加到G,并将oi的有向边分配到ai,l, | l | 是关联属性的数量,因为oi允许多个ai,l;
•如果用户想描述oi和oj之间的关系,其中oi是对象,oj是对象,则将关系节点ri,j添加到G并分别从oi到ri,j和从ri,j到oj分配有向边。
图2:提出的ASG2Caption模型由一个角色感知的图编码器和一个图语言解码器组成。对于图像I和图像ASG G,编码器首先将每个节点初始化为角色感知嵌入,并使用多层MR-GCN在Gm中对图上下文进行编码,然后将图内容和图流注意事项动态合并,实现ASG控制的字幕。生成一个单词后,将图Xt−1更新为Xt,以记录图的访问状态。
用户可以很方便地构造ASG G,它以细粒度的方式表示用户对I中的对象、属性和关系的兴趣。
除了从用户那里获得G之外,基于现成的对象建议网络和可选的简单关系分类器自动生成ASGs也更容易,可以判断两个对象是否包含任何关系。注意到本文这种只有图片布局没有任何语义标签,这意味着我们不依赖于外部培训对象探测器/属性/关系,但是先前基于场景图的图像字幕模型需要这些训练有素的探测器来提供一个完整的场景图与标签以及检测精度较低。
三、The ASG2Caption Model
给定图像I和指定的ASG G,目标是生成与G严格一致的流畅语句y = {y1,··,yT},以满足用户的意图。
3.1. Role-aware Graph Encoder
该编码器将基于图像I的ASG G编码为节点嵌入的集合X = {x1,···,x|v|}。首先,xi除了体现其视觉上的作用外,还应该体现其意图作用,这对于区分物体和连接的属性节点尤为重要,因为它们都位于同一区域。其次,由于节点不是孤立的,邻近节点的上下文信息有利于节点的语义识别。因此,作者提出了一个角色感知图编码器,其中包含一个角色感知节点嵌入来区分节点意图,以及一个多关系图卷积网络(MR-GCN)来进行上下文编码。
Role-aware Node Embedding对于G中的第i个节点,首先将其初始化为对应的视觉特征vi。具体来说,从图像中的接地边界框中提取目标节点的特征;属性节点的特征与其所连接的对象相同;从两个涉及对象的并集边界框中提取关系节点的特征。由于仅凭视觉特征无法区分不同节点的意向角色,进一步对每个节点进行角色嵌入增强,得到具有角色感知的节点嵌入x(0)i,如下所示:
其中Wr∈R3×d为角色嵌入矩阵,d为特征维数,Wr[k]为Wr的第k行,pos[i]为区分连接同一对象的不同属性节点的顺序的位置嵌入。
Multi-relational Graph Convolutional Network虽然ASG中的边缘是单向的,但连接节点之间的影响是相互的。此外,由于节点的类型不同,消息从一种类型的节点传递到另一种类型的节点的方式与其反向方向不同。因此,对原有的具有不同双向边的ASG进行扩展,得到一个用于上下文编码的多关系图Gm= {v,ε,R}。
具体地说,R中有六种边来捕捉相邻节点之间的相互关系,分别是:对象到属性、对象到关系、对象到对象的关系及其反方向。使用MR-GCN在Gm中编码图片上下文,如下所示:
使用一个层可以为每个节点带来来自相邻节点的上下文,而堆叠多个层可以在图中编码更广泛的上下文。本文堆叠L层,最后的第L层的输出作为最终的节点嵌入X。也可以通过取X的平均值来获得全局嵌入图。将全局图像嵌入与全局图像表示融合为全局编码特征¯v。
3.2. Language Decoder for Graphs
该解码器的目的是将所述编码的G转换为图像标题。不像以前的作品关注一组不相关的向量,本文的节点嵌入 X包含了来自G的结构化连接,它反映了用户指定的不应该被忽略的顺序。此外,为了充分满足用户意图,必须在不遗漏、不重复的情况下表达G中的所有节点,而以往的attention方法很少考虑被关注向量的访问状态。因此,为了提高图到句子的质量,作者提出了一种专门针对图像的语言解码器,该解码器包括基于图像的注意机制,既考虑了图像的语义,又考虑了图像的结构,以及记录已描述或未描述内容的图像的更新机制。
Overview of the Decoder该解码器采用两层LSTM结构,包括注意力LSTM和语言LSTM。注意力LSTM以全局编码的嵌入¯v、前一个单词嵌入wt−1和语言LSTM 前一个输出hlt−1作为输入,计算一个注意力查询hat:
将第t-th步的节点嵌入表示为Xt = {xt,1,···,xt,|v|},其中X1是编码器x的输出。hat用于通过提出的基于图的注意机制从Xt中检索上下文向量zt。然后将zt和hat输入语言LSTM,依次生成单词:
生成单词yt后,通过提出的图像更新机制将节点嵌入Xt更新到Xt+1中,以记录新的图像的访问状态。
Graph-based Attention Mechanism为了兼顾语义内容和图的结构,将两种注意类型分别称为graph content attention和graph flow attention 。
图内容注意考虑节点嵌入Xt与查询hat之间的语义相关性,计算出一个注意得分向量act,即:
由于忽略了节点之间的连接,因此内容关注类似于传送,后者可以在不同的解码时间步长下从一个节点转移到G中远距离的另一个节点。
但是,ASG的结构隐式反映了字幕生成时用户预期顺序。例如,如果当前参与节点是关系节点,那么根据图形流,下一个要访问的节点最有可能是下一个对象节点。因此,作者进一步提出了图流注意来捕获图结构。流程图如图2所示,它与原来的ASG有三个不同之处。第一个是应该分配开始符号S,第二个区别在于对象节点和属性节点之间的双向连接,因为通常对象的顺序及其属性不是强制性的,应由句子的流畅性决定。最后,如果节点的输出边不存在,则会为该节点构造一个自环边,从而确保图上的注意力不会消失。假设Mf是流程图Gf的相邻矩阵,其中第i行表示第i个节点的归一化度数。图流注意力以三种方式在先前的解码步骤αt-1中转移注意力得分向量:
1)停留在同一节点αft,0 =αt-1。 例如,模型可能用多个单词来表示一个节点。
2)移动一个步长αft,1 =Mfαt-1,例如从关系节点转移到其目标节点;
3)移动两个步长αft,2 =(Mf)2αt-1,例如从关系节点转移到属性节点。
最后的流量注意是由动态闸门控制的三个流量分数的软插值如下:
其中Ws, Wsh, Wsz为参数,st∈R3。图3给出了图流注意的过程。
图3:图流注意使用图流顺序选择相关节点生成下一个单词。
基于图的注意动态地将图内容注意αct和图流注意αft与可学习的参数wg,Wgh,Wgz融合在一起,即:
因此,在第t步用于预测单词的上下文向量为
它是图节点特征的加权和。
Graph Updating Mechanism更新图像表示形式,以在每个解码步骤中记录不同节点的访问状态记录。 注意力分数α表示每个节点的访问强度,因此应该更多地关注高度关注的节点。 但是,当生成某些非可视单词(例如“ the”和“ of”)时,尽管访问了图形节点,但它们不会由生成的单词表示,因此不应进行更新。 因此,本文提出了一个视觉哨兵门来自适应地修改注意力强度,如下所示:
其中,实现了一个完全连接的网络,由指定的向量来表示参与的节点是否由生成的字来表示。
每个节点的更新机制被分解为两个部分:先擦除后添加操作。首先,对第i个图节点表示xt,i根据其更新强度ut,i对每个特征维进行细粒度的擦除:
因此,如果节点不再需要访问,则可以将其设置为零。如果一个节点可能需要多次访问和跟踪其状态,作者还采用了添加更新操作:
在这里,fers和fadd是具有不同参数的全连接网络。通过这种方式,将图嵌入Xt更新到Xt+1中,以便进行下一个解码步骤。
3.3. Training and Inference
使用标准的交叉熵损失来训练ASG2Caption模型。单对(I, G, y)损耗为:
四、实验结果
表1:ASGs可控图像字幕的VisualGenome和MSCOCO数据的统计。
表2:与ASGs上精心设计的可控图像字幕生成条件基线对比。
五、主要贡献
(1)提出用抽象场景图对图像标题生成进行细粒度控制的,能够控制标题生成过程中的细节级别(如是否包含属性、对象之间的关系等)。
(2)提出的ASG2Caption模型包括一个角色感知图编码器和语言解码器,用于自动识别抽象图节点,并生成具有预期内容和顺序的字幕。
(3)实现了最先进的可控性给定指定ASGs在两个数据集。我们的方法也可以很容易地扩展到自动生成的图像描述,能够生成不同的图像描述。