自动文摘出现的重要原因之一是信息过载问题。

自动文摘要解决的问题描述很简单,就是用一些精炼的话来概括整篇文章的大意。目前有二种流派,一种是extractive,抽取式的,从原文中找到一些关键的句子,组合成一篇摘要;另外一种是abstractive,摘要式的,这需要计算机可以读懂原文的内容,并且用自己的意思将其表达出来。

人类语言包括字、词、短语、句子、段落、文档这几个level,研究难度依次递增,理解句子、段落尚且困难,何况是文档,这是自动文摘最大的难点。

extractive是目前最主流、应用最多、最容易的方法,后者相对来说更有一种真正人工智能的味道。

还有另外一种分类方法是,单文档摘要和多文档摘要,前者是后者的基础,但后者不只是前者结果简单叠加那么简单。

Extractive Summarization:
抽取式的方法—排序问题:一篇文档的核心思想可以用文档中的某一句或几句话来概括。那么摘要的任务就变成了找到文档中最重要的几句话。

一般的抽取式摘要问题,会考虑相关性和新颖性两个指标。相关性是指摘要所用的句子最能够代表本文档的意思,而新颖性是指候选句子包含的冗余信息要少,尽可能每句话都可以独立地表达出一种独立的意思。

预处理

词,句的表示:

1、Bag Of Words。词袋模型将词定义为一个维度,一句话表示成在所有词张成的空间中的一个高维稀疏向量。
2、TFIDF。可以理解为带权重的词袋模型,计算出每个词的TFIDF值,作为该词的权重。
3、LDA/LSI。将整篇文档利用TFIDF模型表示成一个矩阵,做SVD降维分解,生成两个矩阵,一个是文档-话题矩阵、另一个是词-话题矩阵。得到词-话题矩阵之后,可以得到句子-话题矩阵。
4、Word Embedding。Tomas Mikolov提出的Word2Vec。
5、GloVe 。也是一种词向量。

排序:
两种常见的方法
1. 基于图排序
将文档的每句话作为节点,句子之间的相似度作为边权值构建图模型,用pagerank算法进行求解,得到每个句子的得分。
代表算法有TextRank和LexRank。

  1. 基于特征
    特征工程很重要,这里用到的特征包括:

1)句子长度,长度为某个长度的句子为最理想的长度,依照距离这个长度的远近来打分。
2)句子位置,根据句子在全文中的位置,给出分数。(比如每段的第一句是核心句的比例大概是70%)
3)句子是否包含标题词,根据句子中包含标题词的多少来打分。
4)句子关键词打分,文本进行预处理之后,按照词频统计出排名前10的关键词,通过比较句子中包含关键词的情况,以及关键词分布的情况来打分。
代表算法是TextTeaser。

后处理
排序之后的结果只考虑了相关性并没有考虑新颖性,非常有可能出现排名靠前的几句话表达的都是相似的意思。所以需要引入一个惩罚因子,将新颖性考虑进去。对所有的句子重新打分,如下公式:
a x score(i) + (1-a) x similarity(i,i-1), i = 2,3,….N
序号i表示排序后的顺序,从第二句开始,排第一的句子不需要重新计算,后面的句子必须被和前一句的相似度进行惩罚。
这个算法就是所谓的MMR(Maximum Margin Relevance)

输出
输出的结果一般是取排序后的前N句话,这里涉及到一个非常重要的问题,也是一直自动文摘质量被诟病的问题,可读性。因为各个句子都是从不同的段落中选择出来的,如果只是生硬地连起来生成摘要的话,很难保证句子之间的衔接和连贯。保证可读性是一件很难的事情。
这里有一个取巧的方法,就是将排序之后的句子按照原文中的顺序输出,可以在一定程度下保证一点点连贯性。

Abstractive式的:
三个难点:
1、理解文档。所谓理解,和人类阅读一篇文章一样,可以说明白文档的中心思想,涉及到的话题等等。
2、可读性强。可读性是指生成的摘要要能够连贯(Coherence)与衔接(Cohesion),通俗地讲就是人类读起来几乎感觉不出来是AI生成的(通过图灵测试)。
3、简练总结。在理解了文档意思的基础上,提炼出最核心的部分,用最短的话讲明白全文的意思。

自动文摘评价问题也是个大问题:
计算机评价效果,需要给定参考摘要作为标准答案,通过制定一些规则来给生成的摘要打分。目前,使用最广泛的是ROUGH系统(Recall-Oriented Understudy for Gisting Evaluation),基本思想是将待审摘要和参考摘要的n元组共现统计量作为评价依据,然后通过一系列标准进行打分。包括:ROUGH-N、ROUGH-L、ROUGH-W、ROUGH-S和ROUGH-SU几个类型。通俗地将就是通过一些定量化的指标来描述待审摘要和参考文摘之间的相似性,维度考虑比较多,在一定程度上可以很好地评价Extracive产生的摘要。
这里涉及到一个重要的问题,就是标注语料问题。自动评价需要给定一系列文档已经他们的参考文摘,用来测试不同的算法效果。TAC(Text Analysis Conference)和TREC(Text REtrieval Conference)两个会议提供了相关的评测数据集,自动文摘领域的paper都是以这些数据集为baseline,与其他paper的算法进行对比。

近期abstractive summarization的一些研究情况:
1. 把abstractive问题转换为sequence-sequence问题,套用Machine Translation中的encoder-decoder框架和attention mechanism技术,得到state-of-the-art。
2. Encoder-decoder是一种框架,一种处理问题的思路,最早应用于机器翻译领域,输入一个序列,输出另外一个序列。将该技术扩展到其他领域,比如输入序列可以是文字,语音,图像,视频,输出序列可以是文字,图像,可以解决很多别的类型的问题。
3. Attention Mechanism,
attention可以理解为,提问的信息只与之前看完的那段话中一部分关系密切,而其他部分关系不大,这个人就会将自己的注意力锁定在这部分信息中。这个就是所谓attention mechanism的原理。
4. 使用deep learning技术来做abstractive summarization的paper屈指可数,大体的思路也类似。