论文题目:Matryoshka Representation Learning
来源:NeurIPS2022/华盛顿大学+谷歌
方向:表示学习
开源地址:https://github.com/RAIVNLab/MRL
摘要
学习表征对于现代机器学习很重要,广泛用于很多下游任务。大多数情况下,每个下游任务的计算资源和需求都是未知的,因此对于某个下游任务,一个固定长度的表征可能会过大或过小。这引出一个问题:我们能否设计出一个灵活的表示方式,以适应具有不同计算资源的多个下游任务?
本文提出了俄罗斯套娃表示学习Matryoshka Representation Learning (MRL),编码不同粒度的信息,并让一个编码能够适应不同计算资源的下游任务。MRL最小限度地修改了当前的表示学习流程,没有引入额外的推理和部署开销。MRL学习到了至少和单独训练的低维表征一样准确的从粗到细的表征。MRL具有以下出色性能:(a)在保证ImageNet-1K分类任务精确率的前提下,将表征大小缩小为原来的14倍。(b)将ImageNet-1K和4K上的大规模检索速度加快到原来的14倍。©将长尾少样本分类的准确率提升了2%。(d)提升的同时也能保证鲁棒性。最后本文发现MRL可以很容易地扩展到各种模态的模型,比如视觉模型ViT/ResNet,视觉语言模型ALIGN,语言模型BERT等。
介绍
深度表征进行部署时一般分为两步:(1)昂贵但是固定的前向推理来计算表征 (2)在下游应用中使用表征。使用成本一般需要使用编码维度,数据量(N),标签空间(L)三方面进行计算。对于大规模数据的网络应用,使用成本一般会超过计算成本。固定的表征大小使得不同任务都需要使用高维编码向量,尽管许多应用的资源和精度需求不同。
人类对于自然世界的理解有很自然的从粗到细的粒度,然而由于梯度训练的归纳偏置,深度学习模型倾向于向整个表征向量扩散信息。之前的方法一般使用三种方式来得到有弹性的表示模型:训练多个低维度模型(ResNet);联合优化不同容量的子网络[1,2];向量压缩(SVD)。但每种方法都因为训练和维护费用**,大量昂贵的对所有的数据的前向推理,存储和内存成本,昂贵的实时特征选择或准确率的显著下降**很难满足大规模部署。通过编码不同粗细粒度的与独立训练准确率相当的表征,本文以最小的额外开销学习一种可以在推理过程中无需额外成本自适应部署的表征。
MRL通过嵌套的形式在同一个高维向量中对 O ( log ( d ) ) O(\log(d)) O(log(d)) 维度的低维向量做显式优化。下图展示了核心技术,随着维度的增加,表征的粒度也越来越细。
本文主要关注最重要的两项任务,大规模分类和检索。对于分类任务,使用MRL训练的模型中的可变大小表征进行自适应级联(小于等于某个阈值则使用更高维度的向量进行分类**),显著降低了实现特定精度所需的编码的平均维数。对于检索任务,先使用最前面的维度进行粗排**,再使用更多的维度对粗排结果进行精排。同样还可以用在长尾持续学习以及判断样本间分类的困难程度和信息瓶颈。
方法
MRL的目的是学习许多个小于等于 ⌊ log d ⌋ \lfloor \log d\rfloor