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

RNN, Transformer 和 NLP 的新進發展

RNN, Transformer 和 NLP 的新進發展

[email protected]

April 22, 2020
Tweet

Other Decks in Technology

Transcript

  1. 5 通常我們就是一個字 (或一個詞), 就給它一個代表 的數字。 E 龍 87 這樣的函數就叫做一個 word

    embedding。 * 數學上說 embedding 需要確定函數 1-1, 而且保持 某種結構, 這裡沒有這麼嚴格, 不過大致精神是這樣。
  2. 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 維 向量。
  3. 9 Word2Vec 2 著名的 word embedding 方式。 相 似 的

    字 會在一起! 怎麼做到的? 當然是神經網路學出來啊! Google 官網: https://code.google.com/archive/p/word2vec/
  4. 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.. 訓練好了有很多炫炫的功能。 巴黎 法國 義大利 羅馬 國王 男人 女人 皇后
  5. 11 Word2Vec 2 雖然說得很神奇, 但沒有很神奇, 如果我們 有句話 w1 , w2

    , …, wt , … E wt−1 wt 是某個字的 one-hot encoding。 wt
  6. 12 Word2Vec 2 wt−1 wt 輸出用 softmax 假設我們有 V 個字,

    每個字準備壓到 N 維大小。 N 個神經元, 線性 激發函數 (輸入什 麼就輸出什麼) 這 裡 權 重 矩 陣 W 是 維! V × N
  7. 13 Word2Vec 2 我們現在有個可愛的 W 權重矩陣, 剛好是 維... V ×

    N w11 w12 ⋯ w1N w21 w22 ⋯ w2N ⋮ ⋮ ⋮ wi1 wi2 ⋯ wiN ⋮ ⋮ ⋮ wV1 wV2 ⋯ wVN embedding 維度 總 字 數 當成第 i 個字的 embedding
  8. 14 2 Word2Vec 事實上有兩個比較主要的訓練方式, 一個是 CBOW model, 一個是 Skip-Gram model。

    Word2Vec: CBOW E wt−2 wt wt−1 wt+1 wt+2 CBOW model 用周圍的字預測中間的字。
  9. 15 2 Word2Vec: CBOW wt−2 wt−1 wt+1 wt+2 CBOW model

    wt 四組權重的平均, 可以當我 們那 embedding 矩陣!
  10. 16 2 Word2Vec: Skip-Gram Skip-Gram model E wt−2 wt wt−1

    wt+1 wt+2 再來是 Skip-Gram model, 正好反過來, 由 一個字預測周圍的字。
  11. 17 2 Word2Vec 要瞭解 word2vec, 非常 推薦容新 (Xin Rong) 的

    文章, 幫助許多人理解了 word2vec。 Xin Rong. word2vec Parameter Learning Explained. arxiv:1411.2738, 2016.
  12. 19 Word2Vec 2 word2vec 給我們一個啟 發, 就是權重也可以是我 們日後要用的部份, 可以 當成是某種「記憶」。

    w11 w12 ⋯ w1N w21 w22 ⋯ w2N ⋮ ⋮ ⋮ wi1 wi2 ⋯ wiN ⋮ ⋮ ⋮ wV1 wV2 ⋯ wVN W
  13. 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
  14. 22 Bag of Words (BOW) 1 假設我們現在有個句子, , 每個 字是什麼字就放進那個字的「袋子」中。最後這

    句話就數每個袋子有幾個字, 來表示這句話。 {w1 , w2 , …, wT } B1 B2 B3 BV 2 0 3 0 [2, 0, 3, …, 0] 這句話就表示 成這個向量。
  15. 23 n-Gram 2 就是把附近的字合起來考慮, 假設我們的句子還 是 , 現在準備用 2-gram 表示,

    那就是: {w1 , w2 , …, wT } [[w1 , w2 ], [w2 , w3 ], …, [wV−1 , wV ]]
  16. 27 h = (1 1 + 2 2 + 3

    3 + ) 每個神經元的動作基本上都是一樣的!
  17. 35 符號說明。 wx ij wh ij ht i t 時的第

    i 個 hidden state 對輸入的權重 對 hidden state 的權重
  18. 36 注意 也有類似的公式。 ht 2 ht 2 = σ(wx 12

    xt 1 + wx 22 xt 2 + wh 12 ht−1 1 + wh 22 ht−1 2 + b2 )
  19. 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 寫成向量形式。 這 看 來 好 可怕!
  20. 38 WT x = [ wx 11 wx 21 wx

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

    + w21 xt 2 w12 xt 1 + w22 xt 2 ] 加權和 x 同 時 算 了 兩 個神經元的!
  22. 40 ht−1 = [ ht−1 1 ht−1 2 ] hidden

    states 也寫成 向量。
  23. 41 WT x ⋅ xt + WT h ⋅ ht−1

    + b b = [ b1 b2 ] 計算「總刺激」 的部份。
  24. 42 ht = σ(WT x ⋅ xt + WT h

    ⋅ ht−1 + b) 最後美美的公式 (?) 長這樣。
  25. 50 1 2 1 2 3 h 1 h 2

    ht = φ(xt, ht−1) φ 有時會像這樣整個 RNN 層一起輸出。
  26. 53 為什麼呢? x3 x4 x5 ̂ y3 xm x2 x1

    ̂ y1 ̂ y2 ̂ y4 ̂ y5 ̂ ym 因為 RNN ⾃然會變成很深的神經網路... backpropagation
  27. 61 編號 k 的 LSTM LSTM 多出來的 cell state 是屬於這個

    cell 的 一 個 c e l l 的 output 還是會 和同一層分享 −1 h
  28. 69 Li,H., Xu, Z., Taylor, G., Studer C., Goldstein T.

    (NeuraIPS 2018). Visualizing the Loss Landscape of Neural Nets. . without skip with skip
  29. 重點 RNN 的名字 76 現在說到 RNN, 其實包括原始 RNN, LSTM, GRU

    等各種變形。 特別要叫原始的 RNN, 我們習慣叫它 Vanilla RNN, 在 Tensorflow 2 中是 SimpleRNN。
  30. 81 f(wt−T , wt−T+1 , …, wt−1 ) = wt

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

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

    2 −1 1 2 −1 反向也做個 RNN
  33. 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
  34. 95 字1 字2 回1 EOS 回1 回2 回k EOS 我們可以想成,

    這是個 enconder-decoder 的結構。 c encoder decoder 這裡的 c 是 encoder 最終輸出的 hidden state。
  35. 假如把我們的 RNN 叫做 我們有這個式子: = (−1, ) Decoder 也是一樣的! =

    (−1, ) 98 但怕大家弄混, 我們 hidden states 改名子。 s = (s−1, )
  36. 重點 函數的寫法 99 c 這樣子 enconding 最後輸出的 h 就 是我們唯一的資訊,

    代表前面完整的 句子! 然後我們就要用單一向量生出完整的 回應 (翻譯,文章…)
  37. 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.
  38. 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.
  39. 108 這種注意力放在幾個重點的叫 attention D. Bahdanau, K. Cho, Y. Bengio, Neural

    machine translation by jointly learning to align and translate. arXiv:1409.0473. 2014.
  40. 109 1 2 T−1 T 1 2 T−1 T 1

    2 −1 + 1 2 T−1 T = ∑ =1 st = fe (st−1 , yt , ct ) yt yt+1 st−1 st
  41. 111 我們對每個位置的「注意力」大小 不同, 所以要給不同權重。 ct = α1 h1 +α2 h2

    + ⋯+αT hT 我 們 要 決 定 這 些 權 重 怎麼決定! α1 , α2 , …, αT values
  42. 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
  43. 113 ej = a(st−1 , hj ) hj st−1 ej

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

    exp( ) alignment model 這就是 softmax! 其實這是某種的 「對齊」。
  45. 不⽤ 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).
  46. 118 encoder x1 x2 xT decoder y1 y2 yk−1 yk

    ⼀次⼀起輸⼊ Self-Attention
  47. 121 Decoder 的⼀個 Layer Multi-Head Attention Dense sublayer sublayer 原版

    decoder 也做了 6 層 Masked Multi-Head (Self) Attention sublayer 從 encoder 來 的 K, V
  48. 123 神秘的 Q, K, V self-attention 的時候, q, k, v

    向量都是由輸⼊ embedding 算出來的。 xp qp kp vp xp WQ xp WK xp WV query key value
  49. 124 神秘的 Q, K, V Decoder 中有個和 encoder 有連結的那個 sublayer

    時... q k v Multi-Head Attention 來⾃ encoder 來⾃之前的 output
  50. 125 Attention 然後就進⼊「正常的」attention 程序。 q k1 k2 kd 送⼊⼀個 query

    q, 就和每⼀個 kp 做 attention, 得到的「強度」做 softmax 之後成為 hp 的係數。 本⽂的 attention 只是做內積。
  51. 130 K V Q Key-value 可看成我們的「記憶」 Query 是實際發生的事 雖然 key-value-query

    不是 transformer 首創, 但啟發我們這樣的思考方向。
  52. NLP 的進展, 被視為 2019 年 AI 重大突破! https://www.stateof.ai/ State of

    AI Report 2019 不用配對、非監督式的翻譯系統 NLP 的 Transfer Learning 132
  53. 133 傳統的 Word Embedding 1 這個人的個性有點天天。 我天天都會喝一杯咖啡。 可 是 一

    個 字 、 一 個 詞, 在不同的地方可 能有不一樣的意思。
  54. 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
  55. 1 2 −1 <BOS> 我 天 天 啡 咖 喝

    咖 注意通常都用雙 向型的 RNN, 我 們畫成單向只是 容易理解。 我們要的 embedding 136
  56. 1 2 −1 <BOS> 天 喝 咖 1 2 −1

    我們可能不只 一層 RNN 層。 137 LSTM1 LSTM2
  57. 138 hi hi token w1 w2 w3 + + 我們在要用時,

    才會去學 , 成為「真正」的 embedding。 w1 , w2 , w3 前 面 需 要 大 量 訓 練 資 料 的 都 不用動哦!
  58. 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
  59. 140 BERT B E R T 的 架 構 基

    本 上 是 transformer 的 encoder。 訓練主要有兩件工作。 我天天都會喝一杯_ _。 咖 啡 克漏字
  60. 142 Transformer Encoder [cls] 字1 字T 記得 BERT 是用 transformer,

    所以 幾個輸入就是幾個 輸出。要應用, 例如 情意分析是這樣...
  61. 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.
  62. 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.
  63. 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 訓練法
  64. 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.
  65. 156 然後大家終於想到, 這樣軍備競賽下去, 很多場景其 實不太能應用。 V. Sanh, L. Debut, J.

    Chaumond, T. Wolf. DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter. NeruIPS 2019. 小巧版的 BERT 來了! DistilBERT
  66. 157 DistilBERT 其實就是大 BERT 訓練小 BERT 的概念。 來, 我教你! G.

    Hinton, O. Vinyals, J. Dean. Distilling the knowledge in a neural network. arxiv: 1503.02531, 2015.
  67. 158 0 125 250 375 500 ELMo GPT BERT XLNet

    RoBERTa DistilBERT ELMo Transformer 94 110 340 465 340 355 66 可怕的 GPT-2, MegatronLM 我們沒放進去...