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

105 阅读6分钟

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 = [ r 1 , . . . , r L r ] \text{r}=[r_{1},...,r_{L_{r}}] r=[r1​,...,rLr​​]。Retriever得到的结果一方面作为merging module的一个输入,另一方面将其输入到encoder - 2得到相应的表示 v v v,然后将其作为 x \text{x} x解码时的辅助信息。

Extractor and Generator

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

  • Encoder:这里使用的Bi-GRU,首先得到单的词 w i w_{i} wi​的上下文表示
    u i = BiGRU 1 ( x i , u → i − 1 , u ← i + 1 ) v j = BiGRU 2 ( r j , 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​,u i−1​,u i+1​)vj​=BiGRU2​(rj​,v j−1​,v j+1​)
    接着拼接两个方向的表示得到 u i = [ u → i , u ← i ] \text{u}_{i}=[\overrightarrow{\text{u}}_{i},\overleftarrow{\text{u}}_{i}] ui​=[u i​,u i​]和 v j = [ v → j , v ← j ] \text{v}_{j}=[\overrightarrow{\text{v}}_{j},\overleftarrow{\text{v}}_{j}] vj​=[v j​,v j​],最后便可以得到表示 U \text{U} U和 V \text{V} V。
  • Extractor:这里可以看作是sequence identifier,通过判别文档中的短语的重要性来进行打分,其中重要性分数的计算为:
    β j = sigmoid ( W c u j + u j T W s d − u j T W n tanh ⁡ ( s j ) + b ) \beta_{j}=\text{sigmoid}(W_{c}u_{j}+u_{j}^TW_{s}d-u_{j}^TW_{n}\tanh(s_{j})+b) βj​=sigmoid(Wc​uj​+ujT​Ws​d−ujT​Wn​tanh(sj​)+b)
    其中 d = tanh ⁡ ( W d [ u → L x ; u ← 1 ] + b ) d=\tanh(W_{d}[\overrightarrow{u}_{L_{x}};\overleftarrow{u}_{1}]+b) d=tanh(Wd​[u Lx​​;u 1​]+b), W c 、 W s 、 W n W_{c}、W_{s}、W_{n} Wc​、Ws​、Wn​分别代表content、salience和novelty的权重矩阵。
  • Decoder:输入包括 β 、 U 、 V \beta、U、V β、U、V,这里使用的是GRU+Attention+copy,不同之处在于:这里没有使用之前普遍使用的将internal attention score作为copy的概率,而是使用了rescaled internal attention score来decoder更加关注文档中重要的词。

training

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

  • Extraction Loss:这里使用交叉熵,损失函数为
    L e = − 1 L x ∑ j = 1 L x w β 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​=−Lx​1​j=1∑Lx​​wβj∗​logβj​+(1−βj∗​)log(1−βj​)
  • Generation Loss:这里使用MLE,损失函数为:
    L g = − ∑ t = 1 L y ∗ log ⁡ P ( y t ∗ ∣ y t − 1 , x , r ) L_{g}=-\sum_{t=1}^{L_{y}^*} \log P(y_{t}^*|y_{t-1},x,r) Lg​=−t=1∑Ly∗​​logP(yt∗​∣yt−1​,x,r)

Merging module

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

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

整个算法的伪代码如下:


在这里插入图片描述

实验

数据集为KP20k、Inspec、Krapivin、NUS、SemEval,评价指标为macro-averaged recall(R)和F-measure( F 1 F_{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的实验结果中可以看出,新的框架可以更好的生成未在文档中出现的关键短语。


在这里插入图片描述

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


在这里插入图片描述

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


在这里插入图片描述