メモ Snorkel DryBell: A Case Study in Deploying Weak Supervision at Industrial Scale(2019)
October 5, 2019概要
Weak Supervisionは、人手によるルールベースよりも効率良くノイズ交じりの教師データを生成する手法である。 表題の論文は、Weak Supervisionの手法であるSnorkelをGoogleで適用したケーススタディである。 Snorkelは、サンプルから推定したラベルを返す関数(ラベリング関数)を複数用意し、それをラベルなしデータに適用する。 その結果から関数の精度を予測し、個々の関数よりも高い精度でデータにラベルを与える。この関数をラベリング関数という。 Snorkel DryBellは、Snorkelのアルゴリズムをスケールさせるために、MapReduceに適用できるように修正された主要である。
Snorkelを拡張することで、様々なリソースを教師データに利用でき、ラベリング関数を高速に適用できるようになった。 ラベルづけに役立つリソースは、既存のモデル、ナレッジベース、ヒューリスティックなど様々あり、また、処理の遅さやコストなどで本番運用できないものもある。 これらのリソースをラベリング関数に応用することで、これらのリソースを本番運用できるモデルに転用することができる。 ラベリング関数同士は、矛盾したラベリングをしてもよく、同じデータに異なるラベルを割り当てることが許される。 なお、評価として、3種の分類問題への適用事例が紹介されている。ラベリング関数の数は、それぞれ、10, 8, 140である。
感想
論文が発表された時点では、Snorkelはラベリング関数の精度推定にギブスサンプリングを用いており、MapReduceを利用することでSnrokel DryBellは約2倍の高速化を達成できているとある。しかし、Snorkelv0.9では、推定にMatrix Completion-styleのアプローチを採用したことで、ギブスサンプリングと比べて推定が100倍速くなっている。そのため、高速化の観点でいえは、もはやMapReduceで再実装する意味はないように思える。
論文はこちらからダウンロードできます。