利用预训练语言模型拓展实体集合

本文探讨了实体集合拓展任务,利用预训练语言模型进行类名生成、排序和实体选择。通过一个三阶段的pipeline模型,包括类名生成、排序和实体选择,以减少歧义和误差传递。实验表明,这种方法在Wiki和APR数据集上显著提升了拓展的准确性。
摘要由CSDN通过智能技术生成

🎎 Reading Group 的 pdf 版本

今天介绍一个小众的 Task, 实体集合拓展(Entity set expansion).

Empower Entity Set Expansion via Language Model Probing. ACL 2020.
Yunyi Zhang, Jiaming Shen, Jingbo Shang, Jiawei Han

任务的目标是拓展原有的实体集合,向其中添加相同类别的实体,注意这里的实体类别一般不是传统的 7 大 NER 类别,更偏向 Fine-grained 的。
举个例子,原有集合{德州,杭州,青岛},可以拓展为{林芝,六盘水}之类的。

简单的话,我们用聚类 Contextual Embedding(类似于 Word Sense Induction 中的做法), 或者用 pair-wise loss 增强 Similarity 的计算可以给到一个结果。

但这样操作会有两个缺点:

  1. 单纯的相似度计算,容易拓展不准确的实体(非同级,反义词,High level 相似,但细粒度不同).
  2. 随着集合的拓展,容易出现语义偏移等误差累计问题.

如果能获得实体集合的类别名称,能减少歧义,促进对实体集合的理解。

本文从这个角度出发,通过两个 query 分别预测实体类别和实体, 试图更好的利用预训练模型中的语言知识。

image

初看可能思路比较简单,只是做一个 MLM 的预测。
但如果只是这样,最多只是让生成的实体更符合生成的 class name,但很容易产生误差传递的问题, 并没解决语义偏移的问题。

文中使用了一些 tricks, 来试图解决以上问题,(体现在阅读观感上,就会觉得这个模型有点繁琐)。

Class-guided Entity Expansion

具体来说,这是一个三阶段的 pipeline 模型。

  • 集合类名生成(class name generation).
  • 集合名称排序(class name ranking).
  • 集合指导下的实体选择(class-guided entity selection).

image

Class Name Generation

这一部分是三个阶段中最简单的一个,主体架构就是 MLM。

这个过程类似于一个已知特定的下位词,寻找通用的上位词这个过程。

使用 Hearst(1992)年提出的,六个 pattern 构建 query。
每次随机抽取三个实体组成一个 query。
这些 query 简短,主要起到的构建层次化语义,强化归纳类别信息的作用,例如Country such as China, Japan, South Korea.

- NPy such as NPa
- such NPy as NPa
- NPa or other NPy
- NPa and other NPy
- NPy, including NPa
- NPy, especially NPa

通过 Mask pattern 中 class name 部分,预测出最符合当前三个实体的 class name。

但这样操作也只能预测出 single token 的 class name, 适用性较差。

这边就采用一个迭代+beam search 的策略。依次向前填词。例如先预测出来country, 然后再去预测Asia country.

每轮选取 top-k 的候选集依次向前。

最大长度限制在 3,然后利用 pos tag 工具(nltk)来筛除非名词短语。

和很多 pipeline 模型一样,这个阶段的目标只是高 recall,通过多次 sample entity subset 来尽可能提高 recall。

Class Name Ranking

单纯的做上面的 MLM 任务,使用的只是 LM 学到的分布,不一定符合当前 Corpus.

在这个阶段,目标是筛选出来最佳 class name( c p c_p cp) 和一些负样本( C N C_N CN, 用于后面辅助选择 entity).

一个简单的想法,统计前面一个阶段每个 class name 出现的次数,作为排序的指标,但是容易更偏向短 token。

M k ( e , c ) = 1 k max ⁡ X X e , ∣ X ∣ = k ∑ x ∈ X max ⁡ x ′ ∈ X c cos ⁡ ( x , x ′ ) M^{k}(e, c)=\frac{1}{k} \max_{X X_{e},|X|=k} \sum_{ {x} \in X} \max_{ {x}^{\prime} \in X_{c}} \cos \left({x}, {x}^{\prime}\right) Mk(e,c)=k1XXe,X=kmaxxXxXcmaxcos(<

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值