主要内容
论文内容
原有模型的问题(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(ci∣c1,c2,c3......ci−1)=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、在三角剖分问题中,每个三角形的顶点按照升序排列。