ACL2017読み会@すずかけ台 東工大 奥村・高村研究室...
Transcript of ACL2017読み会@すずかけ台 東工大 奥村・高村研究室...
ACL2017読み会@すずかけ台 東工大 奥村・高村研究室 渡邉亮彦
※ 図は論文、著者スライド中から引用しています
概要・Seq2Seqによる文`書’要約モデル・Attention modelに下記の2つの機構を導入し性能向上
1. Pointer-Generator Network
2. Coverage Mechanism
より正確にfactual detailsを記述し、OOVを扱える
単語の生成と原文書からの単語のコピーの両方を行えるハイブリッドモデル
情報の繰り返し(repetition)の防止
過去のAttentionの分布を活用し、繰り返し同じ場所にAttentionされないように
- factual errors, OOV- nonsensical sentence
1. Pointingの導入
- repeatingの発生
2. Coverageの導入
- fragmentsによる要約
- factual errors, OOV- nonsensical sentence
1. Pointingの導入
- repeatingの発生
2. Coverageの導入
- fragmentsによる要約
- factual errors, OOV- nonsensical sentence
1. Pointingの導入
- repeatingの発生
2. Coverageの導入
- fragmentsによる要約
Background: Attention Mechanism
[Bahdanau et al., 2014]
Encoder
DecoderRNNEncoderの各隠れ層をとっておき
cf. http://www.slideshare.net/yutakikuchi927/deep-learning-nlp-attention
各隠れ層を荷重平均し context vectorを作成
RNNDecoderの単語生成に用いる(context vectorはこれまでの出力に応じて動的に変化)
は,前回のDecの隠れ層対応するEncの隠れ層
から求める
st�1
Background: Attention Mechanism
Encoder
DecoderRNNEncoderの各隠れ層をとっておき
各隠れ層を荷重平均し context vectorを作成
RNNDecoderの単語生成に用いる(context vectorはこれまでの出力に応じて動的に変化)
st�1は,前回のDecの隠れ層対応するEncの隠れ層
から求める
cf. http://www.slideshare.net/yutakikuchi927/deep-learning-nlp-attention
[Bahdanau et al., 2014]
Background: Attention Mechanism
Encoder
DecoderRNNEncoderの各隠れ層をとっておき
各隠れ層を荷重平均し 文脈ベクトルを作成
RNNDecoderの単語生成に用いる(文脈ベクトルはこれまでの出力に応じて動的に変化)
↵t⌧ st�1は,前回のDecの隠れ層対応するEncの隠れ層 h⌧
から求める
提案手法はこのモデルを拡張 1. Pointer-Generator Network 2. Coverage Mechanism
cf. http://www.slideshare.net/yutakikuchi927/deep-learning-nlp-attention
[Bahdanau et al., 2014]
1. Pointer-Generator Network
・Generation probability Pgen を新たに導入
・単語wをoutputする確率 P(w)確率Pgenで単語を生成、(1 - Pgen)で単語をコピー
Vocabから単語を生成する確率とAttentionの分布から求める
1. Pointer-Generator Network
・Generation probability Pgen を新たに導入
1. Pointer-Generator Network
・単語wをoutputする確率 P(w)確率Pgenで単語を生成、(1 - Pgen)で単語をコピー
Vocabから単語を生成する確率とAttentionの分布から求める
・Generation probability Pgen
・単語wをoutputする確率 P(w)
1. Pointer-Generator Network
tステップ目のcontext vector
decoderのstate
decoderのinput
Vocabから単語wが生成される確率 単語wのAttentionの重み(単語wが原文書に存在する場合)
2. Coverage Mechanism
・Attentionの分布を求める際にcoverage vectorを導入coverage vectorは現在までのAttentionの分布の和・loss関数にcoverage lossを追加繰り返し同じ場所にAttentionが張られるとペナルティ
2. Coverage Mechanism
・Attentionの分布を求める際にcoverage vector cを導入
・loss関数にcoverage lossを追加
過去のAttentionの分布の総和
(Attentionの重み) coverage vectorも考慮し重みを決定
coverage loss, 過去と同じ場所に重みが入るとlossが増加
CNN/Daily Mail Dataset・比較的長文のニュース
・複数文での要約平均 3.75文
平均 781 tokens
56 tokens
train: 287,226 pairsvalid: 13,368 pairstest: 11,490 pairs
train, testの際に記事は 400 tokensにtruncate
実験結果: ROUGE, METEOR
* 印は固有表現を特殊タグに置き換えたデータ(e.g. the united stats -> @entity5)
(* 印が不利な分を考慮しても)2ポイント以上ROUGEスコア上昇
* * 印はROUGE的には不利(multi-wordな固有表現が無くなるとn-gramの重複が減る)
METEORはexactと+stem etc. を比較すると1ポイント以上上昇
(50k vocab)(50k vocab)
lead-3 baselineには勝てない
実験結果:繰り返しの割合
coverageの導入で繰り返しは大きく減少Referenceと同等の水準に
Tips・coverage lossを入れないと、繰り返し現象は無くならないcoverage vectorからAttention計算するだけではダメ
・訓練時に、最初からcoverage loss入りのloss関数を使うと うまく学習しない学習を2ステップに分けることで改善
STEP1. 負の対数尤度を最小化するように学習
STEP2. coverage loss入りのlossを利用して学習230,000 iterations (12.8 epochs, 3日+4時間)
3,000 iterations (2時間程度、全体の約1%程度の時間)
考察:extractiveとleadが強い理由理由1: ニュース記事は冒頭に重要な情報が記述される
理由2: Referenceの内容の主観性と、ROUGEの柔軟性の無さ
・大抵のReferenceは記事の興味深い内容をいくつか要約に含めるだけこのような内容の選び方は、1つの記事に対して多くある
Ref.:
smugglers profit from desperate migrants
Summ.:
・Ref.とSumm.はどちらも 適切だが、Summ.の ROUGEスコアは0
考察:提案手法の非抽出度合い
・提案手法の要約文のうち35%は文のコピー、しかしRef.では1.3%・残りの65%は下記のような非抽出的なアプローチが見受けられる- 文法的に正しく文をtruncateする- 複数の部分文をつなぎ合わせて新たな文とする
・X beat Y <score> on <day> のような生成が学習されている
考察:提案手法の非抽出度合い
まとめ・単語の生成と原文書からの単語のコピーを行える pointer-generator Networkを提案
・Coverage Mechanismの提案
OOVへの対処と、要約に含まれる情報の正確さを改善
繰り返し現象を改善
・CNN/Daily Mail Dataset(原文書が長めでlarge-scaleなデータ セット)による実験で、SoTAなabstractiveモデルを上回る結果