Slide 1

Slide 1 text

Surveys of Sequence Labeling Makoto Hiramatsu @himkt Yasuhiro Yamaguchi @altescy Koga Kobayashi @kajyuuen Tatsuya Hiraoka @mentaiko_guma

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

/30 自己紹介 Makoto Hiramatsu Twitter/GitHub: himkt クックパッド 研究開発部
 (2019-20??) 5

Slide 6

Slide 6 text

/30 系列ラベリング • 入力の系列 (X) は所与,出力の系列 (Y) を予測 
 (e.g. 単語分割, 品詞タグ付け, 固有表現抽出…) 6 X Y P(Y ∣ X)

Slide 7

Slide 7 text

/30 • テキストからあらかじめ定められたカテゴリ (NE カテゴリ) を
 認識・抽出するタスク (抽出されたものを Entity と呼ぶ) • 系列ラベリングの問題として定式化されることが多い • 各単語に対して NE タグ を予測
 -> span に変換して Entity に変換 (in https://explosion.ai/demos/displacy-ent) 固有表現抽出 7

Slide 8

Slide 8 text

/30 NE タグ -> NE 8 例. だし巻き卵 (F: Food), 皿 (T: Tool) Prefix によって span を表現する

Slide 9

Slide 9 text

/30 LSTM-CRF [Huang+, 2015] • LSTM-CRF を NER に適用した初めての (?) 研究 • 単語の分散表現 + context/spelling 特徴を使っている • 後者の離散的な特徴量を直接 CRF に入力している
 (最近はそういうやり方をしている論文をみない気がする) 9 図は論文より抜粋

Slide 10

Slide 10 text

/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

Slide 11

Slide 11 text

/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

Slide 12

Slide 12 text

/30 2017~ [ここまで 3 分で話しているはず] •学習済みの言語モデルを使う研究が現れる 12

Slide 13

Slide 13 text

/30 Leaderboard on CoNLL2003 13

Slide 14

Slide 14 text

/30 Use ELMo, BERT or Flair 14

Slide 15

Slide 15 text

/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

Slide 16

Slide 16 text

/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 図は論文より抜粋

Slide 17

Slide 17 text

/30 ELMo [Peters+, 2018] • TagLM と同一著者 (所属は AllenAI) • 公式実装 -> GitHub: allenai/allennlp • 双方向の言語モデルを同時に学習する • CNN を使って単語レベルの特徴を獲得 17

Slide 18

Slide 18 text

/30 ELMo Training 18 Token Representation Token Representation Token Representation Next Word Prediction Prev Word Prediction • TagLM と同一著者 (所属は AllenAI) • 公式実装 -> GitHub: allenai/allennlp • 双方向の言語モデルを同時に学習する • CNN を使って単語レベルの特徴を獲得 (TagLM も)

Slide 19

Slide 19 text

/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 )

Slide 20

Slide 20 text

/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)

Slide 21

Slide 21 text

/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

Slide 22

Slide 22 text

/30 Flair [Akbik+, 2018] • COLING2018 で発表された論文 • Zalando Research の研究 -> 実装あり
 公式実装 -> GitHub: zalandoresearch/flair • Contextual STRING embeddings • 文字レベルの言語モデルを 1B Benchmark コーパスで学習 • Ablation study がしっかりしている 22

Slide 23

Slide 23 text

/30 String Embeddings? • 文字から文字を予測する言語モデル • Whitespace も1つの文字として,
 入力文を「文字列」としてモデリング • 続きの研究が NAACL Full [Akbik+, 2019] にあります • GitHub: xxx/surveys issue#19 • zalandoresearch/flair 自体も
 NAACL Demo [Akbik+, 2019] に通っています (すごい) 23

Slide 25

Slide 25 text

/30 Flair Feature Extractor 25 図は論文より抜粋

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

/30 Performance Comparison 27 表は論文より抜粋

Slide 28

Slide 28 text

/30 Ablation study • LSTM/CRF をモデルから除去して評価実験を行なっている • 提案手法は LSTM を除去した際の F 値の低下が少ない
 => 大域的な情報を言語モデルの段階で獲得できている • Q: ELMo も似たような結果になる? 28 表は論文より抜粋

Slide 29

Slide 29 text

/30 Flair まとめ • 大規模コーパスで学習した文字レベル言語モデルを
 特徴抽出器として利用する手法の提案
 (文を文字列とみなして直接モデリング) • BiLSTM/CRF なしでも性能の劣化が少ないことから,
 大域的な特徴を獲得していることが示唆される • ELMo よりも学習に時間がかからない • ELMo: 3 week / 32 GPU • Flair: 1 week / 1 GPU • 文字ベースの言語モデルなので語彙サイズが小さい 29

Slide 30

Slide 30 text

/30 発表まとめ • NER の SoTA な手法で標準的に利用されている
 学習済み言語モデルベースの特徴抽出器について
 紹介しました • BERT は日本語の詳しい解説がたくさんある一方,
 ELMo と Flair (特に Flair) の資料は少なく感じたので
 ELMo と Flair を取り上げました • 説明した論文・および他の論文のまとめは
 GitHub: himkt/survey へ
 (誤りを見つけたら教えてください) 30