Amazon Rekognition およびその他のコンテンツモデレーションサービス PlatoBlockchain Data Intelligence でのコンテンツモデレーションを評価するためのメトリクス。垂直検索。あい。

Amazon Rekognition およびその他のコンテンツ管理サービスでコンテンツ管理を評価するためのメトリクス

コンテンツ モデレーションとは、ユーザーが作成したコンテンツをオンラインで選別および監視するプロセスです。 ユーザーとブランドの両方に安全な環境を提供するために、プラットフォームはコンテンツをモデレートして、プラットフォームとその視聴者に固有の許容される行動の事前に確立されたガイドラインの範囲内に収まるようにする必要があります。

プラットフォームがコンテンツをモデレートすると、許容可能なユーザー生成コンテンツ (UGC) が作成され、他のユーザーと共有されます。 不適切、有毒、または禁止された行為は、プラットフォームが実施しているコンテンツ モデレーション ツールと手順に応じて、防止、リアルタイムでブロック、または事後に削除することができます。

あなたが使用することができます Amazon Rekognition コンテンツ管理 不適切、望ましくない、または不快なコンテンツを検出し、より安全なユーザー エクスペリエンスを作成し、広告主にブランドの安全性を保証し、ローカルおよびグローバルな規制を遵守します。

この投稿では、さまざまな精度メトリクスの観点からコンテンツ モデレーション サービスのパフォーマンス面を評価するために必要な主要な要素について説明し、Amazon Rekognition を使用した例を示します。 コンテンツ モデレーション API.

何を評価するか

コンテンツ モデレーション サービスを評価する場合は、次の手順をお勧めします。

ユース ケースでの API のパフォーマンスを評価する前に、代表的なテスト データセットを準備する必要があります。 次に、いくつかの高レベルのガイドラインを示します。

  • 収集 – 最終的に Amazon Rekognition で実行するデータの十分な大きさのランダム サンプル (画像またはビデオ) を取得します。 たとえば、ユーザーがアップロードした画像をモデレートする予定がある場合は、1,000 週間分のユーザー画像をテストに使用できます。 処理するのに大きすぎない十分な画像 (10,000 ~ XNUMX 画像など) を含むセットを選択することをお勧めしますが、より大きなセットの方が優れています。
  • 定義 – アプリケーションのコンテンツガイドラインを使用して、Amazon Rekognition から検出する安全でないコンテンツのタイプを決定します モデレートの概念の分類. たとえば、あらゆる種類の露骨なヌードや生々しい暴力や流血を検出したい場合があります。
  • アノテーション – 次に、選択したラベルを使用して、テスト セットに対して人間が生成したグラウンド トゥルースが必要です。これにより、マシンの予測をそれらと比較できます。 これは、選択したコンセプトの有無について各画像に注釈が付けられていることを意味します。 画像データに注釈を付けるには、次を使用できます Amazon SageMakerグラウンドトゥルース (GT) 画像注釈を管理します。 参照できます 画像ラベリング用GT, 注釈の統合 & 注釈出力の処理.

Amazon Rekognition を使用してテスト データセットの予測を取得する

次に、テスト データセットで予測を取得します。

最初のステップは、結果を測定する最小信頼スコア (50% などのしきい値) を決定することです。 デフォルトのしきい値は 50 に設定されています。これにより、大量の安全でないコンテンツを取得しても、安全なコンテンツに対して誤った予測が発生しすぎることがなく、適切なバランスが保たれます。 ただし、プラットフォームによってビジネス ニーズが異なる場合があるため、必要に応じてこの信頼度のしきい値をカスタマイズする必要があります。 を使用できます。 MinConfidence コンテンツの検出 (リコール) と検出の精度 (精度) のバランスを取るための API リクエストのパラメーター。 減らしたら MinConfidence、不適切なコンテンツのほとんどを検出する可能性がありますが、実際には不適切ではないコンテンツも検出する可能性があります. 増やせば MinConfidence 検出されたすべてのコンテンツが本当に不適切であることを確認する可能性がありますが、一部のコンテンツはタグ付けされていない可能性があります. いくつか試してみることをお勧めします MinConfidence データセットの値を選択し、データ ドメインに最適な値を定量的に選択します。

次に、Amazon Rekognition モデレート API (検出モデレーションラベル).

画像のモデル精度を測定する

人間が生成したグラウンド トゥルース アノテーションをモデル予測と比較することで、モデルの精度を評価できます。 すべての画像に対してこの比較を個別に繰り返してから、テスト セット全体を集計します。

  • 画像ごとの結果 – モデル予測はペアとして定義されます {label_name, confidence_score} (ここで、信頼スコア >= 前に選択したしきい値)。 各画像について、予測が正しいと見なされるのは、それがグラウンド トゥルース (GT) と一致する場合です。 予測は、次のオプションのいずれかです。
    • 真陽性(TP): 予測と GT の両方が「安全でない」
    • 真陰性 (TN): 予測もGTも「安全」
    • 偽陽性 (FP): 予想では「安全ではない」と書かれていますが、GT は「安全」です
    • フォールスネガティブ(FN): 予測は「安全」ですが、GT は「危険」です
  • すべての画像の集計結果 – 次に、これらの予測をデータセット レベルの結果に集約できます。
    • 偽陽性率 (FPR) – これは、安全でないコンテンツを含むとモデルによって誤ってフラグ付けされたテスト セット内の画像の割合です: (FP): FP / (TN+FP)。
    • 偽陰性率 (FNR) – これは、モデルによって見落とされたテスト セット内の安全でないイメージのパーセンテージです: (FN): FN / (FN+TP)。
    • 真陽性率(TPR) – リコールとも呼ばれ、モデルによって正しく検出または予測された危険なコンテンツ (グラウンド トゥルース) の割合を計算します: TP / (TP + FN) = 1 – FNR.
    • 精度 – これは、行われた予測の総数に対する正しい予測 (危険なコンテンツ) のパーセンテージを計算します: TP / (TP+FP)。

例を見てみましょう。 テスト セットに 10,000 個の画像が含まれているとします。9,950 個が安全で、50 個が安全ではありません。 モデルは、9,800 枚の画像のうち 9,950 枚を安全であると正しく予測し、45 枚のうち 50 枚を危険であると正しく予測します。

  • TP = 45
  • TN = 9800
  • FP = 9950-9800 = 150
  • FN = 50-45 = 5
  • RPF = 150 / (9950 + 150) = 0.015 = 1.5%
  • FNR = 5 / (5 + 45) = 0.1 = 10%
  • TPR/リコール = 45 / (45 + 5) = 0.9 = 90%
  • 精度 = 45 / (45 + 150) = 0.23 = 23%

ビデオでモデルの精度を測定する

ビデオのパフォーマンスを評価する場合は、いくつかの追加手順が必要です。

  1. 各ビデオからフレームのサブセットをサンプリングします。 毎秒 0.3 ~ 1 フレーム (fps) のレートで均一にサンプリングすることをお勧めします。 たとえば、ビデオが 24 fps でエンコードされていて、3 秒 (0.3 fps) ごとに 72 フレームをサンプリングする場合、XNUMX フレームごとに XNUMX つを選択する必要があります。
  2. これらのサンプリングされたフレームを Amazon Rekognition コンテンツ モデレーションを通じて実行します。 すでにフレームを (3 fps のレートで) サンプリングしているビデオ API を使用するか、画像 API を使用して、よりまばらにサンプリングすることができます。 ビデオの情報の冗長性を考慮して、後者のオプションをお勧めします (連続するフレームは非常に似ています)。
  3. 前のセクションで説明したように、フレームごとの結果を計算します (画像ごとの結果)。
  4. テスト セット全体の結果を集計します。 ここでは、ビジネスにとって重要な結果のタイプに応じて、XNUMX つのオプションがあります。
    1. フレームレベルの結果 – これは、サンプリングされたすべてのフレームを独立した画像と見なし、画像 (FPR、FNR、再現率、精度) について前述したのとまったく同じように結果を集約します。 一部の動画が他の動画よりもかなり長い場合、それらの動画の合計フレーム数が多くなり、比較のバランスが崩れます。 その場合、初期サンプリング戦略をビデオあたりの固定フレーム数に変更することをお勧めします。 たとえば、ビデオごとに 50 ~ 100 フレームを均一にサンプリングできます (ビデオの長さが少なくとも 2 ~ 3 分であると仮定します)。
    2. 動画レベルの結果 – 一部のユース ケースでは、モデルがビデオのフレームの 50% または 99% を正しく予測できるかどうかは問題ではありません。 100 つのフレームで危険な予測が XNUMX つでも間違っていれば、下流の人による評価がトリガーされる可能性があり、予測が XNUMX% 正しい動画のみが真に正しいと見なされます。 これがユース ケースである場合は、各ビデオのフレームに対して FPR/FNR/TPR を計算し、ビデオを次のように検討することをお勧めします。
動画ID 正確さ ビデオごとの分類
ビデオ ID のすべてのフレームにわたって集計された結果

総FP = 0

合計 FN = 0

完璧な予測
. 総FP > 0 誤検知(FP)
. 合計 FN > 0 フォールスネガティブ(FN)

ビデオごとにこれらを個別に計算したら、前に紹介したすべてのメトリックを計算できます。

  • 誤って報告された (FP) または見逃された (FN) 動画の割合
  • 適合率と再現率

目標に対するパフォーマンスを測定する

最後に、これらの結果を目標と能力に照らして解釈する必要があります。

まず、次の点についてビジネス ニーズを検討します。

  • 且つ – データ (毎日の量、データの種類など) と、安全でないコンテンツと安全なコンテンツの分布について学びます。 たとえば、バランスがとれている (50/50)、歪んでいる (10/90)、または非常に歪んでいる (1/99、つまり安全でないのは 1% のみ) ですか? このような分布を理解すると、実際の指標の目標を定義するのに役立ちます。 たとえば、安全なコンテンツの数は安全でないコンテンツよりも桁違いに多い (非常に偏っている) ことが多く、これはほとんど異常検出の問題になります。 このシナリオでは、偽陽性の数が真陽性の数を上回る可能性があり、データ情報 (分布の歪度、データ量など) を使用して、使用できる FPR を決定できます。
  • 指標の目標 – あなたのビジネスの最も重要な側面は何ですか? 多くの場合、FPR を下げると FNR が高くなります (その逆も同様です)。自分に合った適切なバランスを見つけることが重要です。 安全でないコンテンツを見逃すことができない場合は、ほぼ 0% の FNR (100% のリコール) が必要になる可能性があります。 ただし、これにより最大数の誤検知が発生するため、予測後のパイプラインに基づいて、使用できるターゲット (最大) FPR を決定する必要があります。 より良いバランスを見つけて FPR を下げることができるように、ある程度の偽陰性を許可したい場合があります。フラグ付きコンテンツの。

次に、フラグ付きの画像を解析するためにどのメカニズムを使用するかを自問してください。 API は 0% の FPR と FNR を提供しない場合がありますが、それでも大幅な節約とスケーリングをもたらすことができます (たとえば、画像の 3% のみにフラグを立てることで、コンテンツの 97% を既に除外しています)。 API をいくつかのダウンストリーム メカニズム (フラグ付きのコンテンツをレビューする人間の労働力など) と組み合わせると、目標を簡単に達成できます (たとえば、0.5% のフラグ付きコンテンツ)。 このペアリングは、コンテンツの 100% に対して人によるレビューを行うよりもはるかに安価であることに注意してください。

ダウンストリーム メカニズムを決定したら、サポートできるスループットを評価することをお勧めします。 たとえば、2 日のコンテンツの 2% しか確認できない従業員がいる場合、コンテンツ モデレーション API のターゲット目標はフラグ レート (FPR+TPR) XNUMX% です。

最後に、グラウンド トゥルース アノテーションを取得するのが難しすぎる、またはコストがかかりすぎる場合 (たとえば、データ量が多すぎる場合)、API によってフラグが付けられた少数の画像にアノテーションを付けることをお勧めします。 これでは FNR 評価はできませんが (データに偽陰性が含まれていないため)、TPR と FPR を測定することはできます。

次のセクションでは、画像モデレーション評価のソリューションを提供します。 ビデオのモデレーション評価にも同様のアプローチを採用できます。

ソリューションの概要

次の図は、テスト データセットでの Amazon Rekognition コンテンツ モデレーションのパフォーマンスを評価するために使用できるさまざまな AWS サービスを示しています。

コンテンツ モデレーションの評価には、次の手順があります。

  1. 評価データセットをアップロードする Amazon シンプル ストレージ サービス (Amazon S3)。
  2. Ground Truth を使用して、Ground Truth モデレーション ラベルを割り当てます。
  3. いくつかのしきい値を使用して、Amazon Rekognition の事前トレーニング済みモデレーション API を使用して、予測されたモデレーション ラベルを生成します。 (たとえば、70%、75%、80%)。
  4. 真陽性、真陰性、偽陽性、偽陰性を計算して、各しきい値のパフォーマンスを評価します。 ユース ケースに最適なしきい値を決定します。
  5. 必要に応じて、真陽性と偽陽性に基づいて従業員の規模を調整し、 Amazon拡張AI (Amazon A2I) を使用して、フラグが立てられたすべてのコンテンツを指定された従業員に自動的に送信し、手動でレビューします。

次のセクションでは、手順 1、2、および 3 のコード スニペットを示します。完全なエンド ツー エンドのソース コードについては、提供されている Jupyter Notebook.

前提条件

始める前に、次の手順を実行してJupyterノートブックをセットアップします。

  1. ノートブックインスタンスを作成する in アマゾンセージメーカー.
  2. ノートブックがアクティブなときに、 Jupyterを開く.
  3. Jupyterダッシュボードで、 新作、選択して ターミナル.
  4. ターミナルで、次のコードを入力します。
    cd SageMaker
    git clone https://github.com/aws-samples/amazon-rekognition-code-samples.git

  5. この投稿のノートブックを開きます。 content-moderation-evaluation/Evaluating-Amazon-Rekognition-Content-Moderation-Service.ipynb.
  6. 評価データセットをアップロードします Amazon シンプル ストレージ サービス (Amazon S3)。

Jupyter ノートブックで手順 2 から 4 を実行します。

Ground Truth を使用してモデレーション ラベルを割り当てる

Ground Truth でラベルを割り当てるには、次の手順を実行します。

  1. マニフェスト入力ファイルを作成する Ground Truth ジョブの場合、Amazon S3 にアップロードします。
  2. Ground Truth ラベル付けジョブに必要なすべてのモデレーション ラベルを含むラベル付け構成を作成します。使用できるラベル カテゴリ数の制限を確認するには、次を参照してください。 ラベル カテゴリのクォータ. 次のコード スニペットでは、XNUMX つのラベルを使用しています ( Amazon Rekognition で使用される階層的分類法 詳細) と XNUMX つのラベル (Safe_Content) コンテンツを安全とマークする:
    # customize CLASS_LIST to include all labels that can be used to classify sameple data, it's up to 10 labels
    # In order to easily match image label with content moderation service supported taxonomy, 
    
    CLASS_LIST = ["

  3. カスタム ワーカー タスク テンプレートを作成して、グラウンド トゥルースの従業員にラベル付けの指示を提供し、それを Amazon S3 にアップロードします。
    Ground Truth ラベル ジョブは、画像分類 (マルチラベル) タスクとして定義されます。 命令テンプレートをカスタマイズする手順については、ソース コードを参照してください。
  4. Ground Truth ジョブを完了するために使用する労働力を決定します。 XNUMX つのオプションがあります (詳細については、ソース コードを参照してください)。
    1. 使用 民間労働力 独自の組織で、評価データセットにラベルを付けます。
    2. 使用 公務員 評価データセットにラベルを付けます。
  5. Ground Truth ラベル付けジョブを作成して送信します。 次のコードを調整して、 ジョブパラメータのラベル付け 特定のビジネス要件を満たすために。 Ground Truth ジョブの作成と構成に関する詳細な手順については、ソース コードを参照してください。
    human_task_config = {
        "AnnotationConsolidationConfig": {
            "AnnotationConsolidationLambdaArn": acs_arn,
        },
        "PreHumanTaskLambdaArn": prehuman_arn,
        "MaxConcurrentTaskCount": 200,  # 200 images will be sent at a time to the workteam.
        "NumberOfHumanWorkersPerDataObject": 3,  # 3 separate workers will be required to label each image.
        "TaskAvailabilityLifetimeInSeconds": 21600,  # Your workteam has 6 hours to complete all pending tasks.
        "TaskDescription": task_description,
        "TaskKeywords": task_keywords,
        "TaskTimeLimitInSeconds": 180,  # Each image must be labeled within 3 minutes.
        "TaskTitle": task_title,
        "UiConfig": {
            "UiTemplateS3Uri": "s3://{}/{}/instructions.template".format(BUCKET, EXP_NAME),
        },
    }

ジョブが送信されると、次のような出力が表示されます。

Labeling job name is: ground-truth-cm-1662738403

評価データセットのラベル付けジョブが正常に完了するまで待ってから、次のステップに進みます。

Amazon Rekognition モデレーション API を使用して、予測モデレーション ラベルを生成します。

次のコード スニペットは、Amazon Rekognition の使用方法を示しています。 モデレーション API モデレート ラベルを生成するには:

client=boto3.client('rekognition')
def moderate_image(photo, bucket):
    response = client.detect_moderation_labels(Image={'S3Object':{'Bucket':bucket,'Name':photo}})
    return len(response['ModerationLabels'])

パフォーマンスを評価する

まず、評価データセットの Ground Truth ラベル付けジョブの結果からグラウンド トゥルース モデレーション ラベルを取得し、次に Amazon Rekognition モデレーション API を実行して、同じデータセットの予測モデレーション ラベルを取得しました。 これはバイナリ分類の問題 (安全なコンテンツと安全でないコンテンツ) であるため、次のメトリックを計算します (安全でないコンテンツが肯定的であると仮定します)。

また、対応する評価指標も計算します。

次のコード スニペットは、これらの指標を計算する方法を示しています。

FPR = FP / (FP + TN)
FNR = FN / (FN + TP)
Recall = TP / (TP + FN)
Precision = TP / (TP + FP)

まとめ

この投稿では、コンテンツ モデレーション サービスのパフォーマンス面を評価するために必要な主要な要素について、さまざまな精度指標の観点から説明します。 ただし、正確性は、特定のコンテンツ モデレート サービスを選択する際に評価する必要がある多くの側面の XNUMX つにすぎません。 サービスの全体的な機能セット、使いやすさ、既存の統合、プライバシーとセキュリティ、カスタマイズ オプション、スケーラビリティへの影響、顧客サービス、価格設定など、他のパラメーターを含めることが重要です。 Amazon Rekognition でのコンテンツ管理の詳細については、次のサイトをご覧ください。 Amazon Rekognition コンテンツ管理.


著者について

Amazon Rekognition およびその他のコンテンツモデレーションサービス PlatoBlockchain Data Intelligence でのコンテンツモデレーションを評価するためのメトリクス。垂直検索。あい。アミット・グプタ AWS のシニア AI サービス ソリューション アーキテクトです。 彼は、適切に設計された機械学習ソリューションを大規模に顧客に提供することに情熱を注いでいます。

Amazon Rekognition およびその他のコンテンツモデレーションサービス PlatoBlockchain Data Intelligence でのコンテンツモデレーションを評価するためのメトリクス。垂直検索。あい。ダヴィデ・モドロ AWS AI Labs の応用科学マネージャーです。 彼はエジンバラ大学 (英国) でコンピュータ ビジョンの博士号を取得しており、現実世界の顧客の問題に対する新しい科学的ソリューションの開発に情熱を注いでいます。 仕事以外では、旅行やあらゆる種類のスポーツ、特にサッカーを楽しんでいます。

Amazon Rekognition およびその他のコンテンツモデレーションサービス PlatoBlockchain Data Intelligence でのコンテンツモデレーションを評価するためのメトリクス。垂直検索。あい。ジャン・ウー AWS のシニア エンタープライズ ソリューション アーキテクトです。 彼は AWS で 6 年間、あらゆる規模の顧客と協力してきました。 彼は、クラウドと AI/ML の採用を通じて顧客がより迅速にイノベーションを行えるよう支援することに情熱を注いでいます。 AWS に入社する前は、ソフトウェア開発、システム実装、およびインフラストラクチャ管理に 10 年以上取り組んでいました。 仕事以外では、アクティブに過ごし、家族と過ごす時間を楽しんでいます。

タイムスタンプ:

より多くの AWS機械学習