データアノテーションとは?
データアノテーションの平易な入門。何であるか、主なタスク種別(分類、スパン付与、ランキング、自由記述)、そして Potato でアノテーションプロジェクトを進める方法を解説します。
データアノテーションとは、生のデータ——テキスト、画像、音声、動画、あるいはモデル出力——にラベルを付け、そのデータを測定・比較したり、機械学習モデルの学習・評価に使えるようにする作業です。 ラベルは、ツイートの感情カテゴリ、文中で強調表示された人名、チャットボットの返答に対する 1〜5 の品質評価、写真の中の歩行者を囲むバウンディングボックスなどです。
アノテーションは、データラベリング、タグ付け、あるいはコーディング(社会科学で使われる用語)とも呼ばれます。Wikipedia のデータアノテーション、および関連概念であるラベル付き学習データを参照してください。
なぜ重要か
教師あり機械学習は、すでに正解を備えた例から学びます。その正解の品質がモデルの品質の上限を決めるため、丁寧なアノテーションはプロジェクトのなかで最もてこの効く部分になることが多いのです。アノテーションはモデルを評価する手段でもあります。AI システムが正しいかどうかを知るには、通常その出力を人が判断しなければなりません。
主なアノテーションタスクの種類
ほとんどのプロジェクトは、いくつかの系統に収まります。各系統は Potato の 1 つ以上のアノテーションコントロールに対応します(アノテーションスキームを参照)。
- 分類:項目全体に対して 1 つ以上のカテゴリを選ぶ。例:このレビューはポジティブ、ネガティブ、ニュートラルのどれか。テキスト分類を参照。
- スパン付与:項目の内部の領域に印を付ける。文中の人名や、音声クリップの一部分など。スパンアノテーションを参照。
- 評価とスコアリング:項目を尺度上に配置する。1〜5 の品質判断など。評価尺度を参照。
- ランキングと比較:項目を並べ替える、または 2 つのうち良い方を選ぶ。ペア比較とベスト–ワースト尺度法を参照。
- 構造化アノテーション:スパンを関係としてつなぐ、共参照チェーンを作る、イベントをアノテーションする。関係抽出とイベント抽出を参照。
- 自由記述:説明、修正、または書き起こしを記述する。
最小限の例
Potato での感情タスクは数行の YAML です。annotation_schemes ブロックがアノテーターに表示されるラベルを定義します。
annotation_schemes:
- annotation_type: radio
name: sentiment
description: "What is the overall sentiment of this review?"
labels:
- Positive
- Negative
- Neutralこれがインターフェース定義のすべてです。データを用意して potato start を実行すれば、アノテーターはブラウザでラベルを付けられます。
プロジェクトの一般的な進め方
- タスクを定義する。 問いとラベル集合を書き出す。
- ガイドラインを書く。 アノテーターにルールと例を示す。アノテーションガイドラインの書き方を参照。
- パイロットを行う。 小さなバッチをラベル付けし、不一致を見つけ、ガイドラインを磨く。
- 重複を設けてアノテーションする。 複数人に同じ項目をラベル付けさせ、一致度を測れるようにする。
- 一致度を測る。 アノテーター間一致度を参照。
- 裁定してエクスポートする。 不一致を解消し、学習または分析用にエクスポートする。
さらに読む
- アノテーションスキームの選び方
- クイックスタート、5 分で Potato を起動する
- アノテーションスキームのリファレンス