NLP文本摘要技术原理拆解:AI是怎么把万字长文压成三段话的?

NLP文本摘要技术原理拆解:AI是怎么把万字长文压成三段话的? 你丢给AI一篇五千字的文章它几秒钟就给你总结出三个要点。这件事看起来像魔法背后其实是自然语言处理领域一个研究了几十年的课题自动文本摘要。自动文本摘要的目标很简单给定一段长文本生成一段短文本保留核心信息丢掉冗余内容。但「什么是核心信息」这个问题比想象中难得多。这篇文章从底层原理出发拆一下文本摘要的两条技术路线和关键实现。抽取式摘要从原文里挑句子抽取式摘要的思路最直观原文里哪些句子最重要挑出来拼在一起就是摘要。怎么做呢核心是给每个句子打一个「重要性分数」。早期的做法是用一些启发式特征句子位置开头和结尾的句子通常更重要、词频高频词所在句子更重要、提示词「因此」「关键是」「值得注意」后面的句子更重要。把这些特征加权求和算出每个句子的分数取Top N条拼成摘要。TextRank是抽取式摘要的一个经典算法借用了PageRank的思路。把文章里的句子看成节点句子之间的相似度看成边在图里跑迭代每个节点的得分就是它的重要性。这个方法不需要训练数据纯无监督对任何语言都适用。深度学习的出现让抽取式摘要上了一层楼。BERTSUM这类模型用BERT做句子编码然后用一个分类器判断每个句子该不该选入摘要。编码时还加入了句子位置信息因为模型需要知道「这是文章的第几句」。相比TextRank有监督的BERTSUM在ROUGE评分上高了5到8个点。抽取式摘要的优点是靠谱——摘要里的每个字都来自原文不会编造。缺点是摘要不够流畅拼出来的句子之间可能有跳跃感读起来像「断片」。生成式摘要从头写一段新文字生成式摘要不挑原文句子而是理解原文后用自己的话重新写一段摘要。这背后是Seq2Seq序列到序列架构。编码器把原文压缩成一个上下文向量解码器从这个向量里「解压」出摘要。但这里有个瓶颈整个原文被压缩成一个固定长度的向量长文章的信息会丢失。注意力机制解决了这个瓶颈。解码器生成每个词的时候不是只看那个固定的上下文向量而是动态地「看」编码器输出的所有位置决定当前该关注原文的哪一部分。Transformer架构把注意力机制发挥到了极致自注意力让每个词都能看到整篇文章里所有其他词的关系。现在主流的生成式摘要模型几乎都是基于Transformer的预训练模型。BART用去噪自编码器预训练Pegasus专门为摘要任务设计了预训练目标把原文中重要的句子mask掉让模型预测T5把所有NLP任务统一成「文本到文本」的格式。实际效果上Pegasus在多个摘要数据集上达到了SOTAROUGE-L最高能到44。生成式摘要的优点是流畅像人写的一样。缺点是有「幻觉」风险——模型可能生成原文中没有的信息看起来合理但实际是编的。实际落地中的混合策略工程上很少只用一种方法。实战中常见的是抽取生成混合先用抽取式方法筛出原文中最重要的段落作为生成式模型的输入再让模型生成摘要。这样既能控制幻觉输入是原文片段模型发挥空间有限又能保证流畅度。长文本的处理也是工程上的挑战。一篇万字文章Transformer的自注意力复杂度是O(n²)直接输入不现实。实际做法是分块处理把文章切成多个片段每段单独生成摘要再把各段摘要拼起来做一轮「摘要的摘要」。现在市面上一些AI笔记工具的AI总结功能比如Ai好记的精华速览底层就是这套文本摘要技术在起作用。把长视频的语音转文字后用抽取生成的混合策略提炼出核心要点按章节分标题展示。还没完全解决的问题事实一致性。生成式摘要编造内容的问题还没完全解决。现在的做法是在生成后加一个事实校验模块用NLI自然语言推理模型判断摘要中的每个陈述是否能在原文中找到依据。多文档摘要。把多篇文章的信息融合成一份摘要比单文档摘要难一个量级。需要处理信息冗余多篇文章说了同一件事、信息矛盾不同文章观点冲突、信息互补各有各的角度。评估标准。ROUGE评分是目前最常用的摘要评估指标但它只比n-gram重叠完全不考虑语义。人看着很好的摘要ROUGE分可能很低。基于大模型的评估用GPT-4打分正在成为新的趋势但成本和一致性还需要优化。FAQQ抽取式摘要和生成式摘要哪个更好A取决于场景。抽取式摘要忠实度高适合法律文书、学术论文等不能出错的内容。生成式摘要流畅度好适合新闻、博客等阅读体验优先的内容。工程上通常用混合策略。Q文本摘要的ROUGE评分是什么意思AROUGE是一组评估摘要质量的指标核心是比摘要和参考摘要之间的n-gram重叠率。ROUGE-1比单词ROUGE-2比双词组合ROUGE-L比最长公共子序列。分数越高说明越接近人工摘要但ROUGE高分不一定代表摘要好。Q长文本摘要有什么特殊处理A核心是分块策略。把长文本切成多个片段每段单独生成摘要再对摘要做摘要。分块时要注意在自然段落边界切避免切断关键信息。相邻块之间保留一定重叠保证上下文连贯。