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

PolarDB:DeepFMアルゴリズム

最終更新日:May 30, 2024

このトピックでは、DeepFMアルゴリズムについて説明します。

概要

Deep Factorization Machine (DeepFM) は、ディープニューラルネットワーク (DNN) モデルと因数分解マシン (FM) モデルの強みを組み合わせたものです。 低次の明示的なフィーチャ相互作用と高次の暗黙的なフィーチャ相互作用の両方をキャプチャできるため、手動のフィーチャエンジニアリングが不要になります。 DeepFMは、推奨または広告システムでよく使用されます。

  • DeepFMモデルへの入力機能は、大きく2つのタイプに分類できます。

    • カテゴリ機能: 性別 (男性または女性) や商品カテゴリ (衣類、おもちゃ、電子機器など) などの文字列として表されます。

    • 数値機能: ユーザーのアクティビティや商品価格など、整数または浮動小数点数で表されます。

  • 多くの場合、0から1の間の浮動小数点数が返されます。これは、値が1である確率を示します。 それらは、ソートまたはバイナリ分類に使用できます。

シナリオ

ほとんどの場合、DeepFMは分類および並べ替えのシナリオで使用されます。特に、機能が手動で構築されているが結果を直接反映しないシナリオでは効果的です。 推奨シナリオでは、低次の機能の相互作用または高次の機能の相互作用がユーザーの最終的な行動に影響を与えます。 ただし、フィーチャの相互作用を識別できない場合があります。 DeepFMは自動的にインタラクションをキャプチャできます。

例えば、ほとんどの個人化商品推薦シナリオでは、クリック推定モデルが必要である。 クリック、クリック解除、購入などの履歴ユーザー行動をトレーニングデータとして使用して、ユーザーのクリックまたは購入の確率を予測できます。 ユーザーが将来のクリックや購入を直接示すことができない行動の実質的な履歴を持っている場合、DeepFMはユーザーの行動を組み合わせて、疎な特徴を高次元の密な特徴に変換できます。

パラメーター

次の表に示すパラメーターの値は、モデルの作成に使用されるCREATE modelステートメントで指定されたmodel_parameterパラメーターの値と同じです。 ビジネス要件に基づいてパラメーターを設定できます。

パラメーター

説明

メトリクス

モデルの評価に使用されるメトリック。 有効な値:

  • accuracy (デフォルト): 精度。 このメトリックは、分類モデルを評価するために使用される。

  • binary_crosentropy: クロスエントロピー。 このメトリックは、バイナリ分類問題を評価するために使用されます。

  • mse: 平均二乗誤差。 このメトリックは、回帰モデルを評価するために使用されます。

損失

学習タスクとタスクの学習目標。 有効な値:

  • binary_crosentropy (デフォルト): クロスエントロピー。 これは、バイナリ分類問題に使用されます。

  • mean_squared_error: 平均二乗エラー。 回帰モデルに使用されます。

オプティマイザ

オプティマイザ。 有効な値:

  • adam (デフォルト): このアルゴリズムは、AdaGradと勾配降下の利点と運動量を組み合わせたものです。 まばらな勾配 (自然言語とコンピュータービジョンの問題) に適応し、勾配振動を軽減できます。

  • sgd: 確率的勾配降下。

  • rmsdrop: このアルゴリズムは、重みパラメータを導入し、ステップ成分の累積を重み付き和に修正することによって、AdaGradアルゴリズムを改善する。

validation_split

交差検証データの比率。 デフォルト値: 0.2

エポック

反復回数。 デフォルト値: 6。

batch_size

バッチの長さ。 短いバッチは過剰にフィットする傾向があります。 デフォルト値: 64。

タスク

タスクの ID を設定します。 有効な値:

  • binary (デフォルト): バイナリ分類モデル。

  • regression: 回帰モデル。

モデルとオフライントレーニングタスクを作成します。

/* polar4ai * /
モデルairline_deepfmを作成する
(model_class = 'deepfm' 、x_cols = '航空会社、フライト、AirportFrom、AirportTo、DayOfWeek、時間、長さ' 、y_cols='Delay',model_parameter=(epochs=6)
AS (SELECT * からdb4ai.airlines); 

モデルを評価します。

/* polar4ai * /
EVALUATEからの航空会社を選択 (モデルairline_deepfm、SELECT * からdb4ai.airlines LIMIT 20)
(x_cols = 'Airline,Flight,AirportFrom,AirportTo,DayOfWeek,Time,Length',y_cols='Delay',metrics='acc'); 

予測にモデルを使用します。

/* polar4ai * /
PREDICTからの航空会社を選択 (モデルairline_deepfm、SELECT * からdb4ai.airlines制限20)
(x_cols = '航空会社、フライト、AirportFrom、AirportTo、DayOfWeek、時間、長さ');