參考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能力