Multi-Decoder Attention Model with Embedding Glimpse for Solving Vehicle Routing Problems 学习笔记
Posted 好奇小圈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Multi-Decoder Attention Model with Embedding Glimpse for Solving Vehicle Routing Problems 学习笔记相关的知识,希望对你有一定的参考价值。
文章目录
摘要
本文提出了一个新颖的深度强化学习方法,来构建车辆路由问题(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
\\begingathered 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=\\operatornameAttention\\left(Q^h, K^h, V^h\\right) =\\operatornamesoftmax\\left(Q^h K^h^T / \\sqrtd_k\\right) V^h, h=1,2, \\ldots, H \\\\ \\text Multihead (Q, K, V)=\\operatornameConcat\\left(A^1, A^2, \\ldots, A^H\\right) W_O \\endgathered
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
)
)
\\begingathered \\hatf_i=\\mathrmBN\\left(X_i+\\operatornameMultihead_i(Q, K, V)\\right) \\\\ f_i=\\mathrmBN\\left(\\hatf_i+\\operatornameFF\\left(\\hatf_i\\right)\\right) \\endgathered
f^i=BN(Xi+Multiheadi(Q,K,V))fi=BN(f^i+FF(f^i))
设
M
M
M为结构
以上是关于Multi-Decoder Attention Model with Embedding Glimpse for Solving Vehicle Routing Problems 学习笔记的主要内容,如果未能解决你的问题,请参考以下文章