すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:オフラインスケジューリング

最終更新日:Jul 22, 2024

このトピックでは、広告クリックスルー率 (CTR) を予測するときに、Platform for AI (PAI) のデータマイニングコンポーネントを使用してオフラインスケジューリングを実行する方法について説明します。

背景情報

このトピックで使用されるパイプラインには、次の手順が含まれます。

  1. 過去のデータに基づいてPAIでモデルをトレーニングします。

  2. DataWorksでモデルをスケジュールします。

  3. 毎日の早朝に、広告のCTRが予測され、予測されたCTRに基づいて広告が配信される。

このパイプラインで使用されるデータセットは、乱数ジェネレータを使用して生成されます。 したがって、パイプラインの結果は評価されません。 このトピックでは、DataWorksでパイプラインを作成し、オフラインスケジューリングを実行する方法についてのみ説明します。

ステップ1: データセットの準備

このパイプラインで使用されるトレーニングデータセットには、2016年9月19日および2016年9月20日に配信された広告の履歴データが含まれます。 パイプラインは、2016年9月21日に配信された広告のCTRを予測します。 データセットは、MaxComputeパーティションテーブルに保存されます。 次の表に、データセットのフィールドを示します。

項目

データ型

説明

id

STRING

広告の一意のID。

age

DOUBLE

広告が配信される人の年齢。

性別

DOUBLE

広告が配信される相手の性別。 有効な値: 1 (男性) と0 (女性) 。

期間

DOUBLE

広告の表示期間。 単位は秒です。

場所

DOUBLE

広告が表示される位置。 有効な値: 0〜4。 より高い値は、より低い位置を示す。

ctr

DOUBLE

広告のCTR。 クリック数をビュー数で割った値が広告の0.03を超える場合、このフィールドの値は1になります。 それ以外の場合、このフィールドの値は0です。

dt

STRING

広告が配信された日付。 形式: YYYYMMDD

MaxComputeクライアントを使用して、次のコマンドを実行し、adという名前のパーティションテーブルを作成できます。詳細については、「テーブルの作成」をご参照ください。

create table if not exists ad (id STRING,age DOUBLE,sex DOUBLE,duration DOUBLE,place DOUBLE,ctr DOUBLE ) partitioned by (dt STRING) ;
alter table ad add if not exists partition (dt='20160919') partition (dt='20160920');

次の表は、パイプラインで使用される広告テーブルを示しています。 Tunnelコマンドを実行して、パーティション分割テーブルデータをインポートできます。 詳細については、「テーブルへのデータのインポート」をご参照ください。

id

年齢

セックス

期間

場所

ctr

dt

0

49

1

9

0

0

20160919

1

17

1

3

1

1

20160919

2

44

0

4

0

0

20160919

3

14

1

9

1

0

20160919

4

44

1

5

4

0

20160919

5

10

1

9

3

1

20160919

6

42

1

7

3

0

20160919

7

51

1

3

1

1

20160919

8

18

0

3

3

0

20160919

9

39

0

8

4

1

20160919

10

45

1

3

2

0

20160919

11

57

0

8

2

0

20160919

12

14

0

7

2

1

20160919

ステップ2: パイプラインの作成

  1. カスタムパイプラインを作成し、パイプラインを開きます。 詳細については、「データの準備」をご参照ください。

  2. パイプラインを構築します。

    1. 左側のコンポーネントリストで、[データソース /ターゲット] フォルダーの [テーブルの読み取り] コンポーネントをキャンバスに2回ドラッグし、2つの [テーブルの読み取り] コンポーネントの名前をad-1ad-2に変更します。

    2. 左側のコンポーネントリストで、正規化のコンポーネントデータ前処理フォルダーをキャンバスに2回移動します。

    3. 左側のコンポーネントリストで、機械学習 > バイナリ分類をドラッグし、バイナリ分類のロジスティック回帰コンポーネントをキャンバスに追加します。

    4. 左側のコンポーネントリストで、予測のコンポーネント機械学習フォルダーをキャンバスに移動します。

    5. 左側のコンポーネントリストで、[データソース /ターゲット] フォルダーの [テーブルの書き込み] コンポーネントをキャンバスにドラッグします。 Write Tableコンポーネントの名前をad_result-1に変更します。

    6. 次の図に示すように、上記のコンポーネントを接続します。

      离线模型

      セクション

      説明

      このセクションのコンポーネントは、ソースデータセットからデータをインポートします。

      このセクションのコンポーネントは、ソースデータを前処理します。

      このセクションのコンポーネントはモデルをトレーニングします。

      このセクションのコンポーネントでは、モデルを使用して予測を行います。

  3. コンポーネントの設定

    1. キャンバス上のad-2およびad-1コンポーネントをクリックし、右側のパネルでパラメーターを設定します。 ad-2コンポーネントはトレーニングデータソースとして機能し、ad-1コンポーネントは予測データソースとして機能します。

      タブ

      パラメーター

      説明

      テーブルの選択

      テーブル名

      インポートするMaxComputeテーブルの名前。 広告を入力します。

      パーティション

      MaxComputeテーブルがパーティションテーブルかどうかを指定します。 MaxComputeテーブルがパーティションテーブルの場合、システムは自動的にPartitionを選択します。

      パラメーター

      インポートするデータ。 このパラメーターをdt=@ @{yyyyMMdd} 形式の値に設定します。 このパラメータにより、毎日の増分データが予測データとしてインポートされます。

      フィールド情報

      ソーステーブル列

      インポートするMaxComputeテーブルの列。 [テーブルの選択] タブでパラメーターを設定すると、MaxComputeテーブルの列が自動的に表示されます。

    2. キャンバスで [Normalization -1] コンポーネントをクリックします。 右側のパネルの [フィールド設定] タブで、[フィールドの選択] をクリックし、ダブルタイプまたはINTタイプのフィールドを選択します。 Normalization -2コンポーネントに対しても同じ操作を実行します。

    3. キャンバスで [バイナリ分類のロジスティック回帰] コンポーネントをクリックし、右側のパネルでパラメーターを設定します。 次の表に記載されているパラメーターのみを設定し、他のパラメーターのデフォルト値を使用します。

      タブ

      パラメーター

      説明

      フィールド設定

      トレーニング機能列

      トレーニングに使用する列。 年齢性別期間、および場所を選択します。

      ターゲット列

      CTRデータを格納する列。 ctrを選択します。

    4. キャンバスで [予測] コンポーネントをクリックし、右側のパネルでパラメーターを設定します。 次の表に記載されているパラメーターのみを設定し、他のパラメーターのデフォルト値を使用します。

      タブ

      パラメーター

      説明

      フィールド設定

      フィーチャー列

      トレーニングに使用する列。 年齢性別期間、および場所を選択します。

      予約済み列

      CTRデータを格納する列。 ctrを選択します。

    5. キャンバスでad_result-1コンポーネントをクリックします。 [テーブルの選択] タブで、[新しいテーブル名] フィールドをad_resultに設定します。

  4. キャンバスの上部ツールバーにあるimageキアイコンをクリックし、パイプラインを実行します。

  5. パイプラインを実行したら、右クリックします。ad_result-1キャンバス上で選択しますデータの表示 > 出力を表示予測結果に基づいて生成されたテーブルを表示します。

    表の中:

    • prediction_result: 広告がクリックされたかどうかを示します。 有効な値: 1と0。 1は、広告がクリックされたことを示し、0は、広告がクリックされなかったことを示す。

    • prediction_score: 広告がクリックされる確率を示します。

ステップ3: DataWorksでオフラインスケジューリングを実行する

  1. DataWorksでPAIノードを作成します。 詳細については、「Machine Learning DesignerでのDataWorksタスクの使用によるパイプラインのスケジュール」をご参照ください。

    毎日00:00にPAIノードをスケジュールするようにDataWorksを設定します。 詳細については、「時間プロパティの設定」をご参照ください。

  2. ノードをコミットし、オペレーションセンターに移動してノードのログを表示します。 詳細については、「自動トリガーノードの表示と管理」をご参照ください。

関連ドキュメント