メモ Snorkel: Rapid Traning Data Creation with Weak Supervision (2020)
September 21, 2019概要
Snorkelは、不正確なラベルを許容した上で半手動で大量の教師データを生成するWeak supervisionの一種である。 Snorkelは、データを受け取りラベルの予測値か予測不可能であることを示す値を返す関数を使い、データにラベルを割りあてる。 このラベル付けする関数は、ラベリング関数と呼ばれ、データとともにSnorkelに与えられる。 ラベリング関数は人間が実装したルールベースな関数でよい。 Snorkelは、入力された複数のラベリング関数をデータに適用し、データ件数xラベリング関数の個数をサイズとするラベルの予測値の行列を作る。その後、真のラベルを予測するモデルを行列にあてはめ、サンプルにラベルごとの真のラベルについての確信度を出力する。
出力された確信度つきのデータを教師データとしたモデルと教師ありデータで学習したモデルの予測性能を比較する実験を4件実施したところ、Snorkelによるラベルは全実験において教師ありデータの指標との差が4%以内だった。 教師データとして使われたデータは人手で収集すると数週間から数ヶ月かかる量であるとあった。
ラベリング関数は、引数にデータとり、返り値に予測不可能であることを示す値かラベルのいずれかを返せばよく、予測の判断材料に制限はない。論文では、判断材料としてテキストのパターンマッチや弱い学習器、外部の知識データベースが例示されている。
SnorkelのAPIは、インターネット上に公開されている。 ただし、予測ラベルを要素とする行列から真のラベルを予測する手法は、本論文とは異なる。 本論文ではラベルを予測するモデルには、ギブスサンプリングとSGDを組み合わせた手法を採用しているとあるが、 こちらにあるように、 Snorkel 0.9では行列補完を応用した手法が採用されている。
最後に、Snorkelと教師あり学習を比較した実験の情報を以下にまとめる。
- CDR
- PubMedの一文に含まれる化学物質と病気に因果関係があるか判定する。
- Spouses
- ニュースの一文に含まれるエンティティが婚姻関係であるかを判定する。
- Rad
- 医療画像の説明文からラベリング関数が出力した画像のラベルと医療画像から肺のレントゲン写真から異常を推定する。
- Crowd
- ツイートを5つのカテゴリに分ける感情分析のために、クラウドソーシングを利用した。20名のクラウドワーカの回答をラベリング関数とみなす。
Task | # LFs | % Pos. | # Candidates |
---|---|---|---|
CDR | 33 | 24.6 | 8272 |
Spouses | 11 | 8.3 | 22,195 |
Radiology | 18 | 36.0 | 3,851 |
Crowd | 102 | 36.0 | 505 |
Posは正例の割合を示す。 |
Task | # Train. | % Dev. | # Test |
---|---|---|---|
CDR | 8,272 | 888 | 4,620 |
Spouses | 22,195 | 2,796 | 2,697 |
Radiology | 3,851 | 38 5 | 385 |
Crowd | 505 | 63 | 64 |
Snorkelの評価結果
Task | Precision | Recall | F1 | AUC | ACC |
---|---|---|---|---|---|
CDR | 38.8 | 54.3 | 45.3 | N/A | N/A |
Spouses | 48.4 | 61.6 | 54.2 | N/A | N/A |
Radiology | N/A | N/A | N/A | 72.0 | N/A |
Crowd | N/A | N/A | N/A | N/A | 65.6 |
Hand supervisionの評価結果
Task | Precision | Recall | F1 | AUC | ACC |
---|---|---|---|---|---|
CDR | 39.9 | 58.1 | 47.3 | N/A | N/A |
Spouses | 47.8 | 62.5 | 54.2 | N/A | N/A |
Radiology | N/A | N/A | N/A | 76.2 | N/A |
Crowd | N/A | N/A | N/A | N/A | 68.8 |
感想
- 理論、実験について両方しっかり議論されていると感じた。
- APIのドキュメントや実装が整っているので、試しやすいと思う。
- 実験ごとに評価指標を変えているのが気になる。