Coda

メモ Snorkel DryBell: A Case Study in Deploying Weak Supervision at Industrial Scale

October 5, 2019

概要

表題の論文では、SnorkelというWeak Supervisionの手法をGoogleで適用した結果の考察と評価がなされている。 Weak Supervisionは、人手よりも効率良くノイズ交じりの教師データを生成する手法である。 Snorkelは、引数にサンプルを返り値にラベルを返す複数の関数をラベルなしデータに適用し、結果から関数の精度を予測し、個々の関数よりも高い精度でデータにラベルを与える。この関数をラベリング関数という。Snorkel DryBellは、Snorkelのアルゴリズムをスケールさせるために、MapReduceに適用できるように修正されたものをさす。

Snorkelを拡張することで実現できたものは、 様々なリソースを教師データに利用できることと、素速くラベリング関数を作り適用できることである。 ラベルづけに役立つリソースは、モデルやナレッジベース、ヒューリスティックなど様々であり、また、処理の遅さやコストなどで本番運用できないものもある。しかし、ラベリング関数にこれらのリソースを使うことで、様々なリソースを本番運用できるモデルに転用することができる。 また、ラベリング関数同士は、疎結合で、同じデータに異なるラベルを割り当てることが許されており、さらにMapReduceによりデータへ高速に適用される。なお、評価として、3種の分類問題への適用事例が紹介されている。ラベリング関数の数は、それぞれ、10, 8, 140である。

感想

論文が発表された時点では、Snorkelはラベリング関数の精度推定にギブスサンプリングを用いており、MapReduceを利用することでSnrokel DryBellは約2倍の高速化を達成できているとある。しかし、Snorkelv0.9では、推定にMatrix Completion-styleのアプローチを採用したことで、ギブスサンプリングと比べて推定が100倍速くなっている。そのため、高速化の観点では、今ではMapReduceで再実装する意味はなくなっているように思える。


論文はこちらからダウンロードできます。