【初心者】データアノテーションを調べてみた

# 背景・目的
私は、現在データエンジニアリングを生業としています。普段は、データ基盤の構築やパフォーマンスチューニングなどに従事しています。
ビックデータの収集や、蓄積、分析などの環境構築の経験はそこそこありますが、機械学習による予測や分類などのスキルは持ち合わせていませんでした。
今まで機械学習を避け続けてきましたが、一念発起し学ぼうと思います。

学び方としては、AWS Certified Machine Learning – Specialty（以降、ML試験という。）の勉強を通して、理解を深めていこうと思います。
ML試験のガイドを読むと、第２分野に探索的データ解析が出ていましたので、そこから学びたいと思います。

以前、以下について学習を進めてきましたが、今回はデータラベリングについて学びたいと思います。

- [【初心者】データの拡張を調べてみた](https://qiita.com/zumax/items/0727e329f3322897d3e7)
- [【初心者】データのスケーリングを調べてみた](https://qiita.com/zumax/items/ca7184dcf4e7fd242128)
- [【初心者】探索的データ解析とは何かを調べてみた](https://qiita.com/zumax/items/52c97307bf18f407bb6e)

# まとめ
- データラベリングは、データアノテーションとも言われる。
- 教師あり学習において、データアノテーションは重要な役割を担っており、機械学習のトレーニングに欠かせないデータの品質を高める工程や作業です。
- データアノテーションには、以下のような様々な手法があります。（音声は詳細を見つけられませんでした。）

| アノテーションの種類|手法| 説明|
|:--|:--|:--|
|画像 |物体検出（オブジェクト ディテクション / Object Detection）| 画像に写っているものに対して、「人」「電車」など物体を検出し、そこに意味を示すタグを付ける。|
| |領域抽出（セグメンテーション / Segmentation）|画像の中で特定の領域を抽出し、「この領域が猫」のように、その部分が示す意味をタグ付けする。 |
| |画像分類(クラシフィケーション / Classification)| 画像に対して、「これは猫か犬か」「どういう色か」「どういう模様か」などの属性をタグ付けし、分類できるようにする。|
| |特徴点付与（キーポイント / Keypoint）| パーツの各所につけられた座標をもとに全体像を割り出すために用いられ、画像に写っている人などの対象物の特徴点に座標情報を付与する。|
|テキスト |センチメントアノテーション| SNSやeコマースサイトなどのプラットフォーム上で攻撃的なキーワードやセンシティブなキーワードにタグを付けることで、感情やコンテンツを評価する|
| |インテントアノテーション| ユーザーの意図を、リクエスト、命令、予約、推奨、確認などの主要なカテゴリに区別する。|
| |セマンティックアノテーション| 製品のタイトルや検索クエリ内のさまざまなコンポーネントにタグを付けることで、アルゴリズムをトレーニングしてそれらの個々のパーツを認識し、全体的な検索の関連性を向上させる。|
| |固有表現抽出| 主要な記述子を識別した上でのタグ付けや、SNS上の人物、場所、会社、組織、タイトルなど固有表現へのタグ付けなどを行う。|
|音声 |-|　一つひとつの単語の意味をタグ付けしていく |

- アノテーションのアプローチには、以下ものがあります。
    - 社内のスタッフとリソースで実施
    - アウトソーシング
    - クラウドソーシング
    - マシン

# 概要
## データラベリングとは？
[こちら](https://aidata.jp/blog/data-labelling/)を参考に、デーラベリングについて意味、特徴を整理します。

機械学習で重要な要素に、高品質なデータ収集と適切なラベル付があります。
トレーニングのためのデータ品質が悪い場合や、十分な量のデータが集められない場合に実用的なプロダクトは完成しない。
データラベリングのことを、鍛えるためのラベル付け作業とも言えます。（データに正解となる分類情報を付与すること）
この作業のことを、**データラベリングアノテーション**ともいいます。

## アノテーションとは？
AIsmilyさんの「[アノテーションとは？AI開発に必要な基礎知識を分かりやすく解説！](https://aismiley.co.jp/ai_news/what-is-annotation-that-is-often-heard-in-ai/)」の記事を参考に、アノテーションについて意味、特徴を整理します。

アノテーションは、注釈という意味。テキストや音声、画像などに対してタグやメタデータを付ける作業であり、
アノテーションにより作成されたタグ付けデータのことを「教師データ」というようです。

### アノテーションの種類
以下の種類があるとのことです。

- 画像
> 画像（映像）アノテーションは、電子商取引における商品リスト分類などに活用されているものです。機械学習による画像認識（映像処理）は、機密情報の漏洩防止、自動車の自動運転などにも活用されています。
これらは、画像（映像）の内容を正しく理解しなければ機能しません。そのため、正確にタグ付けされた大量のデータを活用し、その現場測定データを用いて機械学習のアルゴリズムに画像認識（映像処理）の学習を行わせるのです。

画像のアノテーションには、以下の手法があります。
- 物体検出（オブジェクト ディテクション / Object Detection）
    - 画像に写っているものに対して、「人」「電車」など物体を検出し、そこに意味を示すタグを付ける。
- 領域抽出（セグメンテーション / Segmentation）
    - 画像の中で特定の領域を抽出し、「この領域が猫」のように、その部分が示す意味をタグ付けする。
- 画像分類(クラシフィケーション / Classification)
    - 画像に対して、「これは猫か犬か」「どういう色か」「どういう模様か」などの属性をタグ付けし、分類できるようにする。
- 特徴点付与（キーポイント / Keypoint）
    - パーツの各所につけられた座標をもとに全体像を割り出すために用いられ、画像に写っている人などの対象物の特徴点に座標情報を付与する。

教師付きデータを作成しモデルを学習させることで、効率的に画像の抽出や分類、検索ができるようになる。

- テキスト
> テキストやコンテンツの分類作業も「アノテーション」の一部といえるでしょう。あらかじめ定義付けされたカテゴリを、フリーテキストで書かれた文書に割り当てていくというものです。これにより、文章をトピックごとにタグ付けしていくことができるようになります。
代表例としては、ニュースサイトなどにおいて「国内」「スポーツ」「エンタメ」「経済」といったように、カテゴリごとにニュースを分類することなどが挙げられるでしょう。これはまさに、アノテーションによって実現できているものなのです。

テキストのアノテーションには、以下の手法があります。
- センチメントアノテーション
    - 感情分析では、態度、感情、意見を評価するため、適切なトレーニングデータを取得することが重要。
    - SNSやeコマースサイトなどのプラットフォーム上で攻撃的なキーワードやセンシティブなキーワードにタグを付けることで、感情やコンテンツを評価する
- インテントアノテーション
    - 機械学習では、自然言語とユーザーの意図の両方を理解できなければならない。
    - ユーザーの意図を、リクエスト、命令、予約、推奨、確認などの主要なカテゴリに区別する。
- セマンティックアノテーション
    - 商品リストを改善し、顧客が探している商品を見つけられるように検索の精度を改善する
    - 製品のタイトルや検索クエリ内のさまざまなコンポーネントにタグを付けることで、アルゴリズムをトレーニングしてそれらの個々のパーツを認識し、全体的な検索の関連性を向上させる。
- 固有表現抽出
    - Named Entity Recognition,NER
    - 主要な記述子を識別した上でのタグ付けや、SNS上の人物、場所、会社、組織、タイトルなど固有表現へのタグ付けなどを行う。

- 音声
> 音声のアノテーションは、「音量や音の種類」にタグ付けを行う作業と、「音声の意味」にタグ付けを行う作業の2種類が存在します。具体的な作業方法は、音声を文字に起こしてから単語一つひとつに意味をタグ付けしていくというものです。
主に、音声認識の分野で活用されることが多いアノテーションであり、コールセンターやスマートスピーカーなどで高い精度を実現するために欠かせない作業といえます。
たとえば、コールセンターの場合、「イヤホン」「メーカー」といった名詞だけでなく、「あの」「えー」「うーん」といった感動詞も会話に用いられるため、それらを正しく理解しなければなりません。そのために必要となるのが、一つひとつの単語の意味をタグ付けしていくアノテーションなのです。

## アノテーションの方法
以下の方法があるようです。
- 社内のスタッフとリソースで実施
    - 正社員で実施する。
- アウトソーシング
    - 期間限定で雇用契約を結ぶ。
- クラウドソーシング
    - 専門のパートナーに依頼する。
    - 提供している会社（サービス）が多かったです。
- マシン
    - 機械的に実施する。（自動的に実施する）

## AWSのサービスでは？
ML Specialist試験を受験するにあたり、AWSでどのようなサービスが提供されているかも理解しておきたいと思います。
AWSの「[Amazon SageMaker Data Labeling](https://aws.amazon.com/jp/sagemaker/data-labeling/)」によると、以下のサービスを提供しています。
AWSでは、Amazon SageMaker Ground Truth Plus と Amazon SageMaker Ground Truth の 2 つのデータラベリングサービスを提供しています。
それぞれの特徴は、以下のとおりです。

- Amazon SageMaker Ground Truth Plus
    - 機械学習タスクのトレーニングを受けたエキスパートワークフォースを提供し、データセキュリティ、プライバシー、コンプライアンスの要件を満たすことができます。データをアップロードするだけで、Amazon SageMaker Ground Truth Plus がデータラベリングのワークフローを作成し、ワークフローの管理を代行します。
- Amazon SageMaker Ground Truth
    - データラベリングワークフローを柔軟に構築および管理し、独自のデータラベリングワークフォースを管理したい場合は、Amazon SageMaker Ground Truthを使用できます。SageMaker Ground Truth は、データのラベル付けを簡単に行うことができるデータラベリングサービスで、Amazon Mechanical Turk、サードパーティーベンダー、または独自のプライベートワークフォースを介して人間のアノテーターを使用するオプションを提供します。

SageMaker Ground Plusがクラウドソーシングに近いイメージで、アップロードするだけであとはアノテーション済みのデータが作成される。Amazon SageMaker Ground Truth(Plusなし)が、AWSサービスや、サードパーティベンダー、内製されたリソースなどを組み合わせてワークフローを管理する」ようです。


# 参考
https://active.nikkeibp.co.jp/expo/xtech/atcl/news/00047/

https://aidata.jp/blog/data-labelling/

https://aismiley.co.jp/ai_news/what-is-annotation-that-is-often-heard-in-ai/

https://www.cybertech.co.jp/ito/service/annotation/

https://aws.amazon.com/jp/sagemaker/data-labeling/