Upgrade to Pro — share decks privately, control downloads, hide ads and more …

RNN, Transformer 和 NLP 的新進發展

RNN, Transformer 和 NLP 的新進發展

[email protected]
PRO

April 22, 2020
Tweet

Other Decks in Technology

Transcript

  1. RNN, Transformer
    和 NLP 的新進發展
    清大工業工程系
    政治大學應數系 蔡炎龍

    View Slide

  2. 0
    NLP 預備知識
    2

    View Slide

  3. 3
    人工智慧
    機器學習
    深度學習
    基本上就是用
    不同的方式,
    去學函數!

    View Slide

  4. 4
    在自然語言處理當中, 最基本的問題就是, 我們如何
    把我們如何把語言「輸入」...
    f
    一段文字

    View Slide

  5. 5
    通常我們就是一個字 (或一個詞), 就給它一個代表
    的數字。
    E
    龍 87
    這樣的函數就叫做一個 word embedding。
    * 數學上說 embedding 需要確定函數 1-1, 而且保持
    某種結構, 這裡沒有這麼嚴格, 不過大致精神是這樣。

    View Slide

  6. 6
    E

    這裡也要變成數字才能輸入電腦
    還有個小問題...

    View Slide

  7. 7
    One-Hot Encoding
    1
    的 一 了 是 我
    最常見的方式是我們把字依出現的頻率排序,
    越常出現給的編號越小。
    1 2 3 4 5

    View Slide

  8. 8
    One-Hot Encoding
    1
    的 一 了 是 我
    然後做 one-hot encoding!
    1 2 3 4 5
    1
    0
    0
    0
    0

    0
    1
    0
    0
    0

    0
    0
    1
    0
    0

    0
    0
    0
    1
    0

    0
    0
    0
    0
    1

    * 總共 V 個字, 每
    個字就一個 V 維
    向量。

    View Slide

  9. 9
    Word2Vec
    2
    著名的 word embedding 方式。
    相 似 的 字
    會在一起!
    怎麼做到的? 當然是神經網路學出來啊!
    Google 官網: https://code.google.com/archive/p/word2vec/

    View Slide

  10. 10
    Word2Vec
    2
    T. Mikolov, K. Chen, G. Corrado, J. Dean. Toutanova. Efficient Estimation
    of Word Representations in Vector Space. Proceedings of Workshop at
    ICLR, 2013..
    訓練好了有很多炫炫的功能。
    巴黎 法國 義大利 羅馬
    國王 男人 女人 皇后

    View Slide

  11. 11
    Word2Vec
    2
    雖然說得很神奇, 但沒有很神奇, 如果我們
    有句話 w1
    , w2
    , …, wt
    , …
    E
    wt−1
    wt
    是某個字的 one-hot encoding。
    wt

    View Slide

  12. 12
    Word2Vec
    2
    wt−1 wt
    輸出用 softmax
    假設我們有 V 個字, 每個字準備壓到 N 維大小。
    N 個神經元, 線性
    激發函數 (輸入什
    麼就輸出什麼)
    這 裡 權 重 矩 陣
    W 是 維!
    V × N

    View Slide

  13. 13
    Word2Vec
    2
    我們現在有個可愛的 W 權重矩陣, 剛好是
    維...
    V × N
    w11
    w12
    ⋯ w1N
    w21
    w22
    ⋯ w2N
    ⋮ ⋮ ⋮
    wi1
    wi2
    ⋯ wiN
    ⋮ ⋮ ⋮
    wV1
    wV2
    ⋯ wVN
    embedding 維度


    數 當成第 i 個字的
    embedding

    View Slide

  14. 14
    2
    Word2Vec 事實上有兩個比較主要的訓練方式,
    一個是 CBOW model, 一個是 Skip-Gram
    model。
    Word2Vec: CBOW
    E
    wt−2
    wt
    wt−1
    wt+1
    wt+2
    CBOW model
    用周圍的字預測中間的字。

    View Slide

  15. 15
    2 Word2Vec: CBOW
    wt−2
    wt−1
    wt+1
    wt+2 CBOW model
    wt
    四組權重的平均, 可以當我
    們那 embedding 矩陣!

    View Slide

  16. 16
    2 Word2Vec: Skip-Gram
    Skip-Gram model
    E
    wt−2
    wt
    wt−1
    wt+1
    wt+2
    再來是 Skip-Gram model, 正好反過來, 由
    一個字預測周圍的字。

    View Slide

  17. 17
    2 Word2Vec
    要瞭解 word2vec, 非常
    推薦容新 (Xin Rong) 的
    文章, 幫助許多人理解了
    word2vec。
    Xin Rong. word2vec Parameter Learning Explained.
    arxiv:1411.2738, 2016.

    View Slide

  18. 18
    Word2Vec
    2
    x x
    h
    一般我們都用某個隱藏層的輸
    出, 例如 autoencoder 就是
    這樣。

    View Slide

  19. 19
    Word2Vec
    2
    word2vec 給我們一個啟
    發, 就是權重也可以是我
    們日後要用的部份, 可以
    當成是某種「記憶」。
    w11
    w12
    ⋯ w1N
    w21
    w22
    ⋯ w2N
    ⋮ ⋮ ⋮
    wi1
    wi2
    ⋯ wiN
    ⋮ ⋮ ⋮
    wV1
    wV2
    ⋯ wVN
    W

    View Slide

  20. 20
    Word2Vec
    2
    h
    W
    x
    One-hot encoding
    T 0
    0

    1

    0
    w11
    w12
    ⋯ w1N
    w21
    w22
    ⋯ w2N
    ⋮ ⋮ ⋮
    wi1
    wi2
    ⋯ wiN
    ⋮ ⋮ ⋮
    wV1
    wV2
    ⋯ wVN
    WT x = h
    就 word2vec 來說,
    其實也可以看成是
    隱藏層的輸出!
    =
    h

    View Slide

  21. 21
    Bag of Words
    n-Gram
    不如順便介紹一下兩個
    NLP 常用概念。
    詞袋模型
    n元語法

    View Slide

  22. 22
    Bag of Words (BOW)
    1
    假設我們現在有個句子, , 每個
    字是什麼字就放進那個字的「袋子」中。最後這
    句話就數每個袋子有幾個字, 來表示這句話。
    {w1
    , w2
    , …, wT
    }
    B1
    B2
    B3
    BV
    2 0 3 0
    [2, 0, 3, …, 0]
    這句話就表示
    成這個向量。

    View Slide

  23. 23
    n-Gram
    2
    就是把附近的字合起來考慮, 假設我們的句子還
    是 , 現在準備用 2-gram 表示,
    那就是:
    {w1
    , w2
    , …, wT
    }
    [[w1
    , w2
    ], [w2
    , w3
    ], …, [wV−1
    , wV
    ]]

    View Slide

  24. 1
    RNN 複習
    24

    View Slide

  25. 25
    標準 NN CNN RNN
    資料做全域計算 考慮資料局部特徵 考慮過去的訊息
    三大神經網路架構

    View Slide

  26. 26
    CNN 和 RNN 的運作可以看
    成是特殊形式的 NN!

    View Slide

  27. 27
    h = (1
    1
    + 2
    2
    + 3
    3
    + )
    每個神經元的動作基本上都是一樣的!

    View Slide

  28. 28
    h = ( + )
    我們常簡化為這樣的式子。

    View Slide

  29. 29
    實際上某一個 RNN Cell 的作用是這樣
    注意每個 cell 輸出還是一個純量。

    View Slide

  30. 30
    RNN 是有記憶的神經網路

    View Slide

  31. 31
    一般的神經網路一筆輸入和下一筆是
    沒有關係的...
    x1
    x2
    ̂
    y1
    ̂
    y2

    View Slide

  32. 32
    意思是輸入次序換了, 每次輸出的結果
    是一様的!
    x1
    x2
    ̂
    y1
    ̂
    y2

    View Slide

  33. 33
    RNN 會偷偷把上一次的輸出也當這一
    次的輸入。
    x1
    ̂
    y1
    也就是 RNN
    「記得」前面
    發生的事!

    View Slide

  34. 34
    很多人畫成這樣。

    View Slide

  35. 35
    符號說明。
    wx
    ij
    wh
    ij
    ht
    i
    t 時的第 i 個
    hidden state
    對輸入的權重
    對 hidden state
    的權重

    View Slide

  36. 36
    注意 也有類似的公式。
    ht
    2
    ht
    2
    = σ(wx
    12
    xt
    1
    + wx
    22
    xt
    2
    + wh
    12
    ht−1
    1
    + wh
    22
    ht−1
    2
    + b2
    )

    View Slide

  37. 37
    ht =
    [
    ht
    1
    ht
    2
    ]
    =
    [
    σ(wx
    11
    xt
    1
    + wx
    21
    xt
    2
    + wh
    11
    ht−1
    1
    + wh
    21
    ht−1
    2
    + b1
    )
    σ(wx
    12
    xt
    1
    + wx
    22
    xt
    2
    + wh
    12
    ht−1
    1
    + wh
    22
    ht−1
    2
    + b2
    )]
    重要的 hidden states 寫成向量形式。
    這 看 來 好
    可怕!

    View Slide

  38. 38
    WT
    x
    = [
    wx
    11
    wx
    21
    wx
    12
    wx
    22
    ]
    權重矩陣
    x
    1號 RNN
    神經元
    xt =
    [
    xt
    1
    xt
    2
    ]

    View Slide

  39. 39
    WT
    x
    ⋅ xt =
    [
    w11
    xt
    1
    + w21
    xt
    2
    w12
    xt
    1
    + w22
    xt
    2
    ]
    加權和
    x
    同 時 算 了 兩
    個神經元的!

    View Slide

  40. 40
    ht−1 =
    [
    ht−1
    1
    ht−1
    2
    ]
    hidden states
    也寫成
    向量。

    View Slide

  41. 41
    WT
    x
    ⋅ xt + WT
    h
    ⋅ ht−1 + b
    b = [
    b1
    b2
    ]
    計算「總刺激」
    的部份。

    View Slide

  42. 42
    ht = σ(WT
    x
    ⋅ xt + WT
    h
    ⋅ ht−1 + b)
    最後美美的公式 (?)
    長這樣。

    View Slide

  43. 43
    注意
    為了讓大家更容易瞭解, 我們會用較簡
    單的圖示。請注意輸入都是個向量、會
    有權重; 輸出都是純量。
    實際輸入⻑這樣

    1

    2


    (1

    1
    + 2

    2
    + ⋯ +


    +
    )

    View Slide

  44. 注意
    為了讓大家更容易瞭解, 我們會用較簡
    單的圖示。請注意輸入都是個向量、會
    有權重; 輸出都是純量。
    同理 h 也是這樣
    44
    −1

    View Slide

  45. 45
    對同一層第 k 個 cell,
    就一個輸出。
    輸入可能是向量
    第 k 號 RNN
    Cell
    −1

    h

    hidden state

    View Slide

  46. 46
    標準 RNN 一個
    Cell 的輸出
    −1

    h

    h

    = (
    h
    −1 +

    +
    )

    View Slide

  47. 47
    事實上我們以後可能連
    bias 都不畫出來, 但意
    思還是一樣的!
    −1

    h

    h

    = (
    h
    −1 +

    +
    )

    View Slide

  48. 48
    ht
    k
    = σ(xt, ht−1)
    很多文章喜歡表示成這樣。
    −1

    h

    View Slide

  49. 49
    1
    2
    真正連結的樣子, 注意 RNN
    Cell 會把記憶傳給同一層其
    他 RNN Cells。


    1

    2

    3
    h
    1
    h
    2

    View Slide

  50. 50
    1
    2


    1

    2

    3
    h
    1
    h
    2
    ht = φ(xt, ht−1)
    φ
    有時會像這樣整個 RNN
    層一起輸出。

    View Slide

  51. 51
    ̂
    yt = f(xt, ht−1)
    xt ̂
    yt 甚至整個神經網路一起
    來!
    RNN 層

    View Slide

  52. 52
    訓練 RNN 時容易發生梯度消失
    (vanishing gradient)的問題!

    View Slide

  53. 53
    為什麼呢?
    x3 x4 x5
    ̂
    y3
    xm
    x2
    x1
    ̂
    y1 ̂
    y2 ̂
    y4 ̂
    y5 ̂
    ym
    因為 RNN ⾃然會變成很深的神經網路...
    backpropagation

    View Slide

  54. 這有救嗎?
    54

    View Slide

  55. 55
    RNN 很難訓練, 但有兩個
    神救援 LSTM 和 GRU!

    View Slide

  56. 56
    LSTM
    Long Short Term Memory
    RNN 系的王牌救援

    View Slide

  57. 57
    Gate
    控制閥
    重要概念

    View Slide

  58. 重點
    Gate
    58
    輸出 0 到 1 間的一個數
    sigmoid
    只是決定「閥」要開多大
    −1


    View Slide

  59. 59
    LSTM 有三個 Gates

    View Slide

  60. 60
    輸入門 輸出門
    −1 −1 −1






    忘記門

    View Slide

  61. 61
    編號 k 的
    LSTM
    LSTM
    多出來的 cell state
    是屬於這個 cell 的
    一 個 c e l l 的
    output 還是會
    和同一層分享

    −1
    h



    View Slide

  62. 62
    「新的」狀態資訊

    −1
    ˜


    ˜



    = tanh(

    +
    h
    + )

    View Slide

  63. 63
    h

    =

    tanh(

    )


    =

    −1

    +

    ˜



    View Slide

  64. 64
    LSTM 有效的原因是如 ResNet
    有那種 bypass 的味道...

    View Slide

  65. 65
    ℱ(x)
    x
    +

    View Slide

  66. 66
    這意思是本來某⼀層的輸出是
    ℱ(x)
    現在變成
    ℋ(x) = x + ℱ(x)

    View Slide

  67. 67
    這意思是本來某⼀層的輸出是
    ℱ(x)
    現在變成
    ℋ(x) = x + ℱ(x)
    之前學到的 還沒學到的

    View Slide

  68. 68
    ℱ(x) = ℋ(x) − x
    已經學到的
    ⽬標

    View Slide

  69. 69
    Li,H., Xu, Z., Taylor, G., Studer C., Goldstein T. (NeuraIPS 2018).
    Visualizing the Loss Landscape of Neural Nets. .
    without skip with skip

    View Slide

  70. 70
    真要弄得那麼複雜?
    要忘多少和要記多少難道不能⼀起...

    View Slide

  71. 71
    LSTM 的簡化版
    GRU

    View Slide

  72. 72
    只留兩個 Gates
    雖然名稱有 gated

    View Slide

  73. 73
    記憶門 重設門
    −1 −1




    View Slide

  74. 74
    input 可不考慮從前



    −1
    ˜
    h


    View Slide

  75. 75
    h

    =

    h−1

    + (1 −

    )
    ˜
    h


    View Slide

  76. 重點
    RNN 的名字
    76
    現在說到 RNN, 其實包括原始 RNN,
    LSTM, GRU 等各種變形。
    特別要叫原始的 RNN, 我們習慣叫它
    Vanilla RNN, 在 Tensorflow 2 中是
    SimpleRNN。

    View Slide

  77. 2
    RNN
    應用類型
    77

    View Slide

  78. 78
    對話機器人

    View Slide

  79. 79
    f
    客戶說的話 客服機器人回應
    這樣會有問題!

    View Slide

  80. 80
    f
    目前的字 下一個字
    f(wt−1
    ) = wt

    View Slide

  81. 81
    f(wt−T
    , wt−T+1
    , …, wt−1
    ) = wt
    因為 RNN 的特性, 事實上是這樣子的:
    於是現在很喜歡把它叫做
    「自迴歸」 (autoregression)
    的語言模型。

    View Slide

  82. 82
    P(xi
    ∣ wt−T
    , wt−T+1
    , …, wt−1
    )
    當然, 因為基本上最後我們都是用 softmax 等方式
    去預測每個字的機率, 所以大家更愛寫成這樣的
    model 是在逼近這個機率分布。
    其中 是我們字庫裡的
    第 i 個字。
    xi

    View Slide

  83. 83
    注意這樣的模式, 每次輸入和輸出都不是固定的長度!
    字1 字2
    回1
    EOS 回1
    回2
    回k
    EOS

    View Slide

  84. 84
    One-to-Many
    例子 生成文章

    View Slide

  85. 85
    Many-to-One
    例子 情意分析

    View Slide

  86. 86
    Many-to-Many
    例子 對話機器人

    View Slide

  87. 87
    Many-to-Many
    例子 Slot Filling

    View Slide

  88. 88
    Bidirectional RNN

    View Slide

  89. 89
    某些應用領域上 (如語音辨
    識、影片摘要),我們希望考慮
    前後資訊時,就會用到雙向的
    RNN (bidirectional RNN)!

    View Slide

  90. 90
    = 1 = 2 = − 1 =
    我們有個「正常方向」的 RNN
    1 2 −1

    View Slide

  91. 91
    = 1 = 2 = − 1 =
    1 2 −1
    1

    2

    −1



    反向也做個 RNN

    View Slide

  92. 92
    下一層可以合併, 也可
    以做其他處理。



    View Slide

  93. 3
    Encoder-Decoder
    Structure
    93

    View Slide

  94. 94
    字1
    字2
    回1
    EOS 回1
    回2
    回k
    EOS
    Seq2seq
    重點
    Sutskever, I., Vinyals, O., & Le, Q. V. (2014). Sequence to sequence
    learning with neural networks. In Advances in neural information
    processing systems (pp. 3104-3112).
    還記得我們對話機器
    人 seq2seq model?
    c

    View Slide

  95. 95
    字1
    字2
    回1
    EOS 回1
    回2
    回k
    EOS
    我們可以想成, 這是個 enconder-decoder 的結構。
    c
    encoder
    decoder
    這裡的 c 是 encoder 最終輸出的 hidden state。

    View Slide

  96. c 回應
    客 戶
    的話
    encoder decoder
    更清楚明白的說, 是如下的結構。
    96

    View Slide

  97. c 回應
    客 戶
    的話
    我們統一下符號, 輸入用 示, 而輸出用 表示。
    encoder decoder
    1
    , 2
    , …,
    1
    , 2
    , …,
    97

    View Slide

  98. 假如把我們的 RNN 叫做 我們有這個式子:
    = (−1,
    )
    Decoder 也是一樣的!
    = (−1,
    )
    98
    但怕大家弄混, 我們 hidden
    states 改名子。
    s = (s−1,
    )

    View Slide

  99. 重點
    函數的寫法
    99
    c
    這樣子 enconding 最後輸出的 h 就
    是我們唯一的資訊, 代表前面完整的
    句子!
    然後我們就要用單一向量生出完整的
    回應 (翻譯,文章…)

    View Slide

  100. 這當然不是唯一方式!
    100

    View Slide

  101. c
    encoder
    1
    , 2
    , …,
    Encoder 的方式基本上是一樣的!
    =
    (−1,
    )
    =
    (−1,
    )
    101

    View Slide

  102. Decoder 每次都參考原版的 c!!
    s =
    (s−1,
    , )
    102
    Cho, K., Van Merriënboer, B., Gulcehre, C., Bahdanau, D.,
    Bougares, F., Schwenk, H., & Bengio, Y. (2014). Learning phrase
    representations using RNN encoder-decoder for statistical machine
    translation. arXiv preprint arXiv:1406.1078.

    View Slide

  103. s =
    (s−1,
    , )
    103
    Decoder 每次都參考原版的 c!!
    這個 c 一定要固定不變的嗎?

    View Slide

  104. 4
    Attention
    104

    View Slide

  105. s =
    (s−1,
    , )
    105
    我們 summary 的 c 其實不一定是要輸入串最後一個
    hidden state。
    = (1, 2, ⋯, )
    也可以參考所有輸入時的 hidden states 算出來!
    [9] Bahdanau, D., Cho, K., & Bengio, Y. (2014). Neural machine
    translation by jointly learning to align and translate. arXiv preprint
    arXiv:1409.0473.

    View Slide

  106. 106
    可以不是固定的嗎?
    c
    Decoder 不同階
    段看重的部份可
    能不一様!

    View Slide

  107. 107
    我們準備生出 時, 會關注之前輸入每個字的
    比重可能不一樣!
    1
    2
    −1


    View Slide

  108. 108
    這種注意力放在幾個重點的叫 attention
    D. Bahdanau, K. Cho, Y. Bengio, Neural machine translation by
    jointly learning to align and translate. arXiv:1409.0473. 2014.

    View Slide

  109. 109
    1 2 T−1 T
    1

    2

    T−1



    1
    2
    −1

    +

    1

    2

    T−1

    T

    =


    =1



    st
    = fe
    (st−1
    , yt
    , ct
    ) yt
    yt+1
    st−1
    st

    View Slide

  110. 110
    我們來說明一下這
    裡發生了什麼事?

    View Slide

  111. 111
    我們對每個位置的「注意力」大小
    不同, 所以要給不同權重。
    ct
    = α1
    h1
    +α2
    h2
    + ⋯+αT
    hT
    我 們 要 決 定 這 些 權 重
    怎麼決定!
    α1
    , α2
    , …, αT
    values

    View Slide

  112. 112
    yt
    yt+1
    st−1
    st
    h1
    h2
    hT
    encoder
    decoder
    目前關切的
    query
    keys
    一一算關
    連強度
    e1 e2
    eT
    ej
    = a(st−1
    , hj
    )
    用 attention 算出 e1
    , e2
    , …, eT

    View Slide

  113. 113
    ej
    = a(st−1
    , hj
    )
    hj
    st−1
    ej
    ej
    = st−1
    ⋅ hj
    可以用一個神經元 甚至就 dot product
    Attention 可以
    怎麼設計呢?

    View Slide

  114. 114
    於是就算出了現在的狀態, 對每個位置的注意力強度!
    e1
    e2
    eT
    我們希望這些數
    字加起來是 1。
    於是我們的老朋友 softmax 登場了...

    View Slide

  115. 115


    = (−1
    ,
    )


    =
    exp(

    )

    =1
    exp(

    )
    alignment model
    這就是 softmax!
    其實這是某種的
    「對齊」。

    View Slide

  116. 5
    Transformer
    116

    View Slide

  117. 不⽤ RNN, 可以做 Attention 嗎?
    117
    [13] Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L.,
    Gomez, A. N., ... & Polosukhin, I. (2017). Attention is all you need.
    In Advances in Neural Information Processing Systems (pp.
    5998-6008).

    View Slide

  118. 118
    encoder
    x1
    x2
    xT
    decoder
    y1
    y2
    yk−1
    yk
    ⼀次⼀起輸⼊
    Self-Attention

    View Slide

  119. 119
    Encoder 的⼀個 Layer
    Multi-Head (Self)
    Attention
    Dense
    sublayer
    sublayer
    原版 encoder
    做了 6 層

    View Slide

  120. 120
    Encoder 的⼀個 Layer
    Multi-Head (Self)
    Attention
    Dense
    每個 sublayer
    都做 ResNet 型
    的連結

    View Slide

  121. 121
    Decoder 的⼀個 Layer
    Multi-Head Attention
    Dense
    sublayer
    sublayer
    原版 decoder
    也做了 6 層
    Masked Multi-Head
    (Self) Attention
    sublayer
    從 encoder 來
    的 K, V

    View Slide

  122. 122
    神秘的 Q, K, V
    Q
    queries
    K
    keys
    V
    values

    View Slide

  123. 123
    神秘的 Q, K, V
    self-attention 的時候, q, k, v 向量都是由輸⼊
    embedding 算出來的。
    xp
    qp
    kp
    vp
    xp
    WQ
    xp
    WK
    xp
    WV
    query
    key
    value

    View Slide

  124. 124
    神秘的 Q, K, V
    Decoder 中有個和 encoder 有連結的那個
    sublayer 時...
    q
    k v Multi-Head Attention
    來⾃ encoder
    來⾃之前的 output

    View Slide

  125. 125
    Attention
    然後就進⼊「正常的」attention 程序。
    q
    k1
    k2
    kd
    送⼊⼀個 query q, 就和每⼀個 kp
    做 attention, 得到的「強度」做
    softmax 之後成為 hp 的係數。
    本⽂的 attention 只是做內積。

    View Slide

  126. 126
    Attention
    ⼀次寫出來是這樣。
    Attention(Q, K, V) = softmax(
    QKT
    dk
    )V
    dk 是一個 key 的維度。

    View Slide

  127. 127
    Multi-Head Attention
    有⼈規定 attention 只能⽤⼀個嗎?
    Attention(QWQ
    i
    , KWK
    i
    , VWV
    i
    )
    第 i 個 attention

    View Slide

  128. 128
    Transformer
    Encoder
    要注意的是, transformer 輸入有幾個 (字),
    輸出就有幾個。

    View Slide

  129. 129
    Transformer
    Decoder
    包括 Decoder 也是這樣, 只是開始還沒有的
    輸入會被 mask 住。

    View Slide

  130. 130
    K V Q
    Key-value 可看成我們的「記憶」
    Query 是實際發生的事
    雖然 key-value-query 不是 transformer 首創,
    但啟發我們這樣的思考方向。

    View Slide

  131. 6
    NLP 最近的發展
    131

    View Slide

  132. NLP 的進展, 被視為 2019 年 AI 重大突破!
    https://www.stateof.ai/
    State of AI Report 2019
    不用配對、非監督式的翻譯系統
    NLP 的 Transfer Learning
    132

    View Slide

  133. 133
    傳統的 Word Embedding
    1
    這個人的個性有點天天。
    我天天都會喝一杯咖啡。
    可 是 一 個 字 、 一 個
    詞, 在不同的地方可
    能有不一樣的意思。

    View Slide

  134. 134
    語意型的 Word Embedding
    2
    f
    某個意涵 編碼
    這真的做得到?

    View Slide

  135. ELMo
    135
    M.E. Peters, M. Neumann, M. Iyyer, M. Gardner, C. Clark, K. Lee, L.
    Zettlemoyer. Deep contextualized word representations. NAACL 2018.
    arXiv preprint arXiv:1802.05365v2.
    AI2

    View Slide

  136. 1 2 −1



    天 啡

    喝 咖
    注意通常都用雙
    向型的 RNN, 我
    們畫成單向只是
    容易理解。
    我們要的 embedding
    136

    View Slide

  137. 1 2 −1
    天 喝 咖
    1 2 −1
    我們可能不只
    一層 RNN 層。
    137
    LSTM1
    LSTM2

    View Slide

  138. 138
    hi hi
    token
    w1
    w2
    w3
    + +
    我們在要用時, 才會去學 ,
    成為「真正」的 embedding。
    w1
    , w2
    , w3
    前 面 需 要 大 量
    訓 練 資 料 的 都
    不用動哦!

    View Slide

  139. 139
    BERT
    J. Devlin, M.W. Chang, K. Lee, K. Toutanova. BERT: Pre-training of Deep
    Bidirectional Transformers for Language Understanding. arXiv preprint
    arXiv:1810.04805v2.
    Google

    View Slide

  140. 140
    BERT
    B E R T 的 架 構 基 本 上 是
    transformer 的 encoder。
    訓練主要有兩件工作。
    我天天都會喝一杯_ _。
    咖 啡
    克漏字

    View Slide

  141. 141
    我天天都會喝一杯咖啡 [sep] 微積分很重要
    判斷句子是否相連

    View Slide

  142. 142
    Transformer
    Encoder
    [cls] 字1 字T
    記得 BERT 是用
    transformer, 所以
    幾個輸入就是幾個
    輸出。要應用, 例如
    情意分析是這樣...

    View Slide

  143. 143
    感受 BERT 的威力
    https://github.com/google-research/bert
    BERT 官方版本, 包括中文版!
    我自然語言項目
    幾乎全能哦!

    View Slide

  144. 144
    不過世界實在變得太快...

    View Slide

  145. 145
    ELMo AI2
    Transformer 版
    BERT 再帶起 Transformer 風潮, 甚至 ELMo 都出現...
    M. E. Peters, M. Neumann, L. Zettlemoyer, W.-T. Yih. Dissecting
    Contextual Word Embeddings: Architecture and Representation. EMNLP
    2018.

    View Slide

  146. GPT-2
    基本上是 transformer
    的 decoder。
    146
    OpenAI
    還有改善 BERT 不太會生文章、大到可怕的...
    A. Radford, J. Wu, R. Child, D. Luan, D. Amodei, I. Sutskever. Language models are
    unsupervised multitask learners. OpenAI Blog, 1(8), 2019.

    View Slide

  147. 著名的「發現獨角
    獸」唬爛文章。
    Better Language Models and
    Their Implications
    https://openai.com/blog
    147

    View Slide

  148. 148
    https://talktotransformer.com/
    試試 GPT-2 的功力

    View Slide

  149. 149
    https://talktotransformer.com/
    Zero-Shot Learning
    GPT-2 這個唬爛王
    什麼都能接...

    View Slide

  150. 150
    https://talktotransformer.com/
    Zero-Shot Learning
    真的什麼都可以問!

    View Slide

  151. 151
    值得關注的 NLP Models
    ERNIE
    為中文打造的 BERT
    XLNet
    2019 超級新星
    百度
    Google

    View Slide

  152. Stanford 大學的 QA
    SQuAD 進入 2.0 時代。
    電腦照樣勝過人類, 甚至
    不再是 BERT 時代。
    152

    View Slide

  153. 153
    XLNet
    2019 超級新星
    Z. Yang, Z. Dai, Y Yang, J. Carbonell, R. Salakhutdinov, Q. V. Le.
    XLNet: Generalized Autoregressive Pretraining for Language
    Understanding. NeruIPS 2019.
    使用 Transformer XL
    使用 permutation 訓練法

    View Slide

  154. 154
    Ro a
    RoBERTa
    加強訓練的 BERT!
    Facebook
    唸的書更多
    就更強!

    View Slide

  155. 155
    MegatronLM
    超級⽕⼒展⽰
    8,300!!
    M. Shoeybi, M. M. A. Patwary, P. Puri, P. LeGresley, J. Casper, B. Catanzaro, Megatron-LM:
    Training Multi-Billion Parameter Language Models Using GPU Model Parallelism.
    arXiv:1909.08053 2019.

    View Slide

  156. 156
    然後大家終於想到, 這樣軍備競賽下去, 很多場景其
    實不太能應用。
    V. Sanh, L. Debut, J. Chaumond, T. Wolf. DistilBERT, a distilled version of BERT:
    smaller, faster, cheaper and lighter. NeruIPS 2019.
    小巧版的
    BERT 來了!
    DistilBERT

    View Slide

  157. 157
    DistilBERT
    其實就是大 BERT 訓練小 BERT 的概念。
    來, 我教你!
    G. Hinton, O. Vinyals, J. Dean. Distilling the knowledge in a neural network.
    arxiv: 1503.02531, 2015.

    View Slide

  158. 158
    0
    125
    250
    375
    500
    ELMo GPT BERT XLNet RoBERTa DistilBERT
    ELMo
    Transformer
    94
    110
    340
    465
    340 355
    66
    可怕的 GPT-2, MegatronLM 我們沒放進去...

    View Slide

  159. 159
    有問題嗎?
    投影片網址:
    http://bit.ly/2020NLP

    View Slide