- 一种能够生成 可变大小输出序列 的神经网络架构.
- 指针网络输出序列的长度取决于输入序列, 这解决了传统序列到序列 (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特别适合用来直接复制输入序列中的某些元素给输出序列。
- 指针网络相对可控,信息来源于输入的信息范围,是天生的复制粘贴利器。但是他也有个弊端,就是说无法生成输入范围以外的词汇,这样就有很大的限制。
文章出处登录后可见!
已经登录?立即刷新