>100 Views
September 07, 18
スライド概要
2018/09/07
Deep Learning JP:
http://deeplearning.jp/seminar-2/
DL輪読会資料
DEEP LEARNING JP [DL Papers] Pervasive Attention: 2D Convolutional Neural Networks for Sequence-to-Sequence Prediction Atsushi Kayama M3, Inc
書誌情報・概要 ❏ Pervasive Attention : 2D Convolutional Neural Networks for Sequence-to-Sequence Prediction ❏ ❏ ❏ Maha Elbayad, Laurent Besacier, Jacob Verbeek (Univ. Grenoble) The SIGNULL Conference on Computational Natural Language Learning 2018 Pytorch実装:https://github.com/elbayadm/attn2d ❏ 英独翻訳タスクにおいて,Densenet Architecture を用いて SoTA達成 ❏ 2D CNNで入力・出力文を畳み込み ❏ encoder, decoder まとめた一つのアーキテクチャになっている ❏ 従来の Encoder-Decoder 構造に比べて少パラメータ
Neural 翻訳モデルおさらい ❏ RNN (LSTM, GRU) + Attention 2014 ~ ❏ CNN + Attention 2016 ~ ❏ Attention のみ 2017 ~
Neural 翻訳モデルおさらい ❏ RNN (LSTM, GRU) + Attention ❏ ❏ encoder各ステップの隠れ状態を重み付き総和(Attention)した context をdecoder 各ス テップにおいて求め,単語の生成に使用. Attention の計算・利用方法にはいくつかパターンが存在 ❏ 計算パターン ❏ 内積注意 : encoder隠れ状態・decoder隠れ状態 の内積 ❏ FFN注意:[encoder隠れ状態;decoder隠れ状態] を入力とする1層FFN D. Bahdanau et. al 2015. Neural machine translation by jointly learning to align and translate. In ICLR
Neural 翻訳モデルおさらい ❏ CNN + Attention (Convs2s) ❏ ❏ 並列計算できるため,RNN比で計算の 高速化が可能 CNNのカーネルが未来を参照しないよ うにマスク J. Gehring et.al 2017. Convolutional sequence to sequence learning. In ICML. ❏ Attention (Transformer) ❏ ❏ ❏ 自身の系列に適用する Self-Attention のみで翻訳生成 単語の位置情報は別途付与 Attentionが未来を参照しないようにマ スク A. Vaswani, et.al 2017. Attention is all you need. In NIPS
先行研究との差分 ❏ 一つのDensenet Architecture で翻訳を実現 ❏ 従来のニューラル翻訳では Encoder-Decoder 構造がデファクトスタンダード ❏ 入力・出力系列をCNNで畳み込むことで Attention を実現 ❏ 入力文とそれまでに生成した単語を用いて特徴量を計算し直すことができる ❏ ❏ 従来Attention は最初に encoder で計算した隠れ状態を繰り返し用いており, decoding しな がらその表現を変更していくことはできない 訓練時は全ての単語をまとめて生成でき,訓練にかかる時間が少ない ❏ IWSLT 2014 German-to-English, English-to-German タスクでSoTA
モデル概要 入力: S x T x (dt + ds) S x T x fl DenseNet 畳み込み 1. 入力テンソルの作成 2. 畳み込みカーネルサイズの設定 3. DenseNet での畳み込み 4. Pooling・線形変換&Softmax Pooling T x fl 出力 :T x V FFN&Softmax
モデル概要 1. 入力テンソル |S| x |T| x (ds +dt) の作成 ❏ 入力センテンス S ( |S| x ds) 出力センテンス T ( |T| x dt ) を出現位置で組合せ,入力テンソルを作成 2. 畳み込みのカーネルサイズを 5 x 3 に設定 ❏ 右図青色領域がカーネルに対応する領域 ❏ 未来の情報(右図灰色部分)は用いない 入力テンソルと畳み込みカーネル
モデル概要 3. DenseNet で畳み込み ❏ ❏ 各ブロック内での処理 ❏ BatchNorm -> ReLU -> 1x1 Conv -> BatchNorm -> 5x3 Conv -> Dropout ❏ gated linear unit を ReLU の代わりに使用 l 番目のブロックの入・力 feature 次元 ❏ f0 + (l - 1)g ー> 4g (1x1Conv) ー> g (5x3Conv) ❏ ❏ f0 = ds + dt 1ブロック毎に g 次元増加
モデル概要 4. Pooling ( 3パターン) S x T x fL ー> T x fL ❏ max pooling ❏ average pooling ( センテンス長の平方根で割る) ❏ self attention pooling ❏ ❏ ❏ 重み付け足し合わせで pooling max pooling もしくは average pooling で得られたテンソルと concat するか, 単独で用いる w : fL 次元ベクトル
実装詳細 ❏ Optimizer : Adam ❏ ❏ 学習率:5e^-4,減衰率:0.8 ❏ ❏ 8k update 毎に validation Loss を確認,0.01 以上の改善が見られなければ学習率を減衰 40epoch 学習 ❏ 幅5 のビームサーチで翻訳し,評価
実験結果 ❏ Pooling方法・活性化関数の比較 ❏ Max pooling を用いるのが良い ❏ ベストはmax pooling と self attention pooling を concat する方法 ❏ 最適なembedding, g, L の値を探索 ❏ 下記で他のモデルと比較 ❏ ❏ ❏ embedding =128 g = 32 L = 24
実験結果 ❏ カーネルサイズ:5,L (depth) = 20 程度がパフォーマンスが良い ❏ 同じ深さでは k が小さい方が良かった ( L = 16 での比較 ) ❏ ほぼ全てのセンテンス長で提案手法がトップのBLEUスコアを記録 ❏ 69単語以上のケースでは CovS2S, Transformer 優位
実験結果 ❏ 少ないパラメータ数で高いBLEUスコアを記録 ❏ Transformer に比べてパラメータ数は 1/8 ❏ 学習に掛かった時間は ConvS2S < Pervasive(本論文) = Transformer
実験結果 ❏ Alignment を確認 ❏ 生成したBP w の生成確率へ,どの入力BP i が影響を与えていたか可視化 ❏ max pooling オペレーション後に残る特徴量 Bij の内,入力 i の由来のものの, 出力 j (BP w ) に対する入力値 αij を計算 ❏ 出力 j (BP w ) に対する αij の値を確認することで,どの入力 i が BP の生成に効いていたの かがわかる
実験結果 ❏ 翻訳に必要な単語の情報を参照できている ❏ ❏ for some time <ー> seit einiger zeit 名前もBPEに分解した後に再現できてる (camer@@onrus@@)