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

事前学習言語モデルの動向 / Survey of Pretrained Language Models

067c2e9dfad1914df731f6f0d65d9890?s=47 Kyosuke Nishida
November 02, 2019

事前学習言語モデルの動向 / Survey of Pretrained Language Models

067c2e9dfad1914df731f6f0d65d9890?s=128

Kyosuke Nishida

November 02, 2019
Tweet

Transcript

  1. 事前学習⾔語モデルの動向 2019/11/02 ⻄⽥京介 1

  2. • BERTの概要 • 事前学習⾔語モデルの研究の流れ – 2019/06まで(BERT, GPT-2, XLNet等) – 2019/07〜(RoBERTa,

    ALBERT, T5等) • 注⽬データセットの現状のスコア • 今後の展望 2 ⽬次
  3. • 24層の巨⼤モデルで⼤量のデータで事前学習して汎⽤なモ デルを獲得し、各応⽤タスクに適応させるアプローチ • 2018/10/11に発表、現在までに2000件近く被引⽤ • 多数のNLPタスクで⾼い性能を実現して注⽬を浴びる 3 BERT [Devlin+

    (Google), NAACLʼ19 Best Paper]
  4. • 質問に対してテキストを読み解いて回答するタスク 4 BERTが優れた性能を達成したタスクの例︓ SQuAD 1.1 [Rajupurkar (Stanford)+, EMNLP16] ⼊⼒︓テキスト

    ⼊⼒︓質問 出⼒︓回答 Wikipediaの段落(平均140単語) 無料で公開 クラウドソーシングで作成した 100,000件以上の質問・回答ペア テキスト中の任意の 範囲を抽出して回答
  5. • このタスクに特化したニューラルネット構造を持たずに、 ⼈間の質問応答スコアを⼤きく超える性能を達成 5 機械読解 (SQuAD 1.1) で⼈間超え 完全⼀致 部分⼀致

    ⼈間のスコア 82.304 BERTのスコア 87.433 Jacob Devlin et al.: BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. CoRR abs/1810.04805 (2018) https://rajpurkar.github.io/SQuAD-explorer/
  6. 6 BERTが検索エンジンに導⼊ (New!) https://www.blog.google/products/search/search-language-understanding-bert/ • 10⽉25⽇、Googleは検索エンジンのアルゴリズムをBERTベー スにアップデート(英語のみ) • ⾃然⽂でより詳細な検索意図を伝えられる

  7. 7 ⾔語モデル研究の加速 https://github.com/thunlp/PLMpapers に追加 ALBERT ICLR 2020 (投稿中) ACL 2019

    NeurIPS 2019 EMNLP 2019 T5 BART 2019/10
  8. 時系列とモデルサイズ [Huggingface, 2019/08/28] https://medium.com/huggingface/distilbert-8cf3380435b5 モデルのパラメータ数 (x1M) 340M= 3.4億個のfloat値 8300M= 83億個のfloat値

    8
  9. • ERNIE: Enhanced Language Representation with Informative Entities. Zhengyan Zhang,

    Xu Han, Zhiyuan Liu, Xin Jiang, Maosong Sun and Qun Liu. ACL 2019. [pdf] [code & model] • Multi-Task Deep Neural Networks for Natural Language Understanding. Xiaodong Liu, Pengcheng He, Weizhu Chen, Jianfeng Gao. ACL 2019. [pdf] [code & model] • BERT Rediscovers the Classical NLP Pipeline. Ian Tenney, Dipanjan Das, Ellie Pavlick. ACL 2019. [pdf] • How multilingual is Multilingual BERT?. Telmo Pires, Eva Schlinger, Dan Garrette. ACL 2019. [pdf] • What Does BERT Learn about the Structure of Language?. Ganesh Jawahar, Benoît Sagot, Djamé Seddah. ACL 2019. [pdf] • Probing Neural Network Comprehension of Natural Language Arguments. Timothy Niven, Hung-Yu Kao. ACL 2019. [pdf] [code] • ※ BERTを引⽤した論⽂はACL19で180本(全体の27%)程度︖ 「BERT devlin P19 site:aclweb.org filetype:pdf -Supplementary.pdf」 で検索 9 BERTの拡張/分析論⽂@ACL’19 https://github.com/thunlp/PLMpapers
  10. • BERT: 論⽂がarXivに公開: 2018/10/11 • BERT: コード&学習済みモデル公開: 2018/11/1 • NAACL’19:

    投稿〆切: 2018/12/10 • ACL’19: 匿名期間開始: 2019/2/4 • BERT: NAACL’19に採択判明: 2019/3/1 • ACL’19: 投稿〆切: 2019/3/4 • ACL’19: 採択通知: 2019/5/13 • BERT: NAACL’19で発表&ベストペーパー: 2019/7/2 • ACL’19: 本会議: 2019/07/29-31 10 ACL 2019とBERT関連のImportant Dates トップ会議における After BERTの世界はこれから本格的に始まる︕ 今回のACL’19論⽂の arxivは2018/12〜 2019/02あたり
  11. • BERTの概要 • 事前学習⾔語モデルの研究の流れ – 2019/06まで(BERT, GPT-2, XLNet等) – 2019/07〜(RoBERTa,

    ALBERT, T5等) • 注⽬データセットの現状のスコア • 今後の展望 11 ⽬次
  12. • ⽂字レベルの双⽅向(left-to-rightとright-to-left)・2層LSTM⾔ 語モデル • 1B Word Benchmark で学習 • ELMoを特徴ベクトルとしてニューラルモデルで使いSQuAD等

    で⾼精度 12 ELMo [Peters(AI2)+, EMNLP’18, arxiv’18/02] 引⽤数1538 https://www.aclweb.org/anthology/N18-1202.pdf ※図はBert論⽂から
  13. • 12層Transformerの⾃⼰回帰⾔語モデル (left-to-right) – LSTMからTransformerへ、ワードからサブワードへ • BookCorpus (5.5GB程度; 800M words)で学習

    13 GPT [Radford(OpenAI)+, TechRep’18/06] 引⽤数382 https://s3-us-west-2.amazonaws.com/openai-assets/research-covers/language- unsupervised/language_understanding_paper.pdf
  14. • ⾔語モデルが応⽤タスク(downstream tasks)をファイン チューニングする前の事前学習として有効であることを⽰す 14 GPT [Radford(OpenAI)+, TechRep’18/06] 引⽤数382 https://s3-us-west-2.amazonaws.com/openai-assets/research-covers/language-

    unsupervised/language_understanding_paper.pdf
  15. • Transformerの24層双⽅向⾔語モデル • Wikipedia + BookCorpus (16GB, 3300M words) で学習

    – 巨⼤なモデル・多数のデータの流れができる • GLUE, SQuAD等の注⽬タスクで劇的な精度向上、⼀部⼈間超え 15 BERT [Devlin(Google)+, NAACL’19, arxiv’18/11] 引⽤数1997 https://www.aclweb.org/anthology/N19-1423.pdf
  16. • ⽳埋め問題(Masked Language Model) • 次の⽂予測(Next Sentence Prediction)の2タスクで学習 16 BERT

    [Devlin(Google)+, NAACL’19, arxiv’18/11] 引⽤数1997 [CLS] my dog is cute [SEP] he likes play [MASK] [SEP] 2⽂⽬ 1⽂⽬ IsNext my dog is cute [SEP] he likes play piano [SEP] 分類 ⽳埋め 双⽅向
  17. • BERTの上にマルチタスク層を追加してファインチューニング することでBERTがより良い表現を獲得 • Scratchから作るのではなく、既存の⾔語モデルをベースにし た研究 17 MT-DNN [Liu(MS)+, ACL’19,

    arxiv’19/01] 引⽤数65 https://www.aclweb.org/anthology/P19-1441.pdf 単⽂の分類, 2⽂の分類 など
  18. • パラレル翻訳コーパスを⽤いて、クロスリンガルに⽳埋めを 学習 18 XLM [Lample(Facebook)+, NeurIPS’19, arxiv’19/01] 引⽤数69 https://arxiv.org/pdf/1901.07291.pdf

    英語 フランス語
  19. • 系列⻑に制限のあった既存モデルに対して、セグメントレベルの再帰を ⼊れることにより⻑い系列を扱えるように改善 19 Transformer XL [Dai(CMU) +,ACL’19, arxiv’19/01] 引⽤数112

    https://arxiv.org/pdf/1901.02860.pdf
  20. • 48層Transformerの⾃⼰回帰⾔語モデル(構造はGPTと同じ) • WebText (40GB程度)で学習 • 特別な訓練なしに(zero-shot)翻訳,QAが可能 20 GPT-2 [Radford(OpenAI)+,

    TechRep’19/02] 引⽤数153 https://d4mucfpksywv.cloudfront.net/better-language- models/language_models_are_unsupervised_multitask_learners.pdf
  21. • フェイクニュースを⽣成可能なレベルだと話題に 21 GPT-2 [Radford(OpenAI)+, TechRep’19/02] 引⽤数153 https://twitter.com/OpenAI/status/1096092704709070851

  22. • エンティティとフレーズの外部知識を使ってマスクに利⽤ • 中国語タスクで評価 • Whole word masking [google 5/31

    on github] に近いイメージ 22 ERNIE 1.0 (Baidu) [Sun+, arXiv’19/04] 引⽤数19 https://arxiv.org/abs/1904.09223
  23. • 知識グラフ(エンティティ)の情報をfusionしたLM • GLUEではBERTと同程度だが,知識が必要となるタスクで SOTA 23 ERNIE (Tsinghua) [Zhang+, ACL’19,

    arxiv’19/05] 引⽤数17
  24. • ドメイン、⽇付、著者などを条件とした⽣成を可能にした GPT(トークンで条件付け) • Common Crawlから収集したRealNewsデータセット(120GB) で学習 24 Glover [Zellers(Washington

    U)+, NeurIPS’19, arxiv’19/05] 引⽤数10 https://arxiv.org/pdf/1905.12616.pdf
  25. • フェイクニュース⽣成のデモ 25 Glover [Zellers(Washington U)+, NeurIPS’19, arxiv’19/05] 引⽤数10 https://grover.allenai.org/

  26. • Encoder-Decoder型の⽣成モデルのための事前学習 • ⼊⼒から1つの範囲をマスクして,decoder側ではマスクされ た部分を予測 • 教師なし翻訳 newstest2014 En-FrなどでSOTA 26

    MASS [Song(Microsoft)+, ICML’19, arXiv’19/05] 引⽤数26 http://proceedings.mlr.press/v97/song19d/song19d.pdf
  27. • Sequence-to-sequenceを可能にした⾔語モデル • アテンションのマスクの⼊れ⽅で単⽅向・双⽅向・Seq2Seq を制御 • CNN/DMなどでSOTA 27 UniLM [Dong(Microsoft)+,

    NeurIPS’19, arxiv’19/05] 引⽤数16 https://arxiv.org/abs/1905.03197
  28. • ⾃⼰回帰(単⽅向)モデルと双⽅向の両⽅の利点を得ることを⽬指す • モデルに⼊⼒するトークンの順序を permutation する • GLUEなどでBERTを超える精度を達成 28 XLNet

    [Yang(CMU)+, NeurIPS’19, arxiv’19/06] 引⽤数112 https://arxiv.org/pdf/1906.08237.pdf
  29. • BERTの概要 • 事前学習⾔語モデルの研究の流れ – 2019/06まで(BERT, GPT-2, XLNet等) – 2019/07〜(RoBERTa,

    ALBERT, T5等) • 注⽬データセットの現状のスコア • 今後の展望 29 ⽬次
  30. • i.i.d.ではなく範囲でマスクし,同時に範囲の境界も予測する • 1セグメントにして次⽂予測(NSP)を廃⽌ • 通常のBERTに⽐べて精度向上を確認 30 SpanBERT [Joshi(Washington U,

    Facebook)+, arXiv’19/07] 引⽤数11 https://arxiv.org/abs/1907.10529
  31. • マルチタスク事前学習 – 単語レベル(知識マスク,⼤⽂字,単語が他のセグメントで出るか) – 構造レベル(⽂の順序,出現場所) – 意味レベル(談話構造,検索) • GLUEでBERT、XLNetを超えてSOTA(リーダーボードには載ってない)

    31 ERNIE 2.0 [Sun(Baidu)+, arxiv’19/07] 引⽤数5 https://arxiv.org/abs/1907.12412
  32. • BERTと同じ構造で、いろいろな⼯夫を盛り込むことで⼤幅な精度向上 – より⼤きなバッチサイズを使う(256から8192) – より多くのデータを使う(16GBから160GB) – より⻑いステップ数の学習をする(BERT換算で16倍程度) – 次⽂予測(NSP)は不要

    • GLUEでBERT、XLNetを超える精度 32 RoBERTa [Liu(Facebook)+, ICLR’20(投稿中), arxiv’19/07] 引⽤数22 https://arxiv.org/abs/1907.11692
  33. • NSPに変わる学習の⽬的関数を⼯夫 – マスクした上で単語の順番をシャッフルして元に戻す – ランダム・正順・逆順の3種類を分類 • BERTと同サイズ、同データでGLUEでRoBERTa超え 33 StructBERT

    (ALICE) [Wang(Alibaba)+, arxiv’19/08] 引⽤数1 https://arxiv.org/pdf/1908.04577.pdf
  34. • 蒸留により12層BERTを6層に⼩型化(40%減) – BERTの出⼒を教師として、⽣徒(⼩型モデル)が同じ出⼒を出すように学習 – 幅(隠れ層)のサイズを減らすと、層数を減らすよりも悪化 • 推論は60%⾼速化、精度は95%程度保持 34 DistilBERT

    [Sanh(Huggingface)+, NeurIPS WS’19, arxiv’19/10] 引⽤数2 https://arxiv.org/pdf/1910.01108.pdf https://medium.com/huggingface/distilbert-8cf3380435b5
  35. • 精度を落とさずfine-tuning時にBERTを8bit整数に量⼦化 – Embedding, FCは8bit化,softmax, Lnorm, GELUはFP32をキープ • モデルサイズ1/4, 速度

    3.7x 35 Q8BERT [Zafrir(Intel)+, NeurIPS WS’19, arXiv’19/10] 引⽤数1 https://arxiv.org/abs/1910.06188
  36. • 条件付⾔語モデル.条件となる制御テキストを本⽂の前に与 えて学習. • 48層/1280次元Transformer(パラメータ数1.6B) 36 CTRL [Keskar(Salesforce)+, Tech.Rep’19/09] 引⽤数3

    https://einstein.ai/presentations/ctrl.pdf
  37. • 72層、隠れ状態サイズ3072、⻑さ1024(BERTの24倍のサイズ) • 174GBのテキストを512GPUで9.3⽇で学習 • 数⾏のPyTorchコード追加で8モデル並列、64データ並列を実現 37 MegatronLM [Shoeybi(NVIDIA)+, arxiv’19/10]

    引⽤数3 https://arxiv.org/pdf/1909.08053.pdf
  38. • BERTの層のパラメータをすべて共有することで学習を⾼速化 – Largeを超えたモデルは学習が難しいため、表現⼒は落ちるが学習し易くした • 単語埋め込みを低次元にすることでパラメータ削減 • 次⽂予測を、⽂の順序⼊れ替え判定に変更 • GLUE,

    RACE, SQuADでSOTAを更新 38 ALBERT [Lan(Google)+, ICLR’20(投稿中), arxiv’19/09/26] 引⽤数3 https://arxiv.org/abs/1909.11942
  39. パラメータ共有 • BERT base (110M) の場合,12層のパラメータ数は85M • 各層で共有すれば,7.08Mまで削減 39 ALBERT

    [Lan(Google)+, ICLR’20(投稿中), arxiv’19/09/26] 引⽤数3 ALBERTでは 各層でパラメータを 共有する
  40. Embedding Factorization • BERT base (110M) の場合,単語埋込のパラメータ数は24.5M • ALBERTではBottleneck構造することで3.93Mまで削減 40

    ALBERT [Lan(Google)+, ICLR’20(投稿中), arxiv’19/09/26] 引⽤数3 V = 30000 H=768 E=128
  41. Sentence Order Prediction (SOP) • BERTの次⽂予測(NSP)は,他の⽂書から負例を持ってくる ので,トピック判定に近く,問題が簡単になっている • 同⽂書の中の連続するセグメントの順序の⼊替え判定をする 41

    ALBERT [Lan(Google)+, ICLR’20(投稿中), arxiv’19/09/26] 引⽤数3 [CLS] my dog is cute [SEP] he likes play [MASK] [SEP] 2⽂⽬ 1⽂⽬ 正順? my dog is cute [SEP] he likes play piano [SEP] 分類 ⽳埋め
  42. • NLPタスクを全てText-to-Textとして扱い,Enc-Dec Transformer を745GBのコーパスで事前学習して転移する(Text-To-Text Transfer Transformer) • モデルはEncoder-decoderのTransformer 42 T5

    [Raffel(Google)+, arXiv’19/10/23] https://arxiv.org/abs/1910.10683
  43. • 学習タスクをエンコーダデコーダに合わせて変更 • エンコーダ側で範囲を⽋落させて,デコーダ側で予測 • GLUE, SuperGLUE, SQuAD 1.1, CNN/DMでSOTA更新

    43 T5 [Raffel(Google)+, arXiv’19/10/23] https://arxiv.org/abs/1910.10683
  44. • Seq2Seq事前学習として,トークンマスク・削除,範囲マス ク,⽂の⼊替,⽂書の回転の複数タスクで学習. • CNN/DMでT5超え,WMT’16 RO-ENで逆翻訳を超えてSOTA 44 BART [Lewis(Facebook)+, arXiv’19/10/29]

    http://arxiv.org/abs/1910.13461
  45. • BERTの概要 • 事前学習⾔語モデルの研究の流れ – 2019/06まで(BERT, GPT-2, XLNet等) – 2019/07〜(RoBERTa,

    ALBERT, T5等) • 注⽬データセットの動向 • 研究の⽅向性と今後の展望 45 ⽬次
  46. 46 GLUE (⾃然⾔語理解タスク群) ※11/1 ⼈間 T5(single): 89.7 ⼈間: 87.1 RoBERTa(ensemble):

    88.5 BERT(single): 80.5 ALBERT(ensemble): 89.4 XLNet (ensemble): 88.4
  47. 47 SQuAD 2.0 (機械読解) ※ 11/1 ⼈間 ALBERT(ensemble): 89.731/92.215 ⼈間:

    86.831/89.452 RoBERTa (single): 86.820/89.795 XLNet (single): 86.346/89.133 ALBERT(single): 88.107/90.902
  48. 48 CNN/DM (要約) ※ 11/1 T5 43.52 21.55 40.69

  49. • BERTの概要 • 事前学習⾔語モデルの研究の流れ – 2019/06まで(BERT, GPT-2, XLNet等) – 2019/07〜(RoBERTa,

    ALBERT, T5等) • 注⽬データセットの現状のスコア • 研究の⽅向性と今後の展望 49 ⽬次
  50. 50 ⾔語モデル研究の⽅向性 • データを増やす,質を良くする • モデルサイズを⼤きくする • モデルサイズを⼩さくする / ⾼速化する

    • 内部分析をする(アテンションの可視化など) • マスクの⽅法を⼯夫する • 補助タスク(次⽂予測など)を⼯夫する • 最適化⼿法を改善する(optimizer, mixed precision, 分散学習, etc.) • 系列⻑の制約を無くす • 外部知識を利⽤する • よいサブワードを考える • マルチタスクにする • マルチリンガルにする • マルチモーダル(⾔語+画像,⾳声など)にする • ⽣成タスク(Sequence-to-sequence)に適⽤する(Hot!)
  51. • BERTの登場以降、⾃然⾔語理解タスクの全般に利⽤可能な技 術への注⽬が⾼まる • ⾃然⾔語理解の共通的な⾔語モデルと知識ベースを基に、ど うやって応⽤タスクに少サンプルで適応するか︖ • タスク間でも⾃然⾔語理解能⼒を共有できないか︖ 51 個別のタスクから⾃然⾔語理解へ

    ⾔語モデル・知識ベース 読解 含意 換⾔ 要約 翻訳 対話
  52. • テキストの意味理解を超えたスキルを必要とする質問応答へ の展望 – 数学・集計・論理などの演算能⼒ – 図・表・データベースの理解 52 ⾃然⾔語理解を超えて ⾃然⾔語理解

    演算能⼒ DB・表 図
  53. • 加算、減算、カウン ト、ソートなど演算 能⼒が必要な読解 データセット • 演算もニューラルに 任せるべきなのか︖ 53 DROP

    [Dua(UCI)+,NAACL’19] Dheeru Dua et al.: DROP: A Reading Comprehension Benchmark Requiring Discrete Reasoning Over Paragraphs, arXiv https://arxiv.org/pdf/1903.00161.pdf
  54. • 複雑なクエリを含む Text-to-SQL (Semantic Parsing)のデータセット • 機械読解の研究として、知 識源がテキスト+データ ベースに拡張された設定に 拡張できるか︖

    54 Spider [Yu(Yale U)+,EMNLP18] https://arxiv.org/pdf/1809.08887 Tao Yu et al.: Spider: A Large-Scale Human-Labeled Dataset for Complex and Cross-Domain Semantic Parsing and Text-to-SQL Task. EMNLP 2018: 3911-3921
  55. • ⾔語+常識+ビジョンの理解 • ⾔語モデルと画像特徴量だけで ⽴ち向かえるのか︖ 55 Visual Commonsense Reasoning [Zellers

    (U Washington)+, CVPR19] Rowan Zellers, Yonatan Bisk, Ali Farhadi, Yejin Choi: From Recognition to Cognition: Visual Commonsense Reasoning. CoRR abs/1811.10830 (2018) 画像と質問に対して、 回答と理由を選択
  56. 56 おわりに BERT以降,⾔語モデル研究が加速 ⾃然⾔語理解のレベルが⼤幅に上がる BERTがGoogle検索に導⼊されるなど実⽤化も加速 ⽣成タスク(対話,要約,QA)などでも今後有望 研究の⽅向性,残された課題は多数存在 どこを狙って研究開発していくか