収録日:20200913
発表者:@yohei_kikuta
聞き手:@smochi_pub
内容:
- ACL2020 の Honorable Mention Papers に選ばれた論文
- この論文を読もうと思ったのは pretrained model からタスク特化の model を作成する時に現時点で何が分かってて何が分かってないのかを知りたかったため
- 論文のイントロ
- BERT 以降 NLP でも pre-trained model がめちゃ使われるようになったけど、ドメインに特化してさらに pre-training するのが有効かは十分には研究されてない
- BERT の後継の RoBERTa を用いて、特定ドメインでさらに pre-training する場合と更に狭い特定タスクで pre-training する場合をいくつかのデータセットで検証
- ここで言う pre-tranining は unsupervised に MLM を使って学習する、という意味
- 使用データ
- BIOMED(論文), CS(論文), News, Amazon reviews
- scispaCy や spaCy を用いて文分割して同じような学習量になるようにパラメタ調整して学習に使用
- pre-training の効果を見るために classification 用のデータもある
- DAPT と TAPT
- domain-adaptive pretraining (DAPT) はそのドメインの大量のデータを使って pre-train する
- task-adaptive pre-training (TAPT) はもっと特化して classification タスクに使うデータ(学習データ)を pre-training に使う
- 前者はスクレイピングなど頑張ればデータを集められるが学習は大変、後者はより特化してるので少数データでも使えるがデータを集めるのは本質的に難しい
- 併用もできて併用するのが性能は良い(それはそう)
- 主たる結果は論文の Table 5 になる。5 回異なる seed で実験して標準偏差も記載するというのは結構よく目にするようになった
- 違うドメインのデータで pre-training をすると harmful になり得る
- TAPT がデータ量の割に性能が高いのでこれをいい感じに使いたい
- Human Curated-TAPT は元々ラベル付きのデータを作る際に、母集団からサンプルして作ってる場合、サンプルされなかったデータはタスクとしては同じ用途で集められてるのでこれを使おうという話
- このような状況は限定的だと思うが、Table 7 にあるように単なる DAPT+TAPT と同じくらいの性能を出せる
- うまいことこういうデータがない場合にも使いたいので bag-of-words based の embedding を作る VAMPIRE を用いて task の sentence に近いものを k-nearest neighbors で取ってくる
- 効果は random よりは明確にあるけど、データを絞ってる分 DAPT には及ばず。著者としてはこれで DAPT に勝てるというのを期待してとは思うが、そこまではいかないので、計算量とのトレードオフで選択肢を選べるようになってるぞという感じかな
- What is a domain? というセクションがあって期待させられるが、様々な粒度でスペクトルを成してるんじゃないですかねぇというお気持ち表明
- まとめ
参考情報:
- 原論文:https://arxiv.org/abs/2004.10964
- @yohei_kikuta のこの論文を読んだときのメモ:yoheikikuta/paper-reading#53
- @yohei_kikuta の RoBERTa を読んだときのメモ:yoheikikuta/paper-reading#31
- VAMPIRE:https://github.com/allenai/vampire
- Allen Institute:https://alleninstitute.org
BIOMED の CHEMPROT データセットに関して説明したが具体例がなくイメージが湧かなかったと思うので補足。
以下の図は https://arxiv.org/abs/1911.09487 より引用。
BioMed 系の論文の abstract を一つのデータの塊として、その中に複数の化学物質と遺伝子の情報がタグづけされて与えられている(下の例は abstract のさらに一部だけ切り出している)。
その化学物質と遺伝子には relation が付与されていて、下の例の CPR5 ならば agnoist(生体内の受容体分子に働いて神経伝達物質やホルモンなどと同様の機能を示す薬)の関係になっているということ。専門知識がないのでよく分からないけど。
元々は文章中から関係のある物質のペアがどれとどれかを抽出して、その上でそれらにどんな relation があるかを予測するというタスクになっている。
ほとんどの関係は一つの sentence 内に収まっている(98%くらいそうらしい)ので、classification として解く際には文章ごとに対象の物質ペアが分かるように記号をつけた上でそいつらの relation のタイプを当てるという感じに使ってるのかな?一つの文章で複数のペアがあればそれらは別個に記号をつけて独立なデータとして扱うっぽい。https://github.com/allenai/scibert/tree/master/data/text_classification/chemprot とかを見つつなんとなくそんな感じっぽいというのを読み取ってるだけなので正しくないかもしれない。