Amazon SageMakerを使用して電子メールのスパム検出器を構築する

Amazon SageMakerでスパム検出器を作る

スパムメール、または迷惑メールとも呼ばれるものは、一度に大量のユーザーに送信され、しばしば詐欺、フィッシング内容、または難解なメッセージを含んでいます。スパムメールは、時には人間によって手動で送信されますが、ほとんどの場合はボットを使用して送信されます。スパムメールの例には、偽の広告、連鎖メール、なりすましの試みなどがあります。特にうまく偽装されたスパムメールが受信トレイに入るリスクがあります。クリックされると危険です。デバイスと機密情報を保護するために追加の注意を払うことが重要です。

技術の進歩に伴い、スパムメールの検出はその変化する性質のために課題となっています。スパムは他のセキュリティ脅威とはかなり異なります。最初は迷惑なメッセージに見えるだけでなく脅威ではないように見えるかもしれませんが、即効性があります。また、スパマーは頻繁に新しい技術を採用します。メールサービスを提供する組織は、エンドユーザーに損害を与えないためにスパムをできるだけ最小限に抑えたいと考えています。

この投稿では、Amazon SageMakerを使用して電子メールのスパム検出器を構築する方法を紹介します。組み込みのBlazingTextアルゴリズムは、Word2vecとテキスト分類のアルゴリズムの最適化された実装を提供しています。Word2vecは、感情分析、固有表現認識、機械翻訳などのさまざまな自然言語処理(NLP)のタスクに役立ちます。テキスト分類は、ウェブ検索、情報検索、ランキング、ドキュメント分類などのアプリケーションに不可欠です。

ソリューションの概要

この投稿では、SageMakerを使用して電子メールのスパム検出器を設定し、スパムメールをフィルタリングする方法を示します。次の図に示すように、スパム検出器は電子メールを送信します。スパム検出器がスパムとして検出した場合、電子メールはスパムフォルダに送信されます。それ以外の場合は、顧客の受信トレイに送信されます。

次の手順でスパム検出器モデルを設定するために進めます:

  1. GitHubリポジトリからサンプルデータセットをダウンロードします。
  2. Amazon SageMaker Studioノートブックでデータをロードします。
  3. モデルのためのデータを準備します。
  4. モデルのトレーニング、デプロイ、テストを行います。

前提条件

このユースケースに取り組む前に、次の前提条件を満たしてください:

  1. AWSアカウントをセットアップします。
  2. SageMakerドメインを設定します。
  3. Amazon Simple Storage Service(Amazon S3)バケットを作成します。手順については、「最初のS3バケットを作成する」を参照してください。

データセットのダウンロード

GitHubからemail_dataset.csvをダウンロードし、ファイルをS3バケットにアップロードします。

BlazingTextアルゴリズムは、スペースで区切られたトークンを持つ単一の前処理済みテキストファイルを想定しています。ファイルの各行には単一の文が含まれている必要があります。複数のテキストファイルでトレーニングする必要がある場合は、それらを1つのファイルに連結して、該当するチャネルにファイルをアップロードしてください。

SageMaker Studioでデータをロードする

データのロードを行うために、次の手順を実行してください:

  1. GitHubからspam_detector.ipynbファイルをダウンロードし、SageMaker Studioにファイルをアップロードします。
  2. Studioノートブックで、spam_detector.ipynbノートブックを開きます。
  3. カーネルを選択するように求められた場合は、Python 3(Data Science 3.0)カーネルを選択し、選択を選択します。そうでない場合は、適切なカーネルが自動的に選択されていることを確認してください。

  1. 必要なPythonライブラリをインポートし、ロールとS3バケットを設定します。email_dataset.csvをアップロードしたS3バケットとプレフィックスを指定します。

  1. ノートブックでデータロードステップを実行します。

  1. カテゴリーラベルに基づいてデータセットがバランスしているかどうかを確認します。

データセットがバランスしていることがわかります。

データの準備

BlazingTextアルゴリズムでは、データを以下の形式で期待しています:

__label__<label> "<features>"

以下は例です:

__label__0 “This is HAM"
__label__1 "This is SPAM"

BlazingTextアルゴリズムのトレーニングデータとバリデーションデータの形式を確認してください。

ノートブックでデータ準備ステップを実行します。

  1. まず、Category列を整数に変換する必要があります。次のセルでは、SPAM値を1に置き換え、HAM値を0に置き換えています。

  1. 次のセルでは、各Category値にプレフィックス__label__を追加し、Message列をトークン化しています。

  1. 次のステップは、データセットをトレーニングデータとバリデーションデータに分割し、ファイルをS3バケットにアップロードすることです。

モデルのトレーニング

モデルのトレーニングには、ノートブックで以下の手順を完了します:

  1. BlazingText推定器をセットアップし、コンテナイメージを渡して推定器インスタンスを作成します。

  1. 学習モードのハイパーパラメータをsupervisedに設定します。

BlazingTextには、教師なし学習モードと教師あり学習モードの両方があります。私たちのユースケースはテキスト分類であり、教師あり学習です。

  1. トレーニングデータとバリデーションデータのチャネルを作成します。

  1. モデルのトレーニングを開始します。

  1. トレーニングデータとバリデーションデータの精度を取得します。

モデルの展開

このステップでは、トレーニング済みのモデルをエンドポイントとしてデプロイします。お好きなインスタンスを選択してください。

モデルのテスト

以下は予測を取得したい3つの電子メールメッセージの例です:

  • 下のリンクをクリックし、詳細を入力してこの賞を獲得してください
  • 最高の夏のお得情報がここにあります
  • 金曜日にオフィスでお会いしましょう

電子メールメッセージをトークン化し、REST APIを呼び出す際に使用するペイロードを指定します。

これで、各電子メールの分類を予測することができます。テキスト分類器の予測メソッドを呼び出し、トークン化された文のインスタンス(ペイロード)をデータ引数に渡します。

クリーンアップ

最後に、予期しない費用を避けるためにエンドポイントを削除することができます。

また、S3バケットからデータファイルを削除してください。

結論

この記事では、SageMaker BlazingTextアルゴリズムを使用して電子メールスパム検出器を作成する手順を説明しました。BlazingTextアルゴリズムでは、大規模なデータセットにスケールすることができます。BlazingTextはテキスト分析とテキスト分類の問題に使用され、教師あり学習と教師なし学習の両方のモードを持っています。このアルゴリズムは、顧客の感情分析やテキスト分類などのユースケースに使用することができます。

BlazingTextアルゴリズムの詳細については、BlazingTextアルゴリズムをご覧ください。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

機械学習

メタAIは、CM3leonを紹介します:最先端のテキストから画像生成を提供し、比類のない計算効率を実現するマルチモーダルのゲームチェンジャー

自然言語処理とテキスト入力に基づいた視覚生成システムは、最近、生成型AIモデルへの新たな関心を引き起こしています。最近...

AIニュース

「2023年の最高の人工知能AIベースのアート生成器」

Dream by Wombo 夢Womboによると、他のAI画像生成器とは異なり、追加費用なしで連続的な画像合成が可能です。予算が限られて...

AIニュース

AIによる安全な自転車ヘルメット、そしてより優れた靴のソール

スイスのETH Zurichの研究者たちが開発した人工知能(AI)ツールは、3Dプリントが可能な新しいメタマテリアルを予測すること...

機械学習

OpenAIはGPT-4 Turboを発表:カスタマイズ可能な人工知能の未来への飛躍

“`html イノベーションが急速で革命的な産業で、OpenAIは広く評価されている言語モデルのより強力でカスタマイズ可能な...

機械学習

AWS AIサービスの能力がFMによって強化されました

「人工知能(AI)は、私たちがビジネスを行い、顧客にサービスを提供する方法を変革し続けていますAWSは、アプリケーションに...