ACL2016読み会@すずかけ台 東工大 奥村・高村研究室 渡邉亮彦 ※ 図は論文中から引用しています 概要 ・Sequence to Sequence(Seq2Seq)を用いた研究が盛ん ・Seq2Seqにおいて, 入力の部分列を出力にコピーする現象を取り扱いたい ・この論文では,COPYNETを提案 attention-basedなEncoder-Decoderモデルに copying mechanism を新たに導入した copying mechanism がある とどう嬉しいか?(対話を例に) 1. 入力の重要なセグメント(固有名詞, 日付 etc.)を参照できる 2. (入力にある)OOVな単語も出力できる Input: 私は群馬出身です. Output w/o copy: Output with copy: 奇遇ですね!私も群馬出身なんです! 奇遇ですね!私も栃木出身なんです! Background: Attention Mechanism RNNSearch [Bahdanau et al., 2014] RNNEncoderの各隠れ層をとっておき Decoder 各隠れ層を荷重平均し 文脈ベクトルを作成 ↵t⌧ は,前回のDecの隠れ層 対応するEncの隠れ層 st h⌧ 1 から求める (文脈ベクトルはこれまでの出力に応じて動的に変化) RNNDecoderの単語生成に用いる cf. http://www.slideshare.net/yutakikuchi927/deep-learning-nlp-attention Encoder Background: Attention Mechanism RNNSearch [Bahdanau et al., 2014] RNNEncoderの各隠れ層をとっておき Decoder 各隠れ層を荷重平均し 文脈ベクトルを作成 ↵t⌧ は,前回のDecの隠れ層 対応するEncの隠れ層 st h⌧ 1 から求める (文脈ベクトルはこれまでの出力に応じて動的に変化) RNNDecoderの単語生成に用いる cf. http://www.slideshare.net/yutakikuchi927/deep-learning-nlp-attention Encoder Background: Attention Mechanism RNNSearch [Bahdanau et al., 2014] RNNEncoderの各隠れ層をとっておき 各隠れ層を荷重平均し 文脈ベクトルを作成 提案手法(COPYNET)はこのモデルを拡張 ↵t⌧ は,前回のDecの隠れ層 st mechanism 1 copying を導入 対応するEncの隠れ層 h⌧ Decoder から求める (文脈ベクトルはこれまでの出力に応じて動的に変化) RNNDecoderの単語生成に用いる cf. http://www.slideshare.net/yutakikuchi927/deep-learning-nlp-attention Encoder RNNSearchと同じ Decoderに と 部分を新たに導入 RNNSearchと同じ ・二種類のモードの確率を組み合わせて出力する単語を予測 ・generate-mode vocab内の単語が出力される確率 ・ 入力内の単語がコピーされる確率 コピーされる確率は,Enc ・copy-modeにより,OOVだが入力にある単語は出力可 RNNSearchと同じ ・二種類のモードの確率を組み合わせて出力する単語を予測 ・generate-mode vocab内の単語が出力される確率 ・ 入力内の単語がコピーされる確率 コピーされる確率は,Enc ・copy-modeにより,OOVだが入力にある単語は出力可 Decoder: 単語のscoring ・各単語のscoring function generate-mode(RNNSearch) copy-mode Encの対応する隠れ層を用いる RNNSearchの単語スコアに 入力内の単語をコピーするスコアが加算 ・UNKはOOVでsourceにない単語(インスタンスごとに異なる) RNNSearchと同じ ・前回出力した単語が入力に存在する場合, 対応するEncの隠れ層を用いてDecの状態を更新(Selective Read) ・前回出力した単語が入力のどの 位置 にあるかがDecの状態に反映 ・コピーしたい入力単語が連続している場合でもうまく扱える RNNSearchと同じ ・前回出力した単語が入力に存在する場合, 対応するEncの隠れ層を用いてDecの状態を更新(Selective Read) ・前回出力した単語が入力のどの 位置 にあるかがDecの状態に反映 ・コピーしたい入力単語が連続している場合でもうまく扱える 学習 ・負の対数尤度を最小化 ・End-to-Endで学習できる ・データからgenerate-modeとcopy-modeの連動を学習 ・大抵の場合,片方のモードが支配的になる 評価:Synthetic Dataset ・5種類の人工的な変数の変換ルールを作成 シンボル(1000種類)と 変数 , を組み合わた系列の変換ルール 変数にシンボルの系列(1-15シンボル)を代入し,インスタンスを生成 → 変換ルールに則って変数に代入された系列をコピーし, 正しい系列を出力できるか? Training: 20,000 instances Test: 20,000 instances 評価:Synthetic Dataset 生成した系列がExact Matchした割合 ・Enc-Dec, RNNSearchを上回っている ・ルールを学習し,変数に代入されたsub-sequenceを的確にコピー 評価:Synthetic Dataset ・copy-modeの活性度合いを表すheatmap copy-modeとgenerate-modeがうまく連動している 評価:文書要約 ・LCSTSデータセットを用いる[Hu et al., 2015] Weibo(中国版のTwitter)のnews mediaの投稿から収集した short news(80文字未満)とその要約(10-30文字)の対からなるデータ PART III :3人のアノテータが5段階で要約の適切さを評価 各アノテータのスコアが一致したものを抽出したもの training data test data 評価:文書要約 RNN, RNN context ではcharacter-basedな場合にROUGEスコアが高い COPYNETではword-basedな場合にROUGE-2スコアが高い → COPYNETがOOVを出力することができたためROUGEスコアが向上 ・入力中のの連続した単語もコピーできている ・出力の大半がコピーによって生成された場合もfluent(らしい) ・OOVを含む要約も生成できる 評価:Single-turn Dialogue ・Baidu Tieba(掲示板)から会話を収集 ・収集した会話から173パターンのsingle-turnの会話を抽出 e.g. ・Synthetic datasetと同様に,変数に適切な sub-sequence(固有表現,日付等)を代入しデータを拡張 Training: 6,500 instances Test: 1500 instances trainingとtestで 代入したsub-sequenceの 重複がないデータ 評価:Single-turn Dialogue ・正解とは異なるが,意味的には正しいものが生成されている ・正しくコピーできない場合も まとめ ・Seq2SeqにCopying mechanismを導入した COPYNETを提案 ・データからEnd-to-Endで学習できる ・generation-modeとcopy-modeの連動を学習 (どのタイミングでcopy-modeに入り終わるか等) ・OOVな単語を出力することができる
© Copyright 2024 ExpyDoc