Zero-shot Recognition via Semantic Embeddings and Knowledge Graphs

考虑零样本的识别问题,在没有训练样本的情况下对某个类别学习一个分类器,仅仅使用该类别的词向量和其他类别(有视觉数据提供)关系。处理不熟悉或者新类别的关键在于从熟悉类别迁移知识到新类别。本文中,以图卷积神经网络为基础,提出了一种同时使用语义向量和类别间关系来预测分类器的方法。给定一个学习好的知识图谱,本文将语义向量作为每个节点的输入,在一系列图卷积之后,对每个类别得到相应的分类器。在训练过程中,用少量类别的分类器来学习GCN的参数。测试时,用这些filter来预测未见过类别的分类器。

本文同时利用了隐式的知识表示(词向量)以及显式的关系(知识图谱)来学习新类别的视觉分类器。知识图谱的每一个节点对应于一个语义类别,这些点通过关系边连接,每个节点的输入是每个类别的向量表示,之后使用图卷积在不同类之间进行知识迁移。具体的,本文训练了一个6层的GCN用于输出不同类别的分类器。

本文关注于图片分类问题,考虑两种测试设置

  • 最终的测试类别只有零示例的类别
  • 测试时的标签来自于见过或者未见过的类别,叫做广义的零示例设置

方法

图卷积

图卷积原本用于进行半监督的实体分类,给定一个用词向量或者文本特征表示的目标实体,目标是进行分类。举例来讲,猫和狗都可以被标注为哺乳动物,椅子和沙发都可以被标注为家具,同时假设有这么一幅图,点表示实体,边表示实体之间的关系。
形式上,给定一个有n个实体的数据集(X,Y)={(xi,yi)}i=1n(X,Y)=\{(x_i,y_i)\}_{i=1}^nxix_i表示实体i的词向量,yi{1,...,C}y_i\in\{1,...,C\}表示对应的标签。在半监督的设置下,我们知道前m个实体的标签,目标是使用词向量和关系图推测出剩余n-m个实体的标签;在关系图中,每个节点是一个实体,如果他们之间有关系就会被连接起来。
使用F表示图卷积网络,所有实体的词向量X作为一次的输入,输出他们的softmax分类结果。为了简化,第i个实体的输出表示为Fi(X)F_i(X),是一个C维的softmax概率向量。训练时,对前m个实体应用softmax损失

1mi=1mLsoftmax(Fi(X),yi) \frac{1}{m}\sum_{i=1}^mL_{softmax}(F_i(X),y_i)
测试时,使用学习到的权重来获得的剩下n-m个实体的标签。

不像标准的卷积在图片的局部进行操作,在GCN中,卷积操作根据邻接图定义的相邻节点计算节点上的响应,形式上每一层操作可以表示为

Z=A^XW Z = \hat{A}X'W

A^\hat{A}(n x n)是图的二进制邻接矩阵的正则化版本,X’是来自前一层的n x k的特征矩阵,W是k x c的该层的权重矩阵,因此,一个卷积层的输入是n x k,输出是n x c的矩阵Z;每个卷积层后都有一个非线性的ReLU,嘴一个卷积层,输出的维度等于有标签的类别数。

GCN for zero-shot

输入是类别的集合和他们对应的语义特征向量,输出是每个输入类别的视觉分类器。我们希望GCN预测的分类器是在预训练的固定的卷积特征上的logistic回归模型。如果视觉特征向量的维度是D,对类别i的每个分类器wiw_i也是一个D为的向量,因此GCN每个节点的输出也是D维的,而不是C维的。在零示例的设定下,我们假设一共n个类别的前m个类别的有足够的视觉样例来估算他们的权重向量。对于剩下的n-m个类别,通过给定的特征向量作为输入来预测他们对应的权重向量。

神经网络的参数通过m个训练对进行学习,然而通常m是很小的,因此我们希望使用视觉世界的显式结构或者类别间的关系来约束这个问题,我们使用知识图谱来表示这种关系。知识图谱中的每一个节点表示一个语义类别,因为我们有n个类别,所以图中有n个节点,如果节点之间有联系那么他们之间就有一条边。图的结构表示为n x n的邻接矩阵,将图中所有的有向边改为无向边,最后得到的邻接矩阵为一个对称矩阵。

对于前m个类别,我们有预测得到的分类器权重W^1...m\hat{W}_{1...m}和从训练图片得到的ground-truth的分类器权重W1...mW_{1...m},使用均方误差作为损失函数。

训练时,使用m个见过的类别学习GCN的参数,使用这些参数,我们可以得到零示例类别的分类器权重。测试时,我们首先通过预训练好的卷积网络获得图片的特征表示,之后用这些生成的分类器来进行分类。

Zero-shot Recognition via Semantic Embeddings and Knowledge Graphs

相关文章: