$30 off During Our Annual Pro Sale. View Details »

NLP SoTA 勉強会 / ner_2019

himkt
September 18, 2019

NLP SoTA 勉強会 / ner_2019

第 3 回 NLP/CV 最先端勉強会の発表資料です.
https://nlpaper-challenge.connpass.com/event/146540/

himkt

September 18, 2019
Tweet

More Decks by himkt

Other Decks in Research

Transcript

  1. Surveys of Sequence Labeling Makoto Hiramatsu @himkt Yasuhiro Yamaguchi @altescy

    Koga Kobayashi @kajyuuen Tatsuya Hiraoka @mentaiko_guma
  2. /30 発表の概要 •内容:
 ここ数年の自然言語処理系の国際会議に採択された
 系列ラベリングに関する論文の調査 •リポジトリ:
 GitHub: himkt/survey (tentative) •対象:


    ACL, NAACL, EMNLP, COLING, LREC 2
  3. /30 担当的なもの •@himkt:
 言語モデルを使ったニューラル固有表現抽出 •@altescy:
 転移学習・敵対的学習を用いた固有表現抽出 •@kajyuuen:
 完全なアノテーションが得られない状況下での固有表現抽出 •@mentaiko_guma:
 @himkt

    が面白そうと思ったやつ 3
  4. /30 担当的なもの •@himkt:
 言語モデルを使ったニューラル固有表現抽出 •@altescy:
 転移学習・敵対的学習を用いた固有表現抽出 •@kajyuuen:
 完全なアノテーションが得られない状況下での固有表現抽出 •@mentaiko_guma:
 @himkt

    が面白そうと思ったやつ 4
  5. /30 自己紹介 Makoto Hiramatsu Twitter/GitHub: himkt クックパッド 研究開発部
 (2019-20??) 5

  6. /30 系列ラベリング • 入力の系列 (X) は所与,出力の系列 (Y) を予測 
 (e.g.

    単語分割, 品詞タグ付け, 固有表現抽出…) 6 X Y P(Y ∣ X)
  7. /30 • テキストからあらかじめ定められたカテゴリ (NE カテゴリ) を
 認識・抽出するタスク (抽出されたものを Entity と呼ぶ)

    • 系列ラベリングの問題として定式化されることが多い • 各単語に対して NE タグ を予測
 -> span に変換して Entity に変換 (in https://explosion.ai/demos/displacy-ent) 固有表現抽出 7
  8. /30 NE タグ -> NE 8 例. だし巻き卵 (F: Food),

    皿 (T: Tool) Prefix によって span を表現する
  9. /30 LSTM-CRF [Huang+, 2015] • LSTM-CRF を NER に適用した初めての (?)

    研究 • 単語の分散表現 + context/spelling 特徴を使っている • 後者の離散的な特徴量を直接 CRF に入力している
 (最近はそういうやり方をしている論文をみない気がする) 9 図は論文より抜粋
  10. /30 LSTM-CRF [Lample+, 2016] 10 • 学習済みの分散表現 + 文字の分散表現を用いて単語の特徴量を獲得 •

    学習済みの分散表現は Skip-N-Gram [Ling+, 2015] • 文字の BiLSTM 部分が CNN な手法も存在する [Ma+, 2016] Pre-trained
 Word Embedding Character Embedding Character BiLSTM Word Representation CRF BiLSTM
  11. /30 2014 ~ 2016 • LSTM-CRF ベースのモデルがデファクト化 • 離散的な特徴量 ->

    単語 (文字) の分散表現へのシフト • 使う学習済みの単語分散表現に色々な流派が存在 • SENNA [Collobert+, 2011] • Skip-Gram [Mikolov+, 2013] • Skip-N-Gram [Ling+, 2015] • GloVe [Pennington+, 2014] • …etc • 関連: https://speakerdeck.com/himkt/ner-2018 11
  12. /30 2017~ [ここまで 3 分で話しているはず] •学習済みの言語モデルを使う研究が現れる 12

  13. /30 Leaderboard on CoNLL2003 13

  14. /30 Use ELMo, BERT or Flair 14

  15. /30 学習済み言語モデル • 単語の分散表現 (E1) -> 言語モデルベースの単語の分散表現 (E2) • 入力文を言語モデルに入力し,得られた出力を単語ベクトルにする

    • 異なる文脈で単語 w が出現してきたとき… • E1 -> 同じ単語ベクトルが割り当てられる • E2 -> 異なる単語ベクトルが割り当てられる • NER で使われているものとして ELMo, BERT, Flair がある
 (GPT を使っている論文を知っていたら教えてくださいmm) • BERT [Delvin+, 2018] の話はしません • GitHub: yoheikikuta/paper-reading issue#18 を読んでください • [Baevski+, 2019] も話しません • EMNLP-IJCNLP の proceedings がまだなので 15
  16. /30 TagLM [Peters+, 2017] • 2 層の双方向の言語モデルを用いて単語特徴を獲得 • 1 Billion

    Benchmark [Chelba+, 2014] で学習した言語モデルを利用 • 順方向: 既存の学習済みモデル [Jozefowicz+, 2016] • LSTM hidden_dim: 8192 (!!), Linear projection: 1024 • 逆方向: 著者らが学習 • LSTM hidden_dim: 2048, Linear projection: 512 16 図は論文より抜粋
  17. /30 ELMo [Peters+, 2018] • TagLM と同一著者 (所属は AllenAI) •

    公式実装 -> GitHub: allenai/allennlp • 双方向の言語モデルを同時に学習する • CNN を使って単語レベルの特徴を獲得 17
  18. /30 ELMo Training 18 Token Representation Token Representation Token Representation

    Next Word Prediction Prev Word Prediction • TagLM と同一著者 (所属は AllenAI) • 公式実装 -> GitHub: allenai/allennlp • 双方向の言語モデルを同時に学習する • CNN を使って単語レベルの特徴を獲得 (TagLM も)
  19. /30 ELMo Training • 順方向言語モデル + 逆方向言語モデル の対数尤度を
 最大化することで学習を行う •

    Token Representation の重み ( CNN の重み) と
 Fully-connected layer の重みは共通 19 N ∑ k=1 log p(tk ∣ p1 , …, pk−1 ) + log p(tk ∣ p1+1 , …, pN )
  20. /30 ELMo Feature Extractor 20 Token Representation BiLSTM BiLSTM Output

    ELMo feature • 特徴抽出の際は入力文を ELMo に入力
 -> 単語の特徴量と LSTM の出力の重み付き和を計算 ELMotask k = γtask L ∑ j=0 stask j hLM k,j Trainable parameters (allennlp issue#1149)
  21. /30 ELMo Tips • Token Representation は文字分散表現を CNN で
 畳み込み

    -> Max-Pooling -> ReLu したもの • 二層目の BiLSTM への入力には Token Representation
 との Residual Connection もある • Target タスクの学習データで Fine-Tuning すると
 タスクでの性能が向上するらしい (see appendix) • ELMo 自身の学習は allennlp には存在しない • GitHub: allenai/bilm-tf • Transformer ELMo [Peters+, 2018] は allennlp にある 21
  22. /30 Flair [Akbik+, 2018] • COLING2018 で発表された論文 • Zalando Research

    の研究 -> 実装あり
 公式実装 -> GitHub: zalandoresearch/flair • Contextual STRING embeddings • 文字レベルの言語モデルを 1B Benchmark コーパスで学習 • Ablation study がしっかりしている 22
  23. /30 String Embeddings? • 文字から文字を予測する言語モデル • Whitespace も1つの文字として,
 入力文を「文字列」としてモデリング •

    続きの研究が NAACL Full [Akbik+, 2019] にあります • GitHub: xxx/surveys issue#19 • zalandoresearch/flair 自体も
 NAACL Demo [Akbik+, 2019] に通っています (すごい) 23
  24. /30 Flair Architecture 24 I <s> h a v e

    <a> a Char Embedding LSTM Next Character Prev Character • 順方向言語モデルと逆方向モデルは別々に学習する • 言語モデル自体の学習は 1 GPU で 1 週間 
 (TagLM は 32 GPU で 3 週間) • (文脈窓幅は 250)
  25. /30 Flair Feature Extractor 25 図は論文より抜粋

  26. /30 Flair Feature Extractor 26 図は論文より抜粋 • 文字言語モデルに入力して,単語の直前・直後の
 言語モデルの隠れ層を concat

    したものを特徴量にする
  27. /30 Performance Comparison 27 表は論文より抜粋

  28. /30 Ablation study • LSTM/CRF をモデルから除去して評価実験を行なっている • 提案手法は LSTM を除去した際の

    F 値の低下が少ない
 => 大域的な情報を言語モデルの段階で獲得できている • Q: ELMo も似たような結果になる? 28 表は論文より抜粋
  29. /30 Flair まとめ • 大規模コーパスで学習した文字レベル言語モデルを
 特徴抽出器として利用する手法の提案
 (文を文字列とみなして直接モデリング) • BiLSTM/CRF なしでも性能の劣化が少ないことから,


    大域的な特徴を獲得していることが示唆される • ELMo よりも学習に時間がかからない • ELMo: 3 week / 32 GPU • Flair: 1 week / 1 GPU • 文字ベースの言語モデルなので語彙サイズが小さい 29
  30. /30 発表まとめ • NER の SoTA な手法で標準的に利用されている
 学習済み言語モデルベースの特徴抽出器について
 紹介しました •

    BERT は日本語の詳しい解説がたくさんある一方,
 ELMo と Flair (特に Flair) の資料は少なく感じたので
 ELMo と Flair を取り上げました • 説明した論文・および他の論文のまとめは
 GitHub: himkt/survey へ
 (誤りを見つけたら教えてください) 30