机器给你划重点,听说很靠谱哦!——生成式关键短语识别

关键短语(关键词)是对一段长文本内容的高度摘要,往往只包含若干个词语。关键短语识别广泛的应用于信息检索,文本摘要,文本分类,观点挖掘等任务中。例如:信息检索任务中,需要提取搜索语句中的关键短语,再根据关键词及其扩展词汇进行检索。而在观点挖掘任务中往往需要发掘评论语句中的有用信息,简短精要的关键短语则能有效的概括文本中所隐藏的重点信息。

传统的关键短语提取算法一般分为以下两步: 

Step1: 首先得到一个候选关键短语列表。通常使用 n-grams 或者名词短语(通过 POS tagging+正则表达式匹配得到)作为候选短语。 

Step2: 计算每一个候选短语的重要度得分并取得分较高的候选短语作为关键短语。其中重要度的计算通常采用人工构造的特征结合有监督或者无监督的机器学习方法。

而以上关键词提取方法往往存在 2 个重要问题,首先这种方法只能从原文中“挑词”,不能提取出那些没有完整的出现在源文本中的短语(absent keyphrase),因此许多关键词的同义或者近义表达都无法召回。

下表给出了在四个公开数据集中 present keyphrase 与 absent keyphrase 出现的比例,可以看出 absent keyphrase 在真实数据中是十分常见的。


其次在使用机器学习算法对关键短语进行重要度打分排序时,普通的基于统计的特征(比如 TF-IDF)并不能有效的反映文本的语义信息。

ACL 2017 的文章——Deep Keyphrase Generation 提出了结合复制机制(copying mechanism)的 RNN 关键短语生成模型一定程度上解决了这些问题,模型分别在 6 个数据集上均取得了很好的效果。 

接下来我们来看一下这篇文章的思路和模型框架。 

不同于先前的抽取式方法,这篇文章将关键词识别定义为一个生成式问题,即在输出时将每一个关键短语也看做一个词序列(sequence of words), 一个词一个词的生成。而sequence-to-sequence(seq2seq)learning正适合解决这样的端到端的学习。

目前seq2seq只适用于单一序列到单一序列的学习,然而一段文本中会有好多个关键短语,因此在预处理过程中需要先将一个一对多的数据转化成多个一对一数据。

模型采用了典型的 encoder-decoder 框架:

• Encoder(a bidirectional RNN):用 RNN 将源文本的语义信息压缩为一个 hidden vector,其中也使用了注意力机制。 

• Decoder(a forward RNN):将 hidden vector 解压缩成关键序列,具体就是通过 beam search 生成一系列的关键词短语。不同于一般 seq2seq 应用中只关心一个得分最高的序列,这里在搜索过程中需要将得分最高的 k 个序列都保存下来。 

以上就是 seq2seq 模型的基本构造。在一般的 RNN 模型中,为了控制参数数量以及保证词向量质量,通常只会考虑在数据中出现频率较高的词,将大量的长尾词替换为 unknown。因此很多重要的低频词汇并不会出现在词典中,模型也就不能生成包含这些词的序列。为了解决此问题作者引入了与注意力机制相类似的复制机制:

• Copying Mechanism

在 RNN 之外引入一个 pointer network,去计算原文本中的每一个词应该被 copy 到输出的概率。在加入 copying mechanism 之后,每一个预测词 yt 的概率由两部分来决定,一部分是通过原模型框架 decoder 部分得到的预测词yt的生成概率,另一部分是从源文本中复制这个词的概率。

详情请参考 Jiatao Gu 的 Incorporating Copying Mechanism in Sequence-to-Sequence Learning。 

实验部分,作者在大规模学术论文数据(已公开)上进行训练,分别在三个不同的任务上对模型(RNN,CopyRNN)做了评估: 

• Predicting Present Keyphrase

为了与先前的抽取算法比较,限定 RNN 只输出在原文本中出现的关键短语(present keyphrase)。CopyRNN 大幅度优于 baselines 和 RNN 模型,表明拷贝机制在从原文中“抽取”关键词汇时起到了关键作用。

• Predicting Absent Keyphrase

这个实验是看两个模型是否能够有效的“猜到”那些在原文中没有出现的关键短语。这里我们看到两个模型的性能差距小于上一个实验,但拷贝机制仍然有所贡献,可能是由于 absent Keyphrase 中的个别词也会出现在原文本中,拷贝机制可以作为额外的注意力增强这些词被预测的概率。


• Transferring the Model to News Domain

最后,由于本文模型都只是在学术文本上训练的,这里作者希望知道换到其他领域的文本(新闻,评论等)上模型是否还能很好的识别关键词。在新闻数据 DUC2001 上的实验结果显示 CopyRNN 在完全陌生的语料上仍能锁定部分关键词,其中包含许多人名地名等生僻词汇:


对话作者

很久之前就关注过关键词识别问题(一直做 Information Science,所以经常接触学术数据),但一直没有想到好的方法去改进。直到 15 年看到 FAIR 的那篇 Abstractive Sentence Summarization,意识到关键词其实也是一个个短摘要,也许也能够通过类似的生成式方法去实现。

然后就开始漫长的抓数据、做实验、写paper的过程。在做了半年多后才第一次看到相对靠谱的输出结果,在这之前对于这个方法是不是走得通其实是完全没有底气。最后结果还不错,更开心的是在做的过程中学习到了很多,希望这个故事能给科研同僚们一丝激励。

最后关于关键短语识别这个任务,感觉可以提升的空间还很大(F-score 最高还不到 0.35),也有非常多的问题和应用等待解决,希望有兴趣的童鞋可以一起行动起来。

查看论文:

Deep Keyphrase Generation

论文作者 | Rui Meng, Sanqiang Zhao, Daqing He, Peter Brusilovsky, Yu Chi(匹兹堡大学)

特约记者 | 钟世敏(西华大学)

理论理论论文NLP文本摘要
PaperWeekly
PaperWeekly

PaperWeekly 是一个推荐、解读、讨论和报道人工智能前沿论文成果的学术平台,

PaperWeekly
PaperWeekly

推荐、解读、讨论和报道人工智能前沿论文成果的学术平台。

推荐文章
返回顶部