【DSW Gallery】Gbdt-FM model

はじめに:GBDT+FM モデルは Gbdt+LR を拡張したモデルです。このモデルでは、GBDT を使用して特徴を自動的に選定・組み合わせ、新しい離散特徴ベクトルを生成し、それを FM モデルの入力として最終的な予測結果を生成します。ユーザー、アイテム、コンテキストなどさまざまな特徴を総合的に活用して、より包括的なレコメンデーションを生成でき、CTR(クリック率)予測のシナリオで広く使用されています。

直接使用する
Gbdt-FM モデルを開き、右上の「DSW で開く」をクリックしてください。

Gbdt+FM 統合モデルのトレーニングとサービスデプロイ

1:GBDT+FM モデルは Gbdt+LR を拡張したモデルです。このモデルでは、GBDT を使用して特徴を自動的に選定・組み合わせ、新しい離散特徴ベクトルを生成し、それを FM モデルの入力として最終的な予測結果を生成します。ユーザー、アイテム、コンテキストなどさまざまな特徴を総合的に活用して、より包括的なレコメンデーションを生成でき、CTR(クリック率)予測のシナリオで広く使用されています。
2:この記事では、Alink を使用して DSW 上で Gbdt+FM モデルを迅速に構築する方法と、構築したモデルをサービスとして簡単にデプロイする方法を紹介します。

動作環境の要件
1. PAI-DSW の公式イメージには PyAlink がデフォルトでインストール済みです。メモリ要件は 4 GB 以上です。
2. この Notebook の内容は、他のファイルなしで直接実行して表示できます。

from pyalink.alink import *
useLocalEnv(2)

大規模データへのスケーリング

この例では、useLocalEnv を使用して Alink ジョブをローカル(DSW コンテナ内)で実行し、マルチスレッディングで分散コンピューティングをシミュレートします。
より大規模なデータには、usePAIEnv を使用して大規模クラスターにジョブを投入できます。詳細な使用方法は help(usePAIEnv) で確認できます。

データ準備

Adult データソース https://archive.ics.uci.edu/ml/datasets/Adult
アルゴリズム関連ドキュメント:
・ https://www.yuque.com/pinshu/alink_doc/csvsourcebatchop
Adult データセット(「国勢調査収入」データセット)は、米国国勢調査データセットデータベースから抽出されたもので、合計 48,842 件のレコードが含まれています。年収 50K ドル超の割合は 23.93%、年収 50K ドル未満の割合は 76.07% で、既に 32,561 件のトレーニングデータと 16,281 件のテストデータに分割されています。このデータセットのクラス変数は年収が 50K ドルを超えるかどうかで、属性変数には年齢、職種、学歴、職業など 14 種類の重要な情報が含まれており、そのうち 8 種類はカテゴリ離散変数、残りの 6 種類は数値連続変数に属します。このデータセットは、年収が 50K ドルを超えるかどうかを予測する分類データセットです。

モデルのトレーニング

アルゴリズム関連ドキュメント:
・ https://www.yuque.com/pinshu/alink_doc/intro
・ https://www.yuque.com/pinshu/alink_doc/gbdtencoder
・ https://www.yuque.com/pinshu/alink_doc/fmclassifier
GbdtEncoder と FM の 2 つのオペレーターを 1 つの Pipeline に組み込むことで、モデルの統合トレーニングを完了します。GbdtEncoder は入力データのエンコードに使用され、エンコード結果が FM に送られてトレーニングされます。最終的にパイプラインモデルが得られ、データの推論やサービスとしてのデプロイに使用できます。

モデルの評価

アルゴリズム関連ドキュメント:
・ https://www.yuque.com/pinshu/alink_doc/evalbinaryclassbatchop
・ https://www.yuque.com/pinshu/alink_doc/jsonvaluebatchop
モデル評価フェーズでは、まず前述のトレーニング済みモデルを使用して testData を推論し、次に評価コンポーネント EvalBinaryClassBatchOp を使用して推論結果を評価し、最後に JsonValueBatchOp コンポーネントを使用して評価結果の抽出を完了します。

Gbdt+LR との効果比較
アルゴリズム関連ドキュメント:
・ https://www.yuque.com/pinshu/alink_doc/evalbinaryclassbatchop
・ https://www.yuque.com/pinshu/alink_doc/jsonvaluebatchop
・ https://www.yuque.com/pinshu/alink_doc/logisticregression
・ https://www.yuque.com/pinshu/alink_doc/gbdtencoder
比較から、Gbdt+FM の効果が Gbdt+LR よりも優れていることがわかります。同じデータに対して、AUC は約 0.7 ポイント高くなっています。

モデルの書き出し
アルゴリズム関連ドキュメント:
・ https://www.yuque.com/pinshu/alink_doc/aksinkbatchop
モデルの書き出しフェーズでは、AkSinkBatchOp を使用してモデルをファイルシステムに書き出します。ここでのファイルシステムは、ローカルファイルシステム(コード例参照)またはネットワークファイルシステム(OSS など)です。次のコードで:
fs = OssFileSystem("3.4.1", "oss-cn-hangzhou-zmf.aliyuncs.com", "name", "************", "****** ****")
filePath = FilePath("/model/gbdt_fm_model.ak", fs)

ネットワークファイルシステムのパスの構築を完了し、このパスをパラメーターとして AkSinkBatchOp コンポーネントに渡します:
AkSinkBatchOp().setFilePath(filePath).setOverwriteSink(True)

モデルの読み込みと推論
モデルの読み込みパスは、モデルの書き出し時と同じで、ローカルファイルシステム(コード例参照)またはネットワークファイルシステム(OSS など)です。

モデルデプロイ

モデルデプロイはコマンドラインで実行できます:
。./eascmd64 -i {EAS AccessKeyId} -k {EAS AccessKeySecret} -e pai-eas.cn-beijing.aliyuncs.com create config.json
・ https://www.yuque.com/pinshu/alink_tutorial/pai_designer
Alibaba Cloud PAI のインタラクティブなインターフェイスを使用して、いくつかのパラメーターを入力し、ワンクリックでデプロイすることもできます。詳細はドキュメントを参照してください:
・ https://help.aliyun.com/document_detail/110981.html

Related Articles

Explore More Special Offers

  1. Short Message Service(SMS) & Mail Service

    50,000 email package starts as low as USD 1.99, 120 short messages start at only USD 1.00

phone お問い合わせ
Hi, I'm Alibaba Cloud AI Assistant!
I can help with questions and solutions.