rohaniのブログ

ゆるっと自然言語処理奴。ときどき工作系バイト。

Generating and Exploiting Large-scale Pseudo Training Data for Zero Pronoun Resolution.

輪講で紹介する論文について理解を深めるために、落合さんフォーマットにまとめた。 折角なのでシェア。間違ってたら教えて下さると助かります。

0. 出典

Liu, Ting, Yiming Cui, Qingyu Yin, Weinan Zhang, Shijin Wang and Guoping Hu. “Generating and Exploiting Large-scale Pseudo Training Data for Zero Pronoun Resolution.” ACL (2017).

1. 論文の概要

本論文では ”Zero Pronoun resolution task”:文中で省略された名詞/代名詞が何かを当てるタスク に取り組んでいる.提案手法により最先端システムよりも大幅に性能が向上したことを確認した. 

本論文が提案する内容

  • ZP resolution taskのための疑似学習データを自動的に大量生成する手法
    (今までは,学習データはシェアドタスクを組織して人手で作るしかなかった)
  • AttentionベースのNNモデル
    (the cloze-style reading comprehension neural networkを転用)
  • 2ステップの学習メカニズムによる,疑似学習データと実データのギャップ対処法
    実データ:ZP resolution task用にシェアドタスクで用意された教師あり学習データ.疑似学習データ:実データに似た構造だが自動生成故のギャップを抱えたデータ)
  • 元単語を復元可能な未知語処理方法 ※この手法に対する有効性の主張は他に比べると薄い

2. 問題設定と解決した点

学術的背景・研究文脈

ZP resolution taskの先行研究は教師あり学習による物が多く,その学習に用いられるデータは主にシェアドタスクが配布する人手でアノテーションしたデータである.より良い精度の分類器を作るためにはよりたくさんのアノテーテッドデータが必要となるが,人手のラベリングはコストが高い.

また,NNの学習では語彙の削減を行い,全ての未知語を< unk>で置き換える方法が一般的だが,それではZP resolution taskの回答単語として< unk>を得た場合に元単語が特定できないという問題がある.

そこから導かれる問題設定
  • 人手不要で学習データを大量に入手したい
    • 疑似学習データを自動的に大量生成する手法を提案
  • 自動生成した疑似データと人手でアノテートされた少量の実データのギャップを埋めたい
    • 疑似学習データで事前学習したモデルを実データで追加学習する手法を提案
  • 語彙を削減しつつ,未知語を特定可能にしておきたい
    • 未知語の位置情報を含んだ形で< unkX>と置換する手法を提案
問題解決がもたらすインパクト・学術的価値
  • ZP resolution taskにおいて,アノテーションのためのコストなしで,学習データを増やす事ができる.
  • 少量の実データと,ギャップを持つ大量の疑似データがあるときに,双方のメリット・デメリットを補完し合って学習することができる.(そのメカニズムから,こちらの手法はタスクに依存しないと考えられる)
  • 学習コストの削減と,未知語特定の問題をどちらも解決することができる ※これについては論文中で定性的な分析はされていない.

3. 技術や手法のキモ

zero pronoun resolutionのための大規模な擬似学習データを生成する方法

参照:Figure1

  1. 実データに関連/同義の文書を大量に収集する.(実験では大規模なニュースデータを利用)
  2. 文のセットで構成された文書D {D={s_1, s_2, ..., s_n}} が与えられた時、文書中に2回以上出現する名詞/代名詞の中から回答単語Aをひとつ無作為抽出する.(図中では"短信")
  3. Aを含んでいる文をクエリQとして定義する.このとき回答単語Aを特別な記号< blank>によって置き換える.(図中では8つ目の文)

以上により,クエリQと文書D,予測対象である回答単語Aから成る <Q,D,A> が作られる.

擬似学習データと実学習データとのギャップを緩和するための2ステップ学習法
  • 事前学習ステージ:大量の疑似学習データによってNNモデルを学習することで,豊富な単語埋め込みを学習する.これにより少量の実データだけで学習するよりも比較的妥当なNNの重みを得られる.
  • 適応ステージ:上記で作られたモデルに対し,その知識をあまり損なわないようにしながら,実データを用いてモデルをファインチューニングする.これによりモデルを実データに寄せて矯正する.
アテンションベースのNNモデル

参照:Figure2

図中,{d1, d2, d3, d4} 及び {q1, q2, q3}は文書中,クエリ中の各単語を表す.

Embedding Layerでは文書・クエリ共通の空間で単語埋め込みをする.

{e(x)=W_e・x, \ where\  x \in D,Q}

Bi-GRU Encoderでは文書・クエリを分けて,Bi-GRUで系列を学習する.

{\overrightarrow{h_s} = \overrightarrow{GRU}(e(x)); }
{\overleftarrow{h_s}=\overleftarrow{GRU}(e(x))}
 h_s=[\overrightarrow{h_s};\overleftarrow{h_s}]

クエリのベクトル表現は,双方向RNNの全ての隠れ状態の平均とする.

 h_{query} = \frac{1}{n}  {\Sigma}^n_{t=1} h_{query}(t)

文書のベクトル表現は,アテンションの出力とする.
まず,文書中のすべての単語についてソフトアテンションを施した.これはクエリ文中の< blank>を埋めるときにドキュメント中のの各単語が合致する度合いを示す.

 m(t) = \tanh(W・h_{doc}(t) + U・h_{query})
 {\alpha}(t) = \frac{exp(W_s・m(t))}{{\Sigma}^n_{j=1}exp(W_s・m(j))}

次に,文書のアテンションを得るために全ての文書トークンの重み付き和を計算する.ここで変数 {\alpha(t)} は文書中の {t} 番目の単語について正規化されたアテンション重みであり, {h_{doc}} は文中のすべての {h_{doc}(t)} を連結した行列である.

 h_{doc\_att} = h_{doc}・{\alpha}
 h_{doc} = concat[h_{doc}(1), h_{doc}(2),...,h_{doc}(t)]

ZPの回答単語を得るために文書のアテンションとクエリのベクトル表現を使う.ここでVは語彙である.

 r = concat\{h_{doc\_att},h_{query}\}
{ P(A|D,Q) \propto softmax(W_r・r), s.t. A \in V }

ここで注意すべきは,このモデルが出力するのは1単語だが,ZP resolution taskにおいてZPの参照先は主に名詞句(NPs)であるということ.この問題への対応は以下のようにして解決する.

  1. 与えられたZPについて,名詞句(NPs)のセットをその回答候補として抽出する.
  2. モデルを使ってZPの回答単語を生成する.
  3. すべての候補NPsを見て,もし生成された回答単語がその先頭単語である場合,このNPsを与えられたZPの参照先であると見なす.
未知語処理技術

参照:Figure3

  1. <D,Q,A>に含まれるすべての未知語を検出する
  2. 個々の未知語をドキュメント内での出現順の番号付きトークン(< unk1>, < unk2>,...,< unkN>)に対応付ける.このとき,同じ単語は同じ未知語トークンに対応付けされるが,これらの対応付けは現在のサンプル内でのみ有効であることに注意.
  3. これらの未知語記号をボキャブラリに追加する.

4. 主張の有効性検証

提案手法のZP resolution性能を評価
  • 実験方法: CoNLL-2012シェアドタスクが提供するデータを基に,4つの既存手法と比較するかたちで性能実験
    • 実学習データとして上記シェアドタスクの"学習セット",疑似学習データとして公的なニュースデータ,テストデータとして上記シェアドタスクの"開発セット"を用いる.
    • 論文中に記載のある詳細:データセット統計量,NNモデル学習設定,実装環境
    • 評価方法はF-score.
  • 実験結果: ニュース記事には6カテゴリがあり,各カテゴリに対する性能と,カテゴリ全体に対する性能が掲載されている. 参照:Table3
  • 実験考察:
    • 全体のF-scoreと殆どのカテゴリのF-scoreは,比較対象システムを上回った.ただし一部カテゴリ(BN,TC)に関しては性能が落ちた.その原因として,問題の2カテゴリは口語体を多く含み,他のカテゴリに比べて文長が長いことが挙げられた.
提案する未知語処理方法の性能を評価
  • 実験方法:ほぼ上記と同様.提案法を使った場合と,従来法を使った場合の性能を比較した.
  • 実験結果:参照:Table4
  • 実験考察:提案法が有効.
提案するドメイン適応法の性能を評価
  • 実験方法:ほぼ上記と同様.提案する2ステップ学習法を使った場合と,実学習データのみ,疑似学習データのみで学習した場合の性能を比較した.さらに,疑似学習データからGloVeでWordEmbeddingsを学習し,実学習データからZP resolutionを学習した場合の性能を比較した.
  • 実験結果:参照:Table5
  • 実験考察:2データの利点を組み合わせた提案法が最も有効.さらに,学習データによる事前学習はWordEmbeddingsを得る以上の効果があることが分かった.
未知語に関するエラー分析

未知語を多く含む文は性能を低下させる.提案する未知語前処理方法は有効.

ZPとその参照先までの距離が長い場合のエラー分析

ZPとその参照先までの距離が長い場合は間違った回答をしがち.無用な単語をフィルタリングし,長期依存の学習を強化するようなモデル学習が必要.

5. 感想

  • 2ステップの学習法は,自分の分類器の学習にも使えそう
  • 提案された疑似学習データ自動生成手法は,前置詞や助詞がある言語では不自然な文になると思う.

6. 補足(Appendix)

ZP resolution taskとは

Zero Pronoun resolution taskは,日本語や中国語などの特定の言語に見られる,文中の名詞が省略される問題に取り組むタスクである. 中でもAZP(Anaphoric Zero Pronoun)は文の前方にある名詞を参照するかたちで省略する類のものを指す.
似た問題として,名詞がit,sheなどの代名詞に変化する問題(Overt Pronoun resolution)があるが,ZPには代名詞のように数字や性別などの名詞予測のための手がかりが欠けているので,OPの予測よりもZPの予測の方が難しい問題になっている.

ZPの例を以下に示す(わかり易さのためにZPをproとして表現している)

[俄罗斯] 作为米洛舍夫维奇一贯的支持者,pro 曾经提出调停这场政治危机。
([Russia] is a consistent supporter of Milošević, pro has proposed to mediate the political crisis.)
ロシアはミロシェビッチの一貫した支援者であり,proは 政治危機を仲介することを提案している.
pro => 俄罗斯 Russia ロシア


Unknown words processing補足

V = {1:I, 2:have, 3:an, 4:and, 5:a, 6:., 7:use, 8:love, 9:< blank>, 10:< unk1> 11:< unk2> }

D1: I have an apple and a pen. =>[1 2 3 10 4 5 11 6]
Q1: I use a < blank>. =>[1 7 5 9 6]
A1: pen =>11

D2: I have a dog. =>[1 2 3 10 6]
Q2: I love a < blank>. =>[1 8 5 9 6]
A2: dog =>10

学習時:< unkX>はサンプル毎に異なる単語を指すので,特定の単語としては学習されない.
テスト時:< unkX>は与えられるD及びQの中のX番目の未知語を探すことで特定可能.

※ただし,この例での<D,Q,A>の作り方では< blank>の前に前置詞があり,ZPの学習データとしては不適切.本論文では,中国語には前置詞がないのでこのような問題は起こらないのだと考えられる.