阅读笔记 - Pointer Network

论文内容

原有模型的问题(Issues in Seq2Seq/RNN)

传统的Seq2Seq结构或是单RNN的结构在不少领域都取得了SOTA效果,但这些结构都有一个特性,就是输出的词典大小是我们预设好的。无法应对变长的词典。很多问题都会使用变长的词典,例如本文中提到的三个组合优化问题,均要求我们从给定的输入找到答案。而每一次输入的数据都是有变化的。
本文提出的结构能够有效解决这个问题。并且在遇到超过训练样本最大长度的新数据时,也具备良好的泛化能力。

模型架构(Architecture)

从架构上来看,模型与传统的Seq2Seq是一样的,唯一的区别在于Attention机制的应用。
原文用AddictiveAttention做例子,原本attention机制是对于encoder的每一个时间步计算一个权重。然后将每一步的隐状态做加权求和,然后与decoder的隐状态拼接,作为下一步decoder的输入。
而在本文中,attention机制中计算的权重作为“指针”使用,实际上也就是输出了一个关于encoder每一个位置的分布。然后根据分布直接从输入序列中拿对应的词汇作为输入。
原文中形式化的描述:
假设输入序列为 P P P v v v为Addictive attention中对齐模型的隐状态,encoder的隐状态为 ( e 1 , e 2 , e 3 . . . . . . e n ) (e_1,e_2,e_3......e_n) (e1,e2,e3......en),decoder的隐状态为 ( d 1 , d 2 , d 3 . . . . . . d m ( p ) ) (d_1,d_2,d_3......d_{m(p)}) (d1,d2,d3......dm(p))
Addictive attention:

u j i = v T t a n h ( W 1 e j + W 2 d i ) {u_j}^i = v^Ttanh(W_1e_j+W_2d_i) uji=vTtanh(W1ej+W2di)其中 j ∈ ( 1 , 2 , 3...... n ) j\in(1,2,3......n) j(1,2,3......n)

a j = s o f t m a x ( u j i ) a_j = softmax({u_j}^i) aj=softmax(uji)

d i ′ = ∑ i    =    1 n a i e i {d_i}^{'}=\sum_{i\;=\;1}^na_ie_i di=i=1naiei

ptr-net:

u j i = v T t a n h ( W 1 e j + W 2 d i ) {u_j}^i = v^Ttanh(W_1e_j+W_2d_i) uji=vTtanh(W1ej+W2di)其中 j ∈ ( 1 , 2 , 3...... n ) j\in(1,2,3......n) j(1,2,3......n)

p ( c i ∣ c 1 , c 2 , c 3 . . . . . . c i − 1 )    =    s o f t m a x ( u i ) p(c_i\vert c_1,c_2,c_3......c_{i-1})\;=\;softmax(u^i) p(cic1,c2,c3......ci1)=softmax(ui)

可以看到,条件概率用attention中的权重来表示。这也是ptr-net最大的特点。

模型解决的问题

原文中提到,这个模型可以用来求一些组合优化问题的近似解。训练过程使用了三种类型问题的样本。
以下问题的描述均来自百度。

凸包问题(convex hull problem)

凸包(convex hull):凸包是一个计算几何(图形学)中的概念。
在一个实数向量空间 V V V中,对于给定集合 X X X,所有包含 X X X的凸集的交集 S S S被称为 X X X的凸包。 X X X的凸包可以用 X X X内所有点( x 1 x_1 x1,… x n x_n xn)的凸组合来构造.
在二维欧几里得空间中,凸包可想象为一条刚好包著所有点的橡皮圈。
用不严谨的话来讲,给定二维平面上的点集,凸包就是将最外层的点连接起来构成的凸多边形,它能包含点集中所有的点。
在这里插入图片描述

德劳内三角剖分(Delaunay)

三角剖分的定义:假设 V V V是二维实数域上的有限点集,边 e e e是由点集中的点作为端点构成的封闭线段, E E E e e e的集合。那么该点集 V V V的一个三角剖分 T T T=( V V V, E E E)是一个平面图 G G G,该平面图满足条件:
1.除了端点,平面图中的边不包含点集中的任何点。
2.没有相交边。
3.平面图中所有的面都是三角面,且所有三角面的合集是散点集 V V V的凸包。

Delaunay边:假设 E E E中的一条边 e e e(两个端点为 a a a, b b b e e e若满足下列条件,则称之为Delaunay边:
存在一个圆经过 a a a b b b两点,圆内(注意是圆内,圆上最多三点共圆)不含点集 V V V中任何其他的点,这一特性又称空圆特性。

Delaunay三角剖分:如果点集 V V V的一个三角剖分 T T T只包含Delaunay边,那么该三角剖分称为Delaunay三角剖分。
在这里插入图片描述

旅行推销员问题(Travelling Salesman Problem)

TSP:给定一个包含n个点的完全图,每条边都有一个长度,求总长度最短的且每个顶点仅经过一次的封闭回路。

在这里插入图片描述

训练过程

总体来说,就是将点集送至encoder,然后decoder输出指针,指向输入序列中的对应点。

有一些训练中的trick:
1、输入点按照顺时针方向输入。
2、在三角剖分问题中,每个三角形的顶点按照升序排列。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值