CopyNet、SeqGAN、BERTSUM…你都掌握了吗?一文总结文本摘要必备经典模型(二)

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
模型训练 PAI-DLC,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: CopyNet、SeqGAN、BERTSUM…你都掌握了吗?一文总结文本摘要必备经典模型

1.2 SummaRuNNer


SummaRuNNer是一种有监督的抽取式文本摘要模型,具体是一种基于递归神经网络RNN的抽取式摘要的序列模型。该模型的优点是非常容易解释,因为它允许将其预测按照抽象的特征(如信息内容、突出性和新颖性)进行可视化分解。此外,通过对提取模型进行抽象化训练,它可以单独对人类产生的参考文献进行训练,消除了对句子级提取标签的需要。SummaRuNNer的具体结构见图3,它是一个基于两层RNN的序列分类器:底层在每个句子中的word level上工作,而顶层运行在sentence level。图3中的双指向箭头表示双向RNN。1和0的顶层是基于sigmoid的分类层,它决定了每个句子是否属于摘要。每句话的决定取决于第二句。



图3 SummaRuNNer。一个基于两层RNN的序列分类器:底层在每个句子中的word level上运行,而顶层在sentence level中运行。双箭头表示一个双向的RNN。带有1和0的顶层是基于sigmoid激活的分类层,决定每个句子是否属于摘要。每个句子的决定取决于该句子的内容丰富程度、它在文件中的突出性、它在累积的摘要表征中的新颖性以及其他位置特征

在这项工作中,作者将抽取式总结视为一个序列分类问题,其中,按原始文件的顺序访问每个句子,并作出二元决定(考虑到以前作出的决定),即是否应将其列入在摘要中。使用基于GRU的递归神经网络作为序列分类器的基本构件。GRU-RNN是一个具有两个门的递归网络,u称为更新门,r为复位门,可以用以下公式描述:



其中W和b是GRU-RNN的参数,h_j是时间步长j的实值隐状态向量,x_j是对应的输入向量,⊙表示哈达玛德积。RNN的第一层运行在Word level,并计算隐状态表征。根据当前单词嵌入和先前的隐状态,顺序地在每个单词位置进行调整。Word level还使用了另一个RNN,它从最后一个word向后运行到第一个,这样的正反向RNN称为双向RNN。第二层RNN运行在sentence level,双向网络,并接受双向word-level RNN的平均池化与隐状态链接作为输入,即文档中的sentence level作为编码。整个文本的表征被建模为双向句子级RNN的平均集合隐状态的非线性变换,如下所示:



其中(h_j)^f和(h_j)^b分别是对应于前向和后向sentence level RNN的第j句的隐状态,N_d是文本中的句子数量,'[]'代表矢量连接。对于分类,每个句子都会被重新访问,在第二遍中,逻辑层会对该句子是否属于摘要做出二元决定,如下式所示:



其中,y_j是一个二元变量,表示第j个句子是否是摘要的一部分。句子的表征h_j是由双向句子级RNN第j个时间步长的联合隐状态的非线性变换得到的。s_j是摘要在第j个句子位置的动态表征。



当前 SOTA!平台收录SummaRuNNer共 1 个模型实现资源。


模型 SOTA!平台模型详情页
SummaRuNNer 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/models/models/2a859c7f-b677-45d1-8bef-2c743efbff55

1.3 SeqGAN


SeqGAN将GAN引入到序列标注中,整个算法在GAN的框架下,结合强化学习来做文本摘要生成。这是第一个扩展GANs以生成离散标记序列的工作。生成式对抗网(GAN)使用判别模型来指导生成式模型的训练,在生成实值数据方面取得了相当大的成功。然而,当目标是生成离散的标记序列时,GAN有局限性。一个主要原因是,生成模型的离散输出使得梯度更新很难从判别模型传递到生成模型。另外,判别模型只能评估一个完整的序列,而对于一个部分生成的序列,一旦整个序列生成,要平衡其当前的分数和未来的分数是不难的。本文提出了一个序列生成框架,称为SeqGAN,以解决这些问题。

SeqGAN将数据发生器建模为强化学习(RL)中的随机策略,通过直接执行梯度策略更新绕过了发生器的分类问题。强化学习的奖励信号来自于对完整序列进行判断的GAN判别器,并通过蒙特卡洛搜索传递回中间的状态动作步骤。



图4 SeqGAN图示。左图:D通过真实数据和G生成的数据进行训练。G通过策略梯度进行训练,最终的奖励信号由D提供,并通过蒙特卡洛搜索传递回中间的行动值


如图4所示,左图为GAN网络训练的步骤1,即根据真实样本和G生成的伪造样本训练判别器D网络,这里的D网络用的CNN实现。G通过策略梯度进行训练,最终的奖励信号由D提供,并通过蒙特卡洛搜索传递回中间的行动值。右图为GAN网络训练的步骤2,根据D网络回传的判别概率通过增强学习更新G网络,这里的G网络用的LSTM实现。

G网络的更新策略是增强学习,而增强学习的三个要素点状态state,action,reward。本文state指的是当前时间步长之前的解码结果,action指的当前待解码词,D网络判别伪造数据的置信度即为奖励reward,伪造数据越逼真则相应奖励越大,但该奖励是总的奖励,分配到每个词选择上的reward则采用了以下的近似方法:


完整的算法流程如Algorithm 1。首先,随机初始化G网络和D网络参数。其次,通过MLE预训练G网络,目的是提高G网络的搜索效率。然后,通过G网络生成部分负样预训练D网络。再然后,通过G网络生成sequence用D网络去评判,得到reward。训练目标是最大化识别真实样本的概率,最小化误识别伪造样本的概率:



最后,循环以上过程直至收敛。



当前 SOTA!平台收录 SeqGAN 共 22 个模型实现资源。


模型 SOTA!平台模型详情页
SeqGAN 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/models/models/eed884d0-4497-43f8-99b8-22d418455bac

1.4  Latent Extractive


隐变量提取(latent extractive)的相关工作发表在ACL2018中,是第一个提出把句子作为隐变量的抽取式摘要模型,其思路是把句子对应的label视为句子的二元隐变量(即0和1),不是最大化每个句子到训练数据(gold label)的可能性,而是最大化生成摘要是这个人工摘要整体的可能性。这与序列标注的方法的思路有着根本性的不同。从模型结构角度来讲,隐变量提取采用的是经典的深层双向LSTM网络+强化学习算法,架构方面改进不大,其主要贡献在于将句子看作隐变量的思想。



图5 隐变量提取模型。sent_i是文件中的一个句子,sum_sent_i是文件的gold摘要中的一个句子


如图5所示,提取模型有三个部分:一个句子编码器,将每个句子转换为一个向量;一个文档编码器,根据周围的句子作为上下文学习句子表征;一个文本解码器,根据文本编码器学习的表征预测句子标签。整个模型和SummaRunner非常相似,都是双层双向LSTM网络最后加个softmax。


然后,训练一个句子压缩模型,将提取模型选择的句子映射到摘要中的句子。该模型可用于评估所选句子相对于摘要的质量(即其相似程度),或根据摘要的风格重写一个提取的句子。该模型是一个标准的基于注意力机制的seq2seq架构,使用的数据集和抽取式摘要模型使用的数据集一样,使用ROUGE度量来衡量句子间的相似度。压缩模型的最终输出是从原文本"原句"到摘要句子的条件概率。


最后,使用隐变量做抽取式摘要。使用隐变量提取模型来生成隐变量的概率分布:



即根据前面i − 1个句子的评估结果,结合模型句子层的中间隐状态,做出判断: 当前句子是否应该纳入最后的摘要中。使用压缩模型估计给定文档句子C_k的摘要句H_l的可能性,并计算归一化概率s_kl:



作者做了个假设,对每一条原文本中的句子,只对应一条摘要中的句子,举例: 摘要句子为H_l ,则对应于文档中的句子s_kl。用下面的公式表征用原文本中的句子取代摘要中这条句子的概率:



这可以视为摘要对应于文档的召回率(recall),准确率用R_p(C,H)表示,最终的R(C,H)计算为:



模型 SOTA!平台模型详情页
Latent Extractive 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/models/models/0dab4348-ff0f-48af-847e-87687e2b4fb3
相关文章
|
11月前
|
机器学习/深度学习 自然语言处理 算法
【文本摘要(1)】抽取式之textrank(无监督学习):生成200字以内摘要
【文本摘要(1)】抽取式之textrank(无监督学习):生成200字以内摘要
206 0
|
11月前
|
机器学习/深度学习 JSON 自然语言处理
bert中文文本摘要代码(2)
bert中文文本摘要代码(2)
282 0
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
【一起从0开始学习人工智能0x02】字典特征抽取、文本特征抽取、中文文本特征抽取
【一起从0开始学习人工智能0x02】字典特征抽取、文本特征抽取、中文文本特征抽取
77 1
|
11月前
|
存储 自然语言处理 PyTorch
bert中文文本摘要代码(1)
bert中文文本摘要代码(1)
114 0
|
11月前
|
存储 自然语言处理 并行计算
bert中文文本摘要代码(3)
bert中文文本摘要代码(3)
119 0
bert中文文本摘要代码(3)
|
机器学习/深度学习 人工智能 自然语言处理
深度解析NLP文本摘要技术:详解与实战
深度解析NLP文本摘要技术:详解与实战
752 0
|
机器学习/深度学习 人工智能 自然语言处理
深度学习应用篇-自然语言处理[10]:N-Gram、SimCSE介绍,更多技术:数据增强、智能标注、多分类算法、文本信息抽取、多模态信息抽取、模型压缩算法等
深度学习应用篇-自然语言处理[10]:N-Gram、SimCSE介绍,更多技术:数据增强、智能标注、多分类算法、文本信息抽取、多模态信息抽取、模型压缩算法等
|
机器学习/深度学习 自然语言处理 PyTorch
CopyNet、SeqGAN、BERTSUM…你都掌握了吗?一文总结文本摘要必备经典模型(一)
CopyNet、SeqGAN、BERTSUM…你都掌握了吗?一文总结文本摘要必备经典模型(一)
151 0
|
机器学习/深度学习 人工智能 自然语言处理
CopyNet、SeqGAN、BERTSUM…你都掌握了吗?一文总结文本摘要必备经典模型(三)
CopyNet、SeqGAN、BERTSUM…你都掌握了吗?一文总结文本摘要必备经典模型
230 0
|
机器学习/深度学习 并行计算 PyTorch
循环神经网络实战案例——实现文本情感分类
循环神经网络实战案例——实现文本情感分类
154 0
下一篇
无影云桌面