论文翻译|指针网络

摘要

我们引入了一种新的神经架构来学习输出序列的条件概率,其中元素是与输入序列中的位置相对应的离散标记。此类问题无法通过现有方法(例如序列到序列 [1] 和神经图灵机 [2])轻松解决,因为输出的每一步中目标类别的数量取决于输入的长度,而输入的长度是可变的.诸如对可变大小序列进行排序以及各种组合优化问题等问题都属于这一类。我们的模型使用最近提出的神经注意力机制解决了可变大小输出字典的问题。它与之前的注意力尝试的不同之处在于,它不是在每个解码器步骤使用注意力将编码器的隐藏单元混合到上下文向量中,而是使用注意力作为指针来选择输入序列的成员作为输出。我们称这种架构为指针网络(Ptr-Net)。我们展示了 Ptr-Nets 可用于学习三个具有挑战性的几何问题的近似解——寻找平面凸包、计算 Delaunay 三角剖分和平面旅行商问题——仅使用训练示例。 Ptr-Nets 不仅改进了具有输入注意力的序列到序列,而且还允许我们推广到可变大小的输出字典。我们展示了学习模型的泛化能力超出了它们所训练的最大长度。我们希望我们在这些任务上的结果将鼓励对离散问题的神经学习进行更广泛的探索。

1 引言

循环神经网络 (RNN) 已被用于从示例中学习序列上的函数超过三十年 [3]。然而,他们的架构将他们限制在输入和输出以固定帧速率可用的设置中(例如 [4])。最近引入的序列到序列范式 [1] 通过使用一个 RNN 将输入序列映射到嵌入和另一个(可能相同的)RNN 将嵌入映射到输出序列来消除这些约束。巴达瑙等阿尔。通过使用基于内容的注意力机制从输入传播额外的上下文信息来增强解码器 [5, 2, 6]。这些发展使得将 RNN 应用到新领域成为可能,在自然语言处理的核心问题(例如翻译 [1, 5] 和解析 [7]、图像和视频字幕 [8, 9],甚至学习执行小程序 [2, 10]。

尽管如此,这些方法仍然需要先验地固定输出字典的大小。由于这个限制,我们不能直接将此框架应用于组合问题,其中输出字典的大小取决于输入序列的长度。在本文中,我们通过重新利用 [5] 的注意力机制来创建指向输入元素的指针来解决这个限制。我们展示了由此产生的架构,我们称之为指针网络 (Ptr-Nets),可以训练以输出三个组合优化问题的令人满意的解决方案——计算平面凸包、Delaunay 三角剖分和对称平面旅行商问题 (TSP)。由此产生的模型以纯数据驱动的方式为这些问题生成近似解(即,当我们只有输入和期望输出的示例时。所提出的方法如图 1 所示。)

图 1:(a) 序列到序列 - RNN(蓝色)处理输入序列以创建代码向量,该代码向量用于使用概率链规则和另一个 RNN 生成输出序列(紫色)。输出维度由问题的维度固定,在训练和推理过程中是相同的 [1]。 (b) Ptr-Net - 编码 RNN 将输入序列转换为代码(蓝色),然后馈送到生成网络(紫色)。在每一步,生成网络都会产生一个向量,该向量在输入上调节基于内容的注意力机制 ([5, 2])。注意机制的输出是一个 softmax 分布,字典大小等于输入的长度。

我们工作的主要贡献如下:

  1. 我们提出了一种新的架构,我们称之为 Pointer Net,它简单而有效。它通过使用 softmax 概率分布作为“指针”来处理表示可变长度字典的基本问题。
  2. 我们将指针网络模型应用于三个不同的涉及几何的非平凡算法问题。我们表明,学习到的模型可以泛化到比训练问题具有更多点的测试问题。
  3. 我们的指针网络模型学习一个有竞争力的小规模(n ≤ 50)TSP 近似求解器。我们的结果表明,纯数据驱动的方法可以学习计算难以处理的问题的近似解决方案。

2 模型

我们在第 2.1 和 2.2 节中回顾了作为这项工作的基线的序列到序列 [1] 和输入注意模型 [5]。然后,我们在第 2.3 节中描述了我们的模型 - Ptr-Net。

2.1 序列到序列模型

  给定一个训练对 (P, CP ),序列到序列模型使用参数模型(参数为 θ 的 RNN)来计算条件概率 p(CP |P; θ) 来估计概率链规则的项(另见图1),即

 这里 P = {P1, . . . , Pn} 是一个由 n 个向量组成的序列,C P = {C1, . . . , Cm(P)} 是 m(P) 个索引的序列,每个索引都在 1 和 n 之间。通过最大化训练集的条件概率来学习模型的参数,即:

总和超过训练示例。

与 [1] 中一样,我们使用长短期记忆 (LSTM) [11] 对 pθ(Ci |C1, . . , Ci−1,P; θ) 建模。 RNN 在每个时间步 i 被馈入 Pi,直到到达输入序列的末尾,此时一个特殊符号 ⇒ 被输入到模型中。然后模型切换到生成模式,直到网络遇到特殊符号⇐,它代表输出序列的终止。请注意,该模型没有进行统计独立性假设。我们使用两个独立的 RNN(一个用于对向量序列 Pj 进行编码,另一个用于生成或解码输出符号 Ci)。我们称前者为编码器,后者为解码器或生成 RNN。在推理过程中,给定序列 P,学习参数 θ ∗ 用于选择概率最高的序列 CˆP,即 CˆP = arg max CP p(C P |P; θ ∗ )。由于可能输出序列的组合数量,找到最佳序列 Cˆ 在计算上是不切实际的。相反,我们使用波束搜索程序来找到给定波束大小的最佳可能序列。在这个序列到序列模型中,所有符号 Ci 的输出字典大小是固定的并且等于 n,因为输出是从输入中选择的。因此,我们需要为每个 n 训练一个单独的模型。这使我们无法学习具有大小取决于输入序列长度的输出字典的问题的解决方案。在输出数量为 O(n) 的假设下,该模型的计算复杂度为 O(n)。然而,我们正在处理的问题的精确算法成本更高。例如,凸包问题的复杂度为 O(n log n)。注意机制(参见第 2.2 节)为该模型增加了更多的“计算能力”。

2.2 基于内容的输注意力机制

序列到序列模型使用输入序列 P 末尾的识别 RNN 的固定维度状态生成整个输出序列 C P 。这限制了可以流入生成模型的信息量和计算量。 [5] 的注意力模型通过使用额外的神经网络增强编码器和解码器 RNN 来改善这个问题,该神经网络在整个编码器 RNN 状态序列上使用注意力机制。出于符号目的,让我们将编码器和解码器的隐藏状态分别定义为 (e1, ..., en) 和 (d1, ..., dm(P))。对于 LSTM RNN,我们使用输出门被组件乘法之后的状态

其中 softmax 将向量 u i(长度为 n)归一化为输入上的“注意力”掩码,v、W1 和 W2 是模型的可学习参数。在我们所有的实验中,我们在编码器和解码器上使用相同的隐藏维度(通常为 512),所以 v 是一个向量,W1 和 W2 是方阵。最后,d 0 i 和di 被连接起来并用作我们进行预测的隐藏状态,并将其提供给循环模型中的下一个时间步。

请注意,对于每个输出,我们必须执行 n 次操作,因此推理时的计算复杂度变为 O(n 2 )。

该模型在凸包问题上的表现明显优于序列到序列模型,但不适用于输出字典大小取决于输入的问题。尽管如此,模型的一个非常简单的扩展(或者更确切地说是减少)使我们可以轻松地做到这一点。

2.3 Ptr-Net指针网络

我们现在描述注意力模型的一个非常简单的修改,它允许我们应用该方法来解决组合优化问题,其中输出字典大小取决于输入序列中的元素数量。

第 2.1 节的序列到序列模型在固定大小的输出字典上使用 softmax 分布来计算公式 1 中的 p(Ci |C1, . . , Ci−1,P)。因此它不能用于我们的问题其中输出字典的大小等于输入序列的长度。为了解决这个问题,我们使用方程 3 的注意力机制对 p(Ci |C1, . . . , Ci−1,P) 建模,如下所示:

其中 softmax 将向量 u i(长度为 n)归一化为输入字典上的输出分布,而 v、W1 和 W2 是输出模型的可学习参数。在这里,我们不混合编码器状态 ej 以将额外信息传播到解码器,而是使用 u i j 作为指向输入元素的指针。以类似的方式,要以等式 1 中的 Ci-1 为条件,我们只需复制相应的 PCi-1 作为输入。我们的方法和注意力模型都可以看作是 [6, 5, 2] 中提出的基于内容的注意力机制的应用。我们还注意到,我们的方法专门针对输出离散且对应于输入位置的问题。此类问题可以人工解决——例如,我们可以学习直接使用 RNN 输出目标点的坐标。然而,在推论中,该解决方案不遵守输出精确映射回输入的约束。如果没有这些约束,预测必然会在较长的序列上变得模糊,如视频的序列到序列模型所示 [12]。

3 动机和数据集结构

在以下部分中,我们将回顾我们考虑的三个问题中的每一个,以及我们的数据生成协议。1 在训练数据中,输入是平面点集 P = {P1, . . . , Pn} 每个元素有 n 个,其中 Pj = (xj , yj ) 是我们在其上找到凸包、Delaunay 三角剖分或相应旅行商问题的解的点的笛卡尔坐标。在所有情况下,我们从 [0, 1] × [0, 1] 的均匀分布中采样。输出 C P = {C1, . . . , Cm(P)} 是表示与点集 P 相关的解的序列。在图 2 中,我们找到了凸包和 Delaunay 问题的输入/输出对 (P, C P ) 的说明。

3.1 凸包

我们使用这个例子作为基线来开发我们的模型并理解使用数据驱动方法解决组合问题的难度。找到有限数量点的凸包是计算几何学中一个很好理解的任务,并且有几个精确的解决方案可用(参见 [13, 14, 15])。通常,找到(通常唯一的)解决方案的复杂度为 O(n log n),其中 n 是考虑的点数。

向量 Pj 从 [0, 1] × [0, 1] 均匀采样。元素 Ci 是 1 和 n 之间的索引,对应于序列 P 中的位置,或表示序列开始或结束的特殊标记。有关说明,请参见图 2 (a)。为了将输出表示为一个序列,我们从索引最低的点开始,逆时针走——这是一个任意的选择,但有助于减少训练过程中的歧义。

图 2:(a)凸包和(b)Delaunay 三角剖分的输入/输出表示。符号 ⇒ 和 ⇐ 分别代表序列的开始和结束。

3.2 德劳内三角剖分Delaunay Triangulation

平面中一组点的 Delaunay 三角剖分是这样一种三角剖分,即每个三角形的每个外接圆都是空的,也就是说,在其内部没有来自 P 的点。可以使用精确的 O(n log n) 解决方案 [16],其中 n 是 P 中的点数。在此示例中,输出 C P = {C1, . . . , Cm(P)} 是表示点集 P 三角剖分的对应序列。每个 Ci 是从 1 到 n 的整数的三元组,对应于 P 中三角形顶点的位置或序列标记的开始/结束。见图2(b)。我们注意到序列 C P 的任何排列都表示 P 的相同三角剖分,另外三个整数的每个三角形表示 Ci 也可以排列。在不失一般性的情况下,与我们在训练时对凸包所做的类似,我们按照三角形的中心坐标(字典顺序)对三角形 Ci 进行排序,并选择递增的三角形表示 2 。没有排序,学习的模型就没有那么好,找到一个更好的排序,Ptr-Net 可以更好地利用它是未来工作的一部分。

3.3 旅行商问题(TSP)

TSP 出现在理论计算机科学的许多领域,是用于微芯片设计或 DNA 测序的重要算法。在我们的工作中,我们专注于平面对称 TSP:给定一个城市列表,我们希望找到最短的路线,该路线只访问每个城市一次并返回起点。此外,我们假设两个城市之间的距离在每个相反方向上都相同。这是一个 NP-hard 问题,它允许我们测试我们模型的能力和局限性。

输入/输出对 (P, C P ) 具有与第 3.1 节中描述的凸包问题相似的格式。 P 将是代表城市的笛卡尔坐标,在 [0, 1] × [0, 1] 方格中随机选择。 C P = {C1, . . . , Cn} 将是从 1 到 n 的整数排列,表示最佳路径(或游览)。

为了一致性,在训练数据集中,我们总是从第一个城市开始而不失一般性。为了生成准确的数据,我们实施了 Held-Karp 算法 [17],该算法在 O(2nn 2 ) 中找到最优解(我们使用它直到 n = 20)。对于较大的 n,生成精确解的成本非常高,因此我们还考虑了生成近似解的算法:A1 [18] 和 A2 [19],它们都是 O(n 2 ),而 A3 [20] 实现了 O( n 3 ) Christofides 算法。后一种算法保证在距离最佳长度 1.5 倍的范围内找到解决方案。表 2 显示了它们在我们的测试集中的表现。

4 实证结果

4.1 架构和超参数

在这里介绍的工作中没有对 Ptr-Net 进行广泛的架构或超参数搜索,我们在所有实验和数据集中使用了几乎相同的架构。尽管通过调整模型可能会获得一些收益,但我们认为让相同的模型超参数对所有问题进行操作将使论文的主要信息更加强大。

结果,我们所有的模型都使用具有 256 或 512 个隐藏单元的单层 LSTM,使用随机梯度下降训练,学习率为 1.0,批量大小为 128,随机统一权重初始化从 -0.08 到 0.08,L2 梯度2.0 的剪辑。我们生成了 100 万个训练示例对,并且在任务更简单的某些情况下(即小 n),我们确实观察到了过度拟合。

4.2 凸包

我们使用凸包作为指导任务,这使我们能够理解标准模型(例如序列到序列方法)的缺陷,并设定我们对纯数据驱动模型能够实现的期望一个精确的解决方案。

我们报告了两个指标:准确性和真实凸包的覆盖面积(请注意,任何简单的多边形都将与真实凸包完全相交)。为了计算精度,我们认为如果两个输出序列 C 1 和 C 2 表示相同的多边形,则它们是相同的。为简单起见,我们只计算了测试示例的区域覆盖率,其中输出表示一个简单的多边形(即,没有自相交)。如果算法在超过 1% 的情况下无法生成简单的多边形,我们只会报告 FAIL。结果如表 1 所示。我们注意到使用 Ptr-Net 实现的区域覆盖率接近 100%。查看错误示例,我们看到大多数问题来自对齐的点(参见图 3 (d) 中 n = 500 的错误)——这是大多数求解凸包的算法中常见的错误来源。

可以看出,在推理过程中输入呈现给编码器的顺序会影响其性能。当真正的凸包上的点在输入序列中“迟到”时,准确度较低。这可能是网络没有足够的处理步骤来“更新”它计算的凸包,直到看到最新的点。为了克服这个问题,我们使用了 2.2 节中描述的注意力机制,它允许解码器随时查看整个输入。这种修改显着提高了模型性能。我们检查了注意力集中在什么上,我们观察到它在“指向”输入端的正确答案。这启发了我们创建第 2.3 节中描述的 Ptr-Net 模型。除了在注意力方面优于 LSTM 和 LSTM,我们的模型还具有固有可变长度的关键优势。表 1 的下半部分显示,当在 5 到 50 之间的各种长度上训练我们的模型时(均匀采样,因为我们发现其他形式的课程学习效果不佳),单个模型能够表现得相当好在它训练的所有长度上(但可以观察到 n = 50 的一些退化,而模型仅在长度为 50 的实例上训练)。更令人印象深刻的是,该模型确实推断出它在训练期间从未见过的长度。即使对于 n = 500,我们的结果也是令人满意的,并且间接表明该模型学到的不仅仅是简单的查找。 LSTM 或 LSTM with attention 都不能用于任何给定的 n 0 6= n 而不在 n 0 上训练新模型。

4.3 德劳内三角剖分

Delaunay Triangulation 测试用例与我们找到凸包的第一个问题有关。事实上,一组给定点的 Delaunay 三角剖分对这些点的凸包进行三角剖分。

我们报告了两个指标:准确性和三角形覆盖百分比(模型正确预测的三角形百分比)。请注意,在这种情况下,对于输入点集 P,输出序列 C(P) 实际上是一个集合。因此,其元素的任何排列都将代表相同的三角剖分。

表 1:LSTM、LSTM with attention 和我们的 Ptr-Net 模型在凸包问题上的比较。请注意,基线必须在与它们测试相同的 n 上进行训练。

图 3:我们的模型在凸包(左)、Delaunay(中)和 TSP(右)上的示例,在 m 个点上训练,在 n 个点上测试。 (a)中显示了凸包的 LSTM 序列到序列模型的失败。请注意,基线不能应用于与训练不同的长度。使用 n = 5 的 Ptr-Net 模型,我们获得了 80.7% 的准确率和 93.0% 的三角形覆盖率。对于 n = 10,准确率为 22.6%,三角形覆盖率为 81.3%。对于 n = 50,我们没有产生任何精确正确的三角剖分,但获得了 52.8% 的三角形覆盖率。有关 n = 50 的示例,请参见图 3 的中间列。

4.4 旅行商问题

我们考虑了平面对称旅行商问题 (TSP),这是第三个问题,它是 NP 难的。与寻找凸包类似,它也有顺序输出。鉴于 PtrNet 实现了 O(n 2 ) 算法,尚不清楚它是否有足够的能力仅从数据中学习有用的算法。

如第 3.3 节所述,为用作训练数据的相对较小的 n 值生成精确解是可行的。对于较大的 n,由于 TSP 的重要性,存在提供合理近似解的良好且有效的算法。我们在实验中使用了三种不同的算法——A1、A2 和 A3(参考第 3.3 节)。

表 2 显示了我们在 TSP 上的所有结果。报告的数字是建议游览的长度。与解码器不受约束的凸包和 Delaunay 三角剖分情况不同,在这个例子中,我们将波束搜索程序设置为仅考虑有效的旅行。否则,Ptr-Net 模型有时会输出无效的旅行——例如,它会重复两个城市或决定忽略一个目的地。此过程与 n > 20 相关,其中至少 10% 的实例不会产生任何有效的游览。

表中的第一组行显示了在最佳数据上训练的 Ptr-Net,除了 n = 50,因为这在计算上是不可行的(我们为每个 n 训练了一个单独的模型)。有趣的是,当使用最差算法 (A1) 数据训练 Ptr-Net 时,我们的模型优于试图模仿的算法。

表中的第二组行显示了 Ptr-Net 如何在 5 到 20 个城市的最佳数据上进行训练,然后进行泛化。结果对于 n = 25 几乎是完美的,对于 n = 30 来说很好,但它似乎在 40 及以上时崩溃了(不过,结果远胜于偶然)。这与凸包情况形成对比,在凸包情况下,我们能够以 10 倍的因子进行泛化。然而,底层算法的复杂度远高于 O(n log n),这可以解释这种现象。

5 总结

在本文中,我们描述了 Ptr-Net,这是一种新架构,它允许我们学习一个序列 CP 在给定另一个序列 P 的条件概率,其中 CP 是与 P 中的位置相对应的离散标记序列。我们表明 Ptr-Nets 可以用于学习三个不同组合优化问题的解决方案。我们的方法适用于可变大小的输入(产生可变大小的输出字典),这是基线模型(有或没有注意的序列到序列)无法直接完成的。更令人印象深刻的是,它们在固定输入大小问题上的表现优于基线——这两种模型都可以应用。

以前的方法,如 RNNSearch、记忆网络和神经图灵机 [5, 6, 2] 已经使用注意机制来处理输入。然而,这些方法并没有直接解决可变输出字典出现的问题。我们已经证明可以将注意力机制应用于输出来解决此类问题。通过这样做,我们开辟了一类新的问题,无需人工假设即可应用神经网络。在本文中,我们将此扩展应用于 RNNSearch,但这些方法同样适用于记忆网络和神经图灵机。

未来的工作将尝试展示其对其他问题的适用性,例如从输入中选择输出的排序。我们将对使用这种方法,来解决其他组合优化问题感兴趣。

参考文献请参照原文

论文和翻译文档下载地址

运行代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值