[dl輪読会]semi supervised qa with generative domain-adaptive nets
TRANSCRIPT
Semi-Supervised QA with Generative Domain-
Adaptive Nets中山研究室 M1 横田 匡史
概要• Problem
質問応答モデルを学習する際に、大量のラベル付けされたデータが必要。しかし、データ作成にはコストがかかる。• What
ラベル付けされていないデータを活用して、質問応答モデルの性能改善をする。
関連研究• 論文
Dual Learning for Machine Translation[NIPS 2016, He et. al.] ( 以前、藤野さんが紹介した論文 )
• What
• 単一言語コーパスを用いて翻訳モデルをrefinement する
学習の流れ
TMAB: 少数の対訳コーパスで学習したA→B への翻訳モデル
LMA:A の学習済み言語モデルTMBA: 少数の対訳コーパスで学習した
B→A への翻訳モデルLMB:B の学習済み言語モデル
X Y
X と Y はそれぞれ、翻訳モデルと言語モデルを持つ。それぞれが持つ翻訳モデル (TMAB,TMBA) を refinement していく。
①TMAB を用いて単一言語コーパスDA のセンテンス s を B へ翻訳 ②TMAB から生成された smid を
LMB を用いて報酬を計算r1=LMB(smid)③Smid から A へ TMBA を用いて
back translation する。
④TMAB を用いて報酬を計算r2=TMAB(s;smid,ØAB)
学習の流れ
• 報酬 rr = αr1 +(1- α) r2 (α はハイパーパラメータ )
• 報酬 r を最大化するように Policy Gradient でTMAB のパラメータを更新する
X Y
学習の流れX Y
TMBA の学習も流れを逆にして学習する。→ 単一コーパスから翻訳モデルの学習が可能になる。
④TMAB を用いて報酬を計算r2=TMAB(s;smid,ØAB)③Smid から B へ TMAB を用いて
back translation する。
①TMBA を用いて単一言語コーパス DB のセンテンス s を A へ翻訳②TMBA から生成された文章 smid をLMA を用いて報酬を計算
r1=LMA(smid)
Semi-Supervised QA with Generative Domain-Adaptive
Nets
✓ Dual Learning for Machine Translation を QAタスクに応用した研究QA データを持たないデータから質問生成モデルで data augmentation し、それを質問応答モデルで学習する
課題とその対策• 生成された質問文が不自然だと質問応答モデルに対して変なバイアスが掛かる可能性がある
A. 生成されたデータセットと既存のデータセットを別のドメインとして分けて学習させるB. 元データの質問文の分布と生成データの質問文の分布が近くなるように報酬を設計し強化学習する。
登場するモデル質問応答モデル (Discriminative Model)
• 入力:文章と質問文• 出力:解答
質問生成モデル (Generative Model)
• 入力:文章と解答• 出力:質問文• 少数の QA データを持つ学習データセットで事前学習しておく
質問応答モデルMount Fuji , located on Honshu Island , is the highest mountain in Japan at 3,776.24 m ( 12,389 ft ).[1] An active stratovolcano that last erupted in 1707–08,[5][6] Mount Fuji lies about 100 kilometres (60 mi) south-west of Tokyo, and can be seen from there on a clear day. …
How high is Mt. Fuji ?Question
Paragraph
入力
質問応答モデルMount Fuji , located on Honshu Island , is the highest mountain in Japan at 3,776.24 m ( 12,389 ft ).[1] An active stratovolcano that last erupted in 1707–08,[5][6] Mount Fuji lies about 100 kilometers (60 mi) south-west of Tokyo, and can be seen from there on a clear day. …
How high is Mt. Fuji ?
start: 15end: 20
Question
Paragraph
入力
Paragraph 内の解答に該当する範囲を indexで解答する。
出力
質問応答モデルp = (p0, p1, … , pT)
q = (q0, q1, … , qT’)
bidirectional GRU
bidirectional GRU
Softmax
Linear
Softmax
Linearstartindex
endindex
paragraphrepresentation
attention
paragraph
question
Domain Adaptation With Tags
QA タスクにおいて、上手く生成できなかったデータはモデルの学習の妨げとなってしまう➡ 元データと生成データを別のドメインとして学習させる事で、これらの影響を抑える。
入力の質問文の末尾に元データに対しては’ d_true’ を入れ、生成データに対しては’ d_gen’ を入れて学習させる
質問生成モデルMount Fuji , located on Honshu Island , is the highest mountain in Japan at 3,776.24 m ( 12,389 ft ).[1] An active stratovolcano that last erupted in 1707–08,[5][6] Mount Fuji lies about 100 kilometers (60 mi) south-west of Tokyo, and can be seen from there on a clear day. …
start: 15, end: 20Answer
Paragraph
入力出力
How high is Mt. Fuji ?
Question
質問生成モデルGRU GRU GRU
<bos> Mount <eos>…
GRU
Fuji
Embed Embed Embed Embed0/1 0/1 0/1 0/1
Encoder
質問生成モデルGRU GRU GRU
<bos> Mount <eos>…
GRU
Fuji
Embed Embed Embed Embed0/1 0/1 0/1 0/1
入力 word が解答チャンクに存在すれば 1, なければ 0
Encoder
質問生成モデルGRU GRU GRU
<bos>
GRU GRU GRU GRU
Mount <eos>…
GRU
Fuji
Embed Embed Embed Embed0/1 0/1 0/1 0/1
<bos> How high <eos>
Encoder
Decoder
学習の流れX Y
② 生成したデータと既存のデータを用いて D を学習する③ 生成したデータにおける
D の出力を報酬とする
① ラベルなしのデータからG を用いて QA を生成する。
④ 報酬を元にREINFOCE を使って G のパラメータを更新する。
G: 少数データで学習した質問生成モデル D: 質問応答モデル
本論文では Dual Learning と異なり上記の一方向のみで学習を行う。
学習アルゴリズムX Y
② 生成したデータと既存のデータを用いて D を学習する③ 生成したデータにおける
D の出力を報酬とする
① ラベルなしのデータからG を用いて QA を生成する。
④ 報酬を元にREINFOCE を使って G のパラメータを更新する。
G: 少数データで学習した質問生成モデル D: 質問応答モデル
学習アルゴリズム①• QA データを持たないラベルなしデータセットを用いて QA データの作成を行う
ラベルなしデータ U: Wikipedia や Web の文章データ• データ生成の流れ
1. ラベルなしデータセット U から解答抽出する2. Generative Model に U と抽出した解答を入力とし、 Beam Search を用いて質問を生成する。
解答抽出方法1. ラベルなしデータセットに対して POS タグを付ける2. POS タグを付けられたセンテンスから、 norm
phrase, verb phrase 等を解答として抽出する3. 1. と同様に NER タグをラベルなしデータセットに対して付ける4. NER タグを付けられたセンテンスから、” Date”や” Money” 等のタグを持つ単語を解答として抽出する
学習アルゴリズムX Y
② 生成したデータと既存のデータを用いて D を学習する③ 生成したデータにおける
D の出力を報酬とする
① ラベルなしのデータからG を用いて QA を生成する。
④ 報酬を元にREINFOCE を使って G のパラメータを更新する。
G: 少数データで学習した質問生成モデル D: 質問応答モデル
学習アルゴリズム②目的関数
: データセットp: パラグラフ
D: モデルq: 質問文
a: 解答: モデル D の確率分布
tag: ドメインタグ (d_true / d_gen)
学習アルゴリズム②
: 質問生成モデルにより作られたデータセット
G: 質問生成モデル D: 質問応答モデルL: 既存の学習データセット
・質問応答モデルの目的関数
→ これを最大化するように学習させる
学習アルゴリズムX Y
② 生成したデータと既存のデータを用いて D を学習する③ 生成したデータにおける
D の出力を報酬とする
① ラベルなしのデータからG を用いて QA を生成する。
④ 報酬を元にREINFOCE を使って G のパラメータを更新する。
G: 少数データで学習した質問生成モデル D: 質問応答モデル
学習アルゴリズム③
生成データ UG が質問応答モデルにとって解答可能であるような質問文になって欲しい。→UG を d_true のドメインとして質問応答モデル D に入力したときの正解となる解答の確率を報酬とする。
報酬質問応答モデルの報酬設計
学習アルゴリズムX Y
② 生成したデータと既存のデータを用いて D を学習する③ 生成したデータにおける
D の出力を報酬とする
① ラベルなしのデータからG を用いて QA を生成する。
④ 報酬を元にREINFOCE を使って G のパラメータを更新する。
G: 少数データで学習した質問生成モデル D: 質問応答モデル
学習アルゴリズム④
b: UG におけるサンプルの報酬の平均上記の REINFORCE アルゴリズムを用いて質問生成モデル G のパラメータを更新する
質問生成モデル G のパラメータ更新
学習の全体の流れ
実験• 使用データセット
• ラベル付きデータセット: SQuAD
• ラベルなしデータセット:Wikipedia の article(950,612 paragraphs)
• ラベルなしデータセットから解答を4,753,060 個抽出する
実験• 比較モデル
• SL: data augmentation なしで学習した応答モデル• Context: パラグラフ中の解答チャンク前後から質問文を生成• Context + domain : Context で生成したデータに対してドメインを分けて学習• Gen : 本論文の提案した質問生成モデル• Gen + GAN : Gen に GANs[Ganin and Lempitsky, 2014] を用いて学習させる• Gen + dual : Gen を dual learning を用いて refinement• Gen + domain : Gen で生成したデータに対してドメインを分けて学習• Gen + domain + adv : Gen + domain にさらに REINFORCE で
refinement
実験結果
実験結果
実験結果
所感• Gen と Gen + domain + adv で、生成された質問文がどれだけ変わったのかが気になる。 ( サンプルを見たい )
• 実験結果を見ると domain が効いていそうだが、Gen + domain + duel はどれくらいの精度が行くのだろうか?
まとめ• パラグラフから QA データを生成し、質問応答モデルの精度を改善• 生成したデータと既存データを別ドメインとして学習させることで性能が上がる• 生成した質問文が既存のデータドメインとして精度が上がるように報酬を設計し、 REINFORCE でパラメータ更新する。