Seq2seq框架下的文本生成( 三 )


  • Multi-Source Pointer Network for Product Title Summarization
网购商品的摘要生成需要更大程度保留关键信息 , 同时避免无关内容 。本文的结构很像引入知识特征的pointer-generator , 利用pointer的思想从输入文本中提取关键词 , 这里的输入文本是商品的标题 , 确保信息相关;引入知识特征则是为了更大程度的产生关键信息 。
Seq2seq框架下的文本生成

文章插图
 
从上图的结构中可以看到 , 文中提出的MS-Pointer结构有两个输入 , 商品标题作为传统Encoder输入 , 背景知识作为额外的输入文本 , 两种输入的处理方式相同 , encoding后与Decoder的输入分别计算出两个attention , 然后按照pointer-generator的思路结合两种分布 , 只不过这里结合的是传统词表的概率分布与背景知识特征的概率分布 。
  • Learning to Select Knowledge for Response Generation in Dialog Systems
上面两篇文章分别对copy-net和pointer-generator做知识特征融合 , 结构上没有很大的改变 , 基于前者实现也是相对方便的 。本文则更侧重于知识特征 , 强调利用后验知识分布优化对话生成 。
Seq2seq框架下的文本生成

文章插图
 
乍一看比上面的结构都复杂 , 但其实每个部分都有明确的目标 , 最上面sourceX到decode的部分就是传统的attention-seq2seq , 这里重点介绍下面关于知识特征的融合利用 。
首先 , 用单独的Encoder模块编码知识和目标输出(训练时) , 然后通过X , Y计算知识K的先验和后验概率分布 , 并通过KL散度度量两个概率分布的距离 , 这里不难理解 , 先验分布和后验分布相差极小就意味着可以用先验分布采样知识(预测时后验分布未知) , 并用于生成目标回复Y 。第二部分中 , 通过后验(预测时先验代替)分布采样出与对话相关的知识作为额外的知识特征 , 与Decoder模块的输入一起编码 , 再和被encoding的sourceX一起预测下一个词 。此外 , 训练的损失函数包含KL散度 , NLL损失和BOW损失 , 第三部分就是用BOW损失考量被采样出的知识(图中的k2)与目标输出文本相关的概率 。
总结一下 , 本文仍然是seq2seq框架 , 关键就是用两个计算损失优化模型采样知识的能力 , 然后将知识作为额外特征参与Encoder-Decoder编码 。相比于模型结构 , 笔者更关注数据中的知识形式 , 本文的源码和数据会在发表后开放 , 项目地址就在文中 , 各位感兴趣可以持续关注 。
卷积结构上的新尝试2017年有两篇基于机器翻译任务的工作摆脱了RNN结构 , 采用了CNN和Transformer , 一定程度上证明了非RNN结构在NLP任务上的可行性 。Facebook的这篇Convolutional Sequence to Sequence Learning提出了基于Attention-Seq2seq框架的Convs2s结构 , 用CNN做编解码单元 , 通过学习位置向量弥补CNN不具备的序列特征捕捉特性 , 并借助残差结构 , GLU等技巧让网络可以堆叠的足够深 , 从而让CNN也能捕捉长距离文本特征 , 另外CNN的并行能力远超RNN , 因此该结构理论上似乎可以更节省时间 , 本节将介绍两篇基于Convs2s结构的工作 , 第一篇融合了主题模型作为额外的特征 , 第二篇结合了强化学习的方式 , 两者虽基于Convs2s结构 , 但对其他结构同样有启发性 。
  • Don’t Give Me the Details, Just the Summary! Topic-Aware Convolutional Neural Networks for Extreme Summarization
本文的结构和Convs2s几乎完全一致 , 其创新点就在于网络输入融合了传统的文本embedding和主题向量 , 如下图所示:
Seq2seq框架下的文本生成

文章插图
 
个人认为 , 融合主题模型的思路很适合文本摘要类任务 , 笔者用pointer-generator实验时就发现 , 即便模型可以输出贴近自然语言的结果 , 也可以包含一些特殊词 , 但丢失原文关键信息的现象仍然非常明显 , 特别是训练语料不充分的情况下 。结合知识特征自然是一种合理的思路 , 但构建知识图谱或类似的结构化知识数据并不是一件简单的事 , 相比之下主题模型就更为容易应用了 。此外本文融合主题的方式非常直接 , 并不依赖网络结构 , 很容易应用于其他模型结构 。


推荐阅读