An Integrated Approach for Keyphrase Generation via Exploring the Power of Retrieval and Extraction

提出一种多任务混合学习框架,整合抽取式和生成式模型,利用语料库检索增强关键短语生成,提升准确性和多样性。
NAACL 2019 《An Integrated Approach for Keyphrase Generation via Exploring the Power of Retrieval and Extraction》

本文作者提出了一种用于关键短语生成的多任务混合学习框架,不同于已有的单纯依赖于抽取式或是生成式模型,该框架实现了两种类型模型的混合训练,通过使用抽取出的关键短语来修改生成过程中copy的概率分布,从而使生成式模型可以更好从文档中识别出重要的部分进行复制。

此外为了进一步的提高效果,作者这里还采用检索语料库中和所处理文档相似的文档的方式,进而产生更多精准的关键短语来帮助生成过程。最后作者提出了一种基于神经网络的合并模块,来进一步的处理上述三种方式得到的关键短语,使得最后得到的关键短语质量更高。

传统的抽取式方法根据重要性分数直接从文档中进行短语的抽取,通常效果不错,但是无法得到没有在文档中出现过的短语。而使用了copy机制的生成式方法既可以得到文档中已有的短语,同时还可以生成未曾在所处理文档中出现的短语。但是copy机制可能会导致一个问题,那就是从文中复制的部分太多,导致难以区分结果中短语的相对重要性。

因此作者指出,抽取式得到的重要性分数可以为生成式模型提供指导,使得它知道更应该关注文档中的哪些短语,从而起到一种修正copy概率分布的作用。另外,所处理文档和语料库中相似的文档由于表述的相近性,它们通常都会包含相同或相近的关键短语。因此,如果我们可以从相似文档中检索出相似的短语,那么它们可以作为生成模型解码时的一种辅助信息,帮助decoder生成更精准、更多样化的结果。

本文所提出的框架如下所示


在这里插入图片描述

从图中可以看出,整个框架重要包含四个部分:

  • Retriever:负责从语料库中的相似文档中检索出相似的候选关键短语
  • Extractor:负责为所处理的文档中的短语根据重要性进行打分,抽取出候选关键短语,并将得到的重要性分数用于Generator的Decoder部分
  • Generator:负责根据所处理文档的表示来生成新的候选关键短语
  • Merging Module:负责归并三个来源得到的关键短语,从而产生最终的预测结果

Retriever

语料库中的数据以<document,keyphrase>的形式存在,Retriever根据Jaccard similarities从中选出TOP-K的文档,然后将它们的keyphrase作为候选关键短语r=[r1,...,rLr]\text{r}=[r_{1},...,r_{L_{r}}]r=[r1,...,rLr]。Retriever得到的结果一方面作为merging module的一个输入,另一方面将其输入到encoder - 2得到相应的表示vvv,然后将其作为x\text{x}x解码时的辅助信息。

Extractor and Generator

这两部分共享Encoder - 1得到的关于x\text{x}x的表示U\text{U}U,其中Extractor根据U\text{U}Ux=[x1,...,xLx]\text{x}=[x_{1},...,x_{L_{x}}]x=[x1,...,xLx]中的短语进行打分,得到重要性分数序列β=[β1,...,βLx]\beta=[\beta_{1},...,\beta_{L_{x}}]β=[β1,...,βLx]。Generator根据U、β、v\text{U}、\beta、\text{v}Uβv生成候选关键短语Y={yi}i=1,...,NY=\{y^i\}_{i=1,...,N}Y={yi}i=1,...,N,其中yi=[y1i,...,yLyii]y^i=[y_{1}^i,...,y_{L_{y^i}}^i]yi=[y1i,...,yLyii]

  • Encoder:这里使用的Bi-GRU,首先得到单的词wiw_{i}wi的上下文表示
    ui=BiGRU1(xi,u→i−1,u←i+1)vj=BiGRU2(rj,v→j−1,v←j+1) \text{u}_{i}=\text{BiGRU}_{1}(\text{x}_{i},\overrightarrow{\text{u}}_{i-1},\overleftarrow{\text{u}}_{i+1}) \\ \text{v}_{j}=\text{BiGRU}_{2}(\text{r}_{j},\overrightarrow{\text{v}}_{j-1},\overleftarrow{\text{v}}_{j+1}) ui=BiGRU1(xi,ui1,ui+1)vj=BiGRU2(rj,vj1,vj+1)
    接着拼接两个方向的表示得到ui=[u→i,u←i]\text{u}_{i}=[\overrightarrow{\text{u}}_{i},\overleftarrow{\text{u}}_{i}]ui=[ui,ui]vj=[v→j,v←j]\text{v}_{j}=[\overrightarrow{\text{v}}_{j},\overleftarrow{\text{v}}_{j}]vj=[vj,vj],最后便可以得到表示U\text{U}UV\text{V}V

  • Extractor:这里可以看作是sequence identifier,通过判别文档中的短语的重要性来进行打分,其中重要性分数的计算为:
    βj=sigmoid(Wcuj+ujTWsd−ujTWntanh⁡(sj)+b) \beta_{j}=\text{sigmoid}(W_{c}u_{j}+u_{j}^TW_{s}d-u_{j}^TW_{n}\tanh(s_{j})+b) βj=sigmoid(Wcuj+ujTWsdujTWntanh(sj)+b)
    其中d=tanh⁡(Wd[u→Lx;u←1]+b)d=\tanh(W_{d}[\overrightarrow{u}_{L_{x}};\overleftarrow{u}_{1}]+b)d=tanh(Wd[uLx;u1]+b)Wc、Ws、WnW_{c}、W_{s}、W_{n}WcWsWn分别代表content、salience和novelty的权重矩阵。

  • Decoder:输入包括β、U、V\beta、U、VβUV,这里使用的是GRU+Attention+copy,不同之处在于:这里没有使用之前普遍使用的将internal attention score作为copy的概率,而是使用了rescaled internal attention score来decoder更加关注文档中重要的词。

training

损失项主要包含以下两个:

  • Extraction Loss:这里使用交叉熵,损失函数为
    Le=−1Lx∑j=1Lxwβj∗log⁡βj+(1−βj∗)log⁡(1−βj) L_{e}=-\frac{1}{L_{x}}\sum_{j=1}^{L_{x}}w \beta_{j}^* \log \beta_{j}+(1-\beta_{j}^*)\log (1-\beta_{j}) Le=Lx1j=1Lxwβjlogβj+(1βj)log(1βj)

  • Generation Loss:这里使用MLE,损失函数为:
    Lg=−∑t=1Ly∗log⁡P(yt∗∣yt−1,x,r) L_{g}=-\sum_{t=1}^{L_{y}^*} \log P(y_{t}^*|y_{t-1},x,r) Lg=t=1LylogP(ytyt1,x,r)

Merging module

最后Merging module根据三个输入的相应分数进行排序得到最终的结果,其中Extractor中候选短语对应的是重要性分数,Generator对应的是decode过程中的注意力分数,Retrieveer对应的是根据Jaccard 相似度计算得到的分数。

为了对输入进行打分,这里引入了一个基于BiGRU的模型来获得输入的表示,然后使用一个辅助的打分器对获得的表示进行打分。打分的依据是将其和真实的关键短语进行比较,判断输入和真实关键短语的接近程度。

整个算法的伪代码如下:


在这里插入图片描述

实验

数据集为KP20k、Inspec、Krapivin、NUS、SemEval,评价指标为macro-averaged recall(R)和F-measure(F1F_{1}F1)。

训练模式有四种:

  • KG-KE:只联合训练extraction和generation部分
  • KG-KR:联合训练generation和retrieve部分
  • KG-KE-KR:联合训练extraction、generation和retrieve三部分
  • KG-KE-KR-M:联合训练extraction、generation、retrieve和merging四部分

在多个数据集上和基准模型对比的结果如下:


在这里插入图片描述

从结果中可以看出新框架的效果优于之前的模型,证明了引入的新模块确实可以起到一定的效果。

在对于absent keyphrase的实验结果中可以看出,新的框架可以更好的生成未在文档中出现的关键短语。


在这里插入图片描述

消融实验也证明了每一部分的有效性


在这里插入图片描述

最后从结果的可视化中可以看出,新框架生成的关键短语更加精准和多样化。


在这里插入图片描述

### UniKeyphrase 框架概述 UniKeyphrase 是一种新的端到端联合模型,旨在解决关键短语预测任务。该框架的核心思想是通过预训练语言模型(PLM)作为基线,明确建模出现在原文中的关键短语提取(PKE)任务与未出现在原文中的关键短语生成(AKG)任务之间的相互关系[^2]。 #### 统一的关键短语提取和生成方法 UniKeyphrase 的统一框架设计结合了两种类型的关键短语预测任务:出现在原文中的关键短语(present keyphrases)和未出现在原文中的关键短语(absent keyphrases)。以下是其主要组成部分: 1. **预训练语言模型(PLM)** UniKeyphrase 利用预训练语言模型的强大上下文表示能力来捕捉文档的语义信息。通过 PLM,模型能够更好地理解文档内容,并为 PKE 和 AKG 任务提供全局语义支持[^2]。 2. **关键短语提取(PKE)** 对于出现在原文中的关键短语,UniKeyphrase 将其视为从文档中抽取的任务。模型通过对文档进行编码,识别出最具代表性的短语作为关键短语。这些短语不仅反映了文档的核心内容,还为 absent keyphrase generation 提供了重要的上下文信息[^2]。 3. **关键短语生成(AKG)** 对于未出现在原文中的关键短语,UniKeyphrase 使用生成式方法。例如,通过 NK-Prompt 技术,模型可以将 absent keyphrase 的生成转化为对 [MASK] 标记的预测任务。具体而言,prompt 的形式为“other keyphrases are [MASK] [MASK] [MASK] [MASK]”,每个 [MASK] 的预测结果会被组合成最终的 absent keyphrase[^1]。 4. **任务间的相互作用** UniKeyphrase 明确建模了 PKE 和 AKG 任务之间的相互关系。出现在原文中的关键短语可以为 absent keyphrase 的生成提供文档的重要信息,而未出现在原文中的关键短语则被视为高级潜在主题,这种信息反过来又可以为 present keyphrase 的提取提供全局语义支持。 #### 应用场景 关键短语预测的结果在自然语言处理(NLP)领域具有广泛的应用价值。例如: - **摘要生成**:通过提取和生成关键短语,帮助生成更简洁、准确的文档摘要。 - **文本聚类**:利用关键短语作为特征,提高文本聚类的效果。 - **信息检索**:关键短语可以用作查询扩展,提升检索的召回率和精确率。 - **推荐系统**:在内容理解模块中,关键短语预测结果可作为文章标签,用于构建用户画像,从而优化排序和召回等模块。 ```python # 示例代码:使用 UniKeyphrase 框架进行关键短语预测 from unikeyphrase import UniKeyphraseModel # 初始化模型 model = UniKeyphraseModel(pretrained_model="bert-base-uncased") # 输入文档 document = "Natural language processing is a field of artificial intelligence." # 提取和生成关键短语 present_keyphrases, absent_keyphrases = model.predict(document) print("Present Keyphrases:", present_keyphrases) print("Absent Keyphrases:", absent_keyphrases) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值