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

Platform For AI:スイングトレイン

最終更新日:Jul 22, 2024

Swingはアイテムのリコールアルゴリズムです。 Platform for AI (PAI) のSwing Trainコンポーネントを使用して、ユーザー-アイテム-ユーザーの原則に基づいてアイテムの類似性を測定できます。 このトピックでは、Swing Trainコンポーネントを設定する方法について説明します。

制限事項

Swing Trainコンポーネントは、MaxComputeおよびRealtime Compute for Apache Flinkのコンピューティングリソースに基づいて使用できます。

コンポーネントの設定

次のいずれかの方法を使用してコンポーネントを設定できます。

方法1: PAIコンソールでコンポーネントを設定する

Machine Learning DesignerのパイプラインページでSwing Trainコンポーネントを設定します。 下表に、各パラメーターを説明します。

タブ

パラメーター

説明

フィールド設定

itemCol

アイテム列の名前。

userCol

ユーザー列の名前。

パラメーター設定

アルファ

alphaパラメーター。 デフォルト値 : 1.0

maxItemNumber

計算にアイテムを使用するユーザーの最大数。 デフォルト値は 1000 です。

説明

アイテムの発生数がこの値より大きい場合、アルゴリズムはユーザーの総数に基づいて最大ユーザー数をランダムに選択します。

maxUserItems

ユーザーが計算に使用するアイテムの最大数。 デフォルト値は 1000 です。

説明

ユーザーが計算に使用した項目の数がこの値より大きい場合、そのユーザーは計算に含まれません。

minUserItems

ユーザーが計算に使用するアイテムの最小数。 デフォルト値は 10 です。

説明

ユーザーが計算に使用した項目の数がこの値未満の場合、そのユーザーは計算に含まれません。

resultNormalize

結果を正規化するかどうかを指定します。

userAlpha

ユーザーのalphaパラメーター。 デフォルト値: 5.0

userBeta

ユーザーのベータパラメーター。 デフォルト値: -0.35

チューニングの実行

数の労働者

ワーカーノードの数。 値は正の整数でなければなりません。 このパラメーターは、Memory per worker, unit MBパラメーターと一緒に使用する必要があります。 有効な値: 1 ~ 9999

workerあたりのメモリ

各ワーカーノードのメモリサイズ。 単位:MB。 値は正の整数でなければなりません。 有効な値: 1024〜65536。

方法2: Pythonコードを使用してコンポーネントを構成する

PyAlinkスクリプトコンポーネントを使用してPythonコードを呼び出すことで、Swing Trainコンポーネントを設定できます。 詳細については、PyAlinkスクリプトのドキュメントを参照してください。

パラメーター

必須

説明

デフォルト値

itemCol

アイテム列の名前。

非該当

userCol

ユーザー列の名前。

非該当

アルファ

不可

平滑化係数であるアルファパラメータ。

1.0

userAlpha

不可

ユーザーのalphaパラメーター。

説明

このパラメーターは、次の式を使用してユーザーの重みを計算するために使用されます。ユーザー重み=1.0/(userAlpha + userClickCount)^ userBeta。

5.0

userBeta

不可

ユーザーのベータパラメーター。

説明

このパラメーターは、次の式を使用してユーザーの重みを計算するために使用されます。ユーザー重み=1.0/(userAlpha + userClickCount)^ userBeta。

-0.35

resultNormalize

不可

値を正規化するかどうかを指定します。

false

maxItemNumber

不可

計算にアイテムを使用するユーザーの最大数。

説明

アイテムの発生数がこの値より大きい場合、アルゴリズムはユーザーの総数に基づいて最大ユーザー数をランダムに選択します。

1000

minUserItems

不可

ユーザーが計算に使用するアイテムの最小数。

説明

ユーザーが計算に使用した項目の数がこの値未満の場合、そのユーザーは計算に含まれません。

10

maxUserItems

不可

ユーザーが計算に使用するアイテムの最大数。

説明

ユーザーが計算に使用した項目の数がこの値より大きい場合、そのユーザーは計算に含まれません。

1000

サンプルPythonコード:

df_data = pd.DataFrame([
    ["a1", "11L", 2.2],
    ["a1", "12L", 2.0],
    ["a2", "11L", 2.0],
    ["a2", "12L", 2.0],
    ["a3", "12L", 2.0],
    ["a3", "13L", 2.0],
    ["a4", "13L", 2.0],
    ["a4", "14L", 2.0],
    ["a5", "14L", 2.0],
    ["a5", "15L", 2.0],
    ["a6", "15L", 2.0],
    ["a6", "16L", 2.0],
])

data = BatchOperator.fromDataframe(df_data, schemaStr='user string, item string, rating double')


model = SwingTrainBatchOp()\
    .setUserCol("user")\
    .setItemCol("item")\
    .setMinUserItems(1)\
    .linkFrom(data)

model.print()

predictor = SwingRecommBatchOp()\
    .setItemCol("item")\
    .setRecommCol("prediction_result")

predictor.linkFrom(model, data).print()

次の図は、Swing Trainコンポーネントが使用されるサンプルパイプラインを示しています。 使用示例この例では、次の手順を実行して、前の図のコンポーネントを構成します。

  1. トレーニングデータセットテストデータセットを準備します。

  2. 表1と表2という名前の2つのMaxComputeテーブルを作成します。 表1はuseridおよびitemidフィールドを含み、表2はitemidフィールドを含む。 フィールドはSTRING型です。 MaxComputeクライアントでtunnelコマンドを実行し、トレーニングデータセットを表1に、テストデータセットを表2にアップロードします。 次に、Read Table-1コンポーネントのTable NameパラメーターをTable 1に設定し、Read Table-2コンポーネントのTable NameパラメーターをTable 2に設定します。 MaxComputeクライアントのインストール方法と設定方法については、「MaxComputeクライアント (odpscmd) 」をご参照ください。 Tunnelコマンドの詳細については、「Tunnelコマンド」をご参照ください。

  3. トレーニングデータセットをSwing Trainコンポーネントにインポートし、コンポーネントパラメーターを設定します。 詳細については、このトピックの「方法1: PAIコンソールでコンポーネントを構成する」をご参照ください。

  4. テストデータセットとトレーニング済みモデルをSwing Recommendationコンポーネントへの入力として使用して、予測を実行します。