本文主要考虑那些 “输出序列是离散的,并对应于输入序列中位置” 的 Seq2Seq 问题。实验的问题包括
平面凸包问题planar convex hulls:给定平面上若干个点的坐标,输出一组点的索引,使得这些点围成的多边形可以覆盖所有点计算德劳内三角剖分computing Delaunay triangulations:给定平面上若干个点的坐标,以点索引形式输出德劳内三角剖分结果(这是一种以最近的三点形成三角形,且各线段皆不相交的三角网剖分方式)
注意这类问题的特点是:输出序列的每个元素都是输入序列包含的位置索引,输入序列长度 = 输出索引范围

RNN 类模型只能利用隐状态间接地获取之前序列的信息,由于隐藏状态维度一定远远小于之前的变长序列所有样本的连接维度,这种做法无可避免地会损失一些信息。一种补偿方式是引入额外的 Attention 模块,它对整个输入序列的所有 hidden state
e
1
,
.
.
.
,
e
n
e_1,...,e_n
e1,...,en 构造 key 向量,之后在任意第
i
i
i 个解码位置,用其 hidden state
d
i
d_i
di 构造 query 并和整个输入序列计算 attention,根据 attention 结果汇聚(加权平均)整个输入序列的 hidden state,最后用得到的结果和
d
i
d_i
di 做 concatenate 来增强解码时信息输入,缓解信息损耗问题。下图是一个示意

形式化地,设 encoder 和 decoder 的隐藏状态为
(
e
1
,
…
,
e
n
)
(e_{1},\ldots,e_{n})
(e1,…,en) 和
(
d
1
,
…
,
d
m
(
P
)
)
(d_{1},\ldots,d_{m(\mathcal{P})})
(d1,…,dm(P)),如下计算每个输出时刻
i
i
i 的附加信息
u
j
i
=
v
T
tanh
(
W
1
e
j
+
W
2
d
i
)
j
∈
(
1
,
…
,
n
)
a
j
i
=
softmax
(
u
j
i
)
j
∈
(
1
,
…
,
n
)
d
i
′
=
∑
j
=
1
n
a
j
i
e
j
\begin{aligned} u_{j}^{i} & =v^{T} \tanh \left(W_{1} e_{j}+W_{2} d_{i}\right) & j \in(1, \ldots, n) \\ a_{j}^{i} & =\operatorname{softmax}\left(u_{j}^{i}\right) & j \in(1, \ldots, n) \\ d_{i}^{\prime} & =\sum_{j=1}^{n} a_{j}^{i} e_{j} & \end{aligned}
ujiajidi′=vTtanh(W1ej+W2di)=softmax(uji)=j=1∑najiejj∈(1,…,n)j∈(1,…,n) 注意这里使用了比较早期的加性注意力,向量
v
v
v 和矩阵
W
1
,
W
2
W_1,W_2
W1,W2 是三组要学习的参数。最后用增强后的
[
d
i
,
d
i
′
]
[d_i, d_i']
[di,di′] 作为隐状态进行解码。这种方式相对 1.1 节的朴素 Seq2Seq 方法有显著性能提高

TSP 问题是说给定一个城市列表,希望找到一个最短的路线,要求把每个城市访问一次并能返回到起点。作者假设两个城市之间的距离是对称的,即 A->B 的距离 = B-> A 的距离。