Ruler:Data Programming by Demonstration(DPBD)でラベリング関数を作成する

テキスト分類は私たちが日々利用している多くの技術の基盤となっています。電子メールのルーティング、ニュースの分類、ソーシャルメディアの意図の識別はこうした技術のほんの一部の例にすぎません。テキスト分類に不可欠な要素であるラベリングは非常に手間と時間のかかるプロセスです。そこで、Megagon Labsはこのラベリング処理を容易にするために Ruler というインタラクティブシステムを開発しました。RulerはDPBD (Data Programming by Demonstration) と呼ばれる新しいフレームワークを用いてラベリング関数をシームレスに合成することができます。

Rulerは技術的な参入障壁を下げることで、各領域の専門家がデータプログラミングを活用できるようにします。Rulerを使えばテキスト分類に使う大量の学習データを素早く簡単に生成できるようになり、しかもプログラミングは不要です。

ユーザーがテキストに繰り返しアノテーションを加えると、Rulerは自動的にラベリング関数を生成します。その後、ユーザーは選択した特定の関数の性能を追跡することができます

データプログラミングとは

DPBDやRulerを詳しく見ていく前に、少し回り道をして、データプログラミングについておさらいしましょう。

今日使われているほとんどの機械学習モデルは教師あり学習で、大規模なラベル付き訓練用データセットを利用しています。そのため、機械学習の成否は、高品質のラベル付きデータを大量に利用できるかどうかに大きく左右されます。こうしたデータを入手するには高額な費用がかかるため、資源を豊富に持つ環境でない限り機械学習モデルの利用を制限せざるを得ません。

クラウドソーシングによる手動のラベル付与やユーザー定義によるヒューリスティックスな方法による弱い教師手法 (weak supervision methods)では、この高品質のラベル付きデータに関わるジレンマを軽減するために、ノイズが多く含まれる不正確なデータソースを使用し大規模なトレーニングデータセットを収集できるようにしています。当然のことながら、その結果はノイズが多く不正確なものになる可能性があります。そこで登場するのがデータプログラミングです。

データプログラミングは、トレーニングデータの収集や管理の難しさと莫大な費用に対処するために、弱い教師にプログラム的なアプローチを適用することを目指しています。対象分野の専門家が持つドメイン知識をソースデータに対するラベリング関数としてエンコードしていく、これがデータプログラミングの基本的な考え方です。

そうは言ってもデータプログラミングにはいくつかの欠点があります。専門家は自身の専門領域に有用なラベリング関数を作るために必要なドメインの知識は持っていますが、一般的にプログラミングの経験を持ち合わせていません。また、たとえプログラミングに精通していたとしても、ドメイン知識を一連のルールに変換するのが困難な場合がしばしば発生します。

さらに悪いことに、多くの専門家は時間がありません。たとえば、医療分野のモデルを学習するには大量の高精度なデータが必要ですが、この分野のラベリングにヘルスケアの専門家の知識が役立つことは間違いありません。しかし、一般的な医療専門家の時間は限られており、引く手あまたの状態です。時間がかかるラベリングに膨大な時間を割くことはできないでしょう。

要するに、ラベリング関数を記述することに時間がかかったりアクセスし難いことがデータプログラミングをより広範に導入する上で大きな課題となっているのです。

DPBDでラベリング関数の合成を簡単にする

Data Programming by Demonstration (DPBD) は新たなHuman in the loop (人間参加型) フレームワークであり、 Synthesizer (スマートな合成機能) を利用しラベリング関数の作成にかかる負担を軽減します。DPBDにより、ユーザーはラベリングの選択に関連する根拠を提示することから提案された関数をインタラクティブにフィルタリングすることまで、複数のセマンティックレベルで合成プロセスを進めることができます。

下図に示すように、DPBDフレームワークには、Labeler (人間のラベラー) と Data (生テキストデータ) という2つの入力ソースが含まれます。このシナリオでは、人間のラベラーは、ドメインについて有益な情報や意図を抽出できるだけの十分な知識を持つ専門家であれはよく、必ずしもプログラミングの経験を必要としません。

DPBDの仕組みを示すビジュアルモデル

ラベラーは、ラベリングインターフェースを通じてデータをやり取りします。Active Sampler (アクティブサンプラー) が、やり取りの利点を最大限に生かすために、例題を選択してラベラーに示します。その後、ラベラーは例題にアノテーションを付け、ラベルクラスを選択し、その理論的な根拠を与えます。次に、 Labeling Interface (ラベリングインターフェース) はラベラーのインタラクションを記録し、一連の条件にまとめます。その後、シンセサイザーがこの情報からラベリング関数を生成します。

ラベリング関数が合成されたら、ユーザーはドメイン知識に基づいて最も適切なラベリング関数を選択します。選択されたこれらのラベリング関数はモデラーに渡され、モデラーはSnorkelを使ってラベルの合成とノイズ除去を行います。出力されるのは、大規模なラベルなしデータセットのラベルを自動的に生成するように学習されたラベリングモデルです。特定の停止基準に達するか(望ましいモデル品質に達するなど)、ラベラーが終了を決定するまで、アクティブサンプラーは次のデータレコードを選択してラベラーに提示します。

Rulerで文書分類をシンプルに

Rulerは、DPBDを文書分類のために利用できるようにする、他に類を見ないインタラクティブなツールです。上の図1に示すように、ユーザーはテキストに繰り返しアノテーションとラベル付けを行います。そして、Rulerは自動的にラベリング関数を生成します。ユーザーが最も関連性の高い関数を選択すると、関数のパフォーマンスを追跡することができます。下の図は、これらの主要なやり取りを示しています。

Rulerのユーザーがどのようにテキストにアノテーションを付け、自動生成されたラベリング関数を選択して、そのパフォーマンスを記録するか

スパム分類におけるルーラーの活用

Rulerの機能を最もよく表している1つの例を挙げます。スパムの分類について考えてみてください。この機能により、私たちは毎朝何百通もの迷惑メールを処理しなくて済んでいます。このタスクに典型的なラベリング関数は、テキストの ”www” や ”.com” を識別することです。Pythonのコードは以下のようになっています。

このラベリング関数をPythonのコードとして記述する代わりに、RulerユーザーはURLにスパムとしてのアノテーションするだけで同じ出力を得ることができます。これは実際、DPBDの”Demonstration (デモンストレーション) ”の部分です。Rulerは様々なインタラクションを、単語の共起を利用したり、場所や日付のような固有表現を識別したりできる関数などに変換することもできます。ユーザーがRulerで作成したラベリング関数に満足したら、Snorkelはそれらを集約し、出来上がったラベルモデルのノイズを除去します。

Rulerを評価する

どれも簡単なことだと思いますか?実際には、たしかに簡単です。ただし、アプローチがもたらす大きなメリットが他にもあります。

Rulerの評価では、参加者が手作業でデータをプログラミングして作成したルールの多くをRulerで取り込めることがわかりました。それに加えて、何人かの参加者はRulerの方が使いやすいと感じていました。つまり、熟練したプログラマーであっても、手動でのデータプログラミングと並行して、Rulerで様々なラベリング関数を探索することから恩恵が得られる可能性があるということです。

RulerをPythonのカスタム関数で活用するにはどうしたらよいか興味がありますか?いくつかの指針について概要を文書にまとめたものを、こちらでご確認いただけます。

Rulerのベネフィット

Rulerがあれば、プログラミングが得意でないドメイン専門家でも、データプログラミングのメリットを享受することができます。医療専門家の例に戻ると、Rulerの機能はより効率的で効果的なラベリング関数生成プロセスにつながります。医療専門家は膨大な時間を費やす必要はなく、このドメインの機械学習モデルは高精度の膨大な学習データから恩恵を受けることができます。

Rulerは、ユーザーのタスクを単純なアノテーションと提案されたルールからの選択に限定することで、多岐にわたるラベリング関数を素早く探索できるようにします。Rulerを使えば、ユーザーは好きなだけ学習データにラベルを付け、それを使ってより洗練された教師付きモデルを学習することができます。

つまり、Rulerを使えばユーザーは以下のことに集中できます。

  • 見つけ出した事例の正しい一般化を選択すること
  • データ分布の結論を把握すること

一方、Rulerによって以下のことを心配しなくて済むようになります。

  • プログラミング言語実装の詳細
  • ルールを自然言語で表現すること
  • 直感を定式化すること

DPDBとRulerの概要をご紹介してきましたが、楽しんでいただけたでしょうか。DPDBとRulerは、どちらも機械学習を利用しやすいものにする上で大きな期待が寄せられています。特にヘルスケアのように、ドメイン専門家の時間が限られており、低品質のモデルでは許されない分野では、その効果は絶大です。それぞれの研究開発を続けており、近々、さらなる進歩を明らかにすることを楽しみにしています。ご期待ください!

Rulerについてもっと知りたいと思いませんか?私たちの研究論文GitHubをチェックしてみてください!

 

原文へ

(翻訳:Megagon Labs Tokyo


Share:

Share on facebook
Share on twitter
Share on linkedin
Share on reddit
Share on email

More Blog Posts: