UNSUPERVISED NEURAL MULTI-DOCUMENT ABSTRACTIVE SUMMARIZATION

# 書誌情報
# 概要
- 複数のドキュメントから一つのAbstractiveな要約を作成するモデル
- 正解とする要約が存在しない**教師なし学習でAbstractive な要約を実現**した
    - LSTM RNN encoder, decoder を使用
    - 複数のドキュメントをencodeしそれらの平均ベクトルから１つの要約を decode する 
        - encoder は AutoEncoder の要領で学習
        - decoder は 元となる平均ベクトルと，生成した要約を再度 encode したベクトルのコサイン類似度を最小化するように学習
- Extractive な要約を生成する従来手法と同等もしくはそれ以上のパフォーマンスを示した
    - Yelp の５段階評価レビューデータセットで実験
    - 生成したAbstractive要約は Extractive要約と比較して，元のレビューの rating をより正確に再現した

# モデル

![スクリーンショット 2018-10-21 10.28.42.png](https://qiita-image-store.s3.amazonaws.com/0/140539/85141126-d54a-1c9c-d053-7178a4b6627b.png)

モデルはAuto Encoder 部分と要約生成部分から構成される（$\phi_E, \phi_G$は共通）

- Fig.1 左：Auto Encoder 部分
    - $\phi_E, \phi_G$ を Auto Encoder Reconstruction Loss $l_{rec}$ 最小化するように学習させる
- Fig.1 右：要約生成部分
    - $\phi_E, \phi_G$ を Average Summary Similarlity $l_{sim}$ を最小化するように学習させる

※ $\phi_E, \phi_G$は共通なので，学習時には $l_{model}=l_{rec}+l_{sim}$を最小化するように同時に学習する

Encoder $\phi_E:V \to R^n$
- LSTM RNN モデル 
- 入力系列$x_j$をn次元のベクトル $z_j$ にencodeする
- $z_j$：LSTM最後のセルの隠れ状態

Decoder $\phi_E:R^n \to V$
- LSTM RNN モデル
- encoder から生成された n 次元ベクトルを入力として, ドキュメント V を生成する



### Auto Encoder Reconstruction Loss (Fig.1 左側 AutoEncoder 部分の学習に用いる)
![スクリーンショット 2018-10-21 11.19.49.png](https://qiita-image-store.s3.amazonaws.com/0/140539/950c9b4f-33cd-a261-dd18-9be818dd992a.png)
- 各ドキュメントを encode, decoder した際に元のドキュメントを生成できる様に $\phi_E, \phi_G$を学習
- ドキュメントの生成は teacher-forcing 方式で学習
    - $\phi_G$の各LSTMセルへ，元のドキュメントの単語を入力する

### Average Summary Similarlity (Fig.1 右側 要約生成部分の学習に用いる)
![スクリーンショット 2018-10-21 10.28.59.png](https://qiita-image-store.s3.amazonaws.com/0/140539/adbe0e29-e29d-2aac-1b9d-dc8455431617.png)

- 元のレビュー群と近い意味をもつ要約が生成される様に学習させる
- $\overline{z} = \frac{1}{k}\sum_{i=1}^{k}z_i$
    - ドキュメント $x_1 \sim x_k$ をecodeしたベクトル $z_1 \sim z_k$を平均したもの
- Decoder $\phi_D$ からの要約文生成（サンプリング）には Straight Through Gumbel-Softmax trick を使用
    - Softmax計算 -> argmax による単語選択（要約生成）を微分可能な操作にしたもの
    - $\phi_G$の各LSTMセルへの入力は前ステップLSTMセル出力から生成した単語を入力とする


# 評価指標
- 正解要約が存在しないので，ROUGE スコア等での生成した要約の評価ができない

### Rating accuarcy
- レビュー群の平均rating とそれらを要約した結果の rating 推定結果が等しくなるかを評価
    - ドキュメントに対する rating を推定するモデル $CLF$は事前に学習

![スクリーンショット 2018-10-21 10.29.21.png](https://qiita-image-store.s3.amazonaws.com/0/140539/23c8ef0f-04d7-58cb-79c5-a32355455ae7.png)

### Word Overlap(WO) Score
- 単語の一致度を見るため，元のレビュー群と生成した要約の間の ROUGE-1 スコアを計算し平均

![スクリーンショット 2018-10-21 10.29.26.png](https://qiita-image-store.s3.amazonaws.com/0/140539/cd66cc06-485d-a329-40b4-5a12943a2a24.png)

### Negative Log-Likelihood (NLL)
- レビュー群から事前に学習した言語モデルを用いて，生成した要約が言語モデルからどれくらい生成される確率があるか定量化

# 実験条件
### データセット
### Yelp Dataset Challenge
- Yelp が持つ Bussiness(食事関連のビジネス）に対する5段階評価付きレビューデータセット
- 前処理
    1. token数が 150以下のレビューは除外
    2. レビュー数が50以下の Bussiness（レビュー対象） は除外
    3. レビュー数が90%パーセンタイル以上の Bussiness は除外
        - 少数の多くのレビューを持つ対象にデータの分布が偏ることを防ぐ
- train(Business: 10695, Reviews: 1038184), validate(Business: 1337, Reviews: 129856) , test(Business: 1337, Reviews: 129840)

### モデル設定
- review-rating classifier
    - multi channel text convolution neural network (Kim2014)を使用 
    - 72% の分類精度を達成（Yelp dataset に対しては SoTA)
- tokenizer
    - word piece tokenizer(Wu et al. 2016) を用いて 32,000 token のVocabulary を作成
- Multiplicative LSTM RNN モデル (Krause et al. 2016)
    - 隠れ状態次元数：512
    - embedding 次元数：256
    - dropout rate：0.1
    - layer normalization 使用

# 実験結果

### パフォーマンス

- rating accuracy に関しては提案モデルは他の全ての baseline モデルを上回った (k=8 本のレビューから要約を生成)
- Word Overlap に関しては提案モデルは他のモデルと同等か若干下回った
- NLL は全てのモデルで同じであった

![スクリーンショット 2018-10-21 10.29.56.png](https://qiita-image-store.s3.amazonaws.com/0/140539/91e5222d-65a9-8917-ffb4-fa2d658f1d15.png)

各baselineモデルの詳細
- Concatenate
    - 全てのレビューを単純につなぎ合わせたものを出力とするモデル．
- Best review
    - 各Business毎に，元々のreview の中で Word Overlap の値が最も高いレビューを出力とするモデル
- Worst review
    - 各Business毎に，元々のreview の中で Word Overlap の値が最も低いレビューを出力とするモデル
- Multi-Lead-1
    - 各Business毎に，複数のreview の中から L 個のreview の先頭 sentence を抽出し，つなげたものを出力とするモデル

### 生成した要約例
- Abstractive Summary は 複数のレビュー情報をまとめた要約になっている (Fig.2 最下段)
    - Extractive な手法は一部のレビュー情報のみを反映している
    - 生成された要約の rating は Abstractive の方が要約前のレビュー群の平均 rating に近く，複数のレビューの情報を適切に表現できていると考えられる
    
![スクリーンショット 2018-10-21 10.30.10.png](https://qiita-image-store.s3.amazonaws.com/0/140539/1e80f989-d5d3-a7c5-4ad2-cc48979eb0a6.png)

- モデルは入力されたレビューの rating に応じて，生成する要約の rating を変えることができる（Fig.3）
    - rating が低いレビュー群が入力された場合には，低rating と分類されるレビューを生成 
![スクリーンショット 2018-10-21 10.30.18.png](https://qiita-image-store.s3.amazonaws.com/0/140539/73bdc2aa-2879-a5ad-8bed-fb59f36f5b8f.png)

### Amazon Review データセットに対しても検証
- Movies & TV and Electronics の２つのカテゴリのレビューデータに対して検証
- Yelp データセットの場合と同等の結果が得られた

![スクリーンショット 2018-10-21 10.30.51.png](https://qiita-image-store.s3.amazonaws.com/0/140539/6051197a-ce73-520d-946a-efae8f2984bc.png)


### 定性的なエラー解析
- Fluency errors
    - 文法的な誤りや，同じ単語，フレーズの繰り返した見られる
    - LSTMモデルよりも高いパフォーマンスが報告されているモデルを使用することで解消可能
- Factual inaccuracy
    - 元のレビューには存在しない都市名等を出力しているケースが有る
        - 生成される文章の正しさの保証は，要約の分野でまだ解決されていない課題である，間違った文章に対してロスを出す関数を作成何かしら考える必要がある
- Rare categories
    - データが少ないカテゴリーに対する要約の質が低い傾向にある
    - データのupsampling もしきはカテゴリーごとに finetune することで対応可能
- Contradictory statements
    - 入力として高・低レビュー両方が与えられた時に，positiveな文章の直後に negativeな文章が続くような要約が生成される
    - 後処理 or rating で条件付き生成ができるようにモデルを拡張することで対処可能