一种能够生成 可变大小输出序列 的神经网络架构. 指针网络输出序列的长度取决于输入序列, 这解决了传统序列到序列 (seq2seq) 模型必须固定序列长度的限制。传统seq2seq;使用输入序列的固定表征 (也就是encoder 最后一步的hidden state)来生成输出序列. 这一固定描述限制了可以穿过 decoder 的信息量与计算量. 注意力网络;
通过对输入标志的加权;在decoder的每一个时间step生成一个context vector。 将 每个输入标志的 hidden state 表征 乘以 注意力权重, 然后求和得到context vector.更多可参考;注意力机制--学习笔记_Wsyoneself的博客-CSDN博客指针网络;
可以被看做注意力网络的扩展在decoder的每一个time step都会生成一个新的注意力向量。用于调节基于输入内容的注意力.指针网络可以做策略网络;因为其在每一步都会生成对输入元素的概率分布。以此更新actor的损失。指针网络结构;由 encoder, attention 和 decoder 三个模块组成。Pointer network 主要用在解决组合优化类问题;实际上是Sequence to Sequence learning中encoder RNN和decoder RNN的扩展。在组合优化类问题中;比如
TSP问题;输入是城市的坐标序列;输出也是城市的坐标序列;而每次求解的TSP问题城市规模n是不固定的将传统注意力机制中对于输入序列的权重作为指向输入序列的指针;每次预测一个元素时找输入序列中权重最大的那个元素。
传统带有注意力机制的seq2seq模型输出的是针对输出词汇表的一个概率分布;而Pointer Networks输出的则是针对输入文本序列的概率分布。因为输出元素来自输入元素的特点;Pointer Networks特别适合用来直接复制输入序列中的某些元素给输出序列。指针网络相对可控;信息来源于输入的信息范围;是天生的复制粘贴利器。但是他也有个弊端;就是说无法生成输入范围以外的词汇;这样就有很大的限制。