Snorkel MeTaLを用いた大規模マルチタスク学習(4/4)

  • 2019.06.05
  • AI
Snorkel MeTaLを用いた大規模マルチタスク学習(4/4)

1.Snorkel MeTaLを用いた大規模マルチタスク学習(4/4)まとめ

・小文字化BERTと非小文字化BERTの結果をアンサンブルする事により更に高いスコアを更新
・Snorkelは、トレーニングデータを迅速に作成、モデル化、および管理するためのシステム
・Snorkel MeTaLはマルチタスク教師およびマルチタスク学習を研究するためのSnorkelのマルチタスク版

2.アンサンブルとSnorkel

以下、dawn.cs.stanford.eduより「Massive Multi-Task Learning with Snorkel MeTaL: Bringing More Supervision to Bear」の意訳です。元記事は2019年3月22日、Braden Hancockさん, Clara McCreeryさん, Ines Chamiさん, Vincent Chenさん, Sen Wuさん, Jared Dunnmonさん, Paroma Varmaさん, Max Lamさん, そしてChris Réさんによる投稿です。以前、紹介したSnorkelの中で紹介されていたSnorkel MeTaLのお話です。

教師となる信号5.アンサンブル
最終的に、私たちは、小文字化BERT(uncased BERT:全ての入力テキストが小文字に変換されてから与えられるBERT)が、良いスコアを出すタスクと非小文字化BERT(Cased BERT)が良いスコアを出すタスクが異なる事に気付きました。

過去の研究からもたらされた知識では、小文字に統一されたモデルは過学習を減らす事できるとされています。より多くのトークンが同じembeddingにマッピングされるので(例えば、「Cat」と「cat」の両方)、その結果、他のトークンとの共起頻度が高くなり、トレーニング信号がまばらにならなくなるためです。

一方、大文字と小文字を区別することで頭字語や固有名詞を区別することができます。(例えば、ファスナーのzipと郵便番号のZIP、会社名の「Google」と動詞として使われる「google」など)。

さらに、事前学習済みのBERTが固定語彙(30万単語)でトークン化する手法を使っているため、各モデルは異なる重みだけでなく、同じ文に対して異なるトークン化を行います。その結果、全体的なパフォーマンスはかなり似ていますが、エラーになる対象がわずかに異なります。

まだ、サイズが小さく(276事例)、検証セットへの過学習も確認されたため、さまざまなトレーニング/検証セットに分割してモデルを訓練しました。そのような6つのモデル(データセットを様々に分割したり、小文字化と非小文字化を含む)から予測される確率を平均することで、RTEテストのスコアをさらに正確にすることができました。

もっと多くの教師となる信号が必要です 💪

教師となる信号6.未定


Snorkelは、トレーニングデータを迅速に作成、モデル化、および管理するためのシステムです。Snorkel MeTaLは、マルチタスク教師およびマルチタスク学習を研究するための、Snorkelのマルチタスクバージョンです。

来月、Snorkel MeTaL v0.5をリリースする予定です。これには、今回の最先端の結果を達成するために使用したMMTLパッケージが含まれます。私たちは、Snorkel MeTaLが新しい創造的な方法で追加の教師信号を迎え入れ、利用可能な信号をインテリジェントな方法で組み合わせる事で、他の人が何かの基盤を築くために役立つことを願っています。

今後数カ月のうちに、我々はより詳細な分析とアブレーション研究(訳注:ablation studyは本来のモデルとモデルのコンポーネントの一部を削除した版を比較する事によって、コンポーネントの機能を確認する研究手法)について論文を書く予定です。snorkelについてまとめたページ(snorkel.stanford.edu)で最新の研究(ブログ投稿、コラボレーション、論文など)をいつでも見つけることができます。

そしていつものように、私たちはあなたの考えやフィードバックを、コメント、Twitter、あるいはGithubで聞きたいと思っています。

3.Snorkel MeTaLを用いた大規模マルチタスク学習(4/4)関連リンク

1)dawn.cs.stanford.edu
Massive Multi-Task Learning with Snorkel MeTaL: Bringing More Supervision to Bear

2)github.com
HazyResearch/metal

3)ruder.io
An Overview of Multi-Task Learning in Deep Neural Networks