Dynamic Entity
Representations in Neural
Language Models
読む人: 東北大学乾研究室 修士1年
清野舜
最先端NLP 2017
1
概要
• 目標: 参照表現 (Entity) を活用する文章読解モデル
• アプローチ: 言語モデル + 参照表現
• 提案手法: EntityNLM
• 単語予測と同時に,単語の参照先を予測
• 各参照表現には専用の分散表現を生成・更新
• 複数のタスクでベースラインに勝利
• 言語モデル (Perplexity)
• 共参照解析機のn-bestのリランキング
• Entity予測タスク
2
解きたいタスク: 言語モデル
3
John wanted to go to the coffee shop in downtown Copenhagen.
He was told that it sold [xxx] in the whole [xxx]
「xxx」に入る単語列は何か?
解きたいタスク: 言語モデル
• ①参照表現間の共参照関係を把握する
• He=Johnであり,it=the coffee shopである
• ②参照表現の情報を保持する
• the coffee shopだから豆とかコーヒーかな…
• Copenhagenだからヨーロッパとかかな… 4
John wanted to go to the coffee shop in downtown Copenhagen.
He was told that it sold [xxx] in the whole [xxx]
「xxx」に入る単語列は何か?
単語列を予測するために必要なことは?
アイデア: 単語予測と同時に
共参照解析をする - EntityNLM
5
①参照表現間の共参照関係を把握する
②各参照表現についての情報を保持する
⇛次の単語を予測する際,その単語の共参照関係を同時に予測する
⇛参照表現ごとに専用の分散表現を生成・動的に更新
h1
John
wanted
h2
wanted
to
h3
to
go
ht-1
.
John
The coffee shop
Downtown Copenhagen
John
The coffee shop
Downtown Copenhagen
参照表現ベクトル
サンプリング
文脈に応じて
更新
正規分布
提案手法: 確率変数を新たに考慮
• 新しく確率変数を定義し,言語モデルに追加
• 𝑅𝑡 ∈ 0, 1 : 次単語𝑥𝑡は参照表現か否か
• 𝐿 𝑡 ∈ {1, … , 𝑙 𝑚𝑎𝑥}: 参照表現の残りtoken数
• 𝐸𝑡: 参照表現のindex(表現の種類ごとに増加)
• 共参照関係がアノテートされたコーパス
(CoNLL2012)から教師データを作成
6
ベースライン: 所謂RNNLM
各時刻で次の単語を順々に予測していく
7
h1
John
wanted
h2
wanted
to
h3
to
go
ht
He
was
入力
出力
ht-1
.
He
EntityNLM = 言語モデル+R,L,E
単語予測をする前にR,L,Eを予測する
8
h1
John
wanted
h2
wanted
to
h3
to
go
ht
He
was
入力
出力
ht-1
.
He
①次トークンがEntity / 非Entity を予測
② (次トークンがEntity Mentionの場合)次トークンの長さを当てる(1 … 𝑙 𝑚𝑎𝑥)
③ (次トークンがEntity Mentionの場合)どのEntityを指しているかを予測
④ ②で予測したEntityの分散表現も混ぜて次単語を予測
分散表現は動的に更新する
9
既存の参照表現が選ばれた場合: LSTMの隠れ層とのゲート和
新しい参照表現が選ばれた場合: 正規分布から新しくサンプリング
これまでの情報 新情報
目的関数・最適化手法など
• 目的関数
• 𝑙 𝜃 = 𝑙𝑜𝑔𝑃 𝑅, 𝐸, 𝐿, 𝑋; 𝜃 = 𝑡 𝑙𝑜𝑔𝑃(𝑅𝑡, 𝐸𝑡, 𝐿 𝑡, 𝑋𝑡; 𝜃)
• ハイパーパラメータなど (Devデータで調整)
• AdaGrad (lr=0.1) / Adam (lr=0.001)
• Dropout {0.2, 0.5}
• LSTM Hidden State & Word Embedding
{32,48,64,128,256}
• GloVeによる初期化 / ランダムに初期化
• 実装(by DyNet)は公開されてません
• https://github.com/jiyfeng/entitynlm
• (会議も終わったというのに)
10
実験
• 実験1: 言語モデリング on CoNLL2012
• 実験2: 共参照解析機のリランキング
• 実験3: Entity予測
• 省略します
11
実験1: 言語モデル
• データセット: CoNLL2012
• 2802/343/348 文書
• 100万/15万/15万 トークン
• 低頻度語はUNKで置換,数字はNUMで置換
• ボキャブラリ: 約1万語
• ベースライン
• 5-gram 言語モデル [Heafield+ 2013]
• RNN言語モデル with LSTM
• DyNet実装です,とのみ記述あり
12
実験1: 言語モデル
• EntityNLMはベースラインよりも高性能
• ベースラインが弱すぎるのではないか?
• 「提案手法は普通の言語モデルとしても使える」
としか言えないのでは?
• 言語モデルの評価によく使われるMikolovPTBの場合:
• 総トークン数90万 / 語彙1万 / UNK&NUM置換アリ
• LSTM [Zaremba+ 2014]でPerplexity 78.4 13
Perplexityで評価
実験2: 共参照解析のリランキング
• EntityNLMは P(R,E,L,X)を計算可能
• i.e. 各Coreference Chainに対して確率値が求まる
• 共参照解析機の出力のリランキングが可能
• 共参照解析機にはCORT [Martschat+ 2015]を使用
した
• 今回は 𝒦 = 100とした
• 𝒦 = 500としても性能は上がらなかった
14
𝒦: 共参照解析機の出力したk-best
実験2:共参照解析のリランキング
• CoNLLスコア上では1%性能が向上した
• CORTのスコアとの線形和をすると一番良い
• CORT自体の性能も低いのでは?
15
[Clark+ 2016]
既存研究: 外部メモリを持つような
言語モデル
• 外部メモリを持つような言語モデルはこれまで
にも提案されている
• 参照表現にに限らない”general contextual
information”を保持するモデル
• 例: Recurrent Memory Network [Tran+ 2016]
• (これらは共参照関係をImplicitに取り扱っていると
見ることもできるはず)
• 提案手法(EntityNLM)は個々の参照表現に
専用の分散表現を付与するようなモデル
• (共参照のタグ付きデータが少ないから今までやら
れなかった,という側面もありそう…)
16
まとめ
• 言語モデルの拡張としてEntityNLMを提案
• 単語予測と同時に,単語の参照先を予測
• 各参照表現には専用の分散表現を生成・更新
• 言語モデル・共参照解析のリランキング・
Entity予測などでベースラインに勝利
17

Dynamic Entity Representations in Neural Language Models

Editor's Notes

  • #4 Inputが何で,何を当てたいのか? INPUT: f(John wanted to go to the coffee shop in downtown Copenhagen. He was told that it sold ) ここに何が入るかを当てたい,つまり言語モデルです CorefにおけるEntity Mentionのこと Entityの定義を最初に言う CONLL2012のアノテーションガイドラインor 井上尚弥 最終的な目標: より良い言語モデル
  • #5 Inputが何で,何を当てたいのか? INPUT: f(John wanted to go to the coffee shop in downtown Copenhagen. He was told that it sold ) ここに何が入るかを当てたい,つまり言語モデルです CorefにおけるEntity Mentionのこと Entityの定義を最初に言う CONLL2012のアノテーションガイドラインor 井上尚弥 最終的な目標: より良い言語モデル