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

Platform For AI:Alink を使用した FM レコメンデーションの構築

最終更新日:Sep 11, 2026

因子分解マシン (FM) アルゴリズムは、特徴量の相互作用を組み込んだ非線形モデルであり、E コマース、広告、ライブストリーミングにおけるレコメンデーションシナリオに適しています。Platform for AI (PAI) のビジュアルモデリング (デザイナー) には、Alink フレームワークに基づいて FM レコメンデーションモデルを構築するための、プリセットの FM アルゴリズムテンプレートが用意されています。

手順

  1. Machine Learning Designerページに移動します。

    1. PAIコンソールにログインします。

    2. 左側のナビゲーションウィンドウで、[ワークスペース] をクリックします。 [ワークスペース] ページで、管理するワークスペースの名前をクリックします。

    3. 左側のナビゲーションウィンドウで、モデルトレーニング > 可视化モデリング (デザイナー)を選択します。

  2. パイプラインを作成します。

    1. [ビジュアルモデリング (デザイナー)] ページで、[Preset Templates] タブをクリックします。

    2. このタブで、[Alink]FM-Embedding for Rec-System テンプレートを見つけて [Create] をクリックします。

    3. ワークフローの新規作成 ダイアログボックスで、パラメーターを設定します。すべてのパラメーターにデフォルト設定を使用できます。

      ワークフローデータストレージ パラメーターには、パイプラインの実行中に生成される一時データとモデルを格納する OSS バケットのパスを指定します。

    4. OK をクリックします。

      パイプラインの作成には約 10 秒かかります。

    5. [Pipelines] タブで、作成したパイプラインをクリックします。右側の [Basic Information] セクションで、[Open] をクリックします。

      パイプライン設定タブでは、キャンバス上で作成されたパイプラインを表示できます。Pipeline canvas

      このパイプラインは、Alink アルゴリズムによる FM のトレーニングと予測のために、2 つの手法をサポートしています:

      • 手法 1:[FM Train] コンポーネントと [FM Prediction] コンポーネントを使用して、FM のトレーニングと予測を実行します。

        [FM Train] と [FM Prediction] は、紫色の点でマークされた Alink コンポーネントであり、グループで実行できます。グループ実行の詳細については、「Alink コンポーネント」をご参照ください。

      • 手法 2:PyAlink コンポーネントを使用して、FM のトレーニングと予測を実行します。

        カスタム PyAlink コンポーネントは、Python コードを通じて手法 1 と同じ結果が得られます。サポートされているオペレーターについては、「Alink の概要」をご参照ください。

  3. [FM Train-1] ノードのパラメーターを設定します。

    1. キャンバス上の [FM Train-1] ノードをクリックします。

    2. 右側のパネルの [Fields Setting] タブで、次の表で説明するパラメーターを設定します。

      パラメーター

      説明

      [特徴列]

      特徴列の名前です。特徴列のデータは key:value 形式です。特徴列内の複数のキーと値のペアは、カンマ (,) で区切られます。

      [ラベル列]

      ラベル列の名前です。ラベル列は DOUBLE データ型である必要があります。

      ビジュアルモデリング (デザイナー) で提供される FM アルゴリズムは、LIBSVM 形式のデータのみをサポートしています。ワンホットエンコーディングコンポーネントを使用すると、別の形式のデータを LIBSVM 形式に変換できます。詳細については、「ワンホットエンコーディング」をご参照ください。入力データには、次の図に示すように、特徴列とラベル列を含める必要があります。Input data

    3. 右側のパネルの [Parameters Setting] タブと [Tuning] タブで、トレーニングパラメーターを設定します。

      サンプル数が 1 億 2000 万、特徴量が 130 万のパイプラインでは、次の表の推奨値を使用し、他のパラメーターはデフォルトのままにしてください。これらの値は、データ量に応じて調整してください。

      タブ

      パラメーター

      説明

      [Parameters Setting]

      [Learning rate]

      学習率です。推奨値:0.005。トレーニングが発散する場合は、このパラメーターをより小さい値に設定してください。

      [Dimensions]

      次元数です。推奨値:1,1,16。

      [Block size]

      • ブロックのサイズです。特徴量データレコードが 200 万件未満の場合は、このパラメーターを 1000000 に設定することを推奨します。

      • 特徴量データレコードが 200 万件以上の場合は、このパラメーターを設定する必要はありません。

      [Tuning]

      [Number of Workers]

      使用するワーカー数です。推奨値:32。大量のデータを扱う場合は、このパラメーターをより大きい値に設定してください。

      [Memory Size per Node (MB)]

      各ノードに割り当てるメモリサイズです。推奨値:16384。単位:MB。

  4. PyAlink FM トレーニングノードと PyAlink FM 予測ノードのコードを記述します。

    • PyAlink FM トレーニングノードのコードを記述します。

      from pyalink.alink import *
      
      def main(sources, sinks, parameter):
          print('start')
          # Alink アルゴリズムを呼び出すモード 1。
          # train = HugeFmTrainBatchOp().setVectorCol('features').setLabelCol('label').linkFrom(sources[0])
          # Alink アルゴリズムを呼び出すモード 2。
          train = HugeFmTrainBatchOp(
              vectorCol='features',
              labelCol='label',
              task='binary_classification',
              numEpochs=10)
          # 入力ポート 0 からトレーニングデータを取得します。トレーニング済みモデルは出力ポート 0 から生成され、ダウンストリームに渡されます。
          sources[0].link(train).link(sinks[0])
          BatchOperator.execute()
          print('end')
                                  
    • PyAlink FM 予測ノードのコードを記述します。

      from pyalink.alink import *
      
      def main(sources, sinks, parameter):
          predictor = HugeFmPredictBatchOp().setPredictionCol("prediction_result")\
          .setPredictionDetailCol("prediction_detail").setReservedCols(["label"])
          output = predictor.linkFrom(sources[0], sources[1])
          # 予測結果は最初の出力ポートから生成され、ダウンストリームに渡されます。
          output.link(sinks[0])
          BatchOperator.execute()
          print('predict end')
                                  
  5. キャンバスの左上隅にある [Run] アイコンをクリックします。

  6. パイプラインの実行後、キャンバス上の [二項分類評価] ノードを右クリックし、[可視化分析] を選択します。

    [Alink]FM-Embedding for Rec-System テンプレートデータを使用すると、FM アルゴリズムでは曲線下面積 (AUC) が 0.92 に近い値になります。

    • 手法 1 を使用して生成された評価レポート Evaluation report

    • 手法 2 を使用して生成された評価レポート Evaluation report