论文笔记|KPDROP: Improving Absent Keyphrase Generation

导读

本文是伊利诺大学芝加哥分校和Amazon团队发表在EMNLP2022上的一片论文,论文聚焦于文本的关键词生成任务,提出了一种随机去掉出现在文中的关键词(present keyprasem,PK)以人工构建未出现在文中的关键词(Absent Keyphrase, AK)的方法,用于改善AK的生成,实验证明,这种方法在全监督和半监督的方法中都起到了一定的性能提升。论文链接

一、研究背景

关键词生成(Keyphrase Generation, KG)是对文本进行归纳,以获得一组能够很好地总结文档的词语。关键词生成任务能够被运用于许多NLP的下游任务,例如对于科技论文来说,关键词生成可以能够提升论文索引或论文检索的效果等。

关键词大题可以分为两种类型:(1)出现在文档中的关键词(Present Keyphrase, PK);(2)没有出现在文档中的关键词(Absent Keyphrase, AK)。以往的工作多聚焦于PK的抽取,这些方法不能够被用于AK的生成。因此,为弥补这一限制,也有学者提出了一些Seq2Seq的模型来生成PK和AK。

对于AK来说,学者们已经充分论述了其存在的意义,AK可以通过扩展查询词来改善文档检索,以缓解查询词和相关文档之间的词汇不匹配问题,从而显著地文档检索的效率。因此,作者认为生成AK是十分有意义的。然而,生成AK是一个具有挑战性的工作,目前最好的模型也没有达到令人满意的效果。

本文提出了keyphrase dropout简称为KPDrop,用于提升AK生成的性能。传统的dropout一般是在神经元上进行随机dropout,用于避免模型的过拟合。本文提出的dropout是在短语上的,即从给定的文本中随机的drop掉一些短语,将dropout后的文本作为训练的语料。因此,drop掉的这些短语就从PK变成了AK。总的来说,KPDrop有以下两个方面的作用:

  1. 模型被强制使用哪些上下文信息来推断drop掉的关键词,将简单的抽取任务转换为复杂的生成任务,能够提高整体预测AK的能力。
  2. KPDrop是一种动态的数据增强方法,其drop的过程可以在训练的过程中动态的完成,因此不同批次的训练数据可能drop掉不同的词语,从而提高数据的多样性。

二、方法

在KPDrop中,对于输入文档X,可以看作是一个token序列,对应了一个目标序列,即一个成都为n的关键词集合Y=\{y_1,y_2,...,y_n\}。在Y中,可以分为两个子集合,即PK的子集合P=\{p_1,p_2,...,p_s\} (P \subseteq Y)和AK的子集合A=\{a_1,a_2,...,a_t\} (A\subseteq Y),并满足A\cap P = \varnothings+t=n

在应用KPDrop的时候,对于P_k \in P会以概率r被随机的drop掉(通过二项分布采样),这里r是dropout的rate(KPDrop rate)。采样之后,将drop掉的关键词集合记为OO \subseteq P),对于每一个关键词p_k \in O,KPDrop会从输入文本X中用一个[MASK]符号来替换文本中的p_k和对应的stemmed的p_k,在完成替换之后,把输入文本称为X^{new},同时A和P也会发生变化,即P :=P\setminus OA:=A\cup O,同时Y也会更新到A^{new},下图给出了一个KPDrop应用的实例。

2.1 KPDrop的两种策略

KPDrop对于一个给定的mini-batch的样本提供至少两种不同的数据增强方式。

  • KPDrop-R: 使用Dropout后的样本代替原始的样本,即对于每一个样本(X,Y),在应用KPDrop后,全部替换为(X^{new}, Y^{new}),即对于一个批次B,B_{KPDR} = \{(X^{new}, Y^{new}) | (X,Y) \in B\}
  • KPDrop-A:在KPDrop处理后,保留原始样本和处理后的样本,即对于每一个样本(X,Y),在应用KPDrop后,将(X^{new}, Y^{new})添加到整个batch中,即对于一个批次B,B_{KPDA} = B \cup B_{KPDR}

对于这两者不同的策略来说,KPDrop-R能够提升训练时AK的样本数量,模型能够更好地生成AK,但同时由于删去了部分的PK,会导致PK抽取的性能受到影响。而对于KPDrop-A来说,由于其事拓展了数据,没有删去原始的样本,因此其可以在保持原始PK数据的同时加大AK的比例。因此KPDrop-A能够在不影响PK的时候提升生成AK的性能。

2.2 KPDrop特征和与其他工作的关联

  • KPDrop和掩码语言建模:从表面上来看,KPDrop与掩码语言建模(MLM)有些类似,两者都涉及重建一些masked的文本区域。但也二者有一些重要的区别:(1)KPDrop只mask那些KP,而不是随机的mask掉文本中的token;(2)KPDrop对于一个要mask掉的词语,会mask掉其在一段文本中所有出现的实例,而MLM不一定会mask掉所有出现这个词语的地方;(3)第三,masking只是KPDrop的工程选择;不是模型的重要成分。
  • KPDrop作为结构化的Dropout:KPDrop是一种结构化的dropout,通过随机地drop掉PK完成此过程。在先前的工作中,也有其他种类的结构化的dropout,例如随机地drop掉神经网络中的神经元,或者随机地drop掉整个layer等。
  • KPDrop的模型无关性:KPDrop的一大特征是模型无关性,即KPDrop只会修改模型的输入和输出,而不会修改模型的内部架构。因此KPDrop可以适用于关键词预测任务的任何模型。本文将KPDrop用于了三个模型:(1)基于RNN的one2many模型;(2)基于RNN的one2one模型;(3)基于Tranformer的one2set模型。

三、实验

首先作者给出了应用两种KPDrop策略后,AK生成的模型性能:

 其次,作者给出了AK的Recall:

作者还给出了PK的性能,以证明KPDrop-A的作用:

 总的来说,作者提出的数据增强册类能够在一定的程度上改进模型的性能,但也有一部分数据集应用之后模型没有改进,反而有性能的衰减。

四、总结

本文提出了一种模型无关的数据增强增强策略,用于改进现有模型中AK生成的性能不足的问题,并在公开数据集上进行了对比实验,以证明所提出方法的有效性,我有如下的想法:

  1. 用mask替换原有的词会不会太粗暴了,反而损伤了原有的上下文语义信息,因此会在一些数据集中取得了更差的效果,如果将mask更改为近义词呢,会不会取得更好的上下文语义,从而达到更好的性能;
  2. 这里简单的将PK替换为了AK,并没有考虑到AK和PK可能承担了不用的作用(Meng et a l. 2017),最终性能评估只能说是真实场景下AK识别的有偏估计。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值