論文読み. 9 Embedding Words as Distributions with a Bayesian Skip-gram Model (ICCL 2018)

## はじめに
　`Embedding Words as Distributions with a Bayesian Skip-gram Model`という論文を読んだのでまとめていきます。

## 1. 対象とするトピック
### 1.1 キーワード
　$Embedding,\ Bayes,\ Skip-gram$ [論文](https://arxiv.org/abs/1711.11027)

### 1.2 先行研究
　[Word Representations via Gaussian Embedding](https://arxiv.org/pdf/1412.6623.pdf) 
　[論文読み. 3 Word Representations via Gaussian Embedding (ICLR 2015)](https://qiita.com/ryuji0123/items/bb2545f790edfc851172)

### 1.3 Abstract
<img width="979" alt="スクリーンショット 2020-04-18 21.59.58.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426293/15fec4b0-fc64-1911-e9e1-fc6cb7d626af.png">


## 2. Theory
　単語の埋め込みにおいて問題となるのが多義語の存在です。`Skip-gram`や`W2G`(先行研究)のように一つの単語と一つのベクトルや分布を対応させる場合は、埋め込み先の空間で多義語を適切に表現出来ないという問題が生じます。この問題への取り組みとして「単語 ー 空間での表現」の対応を「1-1」から「1-多」に変更するという方法があります。この対応関係は単語の意味が離散的に存在するという仮定に基づいています。
　しかしこの論文では単語の意味が離散的に存在すると仮定しません。むしろ、一つの意味が連続的に（徐々に）変化していると考えています。そして、単語の意味が文脈に依存すると仮定します。そこで今回は文脈を事前分布として扱い、その事前分布に応じた単語の分布をベイズ的な枠組みで表現し空間に埋め込むことを試みます。
　なお、以降では提案手法である`Bayesian Skip-gram`を`BSG`、と呼称します。同様に、`Skip-gram`を`SG`と呼称します。

### 2.1 Generative model
　`BSG`では単語から得た`latent meaning`を用いて確率の最大化を行います。

<img width="1198" alt="スクリーンショット 2020-04-22 20.17.15.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426293/8f8f188d-8cae-c866-3406-a85494526aec.png">

<img width="1206" alt="スクリーンショット 2020-04-22 20.17.43.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426293/0da82357-afe6-8e2b-b3da-914703a944b1.png">


### 2.2 Model definition
　$p_\theta(c_j| \textbf{z})$がニューラルネットワークであるため、特徴量空間全域に渡って積分を計算することが出来ません。同様に、$p_\theta(\textbf{c}| \textbf{z})$を用いて計算する事後分布$p_\theta(\textbf{z}| \textbf{c})$も扱いが難しいです。そのため、`EM algorithm`が適用できません。代わりに`VAE`を利用しています。

<img width="1198" alt="スクリーンショット 2020-04-22 20.23.03.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426293/82afed71-14e3-42ab-71ee-3ff4295febff.png">


### 2.3 Bayesian Skip-gram ELBO
　`KL-divergence`によって文脈と単語が与えられた場合の分布と単語のみが与えられた場合の分布との距離を計算しています。
　なお、文脈と単語が与えられた場合の分布を表す$q$はエンコーダーの役割を果たしています。この$q$はガウス分布として文脈$\textbf{c}$内での単語$w$の意味がどの程度不確かであるかを埋め込みます。

<img width="1198" alt="スクリーンショット 2020-04-22 20.33.23.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426293/49162d29-572b-dffb-d9d3-5215e2402160.png">
<img width="1190" alt="スクリーンショット 2020-04-22 20.33.32.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426293/64e8139f-3ec5-a2c5-db53-baa855f15725.png">


### 2.4 Reconstruction error
　2.3で登場した期待値計算を`SG`と同様に内積を利用した場合、問題が生じます。ベクトルの内積ではノルムで正規化することで角度を一意に定めることができます。一方で、分布間の内積計算においては分布の移動と分散の増加いずれにおいても角度が変化します。そこで関数$f$の形式を変更しています。

　<img width="1018" alt="スクリーンショット 2020-04-22 20.37.47.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426293/9d446c7c-b74b-f551-b43c-c7105030ca54.png">
<img width="560" alt="スクリーンショット 2020-04-22 20.42.56.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426293/ec12afe7-7ed4-4e78-32df-7875bd9fc7cc.png">


### 2.5 Encoder
　エンコーダー$q$の構成が示されています。

<img width="1193" alt="スクリーンショット 2020-04-22 21.01.49.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426293/3d5b7d9b-95db-0a3a-82fb-7b0ec48aca5e.png">
<img width="1212" alt="スクリーンショット 2020-04-22 21.02.07.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426293/fadfa0d5-3d94-8a26-721b-effaaba103c7.png">


### 2.6 Approximation of the log-partition function

- `MC`法によってスケーラビリティを向上
- `negative crosse-entropy`の減算を`KL-divergence`の減算に変更
- `hard-margin`形式へと変更

を行なった上で目的関数を得ます。

<img width="1189" alt="スクリーンショット 2020-04-22 21.06.09.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426293/d8cfbf68-f2f2-5839-bfae-24eef8583801.png">
<img width="1197" alt="スクリーンショット 2020-04-22 21.06.27.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426293/880f84db-e074-f096-b827-5ac1bb4fb8a0.png">
<img width="1175" alt="スクリーンショット 2020-04-22 21.06.37.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426293/34877238-895b-9ffc-8dca-7870b9bea297.png">


## 3. Experiments

### 3.1 Entailment recognition
　二つの単語についての含意関係の判定を行います。それぞれを埋め込んだ分布から得られる`KL-divergence`と分布の平均での`cosine similarity`と閾値を比較して判定を行なっています。
<img width="1201" alt="スクリーンショット 2020-04-18 22.44.18.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426293/51b310b5-3726-6114-3911-1212eb83ab31.png">

　結果は$table.3$に示されています。
<img width="550" alt="スクリーンショット 2020-04-18 22.39.23.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426293/302087ed-0030-27a7-7977-4f80778a1f15.png">


### 3.2 Entailment directionality prediction
　片方の単語がもう一方の単語を含意していることが前提とします。その上で、どちらが含意する側なのかという方向性を予測する実験を行いました。結果は$table.4$に示されています。

<img width="541" alt="スクリーンショット 2020-04-18 22.39.32.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426293/2d24d277-45db-5661-76e2-23baf56f1a96.png">
　
　$table.4$からデータセットによって結果が大きく異なることが分かります。データセットの分布によって`W2G`やベースラインの手法はパフォーマンスが大きく変動しています。そこで、`W2G`の学習している情報について考察します。
　`W2G`では分散共分散行列が単語の頻出度を捉えているのではないかと考えられます。それを調べた結果が$fig.6$です。

<img width="1067" alt="スクリーンショット 2020-04-22 21.22.02.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426293/70069214-0394-9a84-468b-b2abee1733cb.png">
　
　$fig.6$から、`W2G`では頻出する単語ほど分散共分散行列の行列式の値が増加していることが分かります。そして、`W2G`は頻出する単語を多義語と判定する傾向があります。一方で`BSG`の分散共分散行列にはそのような傾向がないです。従って`BLESS`でのパフォーマンスの良さと合わせると、`BSG`の分散共分散行列の方がデータセットの分布に依存せずに、単語の一般性に対する正しい情報を得ていると推測されます。
　

## References

- Arthur Bražinskas, Serhii Havrylov, Ivan Titov (2018). Embedding Words as Distributions with a Bayesian Skip-gram Model, https://arxiv.org/abs/1711.11027