最近项目中要用到copy机制,尝试了《文本生成系列(一)seq2seq中的copy机制》中的方法,发现处理OOV字符这一块处理起来不是很方便(可以实现),相对来说,Pointer Generator Network更简洁一些。
Pointer Generator Network的动机有两个:1. 处理OOV问题;2. 解决生成模型重复生成的问题。

1. Sequence-to-sequence attentional model

正常的soft attention
在这里插入图片描述
对应着公式看更香:
在这里插入图片描述

2. Pointer-generator network

在这里插入图片描述

主要区别在于多了一个生成模型的生成概率计算(sigmoid):
在这里插入图片描述

3. Coverage mechanism

c t c^t ct is the sum of attention distributions over all previous decoder timesteps:
在这里插入图片描述

4. 细节-OOV处理

在这里插入图片描述

5. pointer network & transformer

在这里插入图片描述
该方案我自己在类似于transformer的框架下试了下,效果还不错,在base很高的情况下还能有接近0.5个点的提升,是一个不错的改进策略。

参考:

pointer_summarizer
transformer-pointer-generator
Byte Cup 2018国际机器学习竞赛夺冠记

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐