0%

Pointer Networks

论文地址,作者是 Vinyals et al.,发表于 2015 年。

摘要

提出一个新的神经结构来学习输出序列的条件概率,输出元素是在输入序列中对应位置的离散标记。

由于输出的每一步都与输入的长度有关,但是输入的长度是可变的,所以现有方法 seq2seq 和神经图灵机都无法简单地解决这问题。可变长度序列的排序,各种组合优化的问题都属于此类。我们的模型使用 attention 机制来解决这种输出字典可变大小的问题

引言

RNN 在序列上学习函数已经用了超过 30 年。然而,它们的架构有一定的局限性,输入和输出只能是固定的。最近,引入的 seq2seq 范式移除了这些限制。Bahdanau et. al. 使用 attention 机制进一步优化来自输入的额外上下文信息,以此增强 decoder。 尽管如此,这些方法仍旧需要固定的词典。由于这些限制,我们无法直接地将这些框架应用在输出字典的大小取决于输入序列长度的问题上。本文,我们提出 Pointer Networks(Ptr-Nets),它可以解决三种组合优化问题:computing planar convex hulls, Delaunay triangulations and the symmetric planar Travelling Salesman Problem (TSP)

模型

先回顾一下 seq2seq model 和 attention 机制,它们是我们工作的基线。

seq2seq model

给定一个训练对 \((\mathcal{P}, \mathcal{C}^{\mathcal{P}})\),seq2seq 模型使用一个带参数的模型(带参数 \(\theta\) 的 RNN)计算条件概率 \(p(\mathcal{C}^{\mathcal{P}} | \mathcal{P}; \theta)\) 以此估计概率链式法则,即: \[p(\mathcal{C}^{\mathcal{P}} | \mathcal{P}; \theta) = \prod^{m(\mathcal{P})}_{i=1} p(\mathcal{C}_i | \mathcal{C}_1, \cdots, \mathcal{C}_{i-1}, \mathcal{P}; \theta) \tag{1} \] 其中 \(\mathcal{P} = \{P_1, \cdots, P_n\}\)\(\mathcal{C} = \{C_1, \cdots, C_{m(\mathcal{P})}\}\)。模型参数在训练集上最大化条件概率: \[\theta^{\star} = \arg \max_{\theta} \sum_{\mathcal{P}, \mathcal{C^{\mathcal{P}}}} \log p(\mathcal{C}^{\mathcal{P}} | \mathcal{P}; \theta) \tag{2} \]

Content Based Input Attention

Ptr-Net

我们现在描述一个非常简化版的 attention 模型,它能使得我们解决上面提到的难题。我们使用 attention 机制建模 \(p(\mathcal{C}_i | \mathcal{C}_1, \cdots, \mathcal{C}_{i-1}, \mathcal{P})\)\[ \begin{align} u^i_j & = v^T tanh(W_1 e_j + W_2 d_i) \quad j \in (1, \cdots, n) \\ p(\mathcal{C}_i | \mathcal{C}_1, \cdots, \mathcal{C}_{i-1}, \mathcal{P}) & = softmax(u^i) \end{align} \] 然后,不同于 attention 机制,我们不混合编码状态 \(e_j\) 以此将信息带到 decoder 中,而是使用 \(u^i_j\) 作为指针,指出输出元素我们还注意到,我们的方法特别针对输出是离散的并且与输入中的位置相对应的问题。