NLP中的少样本困境问题探究

 

一只小狐狸带你解锁 炼丹术&NLP 秘籍

作者:JayLou娄杰(NLP算法工程师,信息抽取方向)


前言

在医疗、金融、法律等领域,高质量的标注数据十分稀缺、昂贵,我们通常面临少样本低资源问题。本文从「文本增强」和「半监督学习」这两个角度出发,谈一谈如何解决少样本困境。

正式介绍之前,我们首先需要思考什么才是一种好的解决少样本困境的方案?本文尝试给出了三个层次的评价策略,我们希望采取相关数据增强或弱监督技术后:

  1. 在少样本场景下,比起同等标注量的无增强监督学习模型,性能有较大幅度的提升;

  2. 在少样本场景下,能够达到或者逼近充分样本下的监督学习模型性能;

  3. 在充分样本场景下,性能仍然有一定提升;

基于此,本文首先总结了nlp中的文本增强技术,然后串讲了近年来9个主流的半监督学习模型,最后主要介绍了来自Google提出的UDA(一种文本增强+半监督学习的结合体)。本文的组织结构为:

NLP中的文本增强技术总结

谈起文本增强技术,相信NLPer一定不会陌生,相关方法也是数不胜数。我们通常对标注数据集提供附加的感应偏置进行扩充,如何设计增强变换就变得至关重要。本文尝试从一个新角度——是否条件增强,借鉴文献[1]进行了总结归纳:

无条件增强

定义:既可以对标注数据进行增强(增强后标签不发生变化),又可以针对无标注数据进行增强,不需要强制引入标签信息。

词汇&短语替换

  • 基于词典:主要从文本中选择词汇或短语进行同义词替换,词典可以采取 WordNet或哈工大词林等。著名的 EDA (Easy Data Augmentation)[2] 就采用了这种方法。

  • 基于词向量:在嵌入空间中找寻相邻词汇进行替换,我们所熟知的TinyBERT[3] 就利用这种技术进行了数据增强。

  • Masked LM:借鉴预训练语言模型(如BERT)中的自编码语言模型,可以启发式地Mask词汇并进行预测替换。

  • TF-IDF:实质上是一种非核心词替换,对那些low TF-IDF scores进行替换,这一方法最早由Google的UDA[4]提出:

随机噪音注入

  • 随机插入:随机插入一个词汇、相应的拼写错误、占位符等,UDA[4]则根据Uni-gram词频分布进行了采样。

  • 随机交换:随机交换词汇或交换shuffle句子。

  • 随机删除:随机删除(drop)词汇或句子。

注意:EDA[2]除了进行同义词替换外,也同时采用上述三种随机噪音注入。

混合&交叉

  • 混合增强:起源于图像领域的Mixup[5],这是一种表示增强方法,借鉴这种思想,文献[6]提出了wordMixup和sentMixup将词向量和句向量进行Mixup。

交叉增强:类似于“染色体的交叉操作”,文献[7]将相同极性的文本进行交叉:

  • 回译:基于机器翻译技术,例如从中文-英文-日文-中文;我们熟知的机器阅读理解模型QANet[8]和UDA[4]都采用了回译技术进行数据增强。

  • 句法交换:通过句法树对文本句子进行解析,并利用相关规则进行转换,例如将主动式变成被动式句子。

  • 对抗增强: 不同于CV领域利用GAN生成对抗进行数据增强[9],NLP中通常在词向量上添加扰动并进行对抗训练,文献[10]NLP中的对抗训练方法FGM, PGD, FreeAT, YOPO, FreeLB等进行了总结。

本节介绍的无条件增强方法,在对标注数据进行增强后标签不发生变化,但可能会造成文本主旨发生发生变化(例如情感分析中,某一时刻将good 替换为了bad),带来的噪音过大从而影响模型性能。因此,我们是否可以考虑引入标签信息来引导数据生成呢?

条件增强

定义:所谓条件增强(Conditional Data Augmentation),就是意味着需要强制引入「文本标签」信息到模型中再产生数据。

深度生成模型:既然条件增强需要引入标签信息进行数据增强,那么我们自然就会联想到Conditional变分自编码模型(CVAE),文献[11]就利用CVA进行增强。想生成一个高质量的增强数据,往往需要充分的标注量,但这却与「少样本困境」这一前提所矛盾。这也正是GAN或者CVAE这一类深度生成模型在解决少样本问题时需要考虑的一个现状。

预训练语言模型:众所周知,BERT等在NLP领域取得了巨大成功,特别是其利用大量无标注数据进行了语言模型预训练。如果我们能够结合标签信息、充分利用这一系列语言模型去做文本增强,也许能够克服深度生成模型在少样本问题上的矛盾。近来许多研究者对Conditional Pre-trained Language Models 做文本增强进行了有益尝试:

Contextual Augment[12]:这是这一系列尝试的开篇之作,其基于LSTM进行biLM预训练,将标签信息融入网络结构进行finetune,是替换生成的词汇与标签信息兼容一致。

CBERT[13]:其主要思想还是借鉴了Contextual Augment,基于BERT进行finetune,将segment embedding转换融入标签指示的label embedding(如果标签类别数目大于2类,则相应扩充),如下图,替换good生成的funny与标签positive兼容。

LAMBADA [14]:来自IBM团队,其基于GPT-2将标签信息与原始文本拼接当作训练数据进行finetune(如下图所示,SEP代表标签和文本的分割,EOS是文本结束的标志),同时也采用一个判别器对生成数据进行了过滤降噪。

在最近的一篇paper《Data Augmentation using Pre-trained Transformer Models》[15]中,根据不同预训练目标对自编码(AE)的BERT、自回归(AR)的GPT-2、Seq2Seq的BART这3个预训练模型进行了对比。不同于CBERT,没有标签信息变为label embedding而是直接作为一个token&sub-token来于原文拼接。

如上图所示,采样原始标注数据的1%作为少样本场景的设置,其发现BART表现最好,文中也做了相应对比实验发现:

  1. AE模型BERT在做文本增强后,容易被约束产生相似的文本序列,且擅长保存标签信息。

  2. AR模型GPT-2在做文本增强后,不受约束地生成文本,不擅长无法保留标签信息。

  3. Seq2Seq模型BART位于AE和AR之间,可以在多样性和语义保真度之间取得良好的平衡。此外,BART可以通过更改跨度掩码的长度来控制生成数据的多样性。

总结与分析

至此,我们介绍完了NLP中的文本增强技术,以[15]的实验结果为例,我们可以发现文本增强技术可以满足本文一开始给出的第一层次评价策略,即:在少样本场景下,采用文本增强技术,比起同等标注量的无增强监督学习模型,性能会有较大幅度的提升。需要注意的是,上述相关文献中,通常只针对标注数据进行文本增强。但我们是否可以充分利用领域相关的大量无标注数据解决少样本困境呢?我们将在第2部分进行介绍。

除此之外,在实践中我们也要去思考:

  • 是否存在一种文本增强技术,能够达到或者逼近充分样本下的监督学习模型性能?

  • 在充分样本下,采取文本增强技术,是否会陷入到过拟合的境地,又是否会由于噪音过大而影响性能?如何挑选样本?又如何降噪?

半监督学习

这一部分主要介绍如何结合大量无标注数据解决少样本困境,相应的弱监督方法层出不穷,本文着眼于「半监督学习」,借鉴CV领域的9个主流方法进行介绍,包括:Pseudo-Label / Π-Model / Temporal Ensembling / Mean Teacher / VAT / UDA / MixMatch /   ReMixMatch / FixMatch。

为什么要引入半监督学习?

监督学习往往需要大量的标注数据,而标注数据的成本比较高,因此如何利用大量的无标注数据来提高监督学习的效果,具有十分重要的意义。这种利用少量标注数据和大量无标注数据进行学习的方式称为半监督学习(Semi-Supervised Learning,SSL) 。

如上图所示,在同等的少量标注样本下,半监督学习通常取得比监督学习较好的性能。进入深度学习时代以来,SSL如何在少量标注样本下达到或超越大量标注样本下监督学习的效果,SSL如何在大量标注样本下也不会陷入到“过拟合陷阱”,是SSL研究者面临的一个挑战。

近年来,半监督深度学习取得了长足的进展,特别是在CV领域;相关的研究主要着力于如何针对未标注数据构建无监督信号,与监督学习联合建模;简单地讲,就是如何在损失函数中添加针对未标注数据相关的正则项,使模型能够充分利用大量的未标注数据不断迭代,最终增强泛化性能,正如下图所展示的那样(来自文献 [4] )。

半监督深度学习方法介绍

总的来看,深度学习时代的半监督学习,主要针对未标注数据相关的正则化项进行设置,其通常有以下两种:(滑动查看完整公式)

  1. 熵最小化(Entropy Minimization): 根据半监督学习的Cluster假设,决策边界应该尽可能地通过数据较为稀疏的地方(低密度区),以能够避免把密集的样本数据点分到决策边界的两侧。也就是模型通过对未标记数据预测后要作出低熵预测,即熵最小化:

  1. 一致性正则(Consistency Regularization): 对于未标记数据,希望模型在其输入受到扰动时产生相同的输出分布。即:

重要说明:本文将 定义为人工标签,其含义是构建“标签”指导一致性正则的实施,通常采取weak数据增强方法,也可能来自历史平均预测或模型平均预测。 定义为预测标签,为模型当前时刻对无标注数据的预测,对其输入可进行strong增强或对抗扰动。

(1) Pseudo-Label [16]

Pseudo Label的原理很简单, 其损失函数定义为:

其中 为少量标注数据量,为未标注数据量, 为第m个标记数据的logit输出,为其对应的标签;为第m个未标记数据的logit输出, 为其对应的Pseudo Label,具体的做法就是选举每个未标注样本的最大概率作为其伪标签。为了降低噪音的影响,只有当置信度大于阈值时才计算相应的损失。

我们可以看出上式中第二项正是利用了熵最小化的思想,利用未标注数据和伪标签进行训练来引导模型预测的类概率逼近其中一个类别,从而将伪标签条件熵减到最小。

模拟的是一个确定性退火过程,避免陷入局部最小值,调和平衡标注和未标注数据的训练,从而使伪label更接近真实标签:

(2) Π-Model/Temporal Ensembling [17]

Π-Model 和 Temporal Ensembling来自同一篇论文,均利用了一致性正则。

Π-Model如上图所示,对无标注数据输入进行了两次不同的随机数据增强、并通过不同dropout输出得到和 ,并引入一致性正则到损失函数(L2 loss)中:

可以看出和 来自同一时间步产生的两次结果,同一个train step要进行两次前向计算,可以预见这种单次计算的噪音较大、同时降低训练速度。Temporal Ensembling则采用时序融合模型,是历史的EMA加权平均和,将其视作人工标签,同一个train step只进行一次计算,如下图所示:

(3) Mean Teacher [18]

Mean Teacher是对Temporal Ensembling的升级,仍然采用一致性正则(L2 loss)。

Temporal Ensembling是对预测结果进行EMA平均,但是每个epoch才更新一次,需要等到下一个epoch相关信息才能被模型学习。为克服这一缺点,Mean Teacher采取对模型参数进行EMA平均,其认为训练步骤的上平均模型会比直接使用单一模型权重更精确,将平均模型作为teacher预测人工标签由当前模型(看作student)预测。

(4) Virtual Adversarial Training [19]

Virtual Adversarial Training(VAT)仍然采用一致性正则,学习一致性就要添加扰动。作者认为,随机扰动无法模拟复杂情况的输入,不同于上述SSL方法采用数据增强进行施加扰动,VAT采取对抗训练的方式添加噪音。

VAT不同于传统的有监督学习下的对抗训练(详细了解可阅读文献 [10] ),其没有标签信息,而是采用 构建一个虚拟标签,并根据这个虚拟标签计算对抗扰动方向 (通常是梯度上升的方向,为正梯度),这也是称之为“虚拟对抗训练”的原因吧~。VAT采用KL散度来计算一致性正则: 

(5) UDA:Unsupervised Data Augmentation for Consistency Training[4]

UDA来自Google,同样也是采用一致性正则。一致性正则的关键在于如何注入噪声,一个好的模型对于输入扰动的任何细微变化也都应具有鲁棒性。上述SSL方法注入噪音的方法通常为高斯噪音、dropout噪音、对抗噪音,这些注入方式被认为是较弱的干扰。UDA针对图像采取一种高质量的数据增强方法——RandAugment [23],通过这种strong的干扰来提高一致性训练性能。

上图为UDA的损失函数,核心在于对无标注数据 通过strong增强转化为,采用KL散度来计算两者间的一致性损失。UDA也通过回译和非核心词替换对文本进行无监督增强,我们将在第3部分作详细介绍。

此外,UDA也利用了一些辅助技术:

  • 结合了熵最小化正则:对无监督信号进行sharpen操作构建人工标签,使其趋近于 One-Hot 分布,对某一类别输出概率趋向 1,其他类别趋向0,此时熵最低。此外,还直接计算了熵损失。

  • 将人工标签与strong增强后的预测标签共同构建一致性正则,并计算损失时进行了confidence-based masking,低于置信度阈值不参与loss计算。

  • 采用训练信号退火(TSA)方法防止对标注数据过拟合,对于标注数据的置信度高于阈值要进行masking,这与无标注数据正好相反。

  • 使用初始模型过滤了领域外的无标注数据。

(6)  MixMatch [20]

MixMatch同样来自Google,与UDA类似,同样结合了熵最小化和一致性正则。其重要的操作就是通过MixMatch进行数据增强,与UDA的RandAugment不同,这种增强方式依然是weak的。MixMatch具体的数据增强操作为:

  1. 对标注数据进行一次增强,对于未标注数据作K次weak增强输入模型得到average后的概率,并对其进行与UDA类似的sharpen操作得到人工标签,利用了熵最小化思想。

  2. 将无标注数据得到的人工标签与标注数据混合在一起并进行MixUp[5]操作,进而得到增强后的无标注数据以及标注数据。

最后对于MixMatch增强后的标注数据 和无标注数据分别计算损失项,采用L2 loss引入一致性正则:

(7) ReMixMatch [21]

ReMixMatch是MixMatch原作者对自己工作的改进,主要有两点:

  1. Distribution Alignment: 分布对齐,将无标注数据的人工标签与标注数据的标签分布对齐,如上图所示:根据标注数据的标签分布(Groud-truth labels)与无标注数据的平均预测(Model prediction)的比值作为“对齐因子”,缓解猜测标签的噪音和分布不一致情况。

  2. Strong Augmentation: MixMatch不稳定的原因可能是K次weak增强会导致不同的预测,取平均值不是具有意义的目标;ReMixMatch改进这一点,引入strong增强,将weak增强后的人工标签与strong增强后的预测标签共同构建一致性正则(KL散度)。具体的增强方式CTAugment 可参考原论文。

此外,ReMixMatch还对未标注数据丢失的权重进行了退火,并引入了Rotation loss,这里不再赘述。

(8) FixMatch [22]

FixMatch也是来自Google,实质上是UDA和ReMixMatch一个综合简化版本,舍弃了sharpen操作和UDA的训练信号退火、ReMixMatch的分布对齐和旋转损失等。UDA和ReMixMatch表明引入strong增强方式,在与weak增强方式一同构建一致性正则时是有效的。FixMatch延续了这一思想,strong增强同时使用了UDA的RandAugment和ReMixMatch的CTAugment。

不同于UDA和ReMixMatch通过sharpen构建人工标签来指导一致性正则的实施,FixMatch则直接利用Pseudo-Label 构建人工标签。具体地说:记strong增强为 和weak增强为,对于标注数据只使用弱增强并计算交叉熵;对于无标注数据使用weak增强构建人工标签  ,使用strong增强构建预测标签,最终损失形式为:

其中 为置信度阈值,对低于阈值的人工标签不参与loss计算进行confidence-based masking。

不同半监督学习方法的对比

至此,我们已经介绍完了近年来主流的半监督深度学习方法。回顾1.1节对一致性正则公式的介绍,我们可以发现:

  • 人工标签是构建“标签”指导一致性正则的实施,通常采取weak数据增强方法,也可能来自历史平均预测(Temporal Ensembling)或模型平均预测(Mean Teacher);

  • 预测标签为模型当前时刻对无标注数据的预测,其输入可进行strong增强(UDA/ReMixMatch/FixMatch)或对抗扰动(VAT).

我们将其归纳如下:

下图给出了上述SSL方法在不同数据集上的性能对比(指标为错误率):

我们可以发现借鉴了UDA和ReMixMatch的FixMatch,是目前的SOTA。上述大多数SSL方法都引入了一致性正则,其关键在于如何注入噪声,一个好的模型对于输入扰动的任何细微变化也都应具有鲁棒性。也许我们可以形成一个共识:通过strong增强的预测标签与weak增强的人工标签共同构建一致性损失,能够提高一致性训练性能,充分挖掘未标注数据中潜在的价值,最终增强泛化性能

上述结合图像数据增强的半监督学习方法在CV领域已经取得成功,基本满足本文一开始提出的三个层次评价策略,特别是:在少样本场景下可以比肩充分样本下的监督学习模型性能,而在充分样本场景下,性能仍然继续提升。相关实验可以进一步阅读CV相关论文,接下来我们主要关注其在NLP的表现。

UDA:文本增强+半监督学习

作为NLPer,我们更关心上述文本增强与半监督学习的结合在文本领域表现如何?我们主要介绍分析Google的UDA[]相关结果。

本文在第1部分重点介绍了文本增强技术,文本增强方法通常针对标注数据(有监督数据增强),我们可以看到其在少样本场景通常会取得稳定的性能提升,但相较于充分样本下的监督学习性能,也许是有限的提升("cherry on the cake")。

为克服这一限制,UDA通过一致性训练框架(正如2.2节介绍的那样),将有监督的数据增强技术的发展扩展到了有大量未标记数据的半监督学习,尽可能的去利用大量未标记数据,这也正是论文名字——无监督数据增强(Unsupervised Data Augmentation)的由来。

UDA在六个文本分类任务上结合当前如日中天的BERT迁移学习框架进行了实验。迁移学习框架分别为:(1)Random:随机初始化的Transformer;(2):BERT_base;(3):BERT_large;(4):BERT_finetune:基于BERT_large在domain数据集上继续进行预训练;

如上图所示(指标为错误率),Pre-BERT SOTA为BERT出现之前的相关SOTA模型。我们可以发现:

  1. 在少样本场景下,UDA相较于同等监督学习模型,性能明显提升;

  2. 在少样本场景下,UDA能够逼近充分样本下的监督学习模型性能,特别地,在IMDb上具有20个标注数据的UDA优于在1250倍标注数据上训练的SOTA模型。相较于2分类任务,5分类任务难度更高,未来仍有提升空间。

  3. UDA兼容了迁移学习框架,进一步domain预训练后,性能更佳。

那么,在充分样本场景下,继续使用UDA框架表现如何?从上图可以看出,在更多、更充分的标注数据数量下,融合UDA框架,性能也有一定提升。

总结与展望

本文针对「如何解决少样本困境?」,从「文本增强」和「半监督学习」两个角度进行了介绍,简单总结如下:

  1. 文本增强提供了原有标注数据缺少的归纳偏差,在少样本场景下通常会取得稳定、但有限的性能提升;更高级、更多样化和更自然的增强方法效果更佳。

  2. 融合文本增强+半监督学习技术是一个不错的选择。半监督学习中一致性正则能够充分利用大量未标注数据,同时能够使输入空间的变化更加平滑,从另一个角度来看,降低一致性损失实质上也是将标签信息从标注数据传播到未标注数据的过程

在具体实践中,如何有效地解决少样本问题需要更为全面的考虑,我们可以融合文本增强、半监督学习、迁移学习、主动学习、少样本学习等构建统一的低资源NLP解决方案;如上图所示,笔者尝试给出了信息抽取领域的少样本低资源解决方案;此外,很多弱监督学习方法也被提出,这一类方法更为关键的是如何挑选样本、如何降噪学习等,希望后续有机会与大家交流~

本文收录于原创专辑:《卖萌屋@自然语言处理》

重磅惊喜:卖萌屋小可爱们苦心经营的 自然语言处理讨论群 成立三群啦!扫描下方二维码,后台回复「入群」即可加入。众多顶会审稿人、大厂研究员、知乎大V以及美丽小姐姐(划掉????‍♀️)等你来撩噢~(手慢无

夕小瑶的卖萌屋

_

关注&星标小夕,带你解锁AI秘籍

订阅号主页下方「撩一下」有惊喜哦

  • ACL20 | 让笨重的BERT问答匹配模型变快!

  • 7款优秀Vim插件帮你打造完美IDE

  • 卖萌屋原创专辑首发,算法镇魂三部曲!

  • GPT-3诞生,Finetune也不再必要了!NLP领域又一核弹!

  • 别再蒸馏3层BERT了!变矮又能变瘦的DynaBERT了解一下

参考文献

[1] A Visual Survey of Data Augmentation in NLP

[2] EDA: Easy Data Augmentation Techniques for Boosting Performance on Text Classification Tasks

[3] TinyBERT: Distilling BERT for Natural Language Understanding

[4] Unsupervised Data Augmentation for Consistency Training

[5] mixup: BEYOND EMPIRICAL RISK MINIMIZATION

[6] Augmenting Data with Mixup for Sentence Classification: An Empirical Study

[7] Data Augmentation and Robust Embeddings for Sentiment Analysis

[8] QANet: Combining Local Convolution with Global Self-Attention for Reading Comprehension

[9] Data Augmentation Using GANs

[10] [一文搞懂NLP中的对抗训练](https://zhuanlan.zhihu.com/p/103593948)

[11] Controlled Text Generation for Data Augmentation in Intelligent Artificial Agents

[12] Contextual augmentation: Data augmentation by words with paradigmatic relations

[13] Conditional BERT contextual augmentation

[14] Do Not Have Enough Data? Deep Learning to the Rescue! 

[15] Data Augmentation using Pre-trained Transformer Models 

[16] Pseudo-Label : The Simple and Efficient Semi-Supervised Learning Method for Deep Neural Networks

[17] Temporal ensembling for semi-supervised learning

[18] Mean teachers are better role models: Weight-averaged consistency targets improve semi-supervised deep learning results

[19] Virtual Adversarial Training: a Regularization Method for Supervised and Semi-supervised Learning

[20] MixMatch: A Holistic Approach to Semi-Supervised Learning

[21] ReMixMatch: Semi-Supervised Learning with Distribution Alignment and Augmentation Anchoring

[22] FixMatch: Simplifying Semi-Supervised Learning with Consistency and Confidence 

[23] RandAugment: Practical automated data augmentation with a reduced search space

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480410.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

军事武器知识图谱构建与自动问答项目QAonMilitaryKG

QAonMilitaryKG QAonMilitaryKG,QaSystem based on military knowledge graph that stores in mongodb which is different from the previous one, 基于mongodb存储的军事领域知识图谱问答项目,包括飞行器、太空装备等8大类,100余小类&#…

python--从入门到实践--chapter 9 类

类的定义格式: class Name(Father_class):def __init__(self, para, ...):self.para xdef __init__(self, para, ...):super().__init__(para, ...) #调用父类的构造函数class Car():def __init__(self,make,model,year): #构造函数self.make makeself.model mo…

连载 | 知识图谱发展报告 2018 -- 前言

OpenKG 将开始连载《知识图谱发展报告(2018)》,希望该连载能够让更多的人深入了解知识图谱。欢迎各位读者留言讨论。1. 知识图谱的研究目标与意义 知识图谱(Knowledge Graph)以结构化的形式描述客观世界中概念、实体及其关系,将互…

网址(url),域名,ip地址,dns,hosts之间的关系

网址(url),域名,ip地址,dns,hosts之间的关系 什么是ip? 我们知道,在Internet上有千百万台主机,为了区分这些主机,人们给每台主机都分配了一个专门的地址&…

事理图谱概念辨析及其与风险标签分类结合的应用探讨

以事件为描述核心,以揭示事件之间的演化逻辑关系的事理图谱自提出后,引起了工业界的极大兴趣,在积极探索事理图谱本质、事理图谱构建技术细节的同时,如何找到技术与应用场景之间的结合成为目前广泛讨论的问题。我们团队持续对以上…

一篇文章带你熟悉 TCP/IP 协议(网络协议篇二)

涤生_Woo2017年11月11日阅读 15544关注一篇文章带你熟悉 TCP/IP 协议(网络协议篇二)同样的,本文篇幅也比较长,先来一张思维导图,带大家过一遍。一图看完本文一、 计算机网络体系结构分层计算机网络体系结构分层计算机网…

PyTorch数据Pipeline标准化代码模板

前言PyTorch作为一款流行深度学习框架其热度大有超越TensorFlow的感觉。根据此前的统计,目前TensorFlow虽然仍然占据着工业界,但PyTorch在视觉和NLP领域的顶级会议上已呈一统之势。这篇文章笔者将和大家聚焦于PyTorch的自定义数据读取pipeline模板和相关…

2019 最全支付宝高级Java现场面试37题

支付宝现场三面面试题目,文末有福利:阿里经典面试88题目答案 01 支付宝一面 介绍一下自己。 项目参与的核心设计有哪些 ArrayList和LinkedList底层 HashMap及线程安全的ConcurrentHashMap,以及各自优劣势 Java如何实现线程安全 Synchronized和Lock…

腾讯互娱刘伟 | 知识图谱在运维中的应用

本文转载自公众号:InfoQ。随着业务监控建设不断完善,海量业务故障时产生成百上千条告警,如何智能定位故障根源、实时统计业务影响是现阶段运营面临的一个难题。Google 利用知识图谱优化了其搜索服务以来,知识图谱得到了迅速发展。…

中文人物关系图谱构建与应用项目(人物关系抽取,关系抽取评测)

ChinesePersonRelationGraph ChinesePersonRelationGraph, person relationship extraction based on nlp methods.中文人物关系知识图谱项目,内容包括中文人物关系图谱构建,基于知识库的数据回标,基于远程监督与bootstrapping方法的人物关系抽取,基于知识图谱的知识问答等应用…

2019 最新阿里中间件Java 4轮面试题!60万年薪起步~

Java中间件一面 1.技术一面考察范围: 重点问了Java线程锁:synchronized 和ReentrantLock相关的底层实现 线程池的底层实现以及常见的参数 数据结构基本都问了一遍:链表、队列等 Java内存模型:常问的JVM分代模型,以…

0011【冥想】87天冥想感悟汇总

0011【冥想】87天冥想感悟汇总 2018.1.6 Day1图片发自简书App1.7 Day2图片发自简书App❤️1.8冥想Day3❤️听了谷老师的分享,挺受益的。当我们的心越来越柔软,身体也会越来越柔软,所谓相由心生,冥想的时候,身体也会听从…

这个自然语言处理“工具”,玩得停不下来

今天推荐一个有趣的自然语言处理公众号「AINLP」,关注后玩得根本停不下来!AINLP的维护者是我爱自然语言处理(52nlp)博主,他之前在腾讯从事NLP相关的研发工作,目前在一家创业公司带技术团队。AINLP公众号的定…

观点 | 抛开炒作看知识图谱,为什么现在才爆发?

本文转载自公众号:AI前线。 作者 | George Anadiotis 译者 | 无明 导读:知识图谱究竟是什么,都有哪些围绕它们的炒作?如果你想要像 Airbnb、亚马逊…

算法--排序--寻找数组内第K大的元素

此题目,需要用到快速排序里的划分数组操作: 快排参考:https://blog.csdn.net/qq_21201267/article/details/81516569#t2 先选取一个合适的哨兵(三数取中法)将数组分成三部分【小于哨兵的】【哨兵】【大于等于哨兵的】…

淘宝网Java五面:现场面试49题含答案!

淘宝一面: 面试介绍 1)自我介绍? 2)项目介绍? 3)遇到的最大困难是什么?怎么解决的? 4)你觉得你能怎么优化这个项目? 面试题目 1)讲一下JVM 2&#xff…

告别自注意力,谷歌为Transformer打造新内核Synthesizer

一只小狐狸带你解锁 炼丹术&NLP 秘籍作者:舒意恒(南京大学硕士生,知识图谱方向)今天给大家介绍一篇来自Google的最新论文《SYNTHESIZER: Rethinking Self-Attention in Transformer Models》[4],该论文重新探索了T…

50万抽象知识图谱项目(实体抽象、性状抽象与动作抽象)

AbstractKnowledgeGraph AbstractKnowledgeGraph, a systematic knowledge graph that concentrate on abstract thing including abstract entity and action. 抽象知识图谱,目前规模50万,支持名词性实体、状态性描述、事件性动作进行抽象。目标于抽象…

算法--排序--大小写字母数字分离(桶排序思想)

题目: 对D,a,F,B,c,A,z这个字符串进行排序,要求将其中所有小写字母都排在大写字母的前面,但小写字母内部和大写字母内部不要求有序。比如经过排序之后为a,c&a…

2019 最新蚂蚁花呗Java三面题目:红黑树+并发容器+CAS+Solr+分布式等

蚂蚁金服专场 涵盖了蚂蚁金服从Java工程师到技术专家面试题目 支付宝高级Java三面题目:线程锁事务雪崩Docker等 蚂蚁花呗团队面试题:LinkedHashMapSpringCloud线程锁分布式 蚂蚁金服高级Java面试题目 支付宝Java开发四面:NgnixMQ队列集群并发抢购 蚂…