iT邦幫忙

2021 iThome 鐵人賽

DAY 25
0
自我挑戰組

30天初步了解自然語言處理-自學筆記系列 第 25

[Day25] NLP會用到的模型(八)-transformer decoder

一. decoder

架構如下:
https://ithelp.ithome.com.tw/upload/images/20210925/20140426OrBwF0pmIw.png

decoder主要是解析encoder的資訊,轉換成output的形式
decoder分成下面三個子層:

  1. Masked Multi-head self-Attention Sublayer
  2. Multi-head encoder-decoder-Attention Sublayer
  3. Position-wise Feed Forward Sublayer

二. Masked Multi-head self-Attention Sublayer
各位應該很好奇為何第一個部分要有masked,因為transformer是一個生成式的模型,不能讓他知道後面的答案,以中英文翻譯為例子的話,假如encoder是處理中文的地方,decoder是處理翻譯英文的部分,假設英文是'Mary had a little lamb',那在一開始時,會先只給他encoder的資訊,看能不能產生Mary,在生成第二個字也就是'had'時會給decoder看'Mary',看能不能生成'had',那怎麼做mask,如下圖,會將不能給decoder看的字給他'0',只有1代表是目前decoder能使用的input,下圖是'NLP100天馬拉松的圖':
https://ithelp.ithome.com.tw/upload/images/20210925/20140426tNwQ1eSEha.png

三. Multi-head encoder-decoder-Attention Sublayer

還記得前一天說的,encoder將k與v送至decoder,就是這一段,decoder經過Masked Multi-head self-Attention,產生的Q與encdoer做attention,就是要讓decoder學目前的輸入與encoder哪些資訊關聯性高,算法與self-attention是相同的,如下圖:
https://ithelp.ithome.com.tw/upload/images/20210925/20140426zhou6nnNnS.png

最後就是一層全連接層了,最後經過softmax預測最適合的翻譯詞~~

整體decoder的運作就是這樣~明天會以transformer實作中英文翻譯任務~


上一篇
[Day24] NLP會用到的模型(七)-transformer encoder
下一篇
[Day26] NLP會用到的模型(九)-實作transformer-上
系列文
30天初步了解自然語言處理-自學筆記30

尚未有邦友留言

立即登入留言