文章目录
摘要
本文提出了一个新颖的深度强化学习方法,来构建车辆路由问题(vehicle routing problems)的启发式算法。具体来说,本文提出了一个多译码器注意力模型(Multi-Decoder Attention Model,MDAM)来训练多种不同的策略,相比只训练一个策略的现有方法,这大幅度增加了找到好的解决方案的机会。一个自定义的b波束搜索策略被设计,以此来充分利用MDAM的多样性。另外,本文基于结构的递归性质,在MDAM提出了一个嵌入Glimpse层,这通过提供更多有信息的嵌入,可以改善每个策略。对六种不同路由问题的广泛实验表明,本文的方法显著优于最先进的基于深度学习的模型。
零、一些基础
1.波束搜索(Beam Search)
贪婪搜索(Greedy Search)算法为每个时间步长选择一个最佳候选作为输入序列。只选择一个最佳候选可能适合当前的时间步,但当我们构建完整的句子时,它可能是一个次优选择。
波束搜索(Beam Search)算法基于条件概率在每个时间步长为输入序列选择多个备选方案。多个备选方案的数量取决于一个称为波束宽度(Beam Width)的参数 B B B。在每个时间步,波束搜索选择 B B B个具有最高概率的最佳备选方案作为该时间步最可能的选择
2.Glimpse层
我在一些文章里看到过这个层,有的是用来汇聚注意力信息,有的是用来筛选嵌入(如本文),有的是在视觉里用来扩大感受区域。我没查到这种命名的详细解释,就我个人感觉而言,应该是一种“整体”思想,既用“眼睛”瞥(Glimpse)一下整体,对整体进行处理。如有错误或者其他解释欢迎补充。
一、介绍
路由问题,如旅行推销员问题(TSP)和有能力车辆路由问题(CVRP),是一组组合优化问题(COP),在许多领域有广泛的现实应用(Toth和Vigo 2014)。由于组合的性质,路由问题通常是NP-hard的(Applegate et al. 2006)。精确的方法,如分支和定界算法((Fischetti, Toth和Vigo 1994),有很好的最优性理论保证,但(最坏情况)计算复杂度是指数级的。相比之下,由启发式引导的近似算法可以找到具有多项式计算复杂度的接近最优解,因此往往是首选,特别是对于大规模问题。
传统的方法是设计手工制作的规则作为启发式方法。相反,作为现代方法,深度学习模型从数据样本中学习启发式(Bello等2017年;Dai、Dai和Song2016年;Nazari等2018年; Kool, van Hoof, Welling 2019年;Chen和Tian 2019年)。这些深度学习方法大多遵循编码器-解码器结构,并通过反复将节点(或位置)添加到空解或部分解中来学习构造启发式,直到完成。具体来说,编码器将节点信息映射到特征嵌入中,解码器预测在每个构造步骤中选择每个有效节点的概率。为了提高解决方案质量,使用不同的方法(例如采样(Kool, van Hoof, 和 Welling 2019a)或波束搜索(Nazari et al. 2018))从训练好的结构策略中生成一组解决方案,以获得最佳解决方案。
虽然显示出了很好的结果,但现有的工作有两个主要的限制。首先,生成的解决方案还不够多样化。直观地说,一套更多样化的解决方案可能会导致更好的解决方案。这是因为对于VRP和许多其他COPs,存在多个最优解决方案,而试图找到不同的解决方案将增加找到至少一个解决方案的机会。此外,在相同数量的解决方案下,生成不怎么多样化和部分相同的解决方案将为潜在的更好的解决方案留下较少的空间。现有的方法只有区别地训练一个构造策略,解决方案是使用同一策略的采样或波束搜索来创建的。多样性的唯一来源是相对确定性的概率分布,这还远远不够。第二个限制,如在(Xin et al. 2020)中指出的,是关于构造策略本身的训练。构建过程可以看作是一系列的节点选择子任务,其中已经访问过的节点与未来的决策无关。然而,大多数现有的学习构造启发式模型(Kool,van Hoof和Welling 2019a;Bello等人,2017)在每一步都使用相同的节点嵌入进行解码,而不消除不相关的节点。因此,节点嵌入是基于整个任务的原始图,而不是基于每个子任务的原始图,这可能会降低训练策略的质量。
在本文中,作者同时解决了上述限制。首先,为了提高多样性,本文提出了多解码器注意模型(MDAM)来训练多种构造策略。它使用Transformer(Vaswani et al. 2017)对节点信息进行编码,并使用多个相同的注意力解码器对不同的轨迹进行采样。在训练过程中,每个解码器学习不同的解模式,并通过Kullback-Leibler散度损失进行正则化,以迫使解码器输出不同的选择节点的概率分布。在MDAM的基础上,本文提出了一种新的波束搜索方案,即为每个解码器保持单独的批。这能够充分利用每个解码器学习到的不同模式,并有效地保持解决方案的多样性。其次,为了提高经过训练的构造策略的质量,本文利用路由问题的递归性质,提出了在MDAM中嵌入一个Glimpse层。当被访问的节点与未来的决策无关时,我们明确地在编码器的顶部注意层删除它们。因此,解码器将获得更多的信息嵌入来选择下一个节点,从而提高每个单一解决方案的质量。
值得注意的是,本文方案不是优于那些高度优化的求解器,而是在这里推动深度学习模型的边缘,学习路由问题和其他可能的手工设计的弱启发式的组合问题。类似于(Kool,van Hoof和Welling 2019a),我们的方法专注于TSP和CVRP,我们的方法是灵活的,普遍适用于各种具有不同约束甚至不确定性的路由问题。对6个路由问题的大量实验结果很好地证实了增加多样性和去除无关节点的有效性。更重要的是,我们的模型显著优于最先进的基于深度强化学习的方法,并且在短推理时间内展示了与传统的基于非学习的启发式和复杂求解器相媲美或优越的性能。
二、相关工作
在现有的学习构造启发式模型中,指针网络(PtrNet)在(Vinyals, Fortunato, 和 Jaitly 2015)使用长短期记忆(LSTM)网络(Hochreiter 和 Schmidhuber 1997)作为编码器和解码器来解决TSP,因此由于标签的昂贵查询(最优解决方案)被限制在小规模。相反,Bello等人(2017)使用强化算法(Willimams 1992)来训练PtrNet。如果不需要真正的标签,该模型就可以在更大尺寸的TSP上进行训练。Nazari等人(2018)没有使用PtrNet中的LSTM按顺序编码节点,而是使用排列不变(permutation invariant)层对节点进行编码,并对该模型进行CVRP训练。他们还通过使用波束搜索来提高解决方案的质量,以跟踪最有前途的解决方案,并选择最好的一个。Kool、van Hoof和Welling(2019a)采用Transformer模型(Vaswani et al. 2017)对节点进行编码,并使用类似指针的注意机制进行解码。通过从训练过的策略中抽样1,280个解决方案,这个优雅的模型在几个路由问题上取得了最先进的结果。
其他一些作品不采用上述编码解码器结构。Dai等人(2017)使用深度Q-学习算法在图上训练一个深度体系结构,即Structure2Vec(Dai,Dai,和Song 2016),用于包括TSP在内的几个组合优化问题。然而,完整的连通性使得TSP的图结构不重要,与具有关键图信息的其他问题如Minimum Vertex Cover 和 Maximum Cut相比,它的性能不理想。不采用学习构造启发式方法,Chen和Tian(2019)提出将NeuWriter用于学习改进启发式,并训练一个区域选择策略和一个规则选择策略,这些策略可以为某些步骤重复地优化初始解决方案。对于CVRP, NeuWriter优于(Kool, van Hoof, and Welling 2019a)的采样结果。然而,与我们的容易并行化的搜索方法不同,NeuWriter在求解实例时是不可并行化的,因为它使用顺序重写操作。与在构造或改进启发式中学习选择节点不同,Lu、Zhang和Yang(2020)设计了一个网络来学习选择哪种类型的局部移动,并在每个局部改进步骤中穷尽地搜索这种类型的最佳可能的贪婪移动。尽管该模型的解决方案质量很好,但由于每一步在局部移动空间上进行数万次穷举搜索,导致其计算时间过长,因此并不实用。
三、模型
1.多译码器注意力模型和搜索(Multi-Decoder Attention Model and Search)
为了输出不同的解决方案,我们提出了多解码器注意模型(MDAM),并设计了一个定制的波束搜索方案的结构,有效地保持波束中解决方案的多样性。
2.多译码器注意力模型(Multi-Decoder Attention Model)
编码器将输入实例 x x x 作为 TSP 中节点的二维坐标,并将它们嵌入到特征向量中。 对于其他路由问题,其他维度(例如 d e m a n d s demands demands和 p r i z e s prizes prizes)作为输入包含在内。 在解决方案构建的每个步骤中,每个解码器都采用节点嵌入来生成访问每个有效节点的概率。 MDAM 架构如图 1 所示,而 EG 层将在后面详细介绍。
MDAM的编码器遵循Transformer模型(Vaswani等人,2017年)。它由多个自我注意块组成,其核心是多头注意层,其正式定义如下式(1)~(3):
Q
i
h
,
K
i
h
,
V
i
h
=
W
Q
h
X
i
,
W
K
h
X
i
,
W
V
h
X
i
A
h
=
Attention
(
Q
h
,
K
h
,
V
h
)
=
softmax
(
Q
h
K
h
T
/
d
k
)
V
h
,
h
=
1
,
2
,
…
,
H
Multihead
(
Q
,
K
,
V
)
=
Concat
(
A
1
,
A
2
,
…
,
A
H
)
W
O
\begin{gathered} Q_i^h, K_i^h, V_i^h=W_Q^h X_i, W_K^h X_i, W_V^h X_i \\ A^h=\operatorname{Attention}\left(Q^h, K^h, V^h\right) =\operatorname{softmax}\left(Q^h K^{h^T} / \sqrt{d_k}\right) V^h, h=1,2, \ldots, H \\ \text { Multihead }(Q, K, V)=\operatorname{Concat}\left(A^1, A^2, \ldots, A^H\right) W_O \end{gathered}
Qih,Kih,Vih=WQhXi,WKhXi,WVhXiAh=Attention(Qh,Kh,Vh)=softmax(QhKhT/dk)Vh,h=1,2,…,H Multihead (Q,K,V)=Concat(A1,A2,…,AH)WO
其中对
H
H
H个注意力头中的每一个执行方程式 (1) 和 (2);
X
i
X_i
Xi是第
i
i
i个结点的一个
d
d
d维度的嵌入。
Q
,
K
,
V
Q,K,V
Q,K,V是
Q
u
e
r
y
,
K
e
y
,
V
a
l
u
e
Query,Key,Value
Query,Key,Value矢量。
W
Q
h
,
W
K
h
,
W
V
h
∈
R
d
×
d
k
W_Q^h, W_K^h, W_V^h \in R^{d \times d_k}
WQh,WKh,WVh∈Rd×dk中的
d
k
=
d
/
H
d_k=d/H
dk=d/H;
注意力输出
A
h
A^h
Ah被拼接和投影到
W
O
∈
R
d
×
d
W_O \in R^{d \times d}
WO∈Rd×d,用来得到这个多头注意力层输出。
然后使用跳过连接层 (He et al. 2016)、批量归一化 (BN) 层 (Ioffe and Szegedy 2015) 和两个在其间具有 ReLU 激活的线性投影层(称为 FF)来获得输出 这个self-attention块的
f
f
f如下式(4)、(5):
f
^
i
=
B
N
(
X
i
+
Multihead
i
(
Q
,
K
,
V
)
)
f
i
=
B
N
(
f
^
i
+
FF
(
f
^
i
)
)
\begin{gathered} \hat{f}_i=\mathrm{BN}\left(X_i+\operatorname{Multihead}_i(Q, K, V)\right) \\ f_i=\mathrm{BN}\left(\hat{f}_i+\operatorname{FF}\left(\hat{f}_i\right)\right) \end{gathered}
f^i=BN(Xi+Multiheadi(Q,K,V))fi=BN(f^i+FF(f^i))
设
M
M
M为结构相同的解码器的个数。每个解码器,以
m
m
m为索引,都是一种注意机制,它模拟了在每一步
t
t
t中选择下一个节点要访问的概率
P
m
(
y
t
∣
x
,
y
1
,
…
,
y
t
−
1
)
P^m\left(y_t \mid x, y_1, \ldots, y_{t-1}\right)
Pm(yt∣x,y1,…,yt−1),根据 (Kool, van Hoof, 和 Welling 2019a),以
m
m
m为索引的解码器的正式定义如下式(6)~(10):
f
c
=
Concat
(
f
ˉ
,
f
C
0
,
f
C
t
−
1
)
g
c
m
=
Multihead
(
W
g
Q
m
f
c
,
W
g
K
m
f
,
W
g
V
m
f
)
q
m
,
k
i
m
=
W
Q
m
g
c
m
,
W
K
m
f
i
u
i
m
=
D
tanh
(
(
q
m
)
T
k
i
m
/
d
)
P
m
(
y
t
∣
x
,
y
1
,
…
,
y
t
−
1
)
=
softmax
(
u
m
)
\begin{gathered} f_c=\operatorname{Concat}\left(\bar{f}, f_{C_0}, f_{C_{t-1}}\right) \\ g_c^m=\operatorname{Multihead}\left(W_{g Q}^m f_c, W_{g K}^m f, W_{g V}^m f\right) \\ q^m, k_i^m=W_Q^m g_c^m, W_K^m f_i \\ u_i^m=D \tanh \left(\left(q^m\right)^T k_i^m / \sqrt{d}\right) \\ P^m\left(y_t \mid x, y_1, \ldots, y_{t-1}\right)=\operatorname{softmax}\left(u^m\right) \end{gathered}
fc=Concat(fˉ,fC0,fCt−1)gcm=Multihead(WgQmfc,WgKmf,WgVmf)qm,kim=WQmgcm,WKmfiuim=Dtanh((qm)Tkim/d)Pm(yt∣x,y1,…,yt−1)=softmax(um)其中
f
c
f_c
fc是上下文嵌入;
f
ˉ
\bar{f}
fˉ是节点嵌入的平均值;
f
C
0
f_{C_0}
fC0和
f
C
t
−
1
f_{C_{t-1}}
fCt−1分别是开始节点和当前节点的嵌入,在第一步中用可训练的参数代替;
公式(7)是对第
t
t
t步中有效节点的多头关注,以获得一个新的上下文,类似于(Bello et al. 2017)中的Glimpse;
g
c
m
,
q
m
,
k
i
m
g_c^m, q^m, k_i^m
gcm,qm,kim都为
d
d
d维度;
公式(9)使用
D
=
10
D=10
D=10来剪辑结果,以便更好的探索后续(Bello et al. 2017);等式(10)中的softmax功能覆盖了所有效节点的集合。
在贪婪解码的同时,每个解码器通过在每一步选择概率最大的节点,独立输出一个轨迹。我们强加一种正则化,以鼓励解码器学习不同的构造模式并输出不同的解决方案。在训练过程中,来自MDAM的多个解码器的每对输出概率分布之间的Kullback-Leibler(KL)散度作为正则化而最大化,如下式(11):
D
K
L
=
∑
s
∑
i
=
1
M
∑
j
=
1
M
∑
y
P
i
(
y
∣
x
,
s
)
log
P
i
(
y
∣
x
,
s
)
P
j
(
y
∣
x
,
s
)
D_{K L}=\sum_s \sum_{i=1}^M \sum_{j=1}^M \sum_y P^i(y \mid x, s) \log \frac{P^i(y \mid x, s)}{P^j(y \mid x, s)}
DKL=s∑i=1∑Mj=1∑My∑Pi(y∣x,s)logPj(y∣x,s)Pi(y∣x,s)
其中
P
i
(
y
∣
x
,
s
)
P^i(y \mid x, s)
Pi(y∣x,s)是解码器
i
i
i在实例
x
x
x状态
s
s
s选择节点
y
y
y的概率。
3.自定义波束搜索(Customized Beam Search)
虽然组合优化问题的解空间是指数级的大,但用已知的确定性度量(例如路线问题的行程长度)来评估一个小的解集在计算上是可行的。因此,需要输出一组解,并检索出最佳解。然而,使用学习构造启发式,现有的方法,如典型抽样和波束搜索,无法维持一组不同的解决方案。这个问题来自于这样一个事实,即从相同的分布(策略)中随机采样(带替换)经常输出部分或完全重复的解,而树上的波束搜索会找到一组唯一的解,但变化性低且具有确定性(Kool, Van Hoof, and Welling 2019b)。
为了获得更好的性能,本文提出了一种新的定制的MDAM波束搜索方案,其中每个解码器独立执行搜索。给定所需的波束大小 B \mathcal{B} B,我们为每个解码器保持一个单独的波束,以保持整个波束的多样性,波束的大小为 B = ⌈ B / M ⌉ B=\lceil\mathcal{B} / M\rceil B=⌈B/M⌉。同一波束中的解方案将利用一致的构造模式,因为它们是由相同的解码器构造的。
在搜索同一解码器的过程中,不需要完全的构造,我们通常可以得出一个部分解低于另一个解的结论。以TSP为例,解码器的一些部分解可能崩溃为具有相同的起始节点、访问节点集和当前节点,即相同的剩余子任务。图2描述了一个例子,在解码器1的步骤4中,第二个(1→2→4→5)和第三个(1→4→2→5)部分解崩溃。其中两个中的一个的部分路径长度将超过或等于另一个。因此,对于同一解码器的所有可能的未来决定,它永远不能实现更短的完整的旅行长度,即低于另一个。对于CVRP,类似的分析也适用。但是为了确保劣势,除了崩溃条件之外,旅行长度大于或等于另一个的部分解决方案应该具有更少或相同的车辆容量。
在这里,我们设计了一种基于上述劣势条件的合并技术,以避免不必要的解决方案构造,并为可能更好的解决方案节省波束中的空间。 具体来说,在每个波束中,我们即时评估部分解决方案,并在一个不如另一个时合并它们。 合并后,劣等的会被删除,优等的概率取合并后两者中较大的值。 由于成对比较,合并的计算开销随着光束大小的增加呈二次方增长。 然而,这对我们的方法来说不是一个关键问题,因为我们为每个解码器维护单独的波束,其中
(
B
)
(B)
(B) 的大小通常很小。
4.Embedding Glimpse层
对于构造启发式,模型需要以自回归的方式输出一系列节点选择。 已经访问过的节点不再与未来的决策相关,并且对所有构建步骤基于相同嵌入的解码可能会导致性能不佳。 为了进一步提高解决方案的质量,一种理想的方法是在每个路径构建步骤访问一个节点后仅重新嵌入未访问的节点。 然而,这需要在每个步骤中完全重新嵌入节点,并且非常昂贵。 为了解决这个问题,我们提出了 Embedding Glimpse (EG) 层来近似重新嵌入过程。 这是基于神经网络的更高层提取更多与任务相关的特征的直觉。 以用于计算机视觉任务的卷积神经网络 (CNN) 为例,下层通常提取像素和边缘模式等一般特征,而上层的特征与解决特定任务更相关 (Schroff, Kalenichenko) , 和菲尔宾 2015)。 我们假设注意力模型具有相似的分层特征提取范式,并按如下方式设计 EG 层。
在具有
l
l
l个自注意力块的编码器中,我们通过固定最低的
l
−
1
l-1
l−1个注意力层并屏蔽掉顶部注意力层中不相关节点的注意力权重来近似地执行重新嵌入过程,以获得新的节点嵌入。 这个顶级注意力层被称为 EG 层,是编码器的一部分,并且对多个解码器中的每一个都保持相同。 部分 EG 层可以只预计算一次(图 1 中的橙色框)如下式(12)、(13):
Q
i
h
,
K
i
h
,
V
i
h
=
W
Q
h
X
i
,
W
K
h
X
i
,
W
V
h
X
i
w
h
(
Q
h
,
K
h
)
=
Q
h
K
h
T
/
d
k
\begin{gathered} Q_i^h, K_i^h, V_i^h=W_Q^h X_i, W_K^h X_i, W_V^h X_i \\ w^h\left(Q^h, K^h\right)=Q^h K^{h^T} / \sqrt{d_k} \end{gathered}
Qih,Kih,Vih=WQhXi,WKhXi,WVhXiwh(Qh,Kh)=QhKhT/dk
在步骤
t
t
t,本文通过掩盖了对被访问节点
C
t
−
1
C_{t-1}
Ct−1的注意权重
w
.
,
C
t
−
1
h
=
−
∞
w^h_{.,C_{t-1}}=-\infty
w.,Ct−1h=−∞,然后继续(图1中的紫色盒子)。下式(14)、(15):
A
h
=
Attention
(
Q
h
,
K
h
,
V
h
)
=
softmax
(
w
h
)
V
h
Multihead
(
Q
,
K
,
V
)
=
Concat
(
A
1
,
A
2
,
…
,
A
H
)
W
O
\begin{gathered} A^h=\operatorname{Attention}\left(Q^h, K^h, V^h\right)=\operatorname{softmax}\left(w^h\right) V^h \\ \text { Multihead }(Q, K, V)=\operatorname{Concat}\left(A^1, A^2, \ldots, A^H\right) W_O \end{gathered}
Ah=Attention(Qh,Kh,Vh)=softmax(wh)Vh Multihead (Q,K,V)=Concat(A1,A2,…,AH)WO
然后是方程式(4)和(5)产生节点嵌入,基于此节点嵌入,每个解码器选择一个要访问的节点,并获得一个新的遮盖。在此之后,在重新决定要访问哪个节点时,可以通过执行方程式来实现新的节点嵌入。(14)、(15)、(4)、(5)使用新的遮盖。
EG层可以被认为是用被访问节点不再相关的信息来纠正节点嵌入。 然而,每一步运行 EG 层都会产生额外的计算开销。 为了缓解这种情况,我们每 p p p步执行 EG 层。 这是合理的,因为节点嵌入逐渐变化,并且在一个步骤中只删除一个节点。 我们发现这种技术在推理时间很短的情况下始终如一地提高了性能。 EG 层可以看作是 (Xin et al. 2020) 中逐步思想的概括,具有更好的计算效率。 通过选择超参数 p p p,对于不同规模的问题,我们可以保持EG层重新嵌入的次数近似恒定。
四、训练
MDAM的结构和训练过程如图1所示。一个
l
l
l层的编码器由
l
−
1
l-1
l−1层的注意力块和一个EG层组成。对于输入实例
x
x
x,每个多解码器分别采样一个轨迹
π
m
\pi_m
πm,来得到单独的REINFORCE损失,从MDAM中获得带有相同的贪婪推理(roll-out)基线(baseline),下式(16):
∇
L
R
L
(
θ
∣
x
)
=
∑
m
E
P
θ
m
(
π
m
∣
x
)
(
L
(
π
m
)
−
b
(
x
)
)
∇
log
P
θ
m
(
π
m
∣
x
)
\nabla \mathcal{L}_{R L}(\theta \mid x)=\sum_m \underset{P_\theta^m\left(\pi_m \mid x\right)}{E}\left(L\left(\pi_m\right)-b(x)\right) \nabla \log P_\theta^m\left(\pi_m \mid x\right)
∇LRL(θ∣x)=m∑Pθm(πm∣x)E(L(πm)−b(x))∇logPθm(πm∣x)
其中
L
(
π
m
)
L(\pi_m)
L(πm)是路径长度。我们采用的基线与在(Kool,van Hoof和Welling 2019a)中表现最好的基线相似。以前一个时期中具有最佳参数集的模型作为基线模型,贪婪地将结果解码为基线
b
(
x
)
b(x)
b(x),下式(17)、(18):
b
(
x
)
=
min
m
L
(
π
m
′
=
{
y
m
′
(
1
)
,
…
,
y
m
′
(
T
)
}
)
y
m
′
(
t
)
=
arg
max
y
t
(
P
θ
′
m
(
y
t
∣
x
,
y
m
′
(
1
)
,
…
,
y
m
′
(
t
−
1
)
)
)
\begin{gathered} b(x)=\min _m L\left(\pi_m^{\prime}=\left\{y_m^{\prime}(1), \ldots, y_m^{\prime}(T)\right\}\right) \\ y_m^{\prime}(t)=\underset{y_t}{\arg \max }\left(P_{\theta^{\prime}}^m\left(y_t \mid x, y_m^{\prime}(1), \ldots, y_m^{\prime}(t-1)\right)\right) \end{gathered}
b(x)=mminL(πm′={ym′(1),…,ym′(T)})ym′(t)=ytargmax(Pθ′m(yt∣x,ym′(1),…,ym′(t−1)))
其中
θ
\theta
θ是MDAM的当前参数,
θ
′
\theta'
θ′是基线模型的固定参数,
m
m
m是译码器的索引。
本文利用梯度下降实现模型最优化,下式(19):
∇
L
(
θ
)
=
∇
L
R
L
(
θ
∣
x
)
−
k
K
L
∇
D
K
L
\nabla \mathcal{L}(\theta)=\nabla \mathcal{L}_{R L}(\theta \mid x)-k_{K L} \nabla D_{K L}
∇L(θ)=∇LRL(θ∣x)−kKL∇DKL
其中
k
K
L
k_KL
kKL是KL损失的系数。理想情况下,对于每个解码器遇到的每个状态,应该在训练过程中计算KL损失,以鼓励多样性。为了避免昂贵的计算,我们只将KL损失强加在第一步上,基于以下原因。首先,所有解码器的初始状态都是相同的,即一个空解,其中KL损失是有意义的,并且很容易计算,因为所有解码器都从这个状态开始。其次,对于相同的情况,不同的最优解在第一步通常有不同的选择,这对构建模式有很大的影响。
五、实验
0.基础
在本节中,作者对六个路由问题进行了实验,以验证本文方法的有效性。 其中,TSP和CVRP是研究最广泛的。 TSP 定义为在给定每对城市之间的距离的情况下,找到访问每个城市一次并返回起始城市的最短旅行。 CVRP 概括了 TSP,其中起始城市必须是仓库,其他每个城市都有车辆服务的需求。 可以在 CVRP 中规划多条路线,每条路线用于车辆,该车辆访问总需求不超过车辆容量的城市子集。 所有的城市都需要被路线覆盖。 本文遵循现有工作(Kool、van Hoof 和 Welling 2019a;Nazari 等人 2018)生成具有 20、50 和 100 个节点(城市)的实例,这些实例使用二维欧氏距离来计算两个城市之间的距离,并且目标是最小化总行程距离。 对于两个维度,城市位置的坐标是从 0 到 1 的均匀分布中独立采样的。 对于 CVRP,对于 20、50、100 个节点(城市)的问题,车辆容量分别固定为 30、40、50。 每个非机库城市的需求是从整数 { 1...9 } \{1...9\} {1...9}中抽样得到的。 关于剩余的四个路由问题,即拆分交付路由问题 (SDVRP)、定向问题 (OP) (Golden、Levy 和 Vohra 1987)、奖品收集 TSP (PCTSP) (Balas 1989) 和随机 PCTSP (SPCTSP), 设置遵循现有工作(Kool、van Hoof 和 Welling 2019a),并在补充材料中介绍。 请注意,这些问题有其特定的约束条件,甚至还有随机元素 (SPCTSP)。 尽管如此,MDAM 足够灵活,可以通过屏蔽掉每一步要访问的无效节点来处理这些属性。
1.超参数
本文将具有按元素投影的节点嵌入到 128 维向量中。 Transformer 编码器有 3 层,128 维特征和 8 个注意力头,其中最上面的一层作为 EG 层,全连接层的隐藏维度(等式(5)中的 FF)为 512。本文选择 MDAM 中的解码器为 5,5 个解码器中的每一个都需要 128 个维度向量和 8 个注意力。 对于 EG 层,本文将重新嵌入之间的步数设置为 2、4、8(对于 TSP20、50、100)和 2、6、8(对于 CVRP20、50、100)以进行更快的评估。 继(Kool、van Hoof 和 Welling 2019a)之后,本文用每个时期(epoch) 2,500 次迭代和批量大小 512(CVRP100 为 256 以适应 GPU 内存约束除外)训练模型 100 个时期。 本文使用学习率为 1 0 − 4 10^{−4} 10−4 的 Adam Optimizer (Kingma and Ba 2015) 进行优化。 KL 损失系数 k K L k_{KL} kKL需要足够大以保持不同解码器之间的多样性,但又不能太大而降低每个解码器的性能。 我们根据 TSP20 上的实验将 k K L k_{KL} kKL设置为 0.01。 本文的代码已经发布
2.比较研究
在这里,作者将本文的方法 (MDAM) 与现有的基于深度学习的强大模型进行比较。 为了进行测试,作者从用于训练的相同分布中抽取了 10,000 个实例。 为了计算最优性差距,作者使用精确求解器 Concorde 来获得 TSP 最优解的目标值。 对于更难精确求解的 CVRP,作者使用最先进的启发式求解器 LKH3 (Helsgaun 2017) 通过遵循 (Kool, van Hoof, and Welling 2019a) 获得基准解决方案。 对于 MDAM 的波束搜索版本,作者使用 5 个解码器,每个解码器的波束大小
B
=
30
B=30
B=30 和
50
50
50(表示为 bs30 和 bs50),即整个波束大小分别为
B
=
150
\mathcal{B}=150
B=150 和
250
250
250。 请注意,某些方法(例如(Vinyals、Fortunato 和 Jaitly,2015 年)、(Dai 等人,2017 年)、(Tsiligirides,1984 年)和(Deudon 等人,2018 年))不能作为基线,因为报告的性能较差 (Kool、van Hoof 和 Welling 2019a)。 作者不与 L2I(Lu、Zhang 和 Yang 2020)进行比较,因为它的计算时间过长。 在没有任何实例并行化的情况下,MDAM 在一个 CVRP100 实例上使用 50 宽度波束搜索的平均推理时间为 6.7 秒,而 L2I 需要 24 分钟(Tesla T4)。 对于其他四个问题,作者将 MDAM 与 AM 和其他强基线进行了比较(Kool、van Hoof 和 Welling 2019a),并在补充材料中介绍了详细信息。
结果总结在表 1 中。可以观察到,对于具有 20、50 和 100 个节点的六个路由问题的几乎所有测试集,MDAM 显着优于 AM(Kool、van Hoof 和 Welling 2019a)。 为了避免大型问题的计算时间过长,精确求解器 Gurobi 被用作具有时间限制的启发式算法。 在 CVRP 和 SDVRP 上,作者采用贪婪解码策略的 MDAM 明显优于 (Nazari et al. 2018) 和 (Kool, van Hoof, and Welling 2019a) 中现有的贪婪解码模型,以及 RL 的(标准)波束搜索版本(Nazari 等人,2018 年)。 通过我们的波束搜索方案,MDAM 不仅优于 AM 的采样版本(Kool、van Hoof 和 Welling 2019a),而且优于 CVRP 上的改进启发式 NeuRewriter(Chen 和 Tian 2019)。 对于与传统的基于非学习的方法的比较,值得注意的是,MDAM 在大型实例(具有 100 个节点的 OP 和 PCTSP)上优于复杂的通用求解器 OR Tools 和 Gurobi(有时间限制),并显示出相对良好的可扩展性。 对于某些问题,例如具有 50 个节点的 OP,MDAM 优于高度专业化的启发式求解器。
对于 SPCTSP,基于优化的方法(例如 Gurobi、OR 工具和改进启发式)需要某种形式的在线重新优化 (REOPT)(Kool、van Hoof 和 Welling 2019a)以适应动态变化(例如约束违规,constraint violation))。类似地,对于 AM 采样和 MDAM,作者根据未访问节点的预期奖励迭代地计划巡回并执行一半。 本文使用波束大小 10 进行 MDAM 搜索,因为增加波束大小不会显着提高性能,并且快速推理时间对于在线设置很重要。
在效率方面,虽然基线是在不同的机器上执行的,但与现有的基于深度学习的方法相比,MDAM 的计算时间是可以接受的,特别是考虑到显着的性能提升。 尽管 MDAM(和所有深度模型)在某些问题上可能比高度专业化的求解器慢(例如 TSP 上的 Concorde),但它通常比解决方案质量相当的传统算法快得多。
3.消融(Ablation)研究
本文以TSP和CVRP为试验台,进一步评估了我们模型中不同成分的有效性。在消融研究的基础上,本文评估了多解码器结构(MD)和Embedding Glimpse层(EG)对贪婪构建策略质量的贡献。本文在这里省略了波束搜索,因为它是一种独立的技术,适用于给定的贪婪解码策略。结果汇总见表2。可以观察到,MD和EG都持续地提高了所有实例集的学习构建策略的质量,这很好地验证了本文设计的基本原理。虽然MD通过相对较长的推理时间显著提高了性能,但EG的改进相对较小,但额外的计算开销很少。
4.MDAM的分析
为了证明每个解码器学习到的不同构造模式的有效性,本文通过贪婪解码和波束搜索
(
B
=
50
)
(B=50)
(B=50)评估了CVRP20上的性能。图3报告了在贪婪解码和搜索模式下,每个解码器在所有5个解码器中找到最佳(获胜)和严格最佳(完全获胜)解决方案的次数。可以看到,在贪婪解码和波束搜索模式下,获胜时间都比单独获胜时间高,因此找到多个解码器是最好的。更重要的是,所有解码器的性能都类似,因为没有人占主导地位或根本没有贡献,这表明每个解码器在解决过程中确实是有效的。
在补充材料中,本文对MDAM进行了更多的分析,包括作者为定制的波束搜索而设计的合并技术的有效性,以及在波束搜索模式中不同数量的解码器的影响。作者还与一个更强版本的AM进行了比较,以进一步证明MDAM的有效性。更具体地是,作者调整调幅采样的软最大输出函数的温度超参数,以提供更多样化的解决方案。最后,作者证明,与AM相比,本文的MDAM在具有150个和200个节点的CVRP等较大问题上具有更好的泛化能力。
六、结论
在本文中,作者提出了一个新的模型来学习构造启发式的路由问题,这是由强化学习训练。它采用了一个多解码器的结构来学习不同的构造模式,并进一步利用了一个定制的波束搜索方案。在模型中包含了一个Embedding Glimpse层,这使解码器具有更多的信息嵌入。我们的方法在6个路由问题上优于最先进的基于深度学习的方法,并在合理的时间内产生了接近传统的高度优化求解器的解决方案。在未来,我们计划改进我们的模型,允许解码器数量的灵活性,并使解码器之间的协作能够共同做出决策,而不是单独的决策。
七、主要参考文献
八、代码解析
【待补充】
相关领域
【待补充】