0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FS-NER 的关键挑战

深度学习自然语言处理 来源:深度学习自然语言处理 作者:深度学习自然语言 2022-08-15 09:42 次阅读

小样本 NER 需要从很少的实例和外部资源中获取有效信息。本文提出了一个自描述机制,可以通过使用全局概念集(universal concept set)描述实体类型(types)和提及(mentions)来有效利用实例和外部资源的知识。

具体来讲,我们设计了自描述网络SDNet),一个 Seq2Seq 的生成模型可以使用概念来全局地描述提及,自动将新的实体类型映射到概念中,然后对实体进行识别。SDNet 在一个大规模语料中预训练,在 8 个 benchmarks 上进行实验,实验结果表明,SDNet 取得了很有竞争力的效果,并且在 6 个 benchmarks 上达到了 SOTA。

Intro

小样本 NER(FS-NER)的目标是通过很少的样本来识别出属于新实体类的实体提及。FS-NER 面临两个主要的挑战:

1. limited information challenge:少量样本所包含的语义信息有限。

2. knowledge mismatch challenge:使用外部的知识直接与新任务进行匹配可能有各种偏差甚至产生冲突。

具体来说,在 Wikipedia,OntoNotes 和 WNUT17 中,“America” 的标注分别为 “geographic entity”、“GPE” 和 “location”。因此,如何有效利用少量数据并且准确迁移外部知识是 FS-NER 的关键挑战。

为此,作者提出了自描述机制,其主要思想是将所有的实体类型描述为同一个概念集,类型和概念之间的映射是可以建模和学习的,这种方式可以解决知识不匹配的问题。同时,因为这种映射是全局的,对于少量新实体类样本来说,只需要将这部分数据用来构建新实体类型和概念之间的映射,也解决了信息不足的问题。

7df9092e-1c2d-11ed-ba43-dac502259ad0.png

▲ 实体类型、提及和概念映射示例

基于以上想法,我们提出了一个自描述网络——SDNet,是一个 Seq2Seq 的生成模型,可以全局的使用概念来描述提及,自动将新实体类型映射到概念集,并且能够识别实体。

具体来讲,为了获取一个提及的语义,SDNet 生成一个全局的概念集作为描述。例如:生成 {capital,city} 对于句子“Dr。Kohl came to [Beijing].”。为了映射实体类型和概念,SDNet 将属于同一实体类型的提及映射到这些提及所对应的概念中。例如:对于 [Beijing] 和 [America] 两个属于 GPE 类型的提及,将 GPE 这一类型映射到 {country,capital,city}。

对于实体识别,SDNet 使用 concept-enriched 的前缀 prompt 的方式直接在一个句子中生成出所有的实体。例如:在 “France is beautiful.” 这句话中通过生成出 “France is GPE.” 来识别实体,构建一个前缀 prompt“[EG] GPE:{country,capital,city}”。因为概念是全局的,所以我们可以在 SDNet上使用大规模语料库预训练,并且可以很容易的使用 web 资源,具体来说,我们通过使用 wikipedia 锚词到 wikidata items 之间的连接构建了包含 56M 个句子,31K 个概念的数据集。

本文的主要贡献总结如下:

1. 我们提出了自描述机制来解决 FS-NER 问题,可以有效解决信息限制和知识不匹配的挑战通过使用一个全局的概念集描述实体类型和提及;

2. 我们提出 SDNet,一个可以全局的使用概念描述提及,自动映射新实体类型和概念并且识别实体的 Seq2Seq 生成模型;

3. 我们在一个大规模的公开数据集上预训练 SDNet,对 FS-NER 提供了全局信息并且对未来 NER 的研究有益。

Method

模型整体流程包含两部分:

1. Mention describing:生成提及的概念描述;

2. Entity generation:生成属于新实体类的提及。

模型结构图如下:

7e341118-1c2d-11ed-ba43-dac502259ad0.png

▲ 模型结构

2.1 Self-describing Networks

SDNet 可以完成两个生成任务,就是上文提到的 mention describing 和 entity generation,分别使用了不同的提示 P 并且生成不同的输出 Y。具体形式如下图所示:

7e557dbc-1c2d-11ed-ba43-dac502259ad0.png

▲mention describing和entity generation示例

对于 mention describing,提示模板由一个标识 [MD] 和一个目标实体提及组成;对于 entity generation,提示模板由标识 [EG] 和一个新实体类型和其对应的描述组成。上述两个过程是一组对称的过程:一个是给定实体提及,获取其概念描述;另一个是识别包含特定概念的实体。

2.2 Entity Recognition via Entity Generation

具体来讲,entity generation 的输入提示为

7e6f94a4-1c2d-11ed-ba43-dac502259ad0.png

其中 t 是实体类型,l 是实体类型对应的概念。SDNet 会生成如下形式的输出:

7e82fac6-1c2d-11ed-ba43-dac502259ad0.png

这里就相当于获取了每个实体对应的实体类型:

7e9b4504-1c2d-11ed-ba43-dac502259ad0.png

可以看出,SDNet 可以实时进行控制,通过使用不同的 prompts。例如:给一个句子 “Harry Potter is written by J.K. Rowling.”,如果想要识别 person 类,提示模板采用 {[EG] person: {actor, writer}},如果想要识别 creative work 类,则模板采用 {[EG] creative work: {book, music}} 即可。

2.3 Type Description Construction via Mention Describing

Mention Describing

给定一个句子 X,包含新类的实体提及{e1, e2, ...},使用的提示模板为:

7eaca0c4-1c2d-11ed-ba43-dac502259ad0.png

SDNet 会产生如下形式的输出:

7ebadc70-1c2d-11ed-ba43-dac502259ad0.png

这一步会生成每个实体提及的概念。

Type Description Construction

SDNet 会将属于同一实体类型的提及生成的概念,融合成一个概念集合 C,将这个概念集合 C 作为类型 t 的描述。

7ed8e242-1c2d-11ed-ba43-dac502259ad0.png

Filtering Strategy

由于下游任务含有大量新的实体类型,SDNet 对于其中某些类型没有足够的知识来描述,如果强制进行生成会导致一些不准确的描述。本文提出一个过滤策略解决这个问题。具体来讲,SDNet 会对那些不确定的样本生成 other 这一描述。我们会计算生成 other 描述的概率,如果对于一个样本生成的 other 超过 0.5,则会去除掉类型描述,在 P_EG 模板中直接使用类型。

Learning

接下来说明 SDNet 如何进行预训练和微调。

3.1 SDNet Pre-training

本文使用 wikipedia 和 wikidata 数据来构建数据集。

Entity Mention Collection

对于 SDNet 的预训练,我们需要收集 三元组,其中 e 是实体提及,T 是实体类型,X 是句子。通过以下两个步骤来构建:

1. 首先,从 wikidata 中构建实体字典。我们将 wikidata 中每个 item 作为实体并且使用 “instance of”、“subclass of” 和 “occupation” 三个属性值作为其对应的实体类型。我们使用所有的实体类型,除去那些实例少于 5 个的。对于那些类型名长度超过 3 个 token 的,采用其 head word 作为最终的实体类型来简化。通过这种方式,我们收集了 31K 个类型;

2. 其次我们使用其在 wikipedia 中的锚文本和其条目页面的前 3 个频繁出现的名词短语来收集每个实体的提及。然后对于每一个提及,通过将其连接到 wikidata 中 item 的类型来识别实体类型。如果 wikidata 的 item 没有实体类型,则给其分配 other。对于每一个百科页,将文本分割成句子,并且将没有实体的句子过滤掉。最终我们构建出了含有 56M 个实例的数据集。

Type Description Building

文本将上述获取的实体类型作为概念,对于给定的一个实体类型,使用与其共同出现的实体类型作为其描述。举例来说,Person 类可以描述为 {businessman, CEO, musician, pianist} 通过以下两个实例 “Steve Jobs:{person, businessman, CEO}” 和 “Beethoven:{person, musician, pianist}”。通过这种方式生成每个实体类型的描述概念集。因为有些类型的概念集特别大,因此本文为每个实体随机采样不超过 10 个概念作为概念集合。

Pretraining via Mention Describing and Entity Generation

给定一个句子 X 以及它的提及-类型元组:

7efc8576-1c2d-11ed-ba43-dac502259ad0.png

我们从 E 中采样一些目标提及 E' 输入到模板 P_MD 中生成它的对应概念。对于实体生成,从正类型和负类型中采样类型集输入到模板 P_EG 中生成提及对应的实体类型。模型损失如下:

7f0aa246-1c2d-11ed-ba43-dac502259ad0.png

▲ 交叉熵损失

3.2 Entity Recognition Fine-tuning

微调阶段给定一个样本三元组 ,先通过 MD 过程生成每个类型的描述,然后使用这些描述通过 EG 过程生成提及对应的实体类型。微调阶段的损失为:

7f1d92de-1c2d-11ed-ba43-dac502259ad0.png

▲EG过程的损失

Experiments

4.1 主实验

7f40407c-1c2d-11ed-ba43-dac502259ad0.png

▲ 主实验,评价指标采用 micro-F1

实验结果可以看出,在 6 个 benchmark 中 SDNet 达到了 SOTA。作者也分析了在 Res 这一 benchmark 上与 T5 表现接近的原因,因为 Res 与 wikipedia 数据有巨大的领域漂移,导致模型经常生成 other。

4.2 样本数的影响

7f5e3eec-1c2d-11ed-ba43-dac502259ad0.png

▲ 样本数的影响

实验结果可以看出,SDNet 在任何样本数设置下都有更好的表现。作者认为,基于生成的模型要比基于分类的模型有更好的表现,因为生成模型可以利用标签的 utterance 更有效的获取实体类型的语义。

4.3 消融实验

7f7bf55e-1c2d-11ed-ba43-dac502259ad0.png

(1)w/o desp:在EG过程直接使用实体类型,而不加入全局的概念描述,例如:

7f8ba90e-1c2d-11ed-ba43-dac502259ad0.png

(2)w/o joint:将 MD 和 EG 过程分为两个单独的过程分开训练。

(3)w/o filter:不进行过滤策略。

4.4 零样本实验

7f9798a4-1c2d-11ed-ba43-dac502259ad0.png

4.4 EG模板的影响

7fbbd5ca-1c2d-11ed-ba43-dac502259ad0.png

总结

本文一大优点是为 FS-NER 引用外部知识提供了一个新的思路,本文的预训练模型也可以直接做迁移。

不足之处在于在与 Wikipedia 之间存在巨大的领域漂移的情况下,模型会生成大量 other 从而严重影响效果。在维基百科中可能存在大量人名地名等常见实体,而在一些实际问题中,可能存在很多不常见的实体,模型可能很难对这些实体做到很好的描述。

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6795

    浏览量

    88730
  • 模型
    +关注

    关注

    1

    文章

    3108

    浏览量

    48646

原文标题:ACL2022 | 自描述网络的小样本命名实体识别

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    NER2401程序,手册

    NER2401程序,手册,可以实现无线通信
    发表于 05-30 15:15

    下一代超快I-V测试系统关键的技术挑战有哪些?

    如何进行超快I-V测量?下一代超快I-V测试系统关键的技术挑战有哪些?
    发表于 04-15 06:33

    功耗成为HPC和Networking的关键设计挑战

    功耗成为HPC和Networking的关键设计挑战
    发表于 05-21 06:32

    金帆牌FS30 FS35 FS40落地扇电路图

    金帆牌FS30 FS35 FS40落地扇电路图
    发表于 06-06 16:14 2197次阅读
    金帆牌<b class='flag-5'>FS</b>30 <b class='flag-5'>FS</b>35 <b class='flag-5'>FS</b>40落地扇电路图

    光学传感器的系统NER模拟

    NER 即噪声等效反射率。本文通过分析 光学传感器 噪声的形成机理,指出传感器的系统噪声很大程度上和入瞳处的辐射亮度有关,并对噪声等效反射率的进行了模拟研究。为遥感图像的
    发表于 06-13 15:45 22次下载
    光学传感器的系统<b class='flag-5'>NER</b>模拟

    一些NER的英文数据集推荐

    ://www.clips.uantwerpen.be/conll2002/ner/     3   CoNLL-2003  CoNLL 2003是由新闻通讯社的文章以四种不同的语言(西班牙语、荷兰语、英语和德语
    的头像 发表于 12-26 09:11 3588次阅读

    一种单独适配于NER的数据增强方法

      本文首先介绍传统的数据增强在NER任务中的表现,然后介绍一种单独适配于NER的数据增强方法,这种方法生成的数据更具丰富性、数据质量更高。 0 前言 在NLP中有哪些数据增强技术?这一定是当今
    的头像 发表于 01-18 16:28 3018次阅读

    如何解决NER覆盖和不连续问题

    ://aclanthology.org/2021.acl-long.372.pdf 代码:https://github.com/foxlf823/sodner 提取摘要 由于普通的NER问题被研究的透透的了,本文
    的头像 发表于 09-08 10:48 2523次阅读
    如何解决<b class='flag-5'>NER</b>覆盖和不连续问题

    怎么构建命名实体识别(NER)任务的标注数据

    用自己平台的商品标题去请求一些开放 NER 的 api,比如阿里云、腾讯云、百度 ai 等,有些平台的 api 是免费的,有些 api 每天可以调用一定次数,可以白嫖,对于电商领域,阿里云的 NER 效果比其他家好一些。
    的头像 发表于 07-26 14:28 3831次阅读

    基于填表方式的NER方法

    现在很多基于填表方式的NER方法,在构造表中元素的时候,一般用的都是由相应span的head字和tail字的表征得到的,而本文在此基础上加入了从span中所有字的表征中抽取出来的特征,下面介绍一下具体怎么搞。
    的头像 发表于 08-11 11:47 1101次阅读

    介绍两个few-shot NER中的challenge

    此部分着重介绍了两个few-shot NER中的challenge:limited information challenge和knowledge mismatch challenge。前者主要是指
    的头像 发表于 08-24 10:01 813次阅读

    Few-shot NER的三阶段

    Few-shot NER的三阶段:Train、Adapt、Recognize,即在source域训练,在target域的support上微调,在target域的query上测试。
    的头像 发表于 08-24 16:12 1361次阅读

    如何简单粗暴的提升NER效果?

    如果我们有一个训练数据集,比方说一个case:“海底捞的主要食物是火锅”,在NER的任务中,标注成为“{海底捞^饭店}的主要食物是{火锅^食物}”,其中海底捞的实体为饭店,而火锅的为食物。
    的头像 发表于 12-12 14:03 959次阅读

    EMI电磁干扰:挑战与机遇并存,如何应对是关键

    深圳比创达EMC|EMI电磁干扰:挑战与机遇并存,如何应对是关键
    的头像 发表于 04-11 10:24 453次阅读
    EMI电磁干扰:<b class='flag-5'>挑战</b>与机遇并存,如何应对是<b class='flag-5'>关键</b>

    EMI电磁干扰行业:行业发展的关键挑战

    深圳比创达EMC|EMI电磁干扰行业:行业发展的关键挑战
    的头像 发表于 05-28 10:55 360次阅读
    EMI电磁干扰行业:行业发展的<b class='flag-5'>关键</b>与<b class='flag-5'>挑战</b>