問題を理解する

問題を把握するには、次の操作を行います。

  • 開発またはリファクタリングするプロダクトの目標を述べます。
  • 目標を予測 ML、生成 AI、ML 以外のソリューションのいずれで解決するのが最適かを判断します。
  • ML 予測アプローチを使用している場合は、モデルのトレーニングに必要なデータがあることを確認します。

目標を明記する

まず、ML 以外の用語で目標を述べます。目標は、「何を達成しようとしているのか」という質問に対する答えです。

次の表に、架空のアプリの目標を明記します。

アプリケーション 目標
天気アプリ 地理的地域の降水量を 6 時間単位で計算します。
ファッション アプリ さまざまなシャツのデザインを生成します。
動画アプリ 役立つ動画をおすすめする。
メールアプリ スパムを検出します。
金融アプリ 複数のニュース ソースから財務情報を要約します。
地図アプリ 移動時間を計算します。
銀行アプリ 不正な取引を特定する。
レストラン アプリ レストランのメニューから料理の種類を特定する。
e コマースアプリ レビューに返信して、有用な回答を提供します。

ML の明確なユースケース

ML は、すべての問題に適用できる汎用ツールと見なされることがあります。実際には、ML は特定の問題にのみ適した特殊なツールです。よりシンプルな ML 以外のソリューションで問題が解決する場合、複雑な ML ソリューションを実装する必要はありません。

ML システムは、予測 ML生成 AIの 2 つのカテゴリに大きく分類できます。次の表に、それぞれの特徴を示します。

入力 出力 トレーニング手法
予測 ML テキスト
画像
音声
動画
数値
予測を行います。たとえば、メールを迷惑メールまたは迷惑メール以外に分類したり、明日の降水量を推測したり、株式の価格を予測したりします。通常、出力は現実と照らし合わせて検証できます。 通常、大量のデータを使用して、教師あり学習、教師なし学習、強化学習モデルをトレーニングし、特定のタスクを実行します。
生成 AI テキスト
画像
音声
動画
数値
記事の要約、音声クリップやショート動画の作成など、ユーザーの意図に基づいて出力を生成します。 通常、大量のラベルなしデータを使用して大規模な言語モデルまたは画像生成ツールをトレーニングし、不足しているデータを補完します。その後、このモデルは空白補完タスクとしてフレーム化できるタスクに使用できます。また、分類などの特定のタスクのラベル付きデータでトレーニングしてファインチューニングすることもできます。

ML が適切なアプローチであることを確認するには、まず、現在の ML 以外のソリューションが最適化されていることを確認します。ML 以外のソリューションが実装されていない場合は、ヒューリスティクスを使用して問題を手動で解決してみてください。

ML 以外のソリューションは、ML が問題に適したユースケースであるかどうかを判断するために使用するベンチマークです。ML 以外のアプローチと ML アプローチを比較する際は、次の点を考慮してください。

  • 品質。ML ソリューションがどれくらい優れていると思いますか?ML ソリューションで改善がわずかになると予想される場合は、現在のソリューションが最適である可能性があります。

  • 費用とメンテナンス。ML ソリューションは短期的にも長期的にもどの程度費用がかかりますか?場合によっては、ML を実装するためのコンピューティング リソースと時間の点で、大幅な費用増加が発生することがあります。次のことを検討してください。

    • ML ソリューションは費用増加を正当化できるか?大規模なシステムでわずかな改善を加えるだけで、ML ソリューションの実装にかかる費用とメンテナンスの費用を簡単に正当化できます。
    • ソリューションのメンテナンスにはどの程度の費用がかかりますか?多くの場合、ML 実装には専用の長期メンテナンスが必要です。
    • お客様の製品には、ML の専門知識を持つ人材のトレーニングや採用をサポートするリソースがありますか?

理解度を確認する

ML ソリューションを分析する前に、ML 以外のソリューションまたはヒューリスティクスを用意しておくことが重要なのはなぜですか。
ML 以外のソリューションは、ML ソリューションの費用を決定するうえで役立ちます。
ML 以外のソリューションは、ML ソリューションを測定するベンチマークです。

予測 ML とデータ

データは予測型 ML の原動力です。優れた予測を行うには、予測力のある特徴を含むデータが必要です。データには次の特性が必要です。

  • 豊富データセットに関連性の高い有用なサンプルが多いほど、モデルの精度は高くなります。

  • 一貫性と信頼性。一貫性と信頼性を持って収集されたデータがあれば、より優れたモデルを作成できます。たとえば、ML ベースの気象モデルは、同じ信頼できる計測機器から長年にわたって収集されたデータからメリットを得ることができます。

  • 信頼できる。データの取得元を把握する。データは、プロダクトのロギングなど、管理している信頼できるソースから取得されるのか、それとも、別の ML システムの出力など、あまり詳細を把握していないソースから取得されるのか。

  • 利用可能。すべての入力が予測時に正しい形式で利用可能であることを確認します。予測時に特定の特徴値を取得するのが難しい場合は、それらの特徴をデータセットから除外します。

  • 正解です。大規模なデータセットでは、一部のラベルに誤った値が含まれることは避けられません。ただし、ラベルのごく一部が間違っている場合でも、モデルの予測精度は低下します。

  • 代表者。データセットは、できるだけ現実世界を代表するものである必要があります。つまり、データセットは、モデル化される現実世界の出来事、ユーザー行動、現象を正確に反映している必要があります。代表性のないデータセットでトレーニングを行うと、モデルに実世界での予測を依頼したときにパフォーマンスが低下する可能性があります。

必要な形式で必要なデータを取得できない場合、モデルは不正確な予測を行います。

予測力

モデルが正確な予測を行うには、データセット内の特徴に予測力がなければなりません。特徴量とラベルの相関が高いほど、そのラベルを予測する可能性が高くなります。

一部の特徴量は他の特徴量よりも予測力が高くなります。たとえば、気象データセットでは、moon_phaseday_of_week よりも、cloud_coveragetemperaturedew_point などの特徴が雨の予測に適しています。動画アプリの例では、video_descriptionlengthviews などの特徴量が、ユーザーが視聴する動画を予測するのに適している可能性があると仮定できます。

予測力のある特徴を特定するプロセスは時間のかかるプロセスです。モデルのトレーニング中に特徴を削除または追加することで、特徴の予測力を手動で確認できます。特徴の予測力を自動的に見つけるには、ピアソン相関調整済み相互情報量(AMI)シャプレー値などのアルゴリズムを使用します。これらのアルゴリズムは、特徴の予測力を分析するための数値評価を提供します。

理解度を確認する

データセットを分析する際に、確認すべき 3 つの重要な属性は何ですか。
ローカルマシンに読み込むのに十分なサイズ。
特徴がラベルの予測力を持っている。
正しい値が含まれている。
予測できないさまざまなソースから収集されます。
現実世界をよく表している。

データセットの分析と準備に関する詳細なガイダンスについては、機械学習のためのデータ準備と特徴量エンジニアリングをご覧ください。

予測とアクション

予測をユーザーに役立つアクションに変換できない場合、予測を行う意味はありません。つまり、プロダクトはモデルの出力からアクションを実行する必要があります。

たとえば、ユーザーが動画を有用と判断するかどうかを予測するモデルは、有用な動画をおすすめするアプリにフィードする必要があります。雨が降るかどうかを予測するモデルは、天気アプリにフィードする必要があります。

理解度を確認する

次のシナリオに基づいて、ML の使用が問題に対する最善のアプローチであるかどうかを判断します。

大規模な組織のエンジニアリング チームが、着信電話の管理を担当しています。

目標: 現在の通話量に基づいて、保留中の待ち時間を発信者に伝えます。

現時点では解決策はありませんが、ヒューリスティクスとしては、現在保留中の顧客数を電話に出ている社員の数で除算し、10 分掛けるとよいと考えています。ただし、問題が 2 分で解決するお客様もいれば、45 分以上かかるお客様もいることを理解しています。

ヒューリスティクスでは、十分に正確な数値が得られない可能性があります。number_of_callcenter_phonesuser_issuetime_to_resolvecall_timetime_on_hold の列を持つデータセットを作成できます。

ML は使用しないでください。明確に定義された目標がある場合でも、まず ML 以外のソリューションを実装して最適化する必要があります。また、データセットには予測力のある特徴が十分に含まれていないように見えます。
ML を使用する。エンジニアリング チームには明確な目標があります。ヒューリスティックはユースケースに適していません。データセットには、ラベル time_on_hold の予測特徴があるようです。