参考1:李宏毅 https://www.bilibili.com/video/av9770302?p=9
(上图应该省略了一个归一化层,模型通过标签知道应该(x1,y1)对应的值是最大的,就会学习到这样一个概率分布,这里直接将attention的weight作为output的distribution)
把(x1,y1)丢进去产生新的z1,继而产生新的attention的weight
当END的attention的weight最大时结束
另一个参考模型图:
引入pointer的好处是:
李老师说的是:
output的set的长度可以跟着input的set的长度改变
假如用的是seq2seq的model(序列到序列的模型),encoder部分的长度不定没关系,但是decoder部分输出的vector的长度不定
感觉有点李宏毅这边讲的有点说不通,也有可能我没理解
pointer network的另一个应用:对文本进行summary
不使用pointer network:解码器产生key与编码器的隐含层生成注意力分布,注意力分布和解码器再生成整个lexial上的词汇分布
(图中的context vector指的是什么:参考 https://zhuanlan.zhihu.com/p/36440334)
使用pointer network,具有Baseline seq2seq的生成能力和PointerNetwork的Copy能力