襖からキリン

読んだ論文まとめ。

バイパス現象を初めて知ったので論文紹介

今日紹介する論文は、ICML2018にアクセプトされたVariational Attention for Sequence-to-Sequence Modelsを紹介します。 この論文は、Variational Encoder Decoderの問題点であったバイパス現象を解決するアプローチ方法を提案しています。

この論文の選定理由は、潜在変数モデルに興味があり、このバイパス現象も潜在変数モデルに起因する問題なので取り上げました。

ノーテーション

入力系列(Source)と出力系列(Target)は、 {\bf x}^ {(n)}=(x_1,...,x_{|{\bf x}|}), {\bf y}^ {(n)}=( y_1,...,y_{|{\bf y}|}),  n = 1,...,Nで定義します。入力系列をエンコードした出力を \{\boldsymbol{h}_{i}^ {(\mathrm{src})} \}_{i=1}^ {|x|}とし、 デコーダーの出力は、 \{\boldsymbol{h}_{j}^ {(\mathrm{tar})} \}_{j=1}^ {|y|}とします。 注意は、デコーダーの出力の添字は jです。あとでAttentionの説明を読むときに大事になります。

Variational Encoder Decoder(VED)とは

応用として、機械翻訳:machine translation、対話システム:dialogue systems、テキスト要約 :text summarizationが挙げられます。つまり、ある系列情報を違う系列情報に変換する際に使用されます。モデルとしては、以下の図のようになります。

f:id:masamasa59:20191224103848p:plain
Variational Seq2Seq model

Xに質問を入力してYに質問の答えを出力させるイメージです。ただ、ある入力の文書に対して、出力が決定論的だと対話システムとしてはつまらないですよね。 つまり、図の中央のガウス分布は何を意味しているかと言うと、確率的に出力の文章を変える働きをしています。特にEncoderとDecoderにRNNを使用すると上の図は、Variational Seq2Seqと呼ばれるモデルになります。 学習はVAEと同様に変分下界最大化の式になります。このとき、VAEとの違いは、出力が入力の関数Y=Y(X)という仮定に基づき、 q_{\phi}({\bf z}|{\bf y})  = q_{\phi}({\bf z}|{\bf Y}({\bf X}))  =q_{\phi}({\bf z}|{\bf x})となる点です。VEDの変分下限は以下の式で表せます。

f:id:masamasa59:20191224100550p:plain:w500

Attention メカニズム

簡単に説明すると、VEDのエンコーダーの最後の出力 h_{|x|}に今までの系列情報を保持させデコーダーに渡すのは、ベクトルに情報を詰め込みすぎという観点から、エンコーダーの各入力に対する出力の重みつき和をデコーダーに渡すという作戦です。重み付き和は以下の式で定義されます。


\boldsymbol{a}_{j}=\sum_{i=1}^ {|\boldsymbol{x}|} \alpha_{j i} \boldsymbol{h}_{i}^ {(\mathrm{src})}

 \boldsymbol{a}_{j}の添え字にj がついていることに気をつけてください。これは、デコーダーに入力として与えるとき、系列の要素ごとに変化することを意味します。この変化は今から説明する重み \alpha_{j i} を決める際に関わってきます。 重み \alpha_{j i} は、以下の式で表されます。


\alpha_{j i}=\frac{\exp \left\{\widetilde{\alpha}_{j i}\right\}}{\sum_{i^{\prime}=1}^{|x|} \exp \left\{\widetilde{\alpha}_{j i^{\prime}}\right\}}

 \widetilde{\alpha}_{j i} は、スコアを表します。その式の表し方は多くありますが、今回は \widetilde{\alpha}_{j i}= \boldsymbol{h}_{j}^ {(\text {tar })} W^{T} \boldsymbol{h}_{i}^ {(\text {src })} を使用しています。このスコアの直感的な意味合いを説明します。このスコアは、エンコーダーの各要素の出力 \{\boldsymbol{h}_{i}^ {(\mathrm{src})} \}_{i=1}^ {|x|}とターゲットのデコーダーの出力 \boldsymbol{h}_{j}^ {(\text {tar })} との類似度のようなものを表しています。エンコーダーの出力 \{\boldsymbol{h}_{i}^ {(\mathrm{src})} \}_{i=1}^ {|x|}のうち、次のデコーダーの出力において重要な入力系列の要素に対してスコアが大きくなるということです。そのため、デコーダーの入力ごとに重み \alpha_{j i} は変化します。このAttentionを使うことで入力系列の情報を上手く、出力系列系列に渡すことができます。

バイパス現象とは

決定論的Attentionを用いたVEDだと、下図のようにエンコーダーからデコーダーに向かって、潜在変数を経由したパスと決定論的なAttentionを経由したパスが二つあります。バイパス現象とは、決定論的Attentionのパスの方で学習が進み、潜在変数の方にエンコーダからの情報がつまらないことを指すようです。

f:id:masamasa59:20191224103622p:plain
Variational Seq2Seq with deterministic attention.

理論的な話をすると、ノーマルなVEDと違い、尤度関数がAttentionからのパスの影響で、 {\bf X},{\bf Z} で条件づけられる確率分布 p_{\theta}({\bf Y}|{\bf X},{\bf Z}) になる点です。このとき、入力 {\bf X}の情報を持つ変分事後分布 q({\bf Z}| {\bf X}) に頼らず、直接決定論のAttention経由の {\bf X}で再構成誤差項を学習することが問題だと指摘しています。結果として、変分事後分布 q({\bf Z}| {\bf X}) は、事前分布の標準ガウス分布に近づく方で変分下界を最大化してしまう。

提案された Variational Attention

そこで提案された方法は、決定論的なAttentionの方も確率変数化してしまうアプローチです。図でみるとわかりやすいですね。

f:id:masamasa59:20191224103458p:plain
提案されたアプローチ:Variational Seq2Seq with variational attention.

変分下界の変更点は、尤度関数に直接{\bf X} が条件づけられず、 Attention ベクトル {\bf a} の確率変数で条件づけられ、KL項がもう一つ追加されたことです。実際の式は以下のようです。

f:id:masamasa59:20191224104659p:plain:w500

 {\bf a} の事前分布と事後分布について説明します。事前分布は二種類あり、1つは標準ガウス分布、もう1つは、平均が入力系列の各入力に対する隠れ状態の平均を使用するガウス分布 p({\bf a} _ j) =\mathcal{N}(\bar{h}^ {(\mathrm{sre})}, \mathrm{I}),  \bar{{h}}^ {(\mathrm{src})}=\frac{1}{|{x}|} \sum _ {i=1}^ {|{x}|} {h} _ {i}^ {(\mathrm{src})}です。この事前分布の妥当性は、幾何学的解釈がされていましたが、負に落ちず、結局わかりませんでした。 変分事後分布は、ガウス分布を使用し、平均は、 {\bf a}_jの恒等変換、分散は tanhの活性化関数を持つ一層のNNの出力を使用しています。

実験結果

実験の一部を紹介します。QAデータセットStanford Question Answering Dataset (SQuAD)を使用して、Sourceを入力し、その潜在変数から3文を生成させた結果を示しています。決定論的Attentionを持つVED(VED+DAttn)と比較して、Variational Attention(VED+VAttn)の方が文に多様性を持つことが見れます。 f:id:masamasa59:20191224113140p:plain

まとめ

バイパス現象を紹介しました。エンコーダーからデコーダへのパスが決定論的と確率の二種類がある時は、要注意かなと思いました。