論文紹介： Deriving Machine Attention from Human Rationales

[もう少しわかりやすいスライドをアップロードしました。](https://speakerdeck.com/koreyou/emnlp2018lun-wen-du-mihui-deriving-machine-attention-from-human-rationales)

# tl;dr

* 自然言語処理において、rationaleのデータを学習に用いることで、正解データが少ないタスクの性能を向上する。
    - rationale: 文章の一部を予測の根拠として出力
    - attention: RNNの後にattentionでプーリングを行い、その特徴量をもとに分類を行う際のattention
* rationaleとattentionは別もの
    - rationaleを学習に直接使うよりも、attentionを分類に使うことで、高い分類精度を得ることができる。
    - 仮説: attentionはタスクごとに異なるが、rationaleからattentionへの変換は、タスクによらず共通
* 提案手法
    - 大量の分類正解データとrationale正解データがあるソース観点(複数ある)を使い、rationaleからattentionへの変換を学習し (Rationale to attentionでR2Aと呼ぶ)、それを分類正解データが少ないターゲット観点へ転移させる
    - ターゲット観点で少量の分類学習データと、rationale正解データから生成したattentionの値をもとに、分類とattention生成を学習する
* 結果: Rationaleを何らかの形で学習にいれると分類精度が向上しますが、提案手法ようにrationaleからattentionに変換したうえで学習に取り込むとさらなる精度向上につながることがわかった。

```
@InProceedings{bao-EtAl:2018:EMNLP,
  author    = {Bao, Yujia  and  Chang, Shiyu  and  Yu, Mo  and  Barzilay, Regina},
  title     = {Deriving Machine Attention from Human Rationales},
  booktitle = {Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing},
  month     = {October-November},
  year      = {2018},
  address   = {Brussels, Belgium},
  publisher = {Association for Computational Linguistics},
  pages     = {1903--1913},
  url       = {http://www.aclweb.org/anthology/D18-1216}
}
```

# 背景

## 観点付き評判分析

本手法は文書分類だけでなく、様々なタスクに利用できると著者らは主張していますが、わかりやすさのために（実際に実験でも使っている）具体的なタスクを先に紹介します。

本研究では、観点付き評判分析というものを対象にしています。評判分析とは、文章(e.g. "接客は良くなかったけど、立地は最高だった")と、所定の観点 (e.g. "サービス") を入力に、文章がその観点に対してポシティブなことを言っているが、ネガティブなことを言っているかを二値分類するタスクです（この場合は"ネガティブ"が正解）。

## 本研究の目的

近年、自然言語処理ではAttentionを用いたの深層学習が注目されています。Attentionには、Encoder-decoderモデルのattentionや、Transformerのself-attentionなどがありますが、文書分類や評判分析で用いられるattentionは、RNNの後にattentionでプーリングを行い、その特徴量をもとに分類を行うといったものです。

![screenshot1.png](https://qiita-image-store.s3.amazonaws.com/0/152362/19f0810c-79f8-9b08-b5d1-1f25dfcb0f4f.png)

一方で、Explainable AI(AIの説明性)もホットな話題です。自然言語処理の界隈では、説明性の一貫として、rationale (根拠)を出力しつつ、ターゲットのタスク（評判分析など）を行うという研究が報告されています。Rationaleの研究では、画像の分野における説明性とは違い、根拠を人間が理解できる自然言語の形で出力することを目指しています。具体的には、下記の図の下線部のように、文章の一部[^2]を根拠箇所として出力することを目指しています。

[^2]: 根拠を生成しようとする研究もありますが、現状は抽出を行うのがスタンダードです。

![screenshot1.png](https://qiita-image-store.s3.amazonaws.com/0/152362/94d3b52c-b0fe-0336-32b4-7a8bbb81d9ed.png)
(下線部はrationale、赤い網掛けはrationaleの度合いを示す）

本研究は、これらの研究とは異なり、**rationaleのデータを学習に用いることで、評判分析の性能を向上する**ことを目指しています。特に、対象の観点の分類正解データが少ないような場合を想定しています。

## Rationaleとattention

このような目的にあたり重要なのは**rationaleとattentionは別もの**であるということです[^3]。最もわかりやすい違いとして、attentionは連続値ですが、rationaleは抽出するべきか、しないべきかの二値をとります。実験でも示しますが、rationaleを学習に直接使うよりも、attentionを分類に使うことで、高い分類精度を得ることができます。

[^3]: そんなの当たり前だと思うかもしれませんが、attentionの値を根拠箇所として使う研究もあるためです。

attentionは観点ごとに異なります。しかし、**rationaleからattentionへの変換は、観点によらず共通なのではないか**というのが著者らの仮説です。例えば、上記のrationaleとattentionの可視化では、rationaleとなった単語の中でも内容語にattentionが強くかかっていますが、このような現象は観点を変えても起きるものと予想されます。

そこで、本研究では、大量の分類正解データとrationale正解データがあるソース観点(複数ある)を使い、rationaleからattentionへの変換を学習し (Rationale to attentionでR2Aと呼ぶ)、それを分類正解データが少ないターゲット観点へ転移させます。その後、ターゲット観点で少量の分類学習データと、rationale正解データから生成したattentionの値をもとに、分類とattention生成を同時に学習します。

| データ区分 | 例 | 分類正解データ量 | rationale正解データ量 |
|---------|-----|--------|-----|
| ソース観点(学習) | サービス と 清潔さ| 大 | 大 (ただし疑似的に生成) |
| ターゲット観点(学習) | 立地 | 小 | 小 |
| ターゲット観点(評価) | 立地 | 無 | 無 |

# 提案手法

![screenshot1.png](https://qiita-image-store.s3.amazonaws.com/0/152362/612b6033-960e-0d60-dfe3-563216a75911.png)

$x^{S_t}$というのが観点tにおけるデータ1つ(=単語列)を指します。$x^{S_0}$と$x^{S_1}$は、全く関係のないデータですので注意ください。

本研究の処理は次のようになっています。

(a) Multi-task learning: ソース観点において、分類正解データ(入力単語列$x^{S_t}$と、ポジネガの分類ラベル$y^{S_t}$のペアを複数個) を入力に、attention（$a_i^{S_t}$) の生成とラベル($\hat{y}^{S_t}$)の予測を作成します。ここで生成されたattentionは、rationaleからattentionへの変換を学習するときの正解データになります。
(b) Domain-invariant encoder: 全観点の入力を共通の意味空間にマッピングできるエンコーダーを学習します。意味空間へのマッピングを行う教師なし学習のために言語モデルを用い、共通の意味空間にマッピングできるように各タスクのデータが見分けられないよう(各タスクの入力の表現のWasserstein distanceを最小化するよう）にします。
(c) Attention generation: ソース観点において、共通の意味空間にマッピングされたデータ、正解のrationale、(a)で生成したattentionから、rationaleからattentionへの変換を学習します。なお、(b)によってソース観点とターゲット観点は意味空間にマッピングされているため、ソース観点で学習したrationaleからattentionへの変換は、ターゲット観点でも使用することができます。
(d) ターゲット観点での学習: ターゲット観点で、(c)で学習した変換をもとにrationale正解データからattentionを生成します。少量の分類学習データと、rationale正解データから生成したattentionの値をもとに、分類とattention生成を同時に学習します。

詳細は力尽きましたので本文に譲ります。そのうち気がむいたら更新するかもしれません。

# 結果

![screenshot1.png](https://qiita-image-store.s3.amazonaws.com/0/152362/d37e724f-8700-42a1-81c5-fb74c6b9bfdc.png)

まず、ある観点から他の観点へ転移した場合です。OURSが提案手法で、双方向LSTMを前述したattentionで学習しています。Ra-Transは提案手法と同様のモデルですがrationaleで学習をしています。Transはattentionやrationaleを使わず分類正解データのみを用いたものです。

このように、rationaleを何らかの形でいれると分類精度が向上しますが、提案手法ようにrationaleからattentionに変換したうえで学習に取り込むとさらなる精度向上につながることがわかります。

Oracleは、ターゲット観点のデータを大量に用いて分類から学習したattention値を用い、分類を学習したものです。少量のデータから生成したattentionを使うことで、大量のデータから学習した場合に肉薄していることがわかります[^4]。

[^4]: この結果は大量の分類正解データからattentionを学習し、少量の分類正解データとattentionをもとに、分類を学習したデータです。分類正解データ自体を増やせば、もっと精度があがるはずです。

上記の結果は観点間の転移でしたが、ドメイン（ビールのレビューからホテルのレビュー）でも同様の傾向がみられました。

# コメント

Barzilayらのグループはrationale生成において先駆的な存在で、本研究もrationaleとattentionの関係について検証したということで非常に興味深い研究になっています。

手法は結構複雑で、正直めったにない問題設定なので、実用性には疑問がつきますが、こういった研究をもとに自然言語処理におけるAIの説明性について議論が活発になればよいと感じます。