度量学习(Metric Learning)也叫距离度量学习(Distance Metric Learning),是一种传统的机器学习方法,随着深度学习的兴起,将深度学习结合在度量学习这种传统方法上也逐渐成为一种趋势,即Deep Metric Learning。本文将解读一篇深度度量学习论文,从中可以看到一种通用的样本对加权框架,及一种度量学习损失函数。
论文:Multi-Similarity Loss with General Pair Weighting for Deep Metric Learning
地址:https://arxiv.org/pdf/1904.06627.pdf
该论文的贡献包括三个方面:
度量学习的目的是学习一种低维空间,在这个空间内同类样本相距非常近,异类样本距离比较远。深度度量学习利用卷积网络强大的特征抽取能力,能学习更好的嵌入空间。
最近的许多深度度量学习方法都是建立在成对样本的基础上的。在形式上,它们的损失函数可以表示为嵌入空间中的两两余弦相似性。我们将这种方法称为基于样本对的深度度量学习。属于该类方法的损失函数包括:contrastive loss;triplet loss;triplet-center loss;binomial deviance loss;histogram loss ;distance weighted margin-based loss等。
对于这些基于样本对的方法,训练样本被构造成成对、三个一组或四个一组,导致训练对的多项式增长,这是高度冗余和信息量较少的。这就给基于样对的方法带来了一个重要问题,即随机抽样的训练可能会被冗余的样本对所淹没,导致收敛速度变慢,模型退化,性能低下。
设 为一实例向量, 为一实例矩阵, 为标签向量,其中m为样本数。通过以 为参数的神经网络 将 映射到 维空间中,我们定义两个样本的相似度为:
公式(1)为计算神经网络参数
的导数, 我们可以重新构造一个用于计算配对权重的函数
:
公式(2):
其中
为常量。假设对于负样本对
公式(3):
其中
为了证明GPW框架的泛化能力,我们来回顾四种典型的基于成对的损失函数用于深度度量学习:
公式(4):
其中
公式(5):
其中
公式(6):
按照公式(3)求导后得出:
公式(7):
公式(8):
公式(7)表明,正对的权重是由其相对相似度决定的,衡量方法是将其与具有相同锚点的剩余正对进行比较。负对的权值的计算类似。
公式(9):
其中
公式(10):
可以发现,Binomial Deviance Loss是contrastive loss的平滑版本。在公式(3)中,相似度高的负对被赋予更大的权值,这意味着它的信息量更大,这是通过从不同的类中区分两个相似的样本(形成负对)来实现的。
GPW 还有更重要的实践意义,我们可以在它定义的框架下构建性能更强大的损失函数。
MS Loss 综合考虑了三种相似性,它们能概括目前大多数基于样本对的损失函数。它们可以分为自相似性与相对相似。给样本对加权的核心在于判断局部分布 - 即它们之间的相似性,局部样本之间的分布和相互关系并不是仅仅决定于两个样本之间的距离和相似性,还取决于当前样本对与其周围样本对之间的关系。
因此,对于每一个样本对,我们不仅需要考虑样本对本身的自相似性,同时还要考虑它与其它样本对的相对相似性。其中相对相似性又可以分为正相对相似性 (正样本)、负相对相似性(负样本)两种相似性,它们三者共同构建了MS Loss 的两步迭代策略。
下图展示了上面三种相似性的直观变化,我们希望计算实线样本对间的相似性:
图中 case 1 的相似性是增加的,case 2 和 case 3 的相似性都将降低。因为 case 1 中的自相似性很明显没有考虑与周围样本的关系,所以作者引入了后面两种相对相似性。
在 case 2 中,即使 anchor 与负样本的自相似性不变,但我们还需要考虑负样本的近邻。如果负样本间的自相似性增加,那么它与 anchor 间的相对相似就自然降低。case 3 也是同样的道理,正样本间的自相似要是增加了,那么 anchor 与负样本的相对相似性就要降低。
如下表所示,基于样本对的各种损失函数都可以归类到这三种相似性,目前只有该论文提出的 MS Loss 能同时考虑三种相似性。
其他损失函数之所以没能全部考虑三种相似性,是因为它们并没有特意关注这一本质区别,很多损失函数都是从直觉的角度设计的,因此只考虑到其中一种相似性度量,能考虑到两种的情况都很少。
如下图所示,MS Loss 通过采样和加权两次迭代,实现更加高效的样本训练。它通过定义自相似性和相对相似性,在训练过程中更加全面地考虑了局部样本分布,从而能更高效精确的对重要样本对进行采用和加权。这里重要样本对通常是含有更大的信息量的样本对。
在 MS Loss 的第一阶段采样中,它会通过某种相似性判断哪些样本对学习嵌入空间更重要。例如上图连着黑线的蓝色、红色样本点,它们就比同色的其它样本点重要,信息量更大,因为黄色样本点要是想与这两种样本分离,那就需要把这两个样本推开。
第二阶段的加权则是在采样的基础上进行的,第一阶段采样的样本有正样本(黄色)也有负样本(红色、蓝色),我们需要另外两种相似性来确定它们的重要性。具体而言,如果正样本相似性越高,那么加的权就越少,因为它已经不太需要进一步拉近距离。但如果负样本的相似性太高,就表示它离 anchor 非常近,我们需要提供更大的权重以使模型把它们推地更远。
前面已经了解到,MS Loss 采用采样和加权交替迭代的训练策略来实现上述三种相似性。研究者表示他们实际上也是站在前人的肩膀上,巧妙地融合表 1 中 Triplet、Lifted Structure 和 Binomial Deviance 三种损失函数,它们都只采用三种相似性中的一种。
我们需要分两步完成目标。因为我们很难构建单个训练和优化步骤来同时实现三种相似性,这样的公式不仅复杂,同时还容易产生冲突。此外,分为两步实现也不会违反 GPW 的基本思想。因为第一步的采样就是抛弃一些非常不重要,信息量很少的样本,可以看作将它们的权重设置为 0。这个权重与第二步的权重类似,它们结合起来可以视为一种加权方法。
第一步通过正相对相似性确定哪些是信息量大的样本对。
假设
公式(11):
如果
公式(12):
对于正相对相似性,我们可以度量在相同 anchor 下正样本和负样本对之间的相似性。具体而言,如果 anchor 与负样本的相似性比它与最不相似的正样本对还要大,那么该负样本就是重要的样本。
同理,如果 anchor 与正样本的相似性比它与最相似的负样本还要小,那么该正样本也含有重要信息。这两者加起来就是该 anchor 第一步选出的重要样本。
第二步通过自相似性和负相对相似性为重要的样本对进一步赋不同的权重。
对于挑选出的重要负样本对
公式(13):
正样本对
公式(14):
其中
公式(13)(14)结合了 binomial deviance 和 lifted structure 两种损失函数,且分别利用了自相似性和负相似性。然而,作者通过实验证明,它们的直接结合并不能导致性能的提高。最后,作者将采样和加权策略结合起来,从而产生了 MS Loss 这种新型基于成对样本的损失函数,MS loss的公式如下:
公式(15):
无论是Cars196和CUB200这样的细粒度数据集,还是SOP和In-Shop这样的大类别数据集,该论文提出的方法都能获得新的最佳或相当的性能,即使其他方法使用了ABE和BIER等集成技术。结果对比如下:
刘娜,2019年6月毕业于北京邮电大学自动化学院,毕业后加入贝壳找房语言智能与搜索部,主要从事NLP及强化学习相关工作。
推荐阅读
斯坦福大学NLP组Python深度学习自然语言处理工具Stanza试用
太赞了!Springer面向公众开放电子书籍,附65本数学、编程、机器学习、深度学习、数据挖掘、数据科学等书籍链接及打包下载
数学之美中盛赞的 Michael Collins 教授,他的NLP课程要不要收藏?
模型压缩实践系列之——bert-of-theseus,一个非常亲民的bert压缩方法
关于AINLP
AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。