论文:https://arxiv.org/abs/2109.01134
代码: https://github.com/KaiyangZhou/CoOp
像CLIP这样的大型预训练的视觉语言模型在学习表征方面显示出巨大的潜力,这些表征可以在广泛的下游任务中转移。与主要基于离散标签的传统表征学习不同,视觉语言预训练将图像和文本在一个共同的特征空间中对齐,这允许通过提示将 zero-shot转移到下游任务中,也就是说,分类权重是由描述感兴趣类别的自然语言合成的。在这项工作中,我们表明在实践中部署这种模型的一个主要挑战是提示工程,这需要专业领域的知识,而且非常耗时--人们需要花大量的时间来调整词语,因为措辞的轻微变化可能对性能产生巨大的影响。受自然语言处理(NLP)中提示学习研究的最新进展的启发,我们提出了语境优化(CoOp),一个专门用于调整CLIP-like视觉语言模型的简单方法,用于下游图像识别。具体来说,CoOp用可学习的向量对提示的上下文词进行建模,而整个预训练的参数则保持固定。为了处理不同的图像识别任务,我们提供了两个可实现的CoOp:统一语境和特定类别的语境。通过在11个数据集上的广泛实验,我们证明了CoOp只需要one or two shots就能以相当大的幅度击败手工制作的提示,并且能够在更多的shots中获得比提示工程更大的改进,例如,16shots的平均收益约为15%(最高达到45%以上)。尽管是一种基于学习的方法,CoOp与使用手工制作的提示语的zero-shot模型相比,实现了极好的领域泛化性能。
构建最先进的视觉识别系统的常见方法是训练视觉模型,使用离散的标签对一组固定的物体类别进行预测。从技术角度来看,这是通过将图像特征--由ResNet或ViT等视觉模型产生--与一组固定的权重相匹配来实现的,这些权重被视为视觉概念并随机初始化。尽管训练类别通常有文本形式,如 "金鱼 "或 "卫生纸",但它们将被转换成离散的标签,只是为了方便交叉熵损失的计算,而使封装在文本中的语义基本上没有得到利用。这样的学习范式将视觉识别系统限制在封闭的视觉概念上,使得它们无法处理新的类别,因为学习新的分类器需要额外的数据。
图1:提示工程与语境优化(CoOp)。前者需要使用一个保留下来的验证集来进行词语调整,效率很低;后者则将这一过程自动化,只需要几张标注过的图像就可以学习。
最近,视觉语言预训练,如CLIP和ALIGN已经成为视觉表征学习的一个有希望的替代方案。主要的方法是使用两个独立的编码器--每个模式一个,对图像和原始文本进行编码。例如,CLIP和ALIGN都将学习目标制定为对比性损失,它将图像和它们的文本描述拉到一起,同时将特征空间中不匹配的对推开。通过大规模的预训练,模型可以学习不同的视觉概念,并可以通过提示随时转移到任何下游任务。特别是,对于任何新的分类任务,人们可以首先通过给文本编码器描述任务相关类别的句子来合成分类权重,然后与图像编码器产生的图像特征进行比较。我们观察到,对于预先训练好的视觉语言模型来说,被称为提示的文本输入在下游数据集中起着关键作用。然而,确定正确的提示语是一项非同寻常的任务,这往往需要花费大量的时间来进行文字调整--措辞上的轻微改变可能会使性能产生巨大的差异。例如,对于Caltech101(图1(a),第2个与第3个提示),在类标记前添加 "a "会带来5%以上的准确率提高。此外,提示工程还需要关于任务的预先知识,最好是语言模型的基本机制。这一点在图1(b-d)中得到了体现,添加与任务相关的上下文可以带来显著的改善,即Flower102的 "花"、DTD的 "纹理 "和EuroSAT的 "卫星"。调整句子结构可以带来进一步的改进,例如,在Flowers102的类标记后加上 "一种花",在DTD的上下文中只保留 "纹理",在EuroSAT的 "卫星照片 "前加上 "中心"。然而,即使进行了广泛的调整,所产生的提示也绝不能保证对这些下游任务来说是最佳的提示。
受最近自然语言处理(NLP)中提示学习研究的启发,我们提出了一个简单的方法,称为上下文优化(CoOp),使提示工程自动化,特别是针对预训练的视觉语言模型。具体来说,CoOp用可学习的向量来模拟提示语的上下文词,这些向量可以用随机值或预训练的词嵌入来初始化(见图2)。我们提供了两种实现方式来处理不同性质的任务:一种是基于统一语境的,它与所有类别共享相同的语境,在大多数类别上运行良好;而另一种是基于特定类别的语境,它为每个类别学习一组特定的语境标记,被发现更适用于一些细粒度的类别。在训练过程中,我们只需使用交叉熵损失对可学习的语境向量进行预测误差最小化,同时保持整个预训练的参数固定。梯度可以通过文本编码器一路反向传播,提炼出参数中编码的丰富知识,用于学习任务相关的语境。
为了证明CoOp的有效性,我们对11个数据集进行了基准测试,这些数据集涵盖了不同的视觉识别任务,包括对一般物体、场景、动作和细粒度类别的分类,以及识别纹理和卫星图像等专门任务。结果显示,CoOp有效地将预先训练好的视觉语言模型变成了数据效率高的视觉学习者,只需要one or two shots就能以相当大的幅度击败手工制作的提示。学习提示视觉语言模型 通过使用更多的shot性能可以进一步提高。例如,使用16 shots ,与手工制作的提示相比,差距平均为15%左右,最高的达到45%以上。
CoOp的表现也优于线性探针模型,该模型被称为强大的少量学习基线。
此外,尽管CoOp是一种基于学习的方法,但它对领域转变的稳健性比zero-shot模型(使用人工提示)强得多。
综上所述,我们做出了以下贡献:
1. 我们对最近提出的视觉语言模型在下游应用中的适应性进行了及时的研究,并发现了一个与部署效率相关的关键问题,即及时工程。
2. 为了使预训练的视觉语言模型的提示工程自动化,我们提出了一种基于连续提示学习的简单方法,并提供了两种可以处理不同识别任务的实施方案。
3.我们首次表明,所提出的基于提示学习的方法在大型视觉语言模型的下游转移学习性能和领域转移下的鲁棒性方面优于手工制作的提示和线性探测模型。
4. 我们将我们的项目开源于https://github.com/KaiyangZhou/CoOp。
视觉语言模型最近在学习通用视觉表征方面表现出巨大的潜力,并允许通过提示将zero-shot转移到各种下游分类任务中。
据我们所知,视觉-语言学习的最新发展,特别是CLIP和ALIGN,主要是由以下三个领域的进展推动的。
i)用Transformers进行文本表示学习,
ii)大批量对比表示学习,
iii)网络规模的训练数据集--CLIP得益于4亿个策划的图像-文本对,而ALIGN利用了1. 8亿个有噪声的图像-文本对。
将图像和文本映射到一个共同的嵌入空间的想法从近十年前就开始研究了,但技术上有很大的不同。对于文本特征的提取,早期的工作主要是利用预训练的单词向量或手工制作的TF-IDF特征。
匹配图像和文本特征被表述为度量学习、多标签分类、n-gram语言学习以及最近提出的字幕。 我们的工作与最近的视觉语言模型的研究是正交的,目的是促进这种模型在下游数据集的适应和部署。
Petroni等人将大型预训练语言模型的知识探究正式定义为 "填空 "测试,最近在NLP的提示学习研究中引发了兴趣。
知识探测的基本思想是诱导预先训练好的语言模型来生成给定的cloze-style提示的答案,这可以使一些下游任务受益,如情感分析。Jiang等人提议通过文本挖掘和转述来生成候选提示,并确定能提供最高训练精度的最佳提示。Shin等人介绍了一种基于梯度的方法,该方法搜索标签可能性中梯度变化最大的标记。
与我们的工作最相关的是连续提示学习方法,这些方法在词嵌入空间中优化连续向量。与搜索离散token相比,这类方法的一个缺点是缺乏一个明确的方法来可视化向量学习的 "词 "是什么。
图2:语境优化(CoOp)的概述。其主要思想是使用一组可学习的向量对提示的上下文进行建模,可以通过最小化分类损失来优化。我们提出了两种设计:一种是统一的语境,它与所有类别共享相同的语境向量;另一种是特定类别的语境,它为每个类别学习特定的语境向量集。
我们简要地介绍了视觉语言的预训练,特别关注CLIP。我们的方法适用于更广泛的类似CLIP的视觉语言模型。
CLIP由两个编码器组成,一个用于图像,另一个用于文本。图像编码器旨在将高维图像映射到低维的嵌入空间。图像编码器的结构可以采取像ResNet-50或ViT这样的CNN形式。另一方面,文本编码器是建立在Transformer之上的,旨在从自然语言中生成文本表示。具体来说,给定一个单词(tokens)序列,如 "一张狗的照片",CLIP首先将每个token(包括标点符号)转换为小写的字节对编码(BPE)表示,这基本上是一个独特的数字ID。CLIP中的词汇量是49,152个。为了便于迷你批处理,每个文本序列都被[SOS]和[EOS]标记所包含,并以77的固定长度为上限。之后,IDs被映射到512-D的单词嵌入向量,然后被传递到Transformer。最后,[EOS]标记位置的特征被层层归一化,并由一个线性投影层进一步处理。
CLIP相关介绍参见下面两篇文章:
《论文笔记:CLIP:Learning Transferable Visual Models From Natural Language Supervision详解_nocol.的博客-CSDN博客》
《clip预训练模型综述_nocol.的博客-CSDN博客》
CLIP的训练是为了对准分别为图像和文本学习的两个嵌入空间。具体来说,学习目标被表述为一个对比性损失。给定一批图像-文本对,CLIP最大化匹配该对的余弦相似度,同时最小化所有其他未匹配对的余弦相似度。为了学习更容易转移到下游任务的多样化视觉概念,CLIP的团队收集了一个由4亿个图像文本对组成的大型训练数据集。
由于CLIP是预先训练过的,以预测图像是否与文本描述相匹配,它自然适合于zero-shot识别。这是通过比较图像特征与文本编码器合成的分类权重来实现的,文本编码器把指定感兴趣的类别的文本描述作为输入。形式上,让f是由图像编码器对图像x提取的图像特征,{wi}Ki=1是由文本编码器生成的一组权重向量。K表示类的数量,每个wi来自一个提示,其形式可以是 "一张[CLASS]的照片"。其中类别标记被特定的类别名称所取代,如 "猫"、"狗 "或 "汽车"。然后,预测概率被计算为:
其中τ是由CLIP学习的温度参数,cos(-, -)表示余弦相似度。
与传统的分类器学习方法(即从随机向量中学习封闭的视觉概念)相比,视觉语言预训练允许通过高容量的文本编码器探索开放的视觉概念,导致更广泛的语义空间,反过来使学到的表征更容易转移到下游任务。
我们提出了语境优化(CoOp),它通过用连续的向量对语境词进行建模,避免了人工提示调整,这些向量是在大量预训练参数被冻结的情况下从数据中端到端学习的。图2中显示了一个概述。
下面我们提供几种不同的实现方式。
我们首先介绍统一的语境版本,它与所有类别共享相同的语境。具体来说,给定文本编码器g(-)的提示被设计为以下形式
其中,每个[V]m(m∈{1,...,M})是一个与词嵌入相同维度的向量(即512的CLIP),而M是一个超参数,指定上下文标记的数量。
通过向文本编码器g(-)转发一个提示信息t,我们可以得到一个代表视觉概念的分类权重向量(仍然来自[EOS]标记位置)。
预测概率被计算为
其中,每个提示ti中的类标记被第i个类名称的相应的词嵌入向量所取代。
除了像方程(2)中那样把类标记放在序列的末尾,我们还可以把它放在中间,例如
这增加了学习的灵活性--允许提示者用补充描述来填补后面的单元格,或者用句号等终止信号来提前切断该句子。
另一个选择是设计特定类别的情境(CSC),其中情境向量对每个类别是独立的,即[V]i1[V]i2 ... ... [V]iM 6= [V]j 1[V]j 2 . . [V]j M 对于i 6= j和i, j∈{1, . . , K}. 作为统一语境的替代品,我们发现CSC对于一些细粒度的分类任务特别有用。
在交叉熵的基础上使标准分类损失最小化,梯度可以通过文本编码器g(-)一路反向传播,利用参数中编码的丰富知识来优化上下文。连续表征的设计也允许在词嵌入空间中进行充分探索,这有利于学习与任务相关的上下文。
我们的方法专门解决最近提出的大型视觉语言模型的适应性问题,如CLIP。
我们的方法与NLP中为语言模型开发的提示学习方法(例如GPT-3)有一些区别。首先,骨干架构对于CLIP-like模型和语言模型来说显然是不同的--前者将视觉和文本数据都作为输入,并产生用于图像识别的对齐分数,而后者只为处理文本数据而定制。
第二,预训练的目标是不同的:对比性学习与自回归学习。这将导致不同的模型行为,因此需要不同的模块设计。
我们选择在CLIP中使用的11个公开可用的图像分类数据集。ImageNet,Caltech101,OxfordPets,StanfordCars,Flowers102,Food101、FGVCAircraft、SUN397、DTD、EuroSAT和UCF101。这些数据集构成了一个全面的基准,它涵盖了多样化的视觉任务,包括对一般物体、场景、行动和细粒度类别的分类,以及识别纹理和卫星图像等专门任务。
图3:11个数据集上的几率学习的主要结果。总的来说,CoOp有效地把CLIP变成了一个强大的few-shot学习者(实线),实现了比zero-shot CLIP(星星)的显著改善,并在与线性探针的替代方案(虚线)的竞争中表现出色。M表示上下文长度。"结束 "或 "中间 "意味着将类标记放在结束或中间。CSC指的是特定类别的语境。
我们遵循CLIP(Radford等人,2021年)中采用的few-shot评估协议,分别使用1、2、4、8和16 shots进行训练,并将模型部署在完整的测试集中。报告了三次运行的平均结果供比较。
CoOp有四个版本:将类标记定位在最后或中间;统一语境与CSC。除非另有说明,ResNet-50被用作图像编码器的主干,上下文标记的数量M被设置为16。
所有模型都建立在CLIP的开源代码之上。CoOp的语境向量是通过从标准偏差等于0.02的零均值高斯分布中抽取而随机初始化的。训练是用SGD和0.002的初始学习率完成的,该学习率通过余弦退火规则衰减。16/8shots拍摄的最大历时被设置为200,4/2shots为100次,1shot为50次(除了ImageNet,最大历时被固定为50次)。为了减轻在早期训练迭代中观察到的爆炸性梯度,我们通过将学习率固定为1e-5,仅在第一个历时中使用热身技巧。
我们将CoOp与两种基线方法进行比较。第一种是0-shot CLIP,它是基于手工制作的提示。我们遵循Radford等人提出的提示工程准则。
对于一般物体和场景,"一张[CLASS]的照片 "被采用。对于细粒度的类别,添加与任务相关的上下文,如OxfordPets的 "一种宠物 "和Food101的 "一种食物"。
当涉及到专门的任务时,如识别DTD中的纹理,提示被定制为"[CLASS]texture.",其中类名是形容词,如 "bubbly "和 "dotted"。在高质量的预训练模型的特征(如CLIP)之上训练一个线性分类器,可以很容易地实现与最先进的几率学习方法的性能相当,这些方法通常要复杂得多。
图3总结了结果。我们的默认模型是CLIP+CoOp,类标记被定位在最后。两种不同的定位类令牌的方式取得了相似的性能,因为它们的曲线高度重叠。从左上角显示的平均性能来看,我们观察到CLIP+CoOp是一个强大的少数次学习者,平均只需要两次射击就能获得比零次射击CLIP更多的分数。考虑到16次的训练,CoOp带来的平均差距可以进一步增加到15%左右。
图4:与手工制作的提示语比较。
图4列出了CoOp在16 shots中比手工制作的提示语所获得的绝对改进。在专门的任务,即EuroSAT和DTD上观察到巨大的改进,性能的提高分别达到45%和20%以上。性能上的跳跃在大多数细粒度的数据集上,包括Flowers102、StanfordCars和FGVCAircraft,以及场景和动作识别数据集(即SUN397和UCF101)也很明显(那些超过了 10%)。
由于ImageNet是一个包含1000个类的挑战性数据集,4.77%的改进也是值得注意的。相比之下,在两个细粒度的数据集,OxfordPets和Food101上的增长就不那么吸引人了。通过挖掘图3中CLIP+CoOp在这两个数据集上的曲线,我们发现即使使用了更多的镜头,性能改进的势头也会丧失,这似乎是一个过度拟合问题。一个潜在的解决方案是施加更高的正则化,比如增加权重的衰减。尽管如此,总体结果足以证明CoOp有能力以有效的数据方式学习与任务相关的提示语。
就整体性能而言(图3,左上角),CLIP+CoOp表现出比线性探针模型明显的优势。后者平均需要4次以上的shots才能与零次拍摄的性能相匹配,而CoOp在4次shots时的平均增益已经令人印象深刻。 同样明显的是,在极端的低数据制度下,如一或两张照片的差距要大得多,这表明CoOp比从头开始学习线性分类器对少数照片的学习要有效得多。我们还观察到,在两个专门的任务(DTD和EuroSAT)以及几个细粒度的数据集(Flowers102和FGVCAircraft)上,线性探针模型与CLIP+CoOp相当--这并不太令人惊讶,因为预先训练的CLIP空间已经被证明是强大的,这使得线性探针模型成为强有力的竞争者。
然而,CoOp的CSC版本可以在上述数据集上击败线性探针CLIP,而且,当有更多的shots可用时,显示出更好的潜力。我们后来表明,CoOp在领域泛化方面获得了比线性探测模型更强的性能。
表1使用不同视觉主干与zero-clip对分布偏移的鲁棒性比较。M: CoOp的上下文长度。
平均而言,使用统一的上下文会带来更好的性能。关于何时应用CSC和何时不应用,我们有以下建议。对于通用对象(ImageNet和Caltech101)、场景(SUN397)和动作(UCF101),使用统一上下文显然更好。统一上下文在一些细粒度的数据集上也有更好的效果,包括OxfordPets和Food101,但在其他数据集上,如StanfordCars、Flowers102和FGVCAircraft,CSC版本是首选。CSC在DTD和EuroSAT这两个专门任务上也产生了更好的性能,特别是在16shots上。然而,在具有挑战性的低数据场景(少于8shots)中,CSC的性能大多低于统一语境,这是有道理的,因为CSC比统一语境有更多的参数,需要更多的数据进行训练。
由于CoOp需要在特定的数据分布上进行训练,它有可能学习到虚假的相关性,这对未见过的分布(领域)的泛化是不利的。相反,zero-shot CLIP不受特定数据分布的束缚,对分布变化表现出很强的鲁棒性。在这一节中,我们旨在揭示CoOp对分布变化的鲁棒性,与zero-shot CLIP和线性探测模型相比较。
源数据集是ImageNet。目标数据集是ImageNetV2、ImageNet-Sketch、ImageNet-A和ImageNetR,它们都有与ImageNet兼容的类名,允许CoOp学习的提示语无缝转移。ImageNetV2是一个重现的测试集,使用不同的来源,同时遵循ImageNet的数据收集过程。ImageNet-Sketch包含属于相同的1000个ImageNet类的草图图像。ImageNet-A和-R都包含从ImageNet的1,000个类的子集中衍生出来的200个类。前者由现实世界中经过对抗性过滤的图像组成,这些图像会导致目前的ImageNet分类器产生较低的结果,而后者则以不同的图像风格(如绘画、卡通和雕塑)对ImageNet类进行演绎。
图5:对CoOp的上下文长度和各种视觉骨架的调查。
表2:在ImageNet上使用不同的视觉骨干,与提示工程和提示集合进行比较
表3:随机与手动初始化。
表1总结了结果(有各种视觉骨干)。令人惊讶的是,尽管接触了源数据集,CoOp增强了CLIP对分布变化的鲁棒性。这表明学习到的提示也是可推广的。此外,有趣的是,使用较少的语境标记会导致更好的鲁棒性。相比之下,线性探针模型在这些目标数据集上获得的结果要差得多,暴露了它在领域泛化方面的弱点。
应该使用多少个情境标记?有更多的语境标记是否更好?第4.2节中的结果表明,较短的上下文长度有利于领域的泛化(可能是由于较少的参数被学习,从而减少过拟合)。
在此,我们对源数据集的这个超参数进行研究。
具体来说,我们在11个数据集上重复实验,将上下文长度从4到8到16不等。
图5(a)显示了平均结果,它表明有更多的上下文标记会导致更好的性能,并且将类标记定位在中间会获得更长的上下文长度的动力。
总而言之,选择完美的语境长度并没有黄金法则,因为我们需要在性能和分布转移的鲁棒性之间取得平衡。
图5(b)总结了使用涵盖CNN和ViTs的各种视觉骨干网在11个数据集上的结果。结果是预期的:骨干网越先进,性能就越好。在所有的架构中,CoOp和手工制作的提示之间的差距是很大的。
CLIP的作者提出,通过对使用不同手工制作的提示产生的多个zero-shot分类器进行组合,可以获得额外的改进,例如 "一张大的[CLASS]的照片。"、"一张不好的[CLASS]的照片。"和 "一张折纸[CLASS]。",这些提示分别反映了一张图像的不同比例、视图和抽象。
我们很想知道,与提示集合相比,通过CoOp学习的提示是否还能保持优势。为了进行公平的比较,我们使用了Radford等人的精选提示,这些提示已经在ImageNet上进行了广泛的调整,以构建集合分类器。表2显示了比较结果并证明了CoOp的优越性。 鉴于提示集合的潜力,未来的工作可以研究如何从集合的角度改进CoOp。
表4:由CoOp学习的16个语境向量中每个向量的最近的词,其距离在括号中显示。N/A表示非拉丁文字
表5: CoOp与其他微调方法在ImageNet上的对比(w/ 16 shots)。∆:与0-shot模型的差异。
我们进一步将CoOp与其他微调方法进行比较:
i)微调CLIP的图像编码器;
ii)优化添加到文本编码器输出的转换层;
iii)优化添加到文本编码器输出的偏置项。
结果显示在表5中。很明显,对图像编码器进行微调的效果并不好。
增加一个转换层可以略微改善zero-shot模型。添加一个偏置项显示了有希望的结果,但在很大程度上仍然低于CoOp的表现,这表明经过文本编码器的梯度提供了更多有用的信息。
我们比较了随机初始化和人工初始化。后者使用 "a的照片 "的嵌入来初始化11个数据集的语境向量。为了公平比较,在使用随机初始化时,我们也将上下文长度设置为4。
表3显示,"好的 "初始化并没有带来多大的差别。尽管进一步调整初始化词可能会有帮助,但在实践中我们建议使用简单的随机初始化方法。
这是很困难的,因为上下文向量是在一个连续的空间中优化的。我们采用一种间接的方法,在词汇中搜索与基于欧氏距离的学习向量最接近的词。
请注意,CLIP使用BPE表示法进行标记化,所以词汇包括经常出现在文本中的子词,如 "hu"(被许多词如 "hug "和 "human "所归纳)。表4显示了在一些数据集上的搜索结果。我们观察到,有几个词与任务有些相关,例如Food101的 "享受",OxfordPets的 "蓬松 "和 "爪子",以及DTD的 "漂亮"。
但是当把所有最近的词连在一起时,提示就没有什么意义了。我们还观察到,当使用人工初始化时(如 "一张照片"),收敛的向量的最近词大多是用于初始化的词。我们猜想,学习到的向量可能编码了超出现有词汇的含义。总的来说,我们无法根据观察结果得出任何确定的结论,因为用最近的词来解释学习到的提示可能是不准确的--向量的语义不一定与最近的词相关。
大型预训练的视觉语言模型在不同的下游应用中显示出令人惊讶的强大能力。然而,这些模型鉴于其 "至关重要的核心但不完整 "的性质,也被称为视觉基础模型,需要使用自动化技术对视觉语言模型进行学习提示,以获得更好的下游性能和效率。
我们的研究及时提供了关于CLIP like模型如何通过使用提示学习变成一个数据高效的学习者的见解,并揭示了尽管是一个基于学习的方法,CoOp在领域泛化方面的表现比手动提示好得多。
这些结果有力地证明了提示学习对于大型视觉模型的潜力。值得注意的是,我们的论文提出了第一个关于用提示学习来适应大型视觉模型的综合研究。
虽然性能很好,但CoOp的结果相对难以解释,就像NLP中的其他连续提示学习方法。实验还显示,鉴于Food101上的表现较弱,CoOp对噪声标签很敏感。
尽管如此,CoOp的简单性使得未来的工作容易扩展,而且仍有许多有趣的问题需要探索,如跨数据集转移和测试时间适应。研究超大型视觉模型的更通用的适应方法也很有趣。总之,我们希望这项工作中提出的经验性发现和见解能够为未来关于新兴基础模型的高效适应方法的研究铺平道路,这仍然是一个新生的研究课题。