一人之力,刷爆三路榜单!信息抽取竞赛夺冠经验分享

文 | JayLou娄杰


在现如今的NLP竞赛中,信息抽取(IE)任务已占据半壁江山。来,让我们看看今年的一些IE竞赛都有啥:

看到如此众多的IE竞赛,心动的JayJay抽空参加了CHIP2020(中国健康信息处理大会)中的3个评测,最终获得了2个冠军、1个季军,具体如下表所示:

评测任务名称所获名次评测网址
中文医学实体关系抽取第一http://cips-chip.org.cn/2020/eval2
临床医学术语标准化第一http://cips-chip.org.cn/2020/eval3
中文医学嵌套实体抽取第三(a榜第一)http://cips-chip.org.cn/2020/eval1

本次CHIP2020也吸引了众多国内外一流团队的参加,比如阿里达摩院、腾讯天衍实验室、平安科技、云知声、北大、清华、中科院、纽约大学等,竞争也是异常激烈~此外,也许你会问:为什么选择参加上述三个评测?医疗NLPer一定会知道,「实体抽取+关系抽取+术语归一」正好是医疗数据解析的三个必不可少的重要环节。

本篇文章,JayJay并不想只是围绕竞赛本身谈策略,而是想和大家一起交流:无论在竞赛还是落地中,信息抽取任务的稳定提升策略有哪些?总的来看就是两点:

  1. 构建一个强大的baseline,这取决于标注框架的选择

  2. 套路化的辅助策略,稳定迭代并提升

为更好地展示关键内容,本文以QA形式探讨了以下问题:

相关代码后续会在(https://github.com/loujie0822/DeepIE)开源,尽情关注~

Q1:如何构建强大的baseline?万能的4种标注框架供你选择!

谈到标注框架,NLPer首先想到的就是序列标注,而如今我们面临早已不是一个简单抽取问题,序列标注已经无法“胜任”了:例如,在医疗抽取任务中,我们常常会遇到嵌套、非连续、类型混淆、信息块重叠、关系重叠等复杂抽取问题。

因此,掌握标注框架(解码方式)是解决信息抽取问题的第一步,也是构建强大baseline的关键一步:试想一下,如果你的标注框架都不能完备解码(gold输入,输出指标也应该达到或接近100%),不能cover绝大部分case情况,又何谈下一步优化提升呢?

JayJay这里归纳了4种“易于上手”的标注框架:

  1. 序列标注:每个序列位置都被标注为一个标签,比如按照BILOU标注,我们常用MLP或CRF解码。

  2. 指针标注:对每个span的start和end进行标记,对于多片段抽取问题转化为N个2分类(N为序列长度),如果涉及多类别可以转化为层叠式指针标注(C个指针网络,C为类别总数)。事实上,指针标注已经成为统一实体、关系、事件抽取的一个“大杀器”

  3. 多头标注:对每个token pair进行标记,其实就是构建一个的分类矩阵,可以用于实体或关系抽取。其重点就是如何强有力的表征构建分类矩阵。事实上,多头标注成为了众多实体和关系抽取SOTA的首选利器!(PS:多头标注是JayJay自己叫的,单纯是为了纪念多头选择机制的关系抽取论文[1]

  4. 片段排列:源于Span-level NER[2]的思想,枚举所有可能的span进行分类,同序列长度进行解耦,可以更加灵活地处理复杂抽取和低资源问题。事实上,片段排列的思想已经被Google推崇[3]并统一了信息抽取各个子任务

掌握上述4种标注框架后,我们就可以根据具体抽取任务、灵活地应用于实体、关系、事件抽取等场景中了(PS:对于一些生成式的标注框架,JayJay感觉不够稳定,就不再单独介绍了)。

Q2:如何解决复杂NER问题:嵌套/非连续/类型易混淆?

在实际业务场景中的NER问题可能与你想的不太一样,比如下图中的复杂NER问题你遇到过吗?

本文这里给出了上述复杂NER问题的简单解决方案:

  • 嵌套NER:例如在span「呼吸中枢受累」中,存在两个实体嵌套:「症状:呼吸中枢受累」和「部位:呼吸中枢」。我们在Q3中具体介绍解决方案。

  • 非连续NER:例如在span「尿道、膀胱、肾绞痛」中存在三个非连续实体「尿道痛」、「膀胱痛」、「肾绞痛」。这里给出3种解决方案:

    • 继续当作序列标注任务:拓展BIO标签;

    • 转化为一个属性/关系抽取问题:由于病历文本趋向模板化,所以用规则提取更加便捷。

    • 模仿句法解析器的做法,设置shift-reduce parser,具体可参见ACL20的这篇paper[4]

  • 类型易混淆NER:例如对于部位实体「左肺上叶」,其归属于「病理」还是「影像」模块呢?对于「纵隔」部位,是属于「肿瘤」还是「淋巴结」部位呢?这里给出2种解决方案:

    • 事件论元抽取:对于医疗领域,不同于通常的论元抽取,因为电子病历一般不存在信息块重叠(事件类型交叉重叠)问题,因此可以先进行事件段落抽取,再将「左肺上叶」部位实体归属到当前的事件段落中。

    • 两阶段NER:在同一事件类型中,第一阶段可以确定实体span边界(例如找到部位实体「纵隔」的边界),第二阶段再结合上下文信息进行实体typing(例如对「纵隔」进行性质判断),这样做指标通常会提高哦~

Q3:升级的NER竞赛:如何解决嵌套实体抽取?

既然实际业务中的NER问题是复杂的,NER竞赛也不应该循规蹈矩了~这不,CHIP2020的中文医学实体抽取评测就是一个嵌套实体抽取问题,数据集包含504种常见的儿科疾病、7,085种身体部位、12,907种临床表现等九大类医学实体。

对于嵌套实体抽取这个任务,我们直接套用Q1中的4种万能标注框架就可以解决了:

  • 序列标注

    • 多标签分类。如下图(a)所示,将多分类转化为多标签分类,即使用sigmoid设定阈值进行解码;这种方式的学习难度较大,也会容易导致label之间依赖关系的缺失;

    • 合并标签层。如下图(b)所示,依然采用CRF,但设置多个标签层,对于每一个token给出其所有的label,然后将所有标签层合并。这种方式指数级增加了标签,对于多层嵌套,稀疏问题较为棘手;

  • 指针标注

    • 层叠式指针标注:即设置C个指针网络,如下图(c)所示。

    • MRC-QA+指针标注:构建query问题指代所要抽取的实体类型,同时也引入了先验语义知识,如下图(d)所示。在文献[5]中就对不同实体类型构建query,并采取指针标注,此外也构建了矩阵来判断span是否构成一个实体metion。

  • 多头标注

    • 构建一个的Span矩阵,如下图(e)所示,Span{呼}{枢}=1,代表「呼吸中枢」是一个部位实体;Span{呼}{累}=2,代表「呼吸中枢」是一个症状实体;对于多头标注的一个重点就是如何构造Span矩阵、以及解决0-1标签稀疏问题

    • 嵌套实体的2篇SOTA之作:ACL20的《Named Entity Recognition as Dependency Parsing》采取Biaffine机制构造Span矩阵;EMNLP20的HIT[6]则通过Biaffine机制专门捕获边界信息,并采取传统的序列标注任务强化嵌套结构的内部信息交互,同时采取focal loss来解决0-1标签不平衡问题。

  • 片段排列

    • 十分直接,如下图(f)所示。对于含T个token的文本,理论上共有 种片段排列。如果文本过长,会产生大量的负样本,在实际中需要限制span长度并合理削减负样本。

在CHIP20嵌套实体评测中,我们对比了不同标注策略下的效果(如下图),可以发现:多头标注效果最佳!

Q4:贴合真实场景的NER竞赛:如何解决不完全标注NER?

标注资源少、如何降低标注量一直是真实工业场景中必须面对的问题,不同于分类任务,大规模的实体标注数据集的构建成本更高。BERT的出现本身就是一种降低标注量的方式,此外,文本增强等方式也可降低标注(PS:NER等序列标注任务的数据增强方式可能要独立适配会更好,采用常见的增强方式效果提升不明显~)。

那么,有没有一种仅仅通过积累的实体词典、来匹配标注数据的方式,这样可以不用大规模的进行人工标注了。这种方式,可以统称为「不完全标注NER问题」:这种方式最为突出一点就是漏标情况严重,而NER序列标注的方式对噪声(漏标)十分敏感。(事实上,人工标注中也会存在漏标等情况)

CHIP20的评测六-中药说明书实体识别挑战(http://cips-chip.org.cn/2020/eval6)就是对这一问题的评测。由于这个评测正在答辩环节中,JayJay也进入最后答辩了,具体方案等成绩揭晓后再与大家分享吧~下面,我们来看看学术界都有哪些解决方案:

需要特别介绍的是一篇来自ICLR2021投稿的《Empirical Analysis of Unlabeled Entity Problem in Named Entity Recognition》,就是采用我们上述提到的「片段排列」标注方式,摒弃传统的CRF序列标注、与序列长度解耦,转化为一个对span的分类问题,这样更适合对负样本实体的采样;这样模型建模不会像对序列标注中的漏标过于敏感,也更好控制。

Q5:关系抽取一片红海,如何魔改标注框架?如何突破SOTA:暴漏偏差/独立编码/pipeline?

2020年以来,关系抽取SOTA就换了好几个,JayJay常常感叹:关系抽取也太卷了吧~不过仔细阅读后,发现这些SOTA其实绝大多数还是围绕“标注框架”进行魔改,只要我们掌握Q1中提到的4种万能标注,登顶SOTA也不是不可能!

本文所提到的「关系抽取」就是实体关系抽取,不同于「关系分类」。

关系抽取范式主要有两大类:

JayJay也有一段时间痴迷于各种联合抽取的joint魔改模型,如果大家有兴趣可以在知乎上直接搜索阅读JayJay的这篇文章《nlp中的实体关系抽取方法总结》。由于篇幅限制,这里简单给出一个总结图:

结合上图,我们可以发现未来突破SOTA的方向可能是:

  1. 打破Joint好于Pipeline的刻板印象:Pipeline是否一定就好于Joint,我们不能一概而论,特别是看过“女神的新SOTA”上一篇推文《陈丹琦“简单到令人沮丧”的屠榜之作:关系抽取新SOTA!》之后。

  2. 共享编码可能过于直接了:使用单独的编码器确实可以学习独立的特定任务特征,对于实体和关系确实需要特定的特征编码,在构建joint模型时如果只是简单的强行共享编码,真的可能会适得其反。这表明:针对一项任务提取的特征可能与针对另一项任务提取的特征一致或冲突,从而使学习模型混乱。所以,接下来怎么更好地去设计既可以共享、又可以任务独立的特征吧。

  3. 解决暴漏偏差,迫在眉睫:最近COLING2020的一篇paper[7]为了缓解这个问题,提出了一种单阶段的联合提取模型TPLinker,其不包含任何相互依赖的抽取步骤,因此避免了在训练时依赖于gold的情况,从而实现了训练和测试的一致性。

Q6:如何登顶关系抽取冠军宝座:强大的标注策略+词汇增强/对抗训练/远程监督/假阴性降噪/交替训练?

废话不说,下面直接来介绍CHIP20中的关系抽取评测。这个评测任务来源于中文医学信息抽取数据集CMeIE(http://cmekg.pcl.ac.cn/),是目前最大的中文医学关系数据集,共包含近7.5万三元组数据,2.8万疾病语句和53种定义好的schema,共44种关系,如下图所示(图片来自于腾讯天衍实验室):

这个关系评测任务是一个SPO抽取问题:

看到这个任务介绍后,如何快速构建强大的baseline呢?可以直接套用Q1给出的4种通用框架:

策略1:基于主语感知的层叠式指针网络(指针标注),抽取过程:先抽取主语subject,再抽取谓语predicate和宾语object,主要参考自ACL20的CasRel[8],JayJay做了以下几点改进(网络架构如下图所示):

  1. 没有随机选择主语(subject),⽽是遍历所有不同主语的标注样本构建训练集。

  2. 对subject的感知表征,引入conditional LayerNorm进⾏。

  3. 对于医疗⽂本中,中英⽂和特殊标点同时出现的特殊情况,改进bert的分词器,以更好提取英⽂专有名词等。

策略2:多头选择机制(多头标注),是基于文献[9]的改进,最重要的就是关系分类器的构造,即是实体pair的一个线性分类器,每个实体pair只选取当前实体span的最后⼀个字符进⾏关系预测,如下图:

关系分类器通过构建的矩阵得到(其中N为序列长度,C为关系类别总数),然后通过sigmoid进行loss计算,JayJay做了以下几点改进:

  1. 针对nested NER问题,序列标注CRF替换为指针标注;并将实体的label embedding传入关系分类器;

  2. 将LSTM编码层⽤BERT等预训练模型进行替代;

  3. 调节实体和关系间的loss,实体的loss是关系loss的10倍;

策略3:融合BERT与多头选择机制通过上述两个策略的探索后,可以发现多头标注的两个关键问题:

  1. 多头选择机制的关键是在于如何更好地构造关系分类矩阵;

  2. BERT等预训练语言模型,如何更好地适配于多头选择机制;

基于以上两点,我们尝试将BERT最后两层编码进⾏Biaffine计算,得到关系矩阵,同时引入「CLS」全局编码信息,如下图所示:

下图对比了上述三种不同策略的指标表现:

通过实验对比,可以发现:

  1. 对于层叠指针标注,不对主语随机选择,指标有1%的提升;

  2. 对于多头选择机制,将序列标注替换为指针标注,指标也有了提升;

  3. 而融合BERT与多头选择机制后,达到最优效果;

综上,我们将「融合BERT与多头选择」作为一个较强的baseline。有了baseline后,又该通过哪些辅助策略稳步迭代提升呢?其实,信息抽取类的竞赛套路都差不多,比如:

  • 词汇增强:即引入词汇信息,并适配于所对应的标注策略;这种词汇增强的方式常见于NER问题中,具体可参见JayJay之前的推文《FLAT:中文NER屠榜之作!》。这种方式的关键在于如何引入具体的知识库信息(实体信息);

  • 对抗训练:聚焦于提高鲁棒性,已经成为NLP各大竞赛的提分利器、标配动作!常用的比如FGM、PGD等,具体可参见博客[10]

  • 远程监督:即将训练集中的三元组当作知识库,然后将其作为知识特征引入模型中。

  • 解决标注不平衡 由于指针标注或多头标注中存在0-1不平衡问题(稀疏问题),可采取focal loss或者幂次惩罚。

  • 假阴性降噪:通常的信息抽取数据集是通过远程监督+人工check构建的,指标通常会呈现出高准确、低召回的情况,对于这种情况,我们通常要清洗训练集中存在的“假阴性”问题,我们可以借鉴Postive Unlabel Learning的思想,通过交叉验证对训练集进行清洗&重训练,采取以下两种方式:

    • 只对高频出现的三元组进行回标;

    • 高频三元组进行loss计算;中频三元组不进行loss计算;低频drop;

  • 伪标降噪:如果手头或者主办方能够提供无标注数据,我们可以进行伪标,但比较棘手的一个问题就是如何降噪,这里给出两种简单的方式:

    • 通过置信度判别模型,通过阈值来过滤噪声样本;

    • 通过交叉验证,通过投票过滤噪声样本;

  • 交替训练:遵循联合抽取中“硬共享编码不一定奏效的思想”,我们可以对实体和关系两个子任务进行拆解,根据多任务学习中的交替训练机制进行。

JayJay将上述辅助策略在关系评测任务中进行了尝试,部分实验结果如下:

可以看出:

  1. 词汇增强方式,对于总的指标是下降的,但实体指标得到了提升;

  2. 对抗训练、Postive Unlabel Learning、伪标降噪等策略均有了稳步提升;

在最终提交结果中,也比第2、3名高了1%:

Q7:NER的最后一步:负样本为王,实体标准化!

在医疗NLP领域,进行完NER后还不能直接作为结果供科研使用,还需要经历最后一步:医疗术语标准化,简单的讲,就是实体的标准化,这与实体链接较为类似,本质上是一个rank排序问题

具体地讲,在医疗电子病历中,关于同一种诊断、手术、药品、检查、化验、症状等往往会有成百上千种不同的写法。在chip20评测中,医疗术语标准化就是针对「诊断」术语的标准化, 如下图所示,需要将「诊断原词」对应到「诊断标准词」,而诊断标准词来源于医疗专业知识库ICD-10.

通过对数据分析,发现有以下特点:

  1. 对应关系存在“一对多”:也就是对应的标准词个数不确定,如上图中的「右肺结节住院」对应1个标准词,而「右肺结节转移可能大」则对应2个标准词;此外,对应个数呈现长尾分布:1-2个是头部分布,而大于5个呈现长尾状况;

  2. 字面覆盖/重叠度低:比如上图中的「右肺结节住院」与「肺占位性病变」字面覆盖度就较低。

  3. 标准词库搜索规模大:知识库的标准词达到4w+,搜索规模较大;

根据以上数据特点,JayJay制定了召回+排序+个数预测的总体算法策略来解决:

  1. 对应关系存在“一对多”:通过「个数预测来」解决;

  2. 字面覆盖/重叠度低:文本匹配,高维语义计算;

  3. 标准词库搜索规模大:先召回、后排序;

总的流程图如下所示,共通过三步完成:

第一步:多路召回

  1. 标准词查询:将当前查询的诊断原词,通过与ICD-10标准词库进行TF-IDF相似度计算;

  2. 历史查询:将当前查询的诊断原词,通过与训练集的诊断原词进⾏TF-IDF相似度计算,返回诊断原词所对应的标准词(已标注);

  3. 硬匹配查询:如果标准词存在于当前查询的诊断原词中,那么返回这个标准词;

通过对比不同相似度计算(如下图),最终选取TF-IDF,召回TOP100

第二步:rank匹配计算

采取常见的文本匹配计算,基于BERT,拼接「诊断原词+候选标准词」,增加两个pooling层,进行0-1分类。

对于rank匹配最重要的一步就是负样本构造,JayJay采取以下方式进行:

  • 与召回方式类似,通过TF-IDF进行相似度计算,选取TOP20;

  • 增加hard negative sample数量 ,诊断原词与标准词库直接进行相似度计算;

  • 解决正负样本不平衡问题,扩充正样本数量;

第三步:个数预测

为了解决对应关系存在“一对多”的问题,很简单的一种方式就是:基于BERT,对「诊断原词」对应的标准词数⽬进⾏构建多分类模型,共设置为3个类别:0-1个;1-2个;2-大于2个;

基于以上三步,最终解码分两种情况进行:

  • 个数预测<=2:直接返回top-k;

  • 个数预测>2: 按照得分排序,选择阈值>0.5的标准词;

在最终的排名中,比第2名高了近3.7%:

写在最后

本文主要介绍了信息抽取竞赛中的一些经验分享,希望在「标注框架」和「辅助提升策略」的选择上,能够给大家提供一些参考。

参加NLP竞赛,获奖不是唯一目的,最重要的是能够通过竞赛去更好地解决实际问题,在“大力出奇迹”的今天,我们应该认真地去思考:哪些策略能够迁移至真实场景,而那些复杂信息抽取低资源问题,又如何在竞赛中进行策略尝试吧~

JayJay不说再见,下一篇继续关注信息抽取~

萌屋作者:JayJay

知乎ID:JayLou娄杰。混迹于工业界的NLP算法工程师,擅长信息抽取、低资源NLP和可解释性学习,聚焦于医疗数据解析和知识图谱构建。

开源项目DeepIE:基于深度学习的信息抽取技术????

https://github.com/loujie0822/DeepIE

作品推荐:

1.陈丹琦“简单到令人沮丧”的屠榜之作:关系抽取新SOTA

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

3.工业界求解NER问题的12条黄金法则

4.别让数据坑了你!用置信学习找出错误标注(附开源实现)

5.FLAT:中文NER屠榜之作!

6.打破BERT天花板:11种花式炼丹术刷爆NLP分类SOTA!

7.ACL20 best paper荣誉提名 | DO NOT STOP Pre-training!

后台回复关键词【入群

加入卖萌屋NLP/IR/Rec与求职讨论群

有顶会审稿人、大厂研究员、知乎大V和妹纸

等你来撩哦~

 

[1]Joint entity recogni- tion and relation extraction as a multi-head selection problem: https://www.sciencedirect.com/science/article/abs/pii/S095741741830455X?via%3Dihub

[2]Span-based Joint Entity and Relation Extraction with Transformer Pre-training: https://arxiv.org/pdf/1909.07755.pdf

[3]Entity, Relation, and Event Extraction with Contextualized Span Representations: https://www.aclweb.org/anthology/D19-1585.pdf

[4]An Effective Transition-based Model for Discontinuous NER: https://arxiv.org/pdf/2004.13454

[5]A Unified MRC Framework for Named Entity Recognition: https://arxiv.org/pdf/1910.11476.pdf

[6]HIT: Nested Named Entity Recognition via Head-Tail Pair and Token Interaction: https://www.aclweb.org/anthology/2020.emnlp-main.486.pdf

[7]TPLinker: Single-stage Joint Extraction of Entities and Relations Through Token Pair Linking: https://arxiv.org/pdf/2010.13415.pdf

[8]A Novel Cascade Binary Tagging Framework for Relational Triple Extraction: https://arxiv.org/pdf/1909.03227.pdf

[9]Joint entity recogni- tion and relation extraction as a multi-head selection problem: https://www.sciencedirect.com/science/article/abs/pii/S095741741830455X?via%3Dihub

[10]【炼丹技巧】功守道:NLP中的对抗训练 + PyTorch实现: https://zhuanlan.zhihu.com/p/91269728

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

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

相关文章

pkuseg:一个多领域中文分词工具包

pkuseg简单易用&#xff0c;支持细分领域分词&#xff0c;有效提升了分词准确度。 目录 主要亮点编译和安装各类分词工具包的性能对比使用方式相关论文作者常见问题及解答主要亮点 pkuseg具有如下几个特点&#xff1a; 多领域分词。不同于以往的通用中文分词工具&#xff0c;此…

积木Sketch Plugin:设计同学的贴心搭档

| A consistent experience is a better experience.——Mark Eberman | 一致的体验是更好的体验。——Mark Eberman 《摘自设计师的16句名言》 背景 1.UI一致性项目 积木&#xff08;Tangram&#xff09;Sketch插件源于美团外卖UI的一致性项目&#xff0c;该项目自2019年5月份…

简单讲述一下Intent的传值过程

昨晚带女友Android入门&#xff0c;她本是照着一本书敲得&#xff0c;可以运行&#xff0c;后来她自己凭思维自己写了一个&#xff0c;然后出现了值没有传过来的问题&#xff0c;然后简单的了解了一下Intent是如何传递数据的。 我们的例子是这样的&#xff1a; 由A Activity通…

何恺明团队:stop gradient是孪生网络对比学习成功的关键

文 | Happy源 | 极市平台本文是FAIR的陈鑫磊&何恺明大神在无监督学习领域又一力作&#xff0c;提出了一种非常简单的表达学习机制用于避免表达学习中的“崩溃”问题&#xff0c;从理论与实验角度证实了所提方法的有效性&#xff1b;与此同时&#xff0c;还侧面证实了对比学…

美团无人配送CVPR2020论文CenterMask解读

计算机视觉技术是实现自动驾驶的重要部分&#xff0c;美团无人配送团队长期在该领域进行着积极的探索。不久前&#xff0c;高精地图组提出的CenterMask图像实例分割算法被CVPR2020收录&#xff0c;本文将对该方法进行介绍。 CVPR的全称是IEEE Conference on Computer Vision an…

如何使用ListView实现一个带有网络请求,解析,分页,缓存的公共的List页面来大大的提高工作效率

在平常的开发中经常会有很多列表页面&#xff0c;每做一个列表页就需要创建这个布局文件那个Adapter适配器文件等等一大堆与之相关的附属的不必要的冗余文件。如果版本更新迭代比较频繁&#xff0c;如此以往&#xff0c;就会使项目工程变得无比庞大臃肿。 如果看过这篇文章或者…

从信息检索顶会CIKM'20看搜索、推荐与计算广告新进展

文 | 谷育龙Eric源 | 搜索推荐广告排序艺术我是谷育龙Eric&#xff0c;研究方向有深度学习、搜索推荐&#xff0c;喜欢为大家分享深度学习在搜索推荐广告排序应用的文章。CIKM作为信息检索、数据挖掘等领域的国际一流会议&#xff0c;每年都有很多搜索推荐广告领域的精彩论文。…

复杂风控场景下,如何打造一款高效的规则引擎

| 在互联网时代&#xff0c;安全已经成为企业的命脉。美团信息安全团队需要采用各种措施和手段来保障业务安全&#xff0c;从而确保美团平台上的用户和商户利益不会受到侵害。 本文主要介绍了美团在打造自有规则引擎Zeus&#xff08;中文名“宙斯”&#xff09;的过程中&#x…

Android消息队列图片记录

很早之前为了给学生讲明白整个消息队列是怎么个情况&#xff0c;于是大概阅读了一下消息队列的整个工作过程&#xff0c;鉴于网上大部分都是文字说明&#xff0c;没有一个图例&#xff0c;于是做出了下面这张图&#xff0c;权当作以后复习之用&#xff0c;也供大家学习参考&…

Git使用教程:最详细、最傻瓜、最浅显、真正手把手教!

原文连接&#xff1a;https://blog.csdn.net/u011535541/article/details/83379151 转载自 Git使用教程 预警&#xff1a;因为详细&#xff0c;所以行文有些长&#xff0c;新手边看边操作效果出乎你的预料&#xff09;一&#xff1a;Git是什么&#xff1f; Git是目前世界上最先…

主动学习入门篇:什么是主动学习?有哪些具体应用

文 | 淘系技术部 初类来源 | 知乎在大数据和算力的助力下&#xff0c;深度学习掀起了一波浪潮&#xff0c;在许多领域取得了显著的成绩。以监督学习为主的深度学习方法&#xff0c;往往期望能够拥有大量的标注样本进行训练&#xff0c;模型能够学到更多有价值的知识&#xff08…

LeetCode 59. 螺旋矩阵 II LeetCode 54. 螺旋矩阵

文章目录1. 题目信息2. LeetCode 59 解题3. LeetCode 54. 螺旋矩阵4.《剑指Offer》面试题291. 题目信息 给定一个正整数 n&#xff0c;生成一个包含 1 到 n2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的正方形矩阵。 示例:输入: 3 输出: [[ 1, 2, 3 ],[ 8, 9, 4 ],[ 7…

如何查看Activity任务栈以及dumpsys_activity命令的简要使用及介绍

今天看到淘宝客户端的某个页面效果&#xff0c;效果是在两个Activity中做动画&#xff0c;为了知道究竟是不是在同一个Activity中做的效果&#xff0c;就必须采取一种手段来知道是不是同一个Activity.描述一下这个动画效果&#xff1a;列表页面点击图片&#xff0c;图片会滑动到…

论文浅尝 | 基于微量资源的神经网络跨语言命名实体识别

论文笔记整理&#xff1a;谭亦鸣&#xff0c;东南大学博士生&#xff0c;研究方向为跨语言知识图谱问答。来源&#xff1a;EMNLP 2018链接&#xff1a;https://www.aclweb.org/anthology/D18-1034问题背景与动机本文关注小语种/资源匮乏语言的跨语言命名实体识别问题&#xff0…

美团命名服务的挑战与演进

| 本文根据美团基础架构部技术专家舒超在2019 ArchSummit&#xff08;全球架构师峰会&#xff09;上的演讲内容整理而成。 命名服务主要解决微服务拆分后带来的服务发现、路由隔离等需求&#xff0c;是服务治理的基石。美团命名服务&#xff08;以下简称MNS&#xff09;作为服务…

NeurIPS 2020 | 自步对比学习:充分挖掘无监督学习样本

文 | 葛艺潇源 | PaperWeekly本文介绍一篇我们发表于 NeurIPS-2020 的论文《Self-paced Contrastive Learning with Hybrid Memory for Domain Adaptive Object Re-ID》&#xff0c;该工作提出自步对比学习框架及混合记忆模型&#xff0c;旨在解决无监督及领域自适应表征学习中…

Postman安装与使用

原文链接&#xff1a;https://blog.csdn.net/fxbin123/article/details/80428216 一、Postman背景介绍 用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的&#xff0c;用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具。…

LeetCode 35. 搜索插入位置(二分查找)

文章目录1. 题目信息2. 解题2.1 暴力遍历2.2 二分查找1. 题目信息 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 示例 1:输入…

青年人在美团是怎样成长的?

2020年五四青年节&#xff0c;我们采访了美团技术团队9位青年代表&#xff0c;他们是来自清华大学、北京大学、中国科学院大学等国内高校的2位博士研究生和7位硕士研究生。在这个属于青年人的特别的日子里&#xff0c;我们请他们分享了自己在美团成长的故事。 道阻且长&#xf…

它来了它来了!2020深度学习硬核技术干货集锦!

这份干货来自于今天要给大家推荐的一个深度学习与计算机视觉领域知名公众号&#xff1a;「极市平台」。从2016年创立至今&#xff0c;极市平台深耕于DL与CV领域&#xff0c;输出300篇高质量原创文章&#xff0c;并积累了近10万名海内外专业算法开发者。极市平台公众号坚持每日更…