レコメンデーションシナリオでは、ビジュアルモデリング (Designer) の FM-Embedding ソリューションを使用して、ユーザーとアイテムの特徴ベクトルを取得します。再現率モジュールでは、これらの特徴ベクトルの内積を計算して、ユーザーとアイテムのペアに対する評価を予測します。このトピックでは、Factorization Machine (FM) アルゴリズムと埋め込み抽出アルゴリズムを使用して、ユーザーとアイテムの特徴ベクトルを迅速に生成する方法について説明します。
前提条件
-
ワークスペースが作成済みであること。詳細については、「ワークスペースの作成と管理」をご参照ください。
-
MaxCompute リソースがワークスペースに関連付けられていること。詳細については、「ワークスペースのコンピューティングリソースの管理」をご参照ください。
背景情報
レコメンデーションシステムは通常、再現率モジュールとソートモジュールで構成されます。再現率モジュールでは、ベクトルがユーザーとアイテム (推奨されるコンテンツ) を表します。ユーザーベクトルとアイテムベクトルの内積は、ユーザーのアイテムに対する関心の度合いを示します。このパイプラインは、実際のレコメンデーションデータに基づいており、その完全なビジネスワークフローはDesigner のテンプレートにプリセットされています。これにより、コンポーネントをドラッグアンドドロップするだけで、ユーザーとアイテムの特徴ベクトルを生成できます。
データセット
ソースデータには、次のフィールドが含まれます。
|
パラメーター |
型 |
説明 |
|
userid |
STRING |
ユーザー ID。 |
|
age |
DOUBLE |
ユーザーの年齢。 |
|
gender |
STRING |
ユーザーの性別。 |
|
itemid |
STRING |
アイテム ID。 |
|
price |
DOUBLE |
アイテムの価格。 |
|
size |
DOUBLE |
アイテムのサイズ。 |
|
label |
DOUBLE |
ターゲット列。有効な値は次のとおりです:
|
操作手順
-
Machine Learning Designer のページに移動します。
-
PAI コンソールにログインします。
-
左側のナビゲーションウィンドウで、[ワークスペース] をクリックします。[ワークスペース] ページで、管理するワークスペースの名前をクリックします。
-
左側のナビゲーションウィンドウで、 を選択します。
-
-
パイプラインを構築します。
-
Designer ページで、Preset Templates タブをクリックします。
-
テンプレートリストで、Create の下にある [作成] をクリックします。
-
Create Pipeline ダイアログボックスで、パラメーターを設定します。すべてのパラメーターにデフォルト設定を使用できます。
Data Storage パラメーターは、パイプラインの実行中に生成される一時データとモデルを格納するための OSS バケットパスを指定します。
-
Confirm をクリックします。
パイプラインの作成には約 10 秒かかります。
-
プリセットテンプレートに基づいて、次の図に示すようにパイプラインが自動的に構築されます。

セクション
説明
①
すべての特徴に対して One-Hot エンコーディングを実行します。One-Hot エンコーディングは、文字列データを数値データに変換します。このパイプラインでは、[One-hot Encoding-1] コンポーネントがまず完全なデータセットをエンコードし、生成されたモデルを [One-hot Encoding-2] および [One-hot Encoding-3] コンポーネントに渡します。
②
Factorization Machine (FM) モデルを生成します。このコンポーネントをクリックし、Parameters タブでデフォルトのパラメーターを表示できます。Dimensions の 3 番目のパラメーター (デフォルト値:1,1,10) は、生成される埋め込みのディメンションを指定します。この場合は 10 です。
③
ユーザー特徴量エンコーディングを生成します。[二値化列の選択] パラメーターの入力は userid、gender、age です。[追加列] パラメーターの入力は userid です。
④
アイテム特徴量エンコーディングを生成します。[二値化列の選択] パラメーターの入力は itemid、price、size です。[追加列] パラメーターの入力は itemid です。
⑤
アイテムの埋め込みを抽出します。このコンポーネントのパラメーターは次のとおりです:
-
[Embedding Vector ID Column]:トレーニング済みの FM モデルの feature_id。
-
[Embedding Vector Column]:トレーニング済みの FM モデルの feature_weights。
-
[Weight Vector Column]:One-Hot エンコーディングからのスパースデータ列。
-
出力列名: 出力埋め込みのフィールド名です。
-
-
-
パイプラインを実行し、結果を表示します。
-
キャンバスの上部にある
ボタンをクリックします。 -
パイプラインの実行が完了したら、キャンバス上の [Embedding Extraction-1] コンポーネントを右クリックし、 を選択して、ユーザー特徴ベクトルを表示します。ユーザー特徴ベクトルテーブルには、userid (ユーザー ID)、kv (キーと値の特徴、例:
10:1,7:1,37:1)、embedding (スペースで区切られた浮動小数点数で構成される高次元ベクトル) の 3 つの列が含まれます。 -
キャンバス上の [Embedding Extraction-2] コンポーネントを右クリックし、 を選択して、アイテム特徴ベクトルを表示します。アイテム特徴ベクトルテーブルには、itemid (アイテム識別子、例:A から J)、kv (スパース特徴量エンコーディング、例:
31;1,11;1,27:1)、embedding (多次元浮動小数点ベクトル) の 3 つの列が含まれます。
-