指针网络原理分析
不明确的地方,请看原文:指针网络
一些难理解的关键词
- combinatorial problem (组合问题):组合问题的目标是在一组有限集合中找出能够同时满足一组约束的一个满意解,在本文的语境下,是指对于给定的词元输入序列,找出能够满足一组约束的词元输出序列,作为满意解。
- token (词元)在本文中,词元是指输出序列中的元素,共有两类,分别是特殊词元和规则词元。特殊词元表示输出序列的开始或结束,规则词元是一个列表,列表中的元素用于辨析相应输入序列的不同元素。
文章总结
- 该文的主要目标是解决组合问题
- 作者的目标是建立一个模型,该模型能够按照一组约束将边长的输入转换为正确的输出,注意,目标输出需要满足该组约束条件
- 基于RNN建立的模型只能解决输入和输出具有相同尺度的问题(例如,输入序列的词典包含20个词,输出序列的词典必须与输入序列的词典一致)
引言中的启示
图中a,b分别是序列到序列的模型结构和指针网络的模型结构
- 指针网络由encoder RNN 和 decoder RNN 两部分组成,右侧的生成的指针会到输入序列中查找关键信息
- 指针网络的decoedr RNN (生成网络)部分在每一个时间步都会生成一个特定于输入序列所有元素的softmax分布作为输出向量,每一个输出向量中的元素值都在[0,1]内,同一输出向量中的所有元素之和为1
序列模型中的启示
假设有一个样本对为(P,Cp)其中,P = {P1,P2,...,Pn}是输入序列,Cp是目标输出序列,m(P)输入序列元素的索引,θ是RNN模型中的权重参数,m(P) 在(1,2,3,..., n)内,那么当前序列是目标输入序列的正确子序列的概率为:
对θ进行最大似然估计
估计出θ参数后,后续便可以直接输入新的序列,基于参数计算得出目标序列,完成推理过程
- 关键点:
- 当输入序列的词典长度为n时,输出序列的词典长度也为n,所构建的模型不适用于具有长度非n的词典的输入序列
- Decoder RNN 的隐藏层有两种用途,一是作为RNN下一个时间步的输入,二是用于计算当前时间步输出的词元
- 上述公式中的W是预先随机初始化的,其形状受先验的字典尺寸的影响,softmax最终输出的向量的维度与输出字典的尺寸大小相同
指针网络的创新
- 基于固定大小词典的生成softmax分布的序列到序列模型,不能用于输出词典与输入序列长度相等的问题,为了解决这个问题,作者引入进行了如下的计算改进,直接利用α的权重大小作为指针,从输入序列中检索到对应的词元,作为当前词元的输出。