seq2seq结构的问题以及PGN网络模型

问题1:

从模型的路径上看,encoder到实际输出有一定距离,从此限制了反向传播。

如果encoder decoder的seq2seq链很长,这个模型计算的attention值传到最后会越来越少,导致编码解码效果很差。(encoder信息消失的比较严重)

问题2:

摘要总结的结果有可能因为OOV的问题导致不准去。

(OOV:词表未登录词, 一般我们生成的未登录词会使用UNK表示)

问题3:

摘要结果会出现repeat重复的信息,比如重复出现德国队击败阿根廷队。

PGN指针生成网络

针对OOV问题解决办法就是用PGN指针生成网络。

PGN会生成一个pgen系数,用pgen乘encoder生成的部分和attention的概率分布,再用1-pgen乘encoder生成的部分,最后再加和。

在计算attention destribution时,发现某一个词的attention概率最高,它就会找到这个概率最高的词对应的一开始输入的tokenId,如果这个词在我们词典里,他肯定会有一个自己的ID号,那如果不在的话,他会时UNK对应的ID号。

PGN在每一步计算的时候会加一个OOV字典,如果这个概率最大的词不在我们字典里,我们可以加到OOV字典里编号30001(假设我们字典长度是30000),这样的话这个陌生词就有了TokenID,也就能通过tokenID从OOV字典里查出对应的陌生词。

(每次输入都会遍历这次输入的所有词,如果不在词典中就加入OOV)

这样拿到attention destribution的概率分布后,乘(1-pgen)与decoder输出预测的概率分布乘(pgen)相加就是我们最重要的概率分布结果。

PGN网络会将attention拉长到30001维,也会将decoder输出拉长到30001维后再相加。

以便最后相加

Pgen = sigmoid(W_{h}^{T}h_{t}^{*} + W_{s}^{T}S_{t} + W_{x}^{T}X_{t}+b)

 h_{t}^{*}=context_vector

S_{t}=decoder hidden

X_{t}=dec_inp

通过PGN我们可以减少词表量,不用担心OOV的问题,我们都可以学到OOV的词是什么

指针生成网络可以从输入的文中复制OOV词汇,这样我们就可以采用更小的字典进行训练。

因为我们原来之所以设置的词典比较大是因为不想让OOV词汇出现。

PGN网络比较适合摘要的任务。

Coverage机制

coverage机制可以很好的解决在词汇生成过程中一些重复的词的问题。

C^{t}=\sum_{t0}^{t-1}a前面的attention weight的和

将c加到attention计算score里面进行学习

coverageLoss的计算
小于等于1

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
seq2seq模型存在一些不足之处,可以通过以下方式进行改进: 1. 处理长距离依赖:为了解决信息传递损失和长距离依赖问题,可以使用注意力机制(attention mechanism)。注意力机制允许解码器在生成每个输出时,根据输入序列的不同部分分配不同的权重,从而更好地捕捉输入序列的上下文信息。 2. 解决歧义问题:为了解决歧义问题,可以尝试使用更复杂的解码器结构,如递归神经网络(RNN)的变体(如LSTM、GRU)或者Transformer模型。这些模型具有更强的建模能力,能够更好地处理复杂的语言结构和歧义情况。 3. 处理大规模训练困难:针对大规模训练困难,可以采用分布式训练策略,将训练过程分布在多个计算节点上进行并行计算。此外,使用更高效的优化算法和硬件加速(如GPU)可以加快训练速度。 4. 减少错误累积:为了减少错误累积,可以采用一些技术来提高生成质量。例如,引入强化学习方法,通过引入奖励机制来指导生成过程,从而减少错误累积。另外,可以使用预训练模型或者多任务学习来提升生成的准确性和一致性。 5. 结合外部知识:为了增强模型的表达能力和语义理解能力,可以引入外部知识,如知识图谱、词义相似度等。将这些知识融合到模型中,可以提高模型对复杂语义和推理任务的处理能力。 综上所述,通过引入注意力机制、使用更复杂的解码器结构、采用分布式训练策略、减少错误累积和结合外部知识等方式,可以改进seq2seq模型的不足,提高其在各种任务中的性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值