abstract:

  1. 目前seq2seq任务大多是从左到右一个词一个词生成的
  2. 神经网络的方法,比如LSTM或者self-attention,可以充分利用历史信息,但是不能利用未来信息(future information),从而导致结果的不平衡(左边由于右边)
  3. 本文提出一种同步双向推理模型:
  1. 提出平衡搜索策略,利用同步双向解码
  2. 同时交互使用left2right和right2left的双向解码,以便同时使用历史信息和未来信息
  3. 提出两种参数优化的策略
  1. 在机器翻译和摘要生成的实验上,比baseline实现了显著的提升

Introduction

  1. 目前许多自然语言处理的忍辱,例如机器翻译,摘要生成和机器人都是一个seq2seq的生成问题,也就是讲一个序列作为输入,生成另一个序列的问题。目前主流的seq2seq框架都是从左向右,依赖之前的输出生成当前的输出。目前的方法主要还是在探索如何的利用好历史信息
  2. 无论是L2R模型还是R2L模型,都会造成结果的不平衡
  1. L2R模型:左边效果优于右边
  2. R2L模型:右边效果优于左边

Synchronous Bidirectional Inference for Neural Sequence Generation

  1. 目前充分利用L2R模型和R2L模型的方法如下:
  1. 【6,7】加强训练过程中L2R和R2L的一致性来提高L2R的推理
  2. 【8.9】用R2L模型重排L2R模型的top-n结果
  3. 【10】首先得到R2L的输出,利用输入和R2L的输出,共同生成L2R的输出

上述方法虽然都用到了L2R模型和R2L模型,但是存在以下缺点:

  1. 训练过程中分别训练L2R模型和R2L模型
  2. 在推理的过程中,L2R模型和R2L模型没有进行交互
  1. 本文提出一种同时利用L2R和R2L进行解码并进行交互的同步双向推理模型,模型如下图:
  1. 提出一种同时适用于L2R和R2L模型的平衡搜索算法
  2. 在推理的每一步,每办个分支分别保留来自L2RR2L推理的假设,每个假设都是利用两个方向的已预测输出生成的
  3. L2R模型和R2L模型之间的推理交互是通过一个同步attention实现的,这样可以同时利用历史信息和未来信息

Synchronous Bidirectional Inference for Neural Sequence Generation

箭头的方向代表信息的传递方向

  1. 实箭头代表历史信息
  2. 虚箭头代表未来信息
  1. 为了检验本文模型的生成能力,我们分别用LSTM和self-attention表示上述模型,在机器翻译和摘要生成两个任务上进行验证。此外提出两种参数的优化策略。

Synchronous Bidirectional Inference:

  1. Seq2seq模型的目标就是在已知输入序列的前提下,寻找输出序列是的下面的条件概率最大

    Synchronous Bidirectional Inference for Neural Sequence Generation

 

  1. 单向模型(Unidirectional Inference
  1. 将上述公式分解为L2R模型:

Synchronous Bidirectional Inference for Neural Sequence Generation

  1. 将上述模型分解为R2L模型:

Synchronous Bidirectional Inference for Neural Sequence Generation

无论是L2R模型还是R2L模型都缺少信息,L2R模型缺少未来信息,R2L模型缺少历史信息

  1. 同步双向模型(Synchronous Bidirectional Beam Search
  1. 希望同时利用历史信息和未来信息,但是这不切实际。因为预测yi+1需要用到yi的信息,预测yi有需要用到yi+1的信息,因此每一步的预测都需要用到所有的context信息。所以我们后退一步,不在利用所有的context信息,而是利用尽可能多的context信息

Synchronous Bidirectional Inference for Neural Sequence Generation

  1. 算法1

Synchronous Bidirectional Inference for Neural Sequence Generation

  1. 算法2

Synchronous Bidirectional Inference for Neural Sequence Generation

  1. 算法3:

Synchronous Bidirectional Inference for Neural Sequence Generation

Synchronous Bidirectional Inference for LSTM-based Seq2Seq Framework

  1. 无论哪种类型的seq2seq模型,都有一个编码器和一个解码器。给定输入序列x将其转化为contex表示C,再将C解码成输出序列y
  2. 基于LSTM的seq2seq框架:
  1. 编码器:学习context向量C

Synchronous Bidirectional Inference for Neural Sequence Generation

利用上述公式,分别计算L2R和R2L的输出,将其输出通过全连接层得到最终输出

Synchronous Bidirectional Inference for Neural Sequence Generation

  1. 解码器:根据C选择最合适的输出:

Synchronous Bidirectional Inference for Neural Sequence Generation

其中zi是attention的输出

Synchronous Bidirectional Inference for Neural Sequence Generation

Synchronous Bidirectional Inference for Neural Sequence Generation

Synchronous Bidirectional Inference for Neural Sequence Generation

Context向量的计算是通过attention,其中系数越大贡献越大

Synchronous Bidirectional Inference for Neural Sequence Generation

  1. 基于LSTM的同步双向推理:

Synchronous Bidirectional Inference for Neural Sequence Generation

  1. L2R模型

Synchronous Bidirectional Inference for Neural Sequence Generation

利用到双向信息

其中z_i是第i个位置的L2R输出,ci是input根据attention计算的input context,cz_i是根据R2L模型的输出通过attention计算的output context(右)

  1. R2L模型

Synchronous Bidirectional Inference for Neural Sequence Generation

其中z_i是第i个位置R2L的输出,ci是input根据attention计算的input context,cz_i是根据L2R模型的输出通过attention计算的output context(左)

 

Synchronous Bidirectional Inference for Neural Sequence Generation

 

  1. Synchronous Bidirectional Inference for Self-attention based Framework

在decoder步骤使用双向信息

对于L2R模型,利用了两个attention,分别计算z_past(query为第i个位置的输出,key和value都是历史信息)和z_future (query为第i个位置的输出,key和value都是未来信息)

对于R2L模型,利用了两个attention,分别计算z_past(query为第i个位置的输出,key和value都是未来信息)和z_future (query为第i个位置的输出,key和value都是历史信息信息)

Z = z_parst + λ*tanh(z_future)

  1. 以上所说的未来信息是右边的信息,历史信息是左边的信息

Synchronous Bidirectional Inference for Neural Sequence Generation

  1. Tranning

目标函数:

Synchronous Bidirectional Inference for Neural Sequence Generation

无论是L2R模型还是R2L模型,都同时用到了历史信息和未来信息。这样做存在的问题是,会自己预测自己,这样是not reasonable。所以本文提出两种参数优化方案:

  1. Two-pass Training

Step1.利用数据,分别训练L2R模型和R2L模型

Step2.第二步训练时,L2R模型用未来信息采用step1中训练的R2L模型的输出,类似的R2L模型利用历史信息则用step1中的L2R模型的输出

  1. Fine-tuning Strategy

Step1.并行训练L2R模型和R2L模型利用三元组和下面的公式

Synchronous Bidirectional Inference for Neural Sequence Generation

Step2.训练收敛后,在对数据集中10%数据进行解码,得到(x,yL和yR),在进行Two-pass Trainingstep2

  1. Fine-tuning StrategyTwo-pass Training好的一点是不需要分别训练两个模型(同时训练两个模型,在我看来没什么差别),不需要对整个数据集进行decode,效率会好一点

相关文章:

  • 2021-07-28
  • 2021-12-05
  • 2022-01-23
  • 2021-05-01
  • 2021-06-11
  • 2021-06-27
  • 2021-12-04
  • 2021-06-08
猜你喜欢
  • 2021-06-10
  • 2022-12-23
  • 2021-10-11
  • 2021-10-19
  • 2021-10-05
  • 2022-12-23
  • 2021-11-14
相关资源
相似解决方案