メインコンテンツへスキップ
見出し画像

書記が数学やるだけ#801 seq2seq with attentionの概要

    seq2seq with attentionについて,大まかな構造を見ていく。


    問題

    画像


    説明

    seq2seqでは,系列データから系列データへの変換を,エンコーダとデコーダに分けることにより行う。要するにRNNを2つくっつけたものである。

    Sutskever, I., Vinyals, O., and Le, Q. V. Sequence to sequence learning with neural networks. In NIPS, 2014.

    画像


    単純なseq2seqモデルの改良案として,入力から重要度として重みづけするAttention機構が追加された。これは後にTransformerにおいてMulti-head Attentionとして重要な部品となる。

    Bahdanau, Dzmitry, Kyunghyun Cho, and Yoshua Bengio. "Neural machine translation by jointly learning to align and translate." In ICLR, 2015.

    [Luong et al., 2015] M.-T. Luong, H. Pham, and C. D. Manning, Effective approaches to attention-based neural machine translation. In EMNLP, 2015.


    画像



    画像


    なお,機械翻訳では双方向RNNが採用されることもある。これにより順方向と逆方向の文脈を同時に捉えられ、かつ複数層にすることで文の抽象的な特徴も学習できる。

    画像


    解答

    RNNは,入力と出力が系列データか非系列データかで分類ができる。

    画像


    文章を用いた感情分析では,入力は文章(系列データ),出力は感情の分類(非系列データ)のため,many to oneモデルを用いる。本モデルでは,潜在変数は最後の項のみ用いる。

    画像


    画像を文章で説明する場合,入力は画像(非系列データ),出力は文章(系列データ)なので,one to manyモデルを用いる。

    画像


    音声認識による文章入力では,入力は音声(系列データ),出力:文章(系列データ)なので,many to manyモデルを用いる。ここで,音声と文章は順番が対応づけられているため,以下のようにRNNを直接構築するだけでも良い。

    画像
    入力:音声    系列データ


    機械翻訳では,入力と出力が共に文章(系列データ)であり,many to manyモデルを用いる。上と違い,入力と出力が順番が対応づけられていない。そこで,エンコーダで元の言語から意味を抽出し,デコーダで意味と元の言語から別の言語へと翻訳する(seq2seq)。

    画像


    Attention機構の中身について。大事なのは,再構築したいベクトルと参照元ベクトルの内積により,重要度を計算しているところである。これにより重みづけ和をとることで,元の文章から重要な文脈を取り出すことができる。

    画像


    Bahdanau Attentionのスコアについて,現在の文脈をst,i番目の単語の特徴をhiで示し,それぞれに重み行列をかけて足したものに非活性化関数tamhを通す。その後ソフトマックスを通して正規化し,隠れ状態をかけることで単語の重要度をまとめる。 

    画像


    画像


    Luong Attentionでは,デコーダのひとつ前の状態との内積を取る方法をとっており,計算がより高速である。

    画像


    画像


    本記事のもくじはこちら:


    あなたへのおすすめ