APP下载

小样本关系分类研究综述

2022-04-12刘鹏远

中文信息学报 2022年2期
关键词:实体样本分类

胡 晗,刘鹏远

(1. 北京语言大学 信息科学学院,北京 100083;2. 北京语言大学 国家语言资源监测与研究平面媒体中心,北京 100083)

0 引言

关系分类是自然语言处理领域中的一项重要任务,它致力于判断给定语句中两个目标实体之间的预定义关系,为构建结构化知识(如知识图谱)提供了基础。当前用于该任务的主流深度学习模型以大量监督数据为驱动,导致模型泛化能力依赖于监督数据的数量和质量。尽管正则技术被广泛用来降低深度学习模型对训练数据的过拟合,但其并不能为模型提供额外的监督信息。因此当监督数据不足时,简单地对模型加以正则并不能真正解决泛化问题。[1]为了缓解训练数据不足的问题,节省人工标注成本,Mintz等人[2]采用了远程监督的方法。该方法假设“两个实体如果在知识库中存在某种关系,则包含这两个实体的语句在某种程度上能表示出这种关系”,启发式地将语句中的目标实体与知识库中的实体对齐,达到自动标注语句的目的。但这个假设也带来了以下问题: ①同一实体对在不同语句中所蕴涵的关系可能不同,利用远程监督方法会产生噪声数据,如图1所示; ②很多领域的知识库并不完善(如医疗领域),且大部分实体对和关系呈长尾分布,通过这种方法获取的可用于训练的数据仍然不足,如图2所示。

图1 远程监督方法引入了噪声数据[3]

图2 DBpedia中关系出现的频率与对应未见实体占比分布图[4]

相比之下,人类拥有利用过去所学知识快速学习新概念的能力。因此,研究者们希望构建一种新的训练方法,使模型仅在少量训练样本的情况下学习,并具备良好的泛化能力。Feifei等人[5]首次提出单样本学习(one-shot learning),采用贝叶斯模型,利用已学习的类别知识帮助模型在每个新类别仅有单个训练样本的情况下进行学习。至今,已有大量研究工作投入到单/小样本学习(one/few-shot learning)领域,其中最具有代表性且主流的方法是元学习(meta learning)方法。元学习,也称“学会学习”,是系统地观察模型在不同的学习任务中的表现,从这种经验或元数据(meta data)中学习,然后以更快的速度学习新任务。[6]

目前,小样本学习的研究主要集中于计算机视觉领域。启发于人类的记忆,Weston等人[7-8]提出记忆网络,将先验知识存储在记忆模块中以供检索与更新。从优化的角度出发,Andrychowicd等人[9]训练一个元优化器,帮助模型高效搜索合适的任务参数。Finn等人[10]则通过学习一个与任务无关的通用初始化参数,使得模型仅在少量训练样本情况下快速适应新任务。Vinyals等人[11]从度量的角度提出了匹配网络,并首次提出了训练与测试过程相匹配的情境(episode)训练原则,如图3所示。

图3 元学习情境训练方法

在自然语言处理领域,小样本学习刚刚兴起。Yu等人[12]利用多个度量函数来解决任务多样性小样本分类问题。Geng等人[13-14]提出静态和动态记忆的归纳网络来解决因类别样本过少而带来的样本方差问题。Han等人[15]首次将小样本学习引入关系分类任务,构建了小样本关系分类数据集FewRel,并尝试了几种典型的小样本学习方法与人类基准做比较。许多研究者在此基础上进行了探索,Soares等人[16]提出的无监督句子匹配方法在这一任务上的表现甚至超越了人类基准。针对小样本关系任务的多样性及任务中可能存在的噪声样本,Gao等人[17]利用层级注意力来增强模型对小样本任务多样性以及噪声样本的鲁棒性。Xie等人[18]则通过异构图网络与对抗训练减少模型对噪声样本的敏感性。Obamuyide等人[19]将监督式关系分类任务视为元学习的一个例子,提出模型无关的元学习方案,力求模型在数据充足与数据稀缺两种情况下都有良好表现。由于一些领域的元数据不足以训练一个在该领域任务间有较好泛化能力的元模型,Gao等人[20]在FewRel数据集的基础上提出了Few-Rel 2.0数据集,探索元学习跨领域泛化以及非预定义类别检测问题。Geng等人[21]则提出了更严苛的元训练条件,探索元学习模型在有限元数据情况下的学习能力。

本文系统回顾了小样本关系分类任务具有代表性和启发性的工作(图4),探讨了这些工作在当前用于解决该任务的元学习设定下的优势与不足,并给出了未来小样本关系分类的发展方向。

图4 小样本关系分类算法分类导图

1 问题定义

1.1 N-way K-shot小样本分类

小样本学习是监督式机器学习的一种特殊情况,其目标是在限制目标任务训练数据数量的情况下,训练出对该任务新数据具有良好泛化能力的模型。

由于训练集所提供的训练数据有限,用经验风险近似期望风险不够精准。当前以数据驱动为主的深度学习方法在这种任务上会出现过拟合的现象。尽管正则技术被广泛用来降低深度学习模型对训练数据的过拟合,但其并不能为模型提供额外的监督信息。因此,正则方法并不能提高小样本情况下用经验风险替代期望风险的可靠性。为了提高小样本情况下模型的泛化能力,结合先验知识至关重要。

1.2 元学习

元学习,或称“学会学习”,是元学习器(meta learner)系统地观察基学习器(base learner)在不同的学习任务(task)中的表现,从这种经验或元数据中学习,然后以更快的速度学习未曾见过的新任务(novel task)的方法。

在这个过程中,存在两个层面的学习: ①元学习器迭代地学习不同任务间的元知识(meta know-ledge); ②基学习器基于元知识以及新任务中的特定信息快速学习并处理该任务。

对于一个小样本分类任务,基学习器的目标是找到最优假设o*。为了接近o*,基学习器确定了假设空间H,其中包含了由φ参数化的假设h(·,φ)。优化算法通过搜索假设空间H来找到一个对于Dtrain最优的假设h。Wang等人[1]系统分析了经验风险的可靠性与样本复杂度和假设空间之间的联系,为了使经验风险对期望风险的近似以一定概率达到一定精度,模型决定的假设空间越复杂,所需要的训练样本就越多。

θ=argminθETs~p(T)lθ(DTs)

(1)

lmeta(gφ(Dtrain|θ),h*)=|Ltest(h)-Ltest(h*)|

(2)

(3)

2 常规小样本关系分类

2.1 数据集

FewRel是第一个英文小样本关系分类数据集,它包含100种关系,每种关系700个样本。作者以Wikipedia为数据库,Wikidata为知识库,通过远程监督的方法将数据库中的句子与知识库中的事实对齐。为了扩大实体集,作者首先利用命名实体识别技术挖掘文章中的非锚点实体,然后通过实体链接技术将挖掘出的实体与Wikidata中的实体进行匹配。由于对于表达某种关系的一组句子来说,其包含的可能是同一对实体。为了避免模型机械地根据句子中出现的实体对而不是句子本身的语义来进行关系分类,作者在每种关系中,对于同一对实体只保留一个样本。之后,去除样本量不足1 000的关系,对剩余的关系,每种关系随机抽取1 000个样本。经过标注人员的筛选标注,去除正样本不足700的关系,以Kappa值对剩余的关系进行降序排列,保留前100种关系。最终,数据集以64∶16∶20的比例被划分为训练集、验证集和测试集。

2.2 常规小样本关系分类算法

在常规小样本关系分类算法中,基于度量和优化的元学习方法最为常见。Han等人[15]测试了基于参数生成的元学习MetaNet[23],基于图网络的元学习GNN[24],基于时序卷积的元学习SNAIL[25]。但这些复杂的方法在小样本关系分类任务上的表现并不如简单的基于度量的方法。后续的研究者在此基础上进行探索,本文将这些模型分为基于原型和基于分布式表达两大类。

2.2.1 原型式小样本关系分类算法

原型式小样本关系分类算法是基于度量的一类算法。度量方法将样本嵌入到一个更小的空间中,使得相似的样本聚在一起,不相似的样本分离。这些方法的不同点在于用于生成类别原型的向量表示以及生成类别原型的方法。

(4)

最后衡量fθ(xtest)与cn之间的距离d(fθ(xtest),cn)(如欧氏距离)对其做最近邻分类。最终,通过分类损失对嵌入空间进行优化。在原型网络中,编码器fθ(·)既是元学习器,也是基学习器。类似于多任务学习,其假设如果学习到的嵌入空间能够处理很多任务,那么这个空间也有足够的能力处理新任务。支持集不再用于基学习器的参数更新,而是作为嵌入空间中的类别锚点。

(2) 大间隔原型网络(large margin prototypical network)[27]在原型网络的基础上,采用了更加细粒度的特征表示以及额外的目标函数。除了利用句子级别的表示fsentence(x)=fθ(x)以外,作者根据关系分类的特点,将句子分为五个部分,头实体之前的部分rf,头实体eh,头实体和尾实体之间的部分rm,尾实体et,尾实体之后的部分rb,利用多个CNN对其分别做嵌入得到嵌入表示。之后,将得到的表示拼接起来送入一个全连接层并用ReLU函数激活,获取这些表示的非线性关系,如式(5)所示。

fphrase(x)=ReLU(fφ(rf⊕eh⊕rm⊕et⊕rb))

(5)

然后将句子级表示和短语级表示拼接起来得到最终的表示,如式(6)所示。

f(x)=fsentence(x)⊕fphrase(x)

(6)

为了在嵌入空间中增加类间距离,缩短类内距离,作者额外采用了三元组损失函数作为辅助,如式(7)所示。

其中,N为Episode(task)的大小,ai=cn是锚点,pi是正样例,ni是负样例。平衡交叉熵损失与三元组损失得到最终的损失函数,如式(8)所示。

L=Lsoftmax+λLtriplet

(8)

(14)

(15)

最终进行类别匹配,对问题样例作出分类,如式(18)所示。

(18)

为了生成更具代表性的类别原型,除了分类损失外,作者额外加入了非一致性度量损失,保证同一类别中的样本不会互相偏离,如式(19)、式(20)所示。

(4) 基于GPT的原型网络(prototypical GP-Transformer)[29]采用预训练语言模型GPT替代原始原型网络中的CNN作为编码器,以获得更好的类别原型的表示。在GPT中每个句子首尾由标记符标记句子的开始和结束,由于Transformer是自注意力模型,能够注意到整个句子,因此其嵌入表示h被用于后续的分类。为了标示出句子中的目标实体,作者尝试了不同的标记目标实体的方法: ①在目标实体两侧添加标记符(常用于RNN); ②位置嵌入(常用于CNN); ③将目标实体的平均嵌入表示与句子的平均嵌入表示拼接;④根据目标实体划分句子做分段编码并拼接; ⑤将实体的平均嵌入表示与h拼接。为了加速模型的收敛,作者在任务微调阶段加入了语言模型作为辅助目标函数,如式(21)所示。

L=Lsoftmax+λLLM

(21)

2.2.2 分布式小样本关系分类算法

分布式小样本关系分类算法主要分为两类,一类是建模句子间的分布式表示,另一类是建模句子中词对类的分布式表示。

(1) 空白填补网络(matching the blanks)[16]将Harris分布式假设拓展到关系领域,利用预训练语言模型BERT,从无标注非结构化文本中学习任务无关的关系表示。其假设,对于任意一对关系陈述句r和r′,如果它们表示的关系语义相似,那么两者的内积fθ(r)Tfθ(r′)应该很大,否则很小。作者观察到,在网络文本中,任意一对实体之间的每种关系都可能被陈述多次。利用这一冗余特性,作者运用实体链接方法构建了无监督数据集,提出了matching the blanks方法来学习判断两个关系陈述句是否表达同一关系的编码器fθ,如式(22)、式(23)所示。

其中,l=1表示r与r′表达同一种关系,否则表达不同关系。α=δe1,e′1δe2,e′2,δe,e′为克罗内克函数,当且仅当e=e′时为1,否则为0。

为了避免模型只是机械地记忆目标实体,而忽略了句子的语义,作者以概率β将目标实体随机替换为空白符[BLANK]。在如何标记句子目标实体问题上,作者采用了与基于GPT的原型网络相同的方法: ①在目标实体两侧添加标记符; ②位置嵌入。同时探索了如何从BERT的输出中得到固定长度的关系表示向量: ①利用BERT原始的[CLS]; ②拼接两个目标实体的池化表示; ③在目标实体两侧添加标记符的基础上,拼接标记符[E1start]与[E2start]作为最终的关系表示向量。

由于数据集过大,不可能比较所有的r与r′。作者采用了噪声对比估计训练方法(noise-contrastive estimation),将所有包含同一对实体的关系陈述句视为正例对,从所有关系陈述句中随机选取一对句子或者选取只共享其中一个实体的句对构建负例对。最终,与BERT相似,作者平衡两种损失函数对模型进行无监督训练,如式(24)所示。

L=Lmatch+λLMLM

(24)

(2) 词-类分布特征网络(distributional signatures)[30]通过学习在任务间具有一致性的词对类的分布特征来迁移任务间共享的元知识,同时根据词对类的重要程度构造句子表示,避免池化带来的信息丢失。模型分为两个部分,一个是注意力权重生成器,另一个是用于分类的任务特定的岭回归器。权重生成器的目标是根据句子中词的分布特征生成词的重要程度。作者选用一元模型(unigram)作为统计特征,增强对词替换扰动的鲁棒性。由于高频词通常不包含有用信息,为了降低高频词权重,增大低频词权重,作者度量了通用的词-词表重要程度,如式(25)所示。

(25)

其中,ε=10-3,xi是句子x的第i个词,P(xi)是词xi在整个元训练集上的一元模型似然。

同时,在支持集中相对具有辨识度的词,对于问题集可能也相对具有辨识度。因此,作者度量了特定的词-类别重要程度,如式(26)所示。

t(xi)=H(P(y|xi))-1

(26)

其中,H(·)表示熵操作,P(y|xi)通过一个正则线性分类器在支持集上的估计得到。

考虑到这两种统计特征信息互补,且存在一定的噪声。作者通过Bi-LSTM将两者融合hi=Bi-LSTM([s(xi);t(xi)]),最终得到词xi的权重(v是可学习的元参数),如式(27)所示。

(27)

在权重生成器的基础上,根据支持集构建岭回归器对问题集样本进行分类。作者首先根据词的权重,构建句子表示,如式(28)所示。

(28)

然后,通过对支持集的拟合构建岭回归器(闭式解避免了梯度的二次迭代),如式(29)、式(30)所示。

其中,ΦS∈RNK×d表示整个支持集,YS∈RNK×N表示独热标签,I为单位矩阵。

根据得到的岭回归器,对问题集样本进行分类,如式(31)所示。

(31)

其中,a∈R+,b∈R为通过元学习得到的用于校正岭回归器参数的元参数。

最终,通过计算预测值与真实值之间的交叉熵损失训练整个模型。

3 稀缺资源小样本关系分类

当前元学习方法假设模型处理的任务服从同一分布。但在真实场景中,模型所遇到的新任务可能并不满足这一假设。其次,尽管在元测试阶段,元学习器只需要少量的监督数据,但在元训练阶段,训练元学习器所需要的监督数据依然很庞大,例如,FewRel数据集中每个类别700个样本。在一些领域,比如医疗、金融领域,获取元数据是十分困难的。直觉上,如果一些类别的样例很少,同领域的其他类别的样例也不足以构建一个足够大的数据集用以训练元学习器。[21]因此,为了使元学习器能够在这些领域中发挥作用,研究者们从不同角度提出了不同的解决方法。

3.1 小样本领域适应

Gao等人[20]在FewRel数据集的基础上提出了FewRel 2.0数据集。作者以包含大量生物医学文献的PubMed作为数据库,以UMLS作为知识库,利用FewRel 1.0数据集的构建方法,构建了一个包含25种关系,每种关系100个样本的生物医学领域的数据集。FewRel 2.0沿用了FewRel 1.0的训练集,但是以新数据集为测试集,以此探究元学习模型从高资源领域向低资源领域适应的问题。同时,文章提出利用BERT序列分类模型解决此问题,在表现上远远超越了基于对抗的领域适应方法。

Wang等人[31]在预训练语言模型的基础上,结合知识嵌入模型(KE),将知识图谱中的事实知识融入预训练语言模型,提出了开普勒(KEPLER)模型。作者利用预训练语言模型RoBERTa,将句子中目标实体的文本表示与整个句子编码到统一的语义空间中,在预训练过程中联合优化知识嵌入模型与掩码语言模型。以KEPLER模型作为原型网络的编码器,整个网络在FewRel 2.0数据集上取得了最优的表现。

3.2 小-小样本学习

Geng等人[21]通过远程监督和人员筛选的方法,构建了一个新的中文医疗健康领域的小样本关系分类数据集TinyRel-CM,以探索在限制元数据情况下的小样本学习(Few-few-shot learning)。数据集包含27种4个实体间的二元关系,每种关系50个样本。作者根据实体类别将其分为6个部分,其中1个作为测试集,其余5个作为训练集,构建了6个任务。为了解决元训练数据不足的问题,作者提出了利用内部支持与跨领域支持的元学习框架MICK。该框架除了对问题集进行分类外,还对支持集进行了分类,以挖掘支持集内部的知识。此外,作者利用跨领域关系分类数据集对小样本任务进行数据增强。

Gao等人[32]提出滚雪球网络,一种新的自举方法,利用现有关系的语义知识来挖掘新关系的样本。作者利用关系孪生网络,基于现有关系分类数据集学习样例间的关系相似度度量。在此基础上,给定一个新关系及其少量标记样本,使用关系孪生网络从无标记语料库中累积可靠样本。然后利用这些样本训练关系分类器,提高分类器对新关系的泛化能力。

4 当前技术挑战与未来研究趋势

4.1 当前小样本关系分类的技术挑战

当前小样本关系分类的研究主要集中在同领域任务间的知识迁移,且依然需要庞大的元数据训练元学习器。但这种利用一个领域大量元数据训练出的元学习器很难直接应用到其他领域。尽管大型预训练语言模型可以用来解决这个问题,但其并没有显式地用到目标领域的信息。因此,这些方法实际上是领域泛化的方法。

从领域适应的角度来看,将元学习视为以(Dtrain,h*)为训练样本对的监督式机器学习,其处理的基本单位不再是样本x而是任务T。目前,小样本关系分类都是同构迁移学习,因此源领域与目标领域任务的特征空间相同TS=TT,任务的分布不同p(TS)≠p(TT)。但无论是源领域还是目标领域,其最终目的都是学习一个对应于任务T的基学习器h*,即两个领域的元任务(meta-task)相同。因此,小样本领域适应实际上应称为元学习领域适应,其本质是将元学习器从源领域适应到目标领域。但是,如果希望利用传统机器学习中的领域适应思想来解决元学习领域适应问题,需要面对两个挑战。

(1) 如何获取目标领域的任务

在传统领域适应中,为了将模型适应到目标领域,需要目标领域的样本(无论有无标签)。对应元领域适应,则需要目标领域的任务。由于元训练集与元测试集类别互斥,因此,目标领域的任务是未知的。如何从目标领域的无标注样本中构建合理的任务,是元学习领域适应的第一个挑战。一种最直观的方法是对目标领域无标签数据进行聚类,核心问题在于特征的抽取。从表1结果中发现,在源领域训练的元学习器,虽然在目标领域数据集上的表现有大幅下降,但也有一定的效果。因此,可以利用源领域的元学习器辅助目标领域聚类。Cong等人[33]从对抗训练的角度出发,通过最小熵原理保证目标领域的聚类效果。

表1 小样本关系分类算法在常规和跨领域设定下的准确率

(2) 如何抽取任务特征

在传统领域适应中,源领域与目标领域的输出空间相同,但是输入的分布不同,一种有效的方法是抽取领域无关的样本特征。尽管通过对抗训练,抽取样本层面的领域无关特征能在一定程度上解决元领域适应问题。但元学习模型处理的基本单位为任务。一个任务并不只包含样本这一个属性。任务中类别之间的相似度,也决定了这个任务的难易程度。因此,如何合理地表达一个任务的特征是元学习领域适应的第二个挑战。同时,当前基于度量的元学习方法本质上是在抽取同领域任务间的通用特征,如果在此基础上同时抽取领域无关的特征,如何保证最终抽取的特征的辨识度能够满足分类需要也有待解决。在保证集合无序性条件下,一种简单的获取任务特征的方法是统计法,如对支持集向量逐元素取均值、求和、求积、求几何平均或取最值[34-36]。为了抓取任务中的类别特征及样本数量,Lee等人[37]则采用更高阶的统计特征,如方差、偏度和峰度,并对DeepSets[38]进行了改进。除此之外,根据支持集向量构造无向图,通过图嵌入方法也能获取任务特征。

4.2 未来的研究趋势

4.2.1多模态多领域泛化

无论是从领域适应的角度,还是从小-小样本学习的角度,解决单个领域元数据不足的方法都是迁移其他领域的知识。领域适应方法从单领域对单领域的适应方向解决问题,但需要获取目标领域的任务。小-小样本学习从数据增强的角度,直接利用多个领域的小样本关系数据集。但从领域泛化的角度出发,训练一个可以从多领域泛化到多领域的元学习器,就避免了获取大量单个领域任务或样本的麻烦。尽管每个领域的元训练集样本量不大,但是多个领域合成的元训练集在一定程度上也满足了元学习器的训练要求[39-40]。此外,除了迁移同构领域之间的知识之外,异构领域可能包含更多的监督信息。利用多模态信息训练元学习器也能缓解单个领域元训练集不足的问题。

4.2.2 预训练语言模型压缩

预训练语言模型被证明很适合处理小样本学习任务[41]。但是,庞大的参数量以及所需的算力,限制了其在一些线下场景的应用。而且,随着参数量的降低,其在小样本任务上的效果也会出现下降。如何在不损失模型效果的情况下,压缩模型的大小,是未来的一个发展方向。

4.2.3 更合理的小样本学习设定

目前大部分小样本关系分类模型的本质是元学习在极端小样本设定下的应用(N-wayK-shot)。一方面,从定义上来讲,小样本问题并不等同于元学习问题。另一方面,在真实场景中,任务的类别数N与其包含的样本数K并不是固定的[37]。近来,有研究者发现最朴素的微调方法,在小样本任务上超越了元学习方法[42-43],也有研究者分别从理论与实验的角度证明了学习一个好的表示对小样本任务至关重要[44-45]。因此,元学习方法并不是解决小样本问题的唯一出路。如何确立更接近真实场景的小样本学习设定也需要进一步研究。

5 总结

本文系统梳理了小样本关系分类算法,从度量方法上,将现有方法分为基于原型的方法和基于分布式表示的方法。从是否利用额外信息的角度,将现有方法分为预训练式与非预训练式。基于原型的方法主要从特征抽取器的角度入手,根据小样本分类的特点对特征抽器做特定的设计。基于分布式的方法从句子层面和词的层面建模各自的分布表示。此外,本文介绍了稀缺资源场景下的小样本关系分类任务,指出当前用于这些任务的方法在一些应用场景的局限性。最后,针对这些局限性,展望了小样本关系分类未来的发展方向。

猜你喜欢

实体样本分类
分类算一算
用样本估计总体复习点拨
前海自贸区:金融服务实体
实体书店步入复兴期?
规划·样本
教你一招:数的分类
说说分类那些事
两会进行时:紧扣实体经济“钉钉子”
振兴实体经济地方如何“钉钉子”
随机微分方程的样本Lyapunov二次型估计