【零样本学习】Zero-shot Recognition via Semantic Embeddings and Knowledge Graphs
Motivation
ZSL问题的关键是从seen class迁移知识到unseen class中。一种方法是利用隐式的知识表示(语义向量)来迁移知识。这种方法从文本数据中学习类别的语义向量表示,然后学习语义空间到视觉空间的映射关系,模型受限于语义模型和映射模型的泛化能力。而且很难从结构化信息中学习语义向量。另一种方法是基于显式的知识库或知识图谱。这种方法显示地将知识表示成类别之间的关系(可以利用这些关系推测unseen class)。最简单的方式是通过组合视觉概念来为unseen class生成分类器。而本文是利用结构化信息和复杂关系来为unseen class生成分类器。(以前的方法是利用图作为约束条件,而本文是利用图直接生成unseen class的分类器)
本文同时利用隐式的知识表示(词向量)和显式的关系(知识图谱)来学习unseen class的分类器。知识图谱的节点用类别的语义向量表示,边是节点之间的关系,利用GCN在不同类别之间迁移信息。(训练了6层的GCN,最后每个节点的输出特征代表这个类别的分类器参数)
我们的方法在ZSL和GZSL场景下都取得了很好的性能。而且,当知识图谱的规模增大时,即使图谱是有噪声的,效果也显著提升。
Method
主要思想:利用GCN模型学得每一种分类任务对应的分类器参数向量,并基于预训练的CNN特征层展开相应的二分类预测任务。
在GCN架构中,每个节点象征着一个类别,在这种设定下,默认情况下该节点对应的特征向量类似于一种二分类分类器的参数向量。这些参数反映了该类别所具有的属性和行为模式,并类似于逻辑回归模型中的权重参数。为了实现对图片类别的识别功能,在训练GCN时,默认情况下输入的是每个类别对应的语义嵌入向量。这些嵌入信息能够有效地捕捉到不同类别的抽象特征,并通过预训练CNN提取的具体细节加以补充和完善。经过连续6层GCN层的学习过程后,在保持原有监督学习的基础上不断优化模型结构和参数配置,在有ground truth标签的支持下计算损失函数并完成反传过程后,默认情况下能够自动学习出那些未被标注过的类别的分类器权重分布模式,并以此实现零样本学习目标下的图像识别任务
本文综合运用了两种知识表示方法(即隐性的词向量和显性的图谱结构)来解决零样本学习问题。借助于图神经网络(结合回归损失函数)这一技术手段,我们能够有效地学习分类器。

GCN网络的输入是n个类别(包括seen class和unseen class)的语义向量

,输出是每个类别的分类器参数

通过预训练好的ConvNet网络获得unseen类别的分类器参数(作为监督学习中GCN网络参数的基准值)。当ConvNet网络中的视觉特征维度为D时,则每个分类器w_i的空间维度也为D;因此GCN网络每个节点输出的空间维度同样为D。在零样本学习(Zero Shot Learning, ZSL)的情境下,在有m个已知类别(通常数量较少)的情况下进行GCN网络参数的学习。因此,在构建GCN模型时需利用知识图谱中的类间关系(如WordNet数据库所存储的关系)作为约束条件。在训练过程中,在已有类别基础上利用预训练好的ConvNet模型获取其分类器参数作为基准值(即监督学习阶段),然后通过回归损失函数优化GCN模型参数。从而获得unseen类别的分类器参数。测试阶段则首先利用预训练好的ConvNet模型提取图像特征向量,并结合之前获得的知识图谱约束下的GCN模型来进行最终预测分类。

采用了6层图卷积神经网络(GCN)结构,在回归问题中表现出更快的学习效率。在训练与测试过程中,默认会对分类器的所有参数执行L2范数归一化处理,并确保各分类器参数之间的权重规模保持一致。在构建类别向量时,默认采用GloVe模型提取特征,并当类别名称包含多个词汇时,默认会计算所有词汇对应的词向量均值,并将其作为该类别的特征表示方法。
Experiment
Experiments on NELL and NEIL
针对NELL与NEIL的数据集进行实验研究。通过融合NELL与NEIL的数据资源来生成知识图谱结构。其中NEIL主要包含图像节点信息,而NELL则记录实体间的关联关系。值得注意的是,在使用自动生成的NELL数据时,默认情况下所得的知识图谱可能会包含一些不准确的关联(即噪声边)。为了进一步验证所提取的知识结构的有效性,在此基础上我们选取部分核心节点进行深入分析。

实验数据显示,在结合语义向量与知识图谱的技术下,在特定任务中的表现明显优于仅依靠语义向量的技术。此外,在知识图谱规模扩大时其优势更加明显,并进一步验证了我们提出的方法在处理含有噪声的知识图谱数据方面具有较高的鲁棒性

评估该方法在知识图谱中缺失边情况下的表现如何?首先,在丢弃5%至10%的边时,在此情况下观察到模型性能变化较小。这一现象可能归因于知识图谱中存在冗余信息。这一发现再次证明了我们的模型在面对小范围噪声变化时表现出良好的鲁棒性。然而,在丢弃超过30%的边后,则明显观察到准确率出现显著下降。这表明模型性能与其所处理的知识图谱规模密切相关

为了检验知识图谱结构的重要性,我们进行了基于星型模型和随机图模型的实验分析。结果显示,在这些模型中预测效果与随机猜测相当。这表明,在构建具有合理结构的知识图谱时效果显著;相比之下,在非合理结构的知识图谱中则会严重影响预测效果。

实验结果表明,在逐步增加GCN的层数后, 实验性能有所提升. 然而当GCN层数超过6层时, 效果提升并不显著. 这可能归因于随着模型复杂度的提高导致训练难度加大.

验证得到的分类器参数不是复制与它相近的分类器。

在词向量与分类器之间出现了不同的聚类模式,并由此可推断出我们的GCN模型并非仅通过直接映射语义向量至分类器来完成任务
Experiments on WordNet and ImageNet

该方法在性能方面表现最优,在测试集上的准确率显著提升。相较于Inception模型,采用ResNet-50架构能够实现更高的分类精度。该模型在ZSL任务中的性能不依赖于所选用的词向量表示(如glove和word2vec)。

我们的方法对使用哪种词向量不敏感。

在GZSL场景下,在该研究领域中我们的方法表现优于现有的ConSE方法;然而即使ConSE能够提供合理的预测结果但其主要关注点仍集中在seen类别的识别上
