言語モデルでEOSを予測すると汎化性能悪化するらしい

The EOS Decision and Length Extrapolation

f:id:e4exp:20201221115011p:plain
Figure 1: 隠れ状態のdynamicsが+EOSと-EOSで異なる.隠れ状態の系列中での位置の違いにより色分けしている

まとめ

  • どんなもの?

    • NLPの言語生成モデルで,文の終了を示すEOSトークンを予測に含めるモデルはEOS予測を使わないモデルよりも汎化性能が下がることを3つの実験で示した.汎化性能とはtrainデータ内に存在しなかった長さの系列をtest時に生成させたときの文の内容の正解との一致具合を指す.ただし,機械翻訳タスクではEOSあり/なしではっきりした違いが得られていない.
  • 先行研究と比べてどこがすごい?

    • 直接的に同じ研究はないが,SCANデータセット(length cutoff = 22)ではLake and Baroni, 2018のNNモデルが精度20.8に対し,本研究の-EOSは60.1を報告している.なお,同じ設定でEOS予測する+EOSモデルのスコアは18.0で,40ポイント以上の差がある.
  • 技術や手法のキモはどこ?

    • Dyck-(k, m)実験,SCAN実験,機械翻訳実験,を行っている.
    • それぞれでEOS予測を行うモデル+EOS+Oracleと,EOSなしのモデル-EOS+Oracleを精度が完璧になるまで訓練し,testデータでの汎化性能を見る.
      • Oracleというのは,正解データと同じ長さになるように制御してあるという意味で使っており,(+EOSについてはEOSトークンの確率を強制的に0にすることでEOSが出ないようにして)評価指標が最大になるまでモデルにtokenを出力させ続けることで実現する.
      • これによって,文の終了予測と関係なく,文の内容だけを評価できる
    • Dyck-(k, m), SCANについては,PCAでモデルの隠れ状態のtop 2 主成分を取得して可視化し,どちらのモデルについても隠れ状態がlength manifoldと呼ぶクラスタを構成していることを示している.
      • Dyckの+EOSでは,訓練時の隠れ状態とテスト時(=系訓練時になかった系列長のみから構成される)とでクラスタの構成が変わり,訓練時のクラスタの端から逸脱する方向へ値が集まる.このようなことは-EOSでは見られない.
      • SCANの+EOSでは,EOS tokenに高い確率を置いたあと,その後モデルは(生成が)崩壊する.この後,隠れ状態はEOSのクラスタにとどまり続ける.このクラスタをlength attractorとよんでおり,-EOSではこのようなことはない.
  • どうやって有効だと検証した?

    • Dyck-(k, m)実験
      • Dyck-(k, m)はk種類の括弧が最大ネスト深さmをなすように構成された合成言語データセット.k=2,m=4, 6, 8を使用した.
      • testデータは訓練データの10倍長い系列を使用した.hold-out validationでtrainの精度が完璧になるまで訓練する.モデルは5 * mの隠れ状態を持つ1レイヤLSTM
      • 評価指標は,modelがbracketを閉じれるとき,すべての閉じ括弧の中で,どのくらいの頻度でmodelが80%以上の確率を正しい閉じ括弧に割り当てたか,というものを使う.
      • すべてのケースで-EOSが+EOSを上回った.
    • SCAN実験
      • ロボットへの命令を示した系列を入力とし,ロボットが命令に答えて動作を行うためのコマンド列を出力するタスク.(walk left twice => TURN_LEFT, WALK, TURN_LEFT, WALK のようなもの)
      • token系列の長さでtrain, testをsplitし,22ならtrainは1-22個のトークン,testは22-48個のtokenからなるデータを使うことになる.このsplitを10種類作成し,Lake and Baroni (2018)と同じLSTMを+EOSと-EOSの設定で訓練.greedy decodingでexact matchを評価
      • すべてのケースで-EOSが+EOSを上回った.
      • LSTM以外にtransformersでも同様の実験を行い,同様の結果を得ている
    • 機械翻訳実験
      • WMT2009の独->英翻訳を使用する.SCANより複雑なタスク.length=10, 15, 25で3つのsplitを作った
        • hiddenの次元が500と1000の2層LSTMでencoder, decoderを作り,+EOSと-EOSを訓練.transformersでも同じ実験を行った
      • 評価はBLEUスコア.(window size = 7)
      • 末尾の句読点は全て取り除いているが,(文内の)lengthに関する手がかりがEOSトークンの代理として動作するので,+EOSと-EOSで性能差が小さい.-EOSのほうが汎化したと言えるほどではなかった.
      • PCAの結果がtop2主成分が3%しか分散を説明していないので可視化を行っていない
  • 議論はある?

    • -EOSモデルは単体では停止箇所がわからないので使用できない.EOSトークンを使わずに停止できる方法の研究を呼びかけている.一案としてtoken位置予測に対する敵対的誤差の使用を挙げている
    • 3つのタスクのうち機械翻訳については+EOS, -EOSの差があまりなかったが,結論としては-EOSのほうが系列長が増えたとき汎化性能が高いというものになっている
  • 次に読むべき論文は?

    • Lake and Baroni (2018)
      • Brenden Lake and Marco Baroni. 2018. Generalization without systematicity: On the compositional skills of sequence-to-sequence recurrent networks. In In-ternational Conference on Machine Learning, pages 2873–2882.
      • SCANタスクを提案した研究と思われる.NNで20.8%を達成.
    • Maxwell Nye, A. Solar-Lezama, J. Tenenbaum, and B. Lake. 2020. Learning compositional rules via neural program synthesis. ArXiv, abs/2003.05562.
      • SCANでacc 100%を達成したSCAN文法の探索モデル
    • OpenNMT(Klein et al., 2017)
      • WMT2009のタスクではこれを使用してmodelを訓練した
    • sacreBLEU(Post, 2018)
      • BLEUの計算に使用したパッケージ
  • その他,所感

    • +EOSが悪化するのは,testで,trainの系列長を超えた場合にということなので,納得感はある.
    • 翻訳タスクでははっきりした違いが出ていないので,実用上EOS予測してもそれほど問題ないのではと思っている.