アプリが情報の過負荷を解決するには、推奨システムと検索エンジンが必要です。 推薦システムを最初から開発することは、費用と時間がかかり、時間内にビジネス要件を満たすことができない場合があります。 さらに、自己開発の推奨システムは、様々なアルゴリズムを反復することができない場合がある。 このトピックでは、Alibaba CloudのMachine Learning Platform for AI (PAI) を使用して、推奨システムに必要なデータとモデルを作成する方法について説明します。
アーキテクチャ
完全な推奨プロセスには、リコールおよびソートモジュールが含まれます。 リコールモジュールは、多数の既存のアイテムから推奨されるアイテムのリストを選択する。 ソートモジュールは、推奨リスト内の各アイテムとユーザとの間の相関に基づいてアイテムをソートする。 次の図は、PAIなしの推奨プロセスを示しています。
次の図は、PAIベースのレコメンデーションシステムのアーキテクチャを示しています。PAIベースの推奨システムは、次のルールに基づいて機能します。
ユーザー、アイテム、および動作データをMaxComputeに保存します。
DataWorksを使用してデータを前処理し、基本機能を作成します。
Tablestoreにいくつかの特徴ベクトルを書き込みます。
Machine Learning Studioのリコールおよびソートアルゴリズムを使用してデータを計算します。
ソートモデルを生成し、モデルをRESTful APIとしてElastic Algorithm Service (EAS) にデプロイします。
リコール結果をTablestoreに書き込み、自動学習を使用してリコール結果をフィルタリングし、フィルタリング結果に基づいてEASにRESTful APIを展開します。
次の図は、PAIベースの推奨プロセスの全体を示しています。推奨システムは、以下のプロセスに基づいてユーザにアイテムを推奨する。EASは、リコールサービスを使用してリコールリストを取得する。 AutoLearningは、ユーザーIDとアイテムIDに基づいてTablestoreから機能データを読み取り、機能データをフィルタリングしてから、フィルタリング結果をEASに送信します。 EASは、ソートサービスを使用して取得したデータをソートし、推奨アイテムのリストを生成します。
関連ドキュメント
PAIを使用したエンタープライズクラスのパーソナライズされたレコメンデーションシステムの構築: 完全なレコメンデーションソリューションを紹介します。 このドキュメントに基づいて、エンタープライズクラスのレコメンデーションシステムを1週間以内に構築できます。 このドキュメントを読むことをお勧めします。
推奨システムのビデオチュートリアル: 協調フィルタリングに基づいて推奨システムを構築する方法を示します。 このビデオを見ることをお勧めします。
ALSを使用して曲の評価を予測する (旧バージョン): 交互最小二乗 (ALS) を使用して曲の評価を予測する方法を説明します。
マッチングリコールにFM-Embeddingを使用: マッチングリコールにFM-Embeddingを使用する方法を説明します。
コールドスタートのシナリオ
多数のアイテムを推奨するには、記事のタイトルと本文を使用してDoc2Vecモデルをトレーニングし、各アイテムのベクトルを生成します。 詳細については、「Doc2Vec」をご参照ください。
次に、Elasticsearchをベクトル検索プラグインと一緒に使用して、生成された各ベクトルに類似するベクトルを呼び出すことができます。 アイテムを分類し、アイテムのカテゴリに基づいて類似のベクトルを検索することをお勧めします。 アイテムが分類されていない場合は、特定のアイテムにラベルを付け、ラベルを付けたアイテムを分類モデルとして使用できます。.
ユーザーの行動に基づく推奨
コールドスタートに必要なデータとユーザークリックデータが利用可能な場合は、次の方法を使用して推奨を実装できます。
ユーザーのクリックシーケンスを使用して、アイテム間の関係を計算します。 自然言語処理でword2vecアルゴリズムを使用すると、各ユーザーがクリックした複数のアイテムを文として扱い、シーケンスをクレンジングできます。 たとえば、同じカテゴリまたはセッションに属するアイテム、または30分以内にユーザーが繰り返しクリックしたアイテムのみを含むように各シーケンスを設定できます。 詳細については、「Word2Vec」をご参照ください。
十分なユーザーデータとアイテムデータを取得したら、etrecという名前の共同フィルタリングアルゴリズムまたは行列因数分解アルゴリズムを使用して、アイテム-アイテムデータを取得できます。 詳細については、「コンポーネントの設定」または「ALSを使用して曲の評価を予測する (旧バージョン) 」をご参照ください。
説明etrecアルゴリズムのweightパラメーターを設定できます。 たとえば、weightパラメーターを使用して、クリック、お気に入りへの追加、購入などの操作にさまざまな重みを設定できます。
項目クリックログと露出ログを取得したら、Gradient Boosting Decision Tree (GBDT) モデルまたはPS-SMARTなどのツリーモデルを使用して、ユーザーと項目の機能データを並べ替えることができます。 GBDTモデルにより、機能エンジニアリングから解放されます。 詳細については、「コンポーネントの設定」または「GBDTリグレッション」をご参照ください。
次のいずれかの方法を使用して、ユーザーとアイテムの機能、ユーザーとアイテムの機能クロス、コンテキスト機能などの機能をマイニングします。
機能エンジニアリングを実行します。 詳細については、「機能エンジニアリング」をご参照ください。
PAIのAuto Feature Crossコンポーネントを使用して、フィーチャクロスをマイニングします。 詳細については、「AutoMLを使用した自動機能エンジニアリング」をご参照ください。
因数分解マシン (FM) アルゴリズムを使用して、2次フィーチャクロスをマイニングします。 詳細については、「FM-Embedding For matching recall」をご参照ください。
モデルをトレーニングした後、EASでRESTful APIとしてモデルをデプロイします。 詳細については、「PAIコンソールでのモデルサービスのデプロイ」をご参照ください。
TextRankアルゴリズムを使用して、アイテムデータからキーワードとマイニングラベルを抽出します。