Robust Neural Abstractive Summarization Systems and Evaluation against Adversarial Information



# tl:dr
- seq2seq アブストラクト要約モデルにおいて， 共通のEncoder１つに対して， 述語構造と，要約文それぞれを生成する二種類の Decoder を用意した semantic-aware abstractive summarization model を提案
    - 述語項構造を出力する decoder と 要約文を生成する decoder のパラメータを共有させることで， 要約生成時に，入力文章の意味構造を捉えることを狙った
- 要約したい記事とは全く関係のない文章が混じった入力に対して， 既存モデルと比較して，より参照要約(人が生成した要約）に近い要約を生成した.（ロバストな要約生成）
    - 入力文章に1~4文，全く関係のないセンテンスを混ぜた際のモデルの要約生成パフォーマンスを比較したところ，既存の Pointer-Generator モデルに対してより高いパフォーマンスを示した

# 感想
- 意味的に正しい要約を生成したい -> 入力文章がおかしい場合にも，元々の要約に対して人間が生成した要約に近い要約を生成できるロバストなモデルを考える と問題を捉え直している． 要約の「正しさ」に対してどのような角度からアプローチしていくのが良いのかは今後も大きな問題
- 提案要素が， shared decoder, 要約生成への multi-head attention の適用， ビームサーチ改善アルゴリズム の ３種類あるが， それぞれの要素単独でのパフォーマンス解析が無いため， どの要素が本当にパフォーマンス改善に効いているのかが明らかではない
    - adversarial サンプルに対すルジ券から，ロバストになっているのは分かるが，提案の肝である shared decoder 単独の効果が，NYTデータセットに対してのみで CNN/DM に対して示されていないのはなぜか？ 何か考察できる要素がありそう
    - 通常の場合の要約パフォーマンスの実験結果だけ見ると multi-head attention の効果が大きいように見える

# 書誌情報
```
@article{DBLP:journals/corr/abs-1810-06065,
  author    = {Lisa Fan and
               Dong Yu and
               Lu Wang},
  year      = {2018},
  url       = {http://arxiv.org/abs/1810.06065},
  timestamp = {Tue, 30 Oct 2018 20:39:56 +0100}
  }
```

- NIPS2018 
- 所属
    - College of Computer and Information Science, Northeastern University
    - Tencent AI Lab





# 従来モデルの欠点
- 文法的には正しいが，意味が間違った要約を生成してしまう
    - Cao2018 Faithful to the original: Fact aware neural abstractive summarization. 
- off-topic な情報に簡単に騙されてしまう
    - 文章の先頭に関係のない情報が含まれているとそれを要約に用いてしまう傾向
  

# 新たなモデル評価方法とモデルを提案
- adversarial evaluation を提案
    - 記事内に記事とは関係のないセンテンスをランダムに挿入した場合の robust 性を評価
- semantic-aware abstractive summarization model を提案
    - モデルが文章の意味を理解していれば，関係のないセンテンスを挿入したとしても正しい要約を生成できるはず
    - まず記事に対して， 述語項構造を生成し，入力文章と生成した述語項構造から要約を生成 ( dual attention decoding )

### 例： 文の先頭に元の文章とは関係のない２文を付け加えた例
- 提案モデルは元の文章の内容を正しく要約出来ているが，従来手法は失敗している
![スクリーンショット 2019-02-09 17.26.07.png](https://qiita-image-store.s3.amazonaws.com/0/140539/35041f0e-f5b2-393b-62fe-6eb65d10ef73.png)

### モデル概要図
![スクリーンショット 2019-03-31 16.51.42.png](https://qiita-image-store.s3.amazonaws.com/0/140539/c70a1be2-f994-d611-ee63-3028250ff042.png)


# Semantic-aware summarization model with dual attention
- Attention付き RNN Encoder, Decoder モデルで， 2種類の出力を生成
    - semantic role tokens $y^s = \\{y^s\_1, \cdots y^s\_{T^s}\\} $
    - summary tokens $y^a = \\{y^a\_1, \cdots y^a\_{T^a}\\} $
- 参照要約の単語を生成する確率の負の対数尤度を最小化する形でモデルを学習

- Encoder : １層双方向LSTM
- Decoder : 意味情報を扱うために二種類の decoder をそれぞれ用意し検証
    - separate decoder
        - semantic decoder と summary decoder をそれぞれ１層LSTMで実装
        - encoder は共通で， decoder はそれぞれ異なるパラメータを学習
    - shared decoder
        - パラメータ数を減らしつつ，  summary decoder が semantic 情報を得られるように， decoder を共通化
        - 1層LSTMを用いて $y^s$ を生成した後に $y^a$ を生成し $y = [y^s; y^a]$ をモデルの出力とする) 
    - separate decoder , shared decoder どちらを学習させる場合でも, $y^s, y^a$ それぞれのロスの重み付き和に対して学習する (比率は $\alpha=0.5$で固定）

$loss = - \sum_{(y,x)\in D} \alpha\log{p(y^a|x;\theta)} + (1-\alpha)\log{p(y^s|x;\theta)}$ 

    
## 学習対象とする semantic labelについて
- 述語項構造（predicate-argument structures) を学習ターゲットとして使用
- DeepSRL parser を用いて PropBank 形式でパース
- 参照要約と最も重複がある SRL構造を 5つまで選択
- まず述語とそれに関係のある語の headword ？ の一致を考慮する？ その上で，一致がない場合はすべての単語を考慮する
- semantic label はモデルの学習時にのみ使用

## Dual Attention を用いた要約生成
- 入力文章に加えて，生成した semantic ouｔput に対しても attention を計算
    - self-attention とは異なり，先に生成された内容の特定の箇所に attention を当てる?
    - あるステップ t での summary decoder隠れ状態 $s^a_t$ とあるステップ j でのsemantic decoder 隠れ状態 $s^s_j$ の間でそれぞれ attention を計算 -> content vector $c^{sem}_t$ を計算する

![スクリーンショット 2019-03-31 18.34.56.png](https://qiita-image-store.s3.amazonaws.com/0/140539/cf753645-058f-3683-0b93-d19167dba357.png)


- summary decoder の隠れ状態 を用いて， encoder 隠れ状態， semantic decoder 隠れ状態に対して計算した content vector ２つを用いて出力を計算

![スクリーンショット 2019-03-31 18.37.30.png](https://qiita-image-store.s3.amazonaws.com/0/140539/2ca78c41-cfd8-db6c-16b8-5444135edf43.png)


# 実験結果
- 実験条件
    - データセット
        - CNN/Daily Mail Corpus, New York Times Corpus を使用
        - 要約中に含まるが，記事には含まれていない外部情報は削除
        - その他の前処理 は Pointer-Generator Network の論文に従う (要約の語数制限等）
    - 実験条件
        - 50k の語彙を使用し， encoder , decoder で共有
        - デコード時に， unknown token は最もアテンションが当てられた入力文章中の単語に置き換えた
    - 評価指標
        - ROUGE1,2,L・METEOR を使用
        - density(生成した要約の中に入力分と同じ単語がどれだけ含まれているか）, redundancy(生成した要約にどれくらい同じフレーズが繰り返し現れているか） も下記式で定量化


### Adversarial samples に対する実験
- 提案モデルのスコアが最も高くなった
    - CNN/DM, NYT データセット からそれぞれ adversarial サンプルを生成しそれらに対して要約を生成した際のパフォーマンスを比較
        - CNN/DM : news タグがついた 5000記事に対して， sports タグが付いた記事から 1~4センテンスをランダムに挿入
        - NYT : (U.S, Washington, world) タグがついた 5000記事に対して (arts, sports, technology) タグたついた記事から 1~4センテンスをランダムに挿入
    - NYT に対しては Shared Decoder モデル， CNN/DM に対しては shared decoder + multi head attention モデル で検証 

![スクリーンショット 2019-03-31 19.02.30.png](https://qiita-image-store.s3.amazonaws.com/0/140539/8715aba5-97bd-516f-7de9-a4cd19830c15.png)

### 要約タスクに対するパフォーマンス
- 提案モデル + Attention部分に Multi head attention を用いたモデルが最も高いパフォーマンスを示した
    - ベーシックな seq2seq よりは良いパフォーマンス
    - Pointer-Generator に対しては 提案モデル + MHA で優位に上回る

- Density score は低く， 入力文中の単語をそのまま用いている度合いは提案モデルが他に比べて低くなった
- Redundancy score も低く， 同じフレーズが要約中に繰り返し出てくることは少なくなった

![スクリーンショット 2019-03-31 19.02.46.png](https://qiita-image-store.s3.amazonaws.com/0/140539/1800e4a3-09f1-1ebc-27bc-160f3b4747e6.png)