レコメンデーションアルゴリズム
レコメンデーションアルゴリズムは、過去の取引やインタラクションデータ、アイテム属性、ユーザーの人口統計情報などのさまざまなデータセットを活用し、ユーザーの行動パターンを分析して、ユーザーの興味に合った高度にパーソナライズされたレコメンデーションを生成します。これらは、さまざまなプラットフォームにおけるインタラクションの促進、リテンションの向上、ユーザーエクスペリエンスの強化において重要な役割を果たします。
QuickMLでは、多様なレコメンデーションモデルを構築するためのさまざまなビジネスニーズに対応するように設計された情報検索アルゴリズムを現在サポートしています。
レコメンデーションシステムの種類
リアルタイム環境で使用されているレコメンデーションモデルの種類には以下が含まれます:
- シーケンシャルレコメンデーションシステム
- パーソナライズドレコメンデーションシステム
- リカレンスサイクルレコメンデーションシステム
a. 情報検索
レコメンダーシステムは、過去のインタラクション、好み、行動を分析し、各ユーザーが関心を持つ可能性の高いパーソナライズされた商品を提案するインテリジェントなツールです。高度なアルゴリズムを使用してユーザーの嗜好やニーズを理解し、ユーザー固有の好みに合った正確なレコメンデーションを行います。
情報検索アルゴリズムは、パーソナライズされたレコメンデーションを提供することにより、ユーザーエクスペリエンスとエンゲージメントを向上させる正確な提案を生成することを目的としています。
QuickML内の各タイプのレコメンダーシステムで使用されるアルゴリズムは以下の通りです。
-
シーケンシャルレコメンデーションシステム
シーケンシャルレコメンデーションアルゴリズムは、機械学習技術を活用して過去のインタラクションデータを分析し、シーケンス内で次に消費される可能性が高いアイテムを予測します。このアルゴリズムは、過去のインタラクションの順序を考慮して、購買パターンに合った商品を提案します。
これらのモデルを構築するために使用されるアルゴリズムは:
SubSequence
SuBSeq(Succinct BWT-Based Sequence Prediction)は、Burrows-Wheeler Transform(BWT)を活用した強力なアルゴリズムで、シーケンシャルレコメンデーションシステム向けに特別に設計されており、トランザクション/インタラクションデータから意味のあるパターンを抽出するための高度な技術を活用します。サブシーケンスマイニングに焦点を当て、ユーザーの行動シーケンス内の繰り返しシーケンスや複雑なパターンを識別することができます。効率的なデータ処理とパターン認識の組み合わせにより、SubSeqは時間的依存関係、ユーザーの好み、文脈のニュアンスを捉えることに優れ、最終的に個々の行動に合わせた高度にパーソナライズされたレコメンデーションを生成します。メモリ使用量と計算複雑度の面で特に効率的です。
ハイパーパラメータ:
パラメータ 説明 データ型 設定可能な値 デフォルト値 transactions_column 入力データのアイテムセットの列名です。 str データセット内の列名 指定 min_similar_sequence 必要な類似シーケンスの最小数です。 int 任意の正の整数 2 このアルゴリズムを選択するサンプルシナリオ:
オンラインメディアプラットフォームが、ユーザーの過去の行動やインタラクションに基づいて消費する可能性のあるアイテムのシーケンスを予測することで、ユーザーエンゲージメントを向上させることを目指しています。目標は、ユーザーの好みを理解・予測し、プラットフォームがパーソナライズされたコンテンツレコメンデーションを提供できるようにすることです。 例えば、ユーザーがコメディ映画を3本視聴し、その後歴史ドキュメンタリーに切り替えた場合、シーケンシャルレコメンデーションアルゴリズムはこの消費パターンの変化を識別し、より多くのドキュメンタリーや両ジャンルの組み合わせを提案します。
-
パーソナライズドレコメンデーションシステム
パーソナライズドレコメンデーションアルゴリズムは、ユーザーの好み、過去のインタラクション、商品属性、人口統計情報に基づいて、個々のユーザーに合わせたレコメンデーションを提供することを目的としています。これらのアルゴリズムは、ユーザーとアイテムのインタラクションデータを活用して、ユーザーとアイテム間のパターンや類似性を識別します。
これらのモデルを構築するために使用されるアルゴリズムは:
LightFM
LightFMは、ユーザープロファイル、商品詳細、インタラクションデータを活用してパーソナライズされたレコメンデーションを提供する堅牢なレコメンデーションアルゴリズムです。協調フィルタリングと行列分解技術を統合することで、LightFMはユーザーの好みとアイテムの特徴を捉え、特定のドメインにおける正確なレコメンデーションを保証します。ユーザープロファイルとアイテムの特性を分析し、より関連性の高い提案を提供することで、関連商品の発見を簡素化し、ユーザーの行動に基づいてレコメンデーションを迅速に調整します。 ユーザーの人口統計、好み、インタラクション履歴に関する洞察により、LightFMはさまざまな業界やアプリケーションにおけるレコメンデーション体験を向上させ、エンゲージメントと満足度を促進します。
ハイパーパラメータ:
パラメータ 説明 データ型 設定可能な値 デフォルト値 no_components 潜在特徴埋め込みの次元数です。値が高いほどより複雑な関係を捉えられますが、データセットに対して大きすぎると過学習する可能性があります。 int 任意の正の整数 10 n k-OSトレーニングの場合、各更新ステップで各ユーザーに対して考慮される正のサンプルの最大数を指定します。 int 任意の正の整数 10 learning_schedule 使用する学習率スケジュールを決定します。オプションには、トレーニング中の勾配情報に基づいて学習率を調整するadagradやadadeltaなどの適応スケジュールが含まれます。 str 'adagrad', 'adadelta'r 'adagrad' loss 最適化する損失関数を指定します: - 'logistic': ペナルティは追加されません。
- 'bpr': L2ペナルティ項が追加され、デフォルトの選択です。
- 'warp': L1ペナルティ項が追加されます。
- 'warp-kos': L1とL2の両方のペナルティ項が追加されます。
int 任意の正の整数 10 learning_rate 勾配降下オプティマイザーの初期学習率です。値が小さいほど収束は遅くなりますが、より安定する可能性があります。 float 任意の正のfloat 0.05 item_alpha アイテム特徴埋め込みに対するL2正則化の強度です。大きな重みにペナルティを課すことで過学習を防止します。値が高いほど、より強い正則化が適用されます。 float 任意の非負のfloat 0.0 user_alpha ユーザー特徴埋め込みに対するL2正則化の強度です。大きな重みにペナルティを課すことで過学習を防止します。item_alphaと同様の動作をします。 float 任意の非負のfloat 0.0 train_split_ratio トレーニングに使用されます。残りのデータは評価用に確保されます。比率が高いほどトレーニング用のデータが多くなりますが、テスト用のデータは少なくなります。 float 0から1の間 0.8 td_uid_column トランザクションデータセットにおける一意のユーザーIDを表す列の名前です。 str データセット内の有効な列名 ユーザー指定 ud_uid_column ユーザー特徴データセットにおける一意のユーザーIDを表す列の名前です。 str データセット内の有効な列名 ユーザー指定 pd_pid_column 商品特徴データセットにおける一意の商品IDを表す列の名前です。 str データセット内の有効な列名 ユーザー指定 このアルゴリズムを選択するサンプルシナリオ:
- Eコマースプラットフォームでは、パーソナライズドレコメンデーションアルゴリズムがリアルタイムのユーザーインタラクションと検索アクティビティに基づいて関連アイテムを提案します。ユーザーの行動、アイテムの特性、取引データを分析することで、これらのモデルは個々のユーザーに響く高度にパーソナライズされた提案を生成します。このアプローチは、ユーザーエクスペリエンスを向上させるだけでなく、関連商品やリレーテッド商品を促進することでビジネス価値を高めます。
- Eラーニングプラットフォームでは、ユーザーの学習上の興味や目的を補完する関連コースの発見を促進します。これらのモデルは、コースの類似性とユーザーの興味を分析することで発見を強化し、最終的に探索とエンゲージメントの増加につながります。
Pixie
大規模なアイテムプールと多数のユーザーが存在するため、高品質なパーソナライズドレコメンデーションを提供するシステムの構築は大きな課題です。これらのレコメンデーションは、ユーザーのアクションに対してオンデマンドで応答的に生成される必要があります。
Pixieは、スケーラブルなリアルタイムのグラフベースレコメンデーションシステムであり、ランダムウォークと呼ばれる手法を使用して、相互接続されたアイテムの大規模なグラフを探索し、ユーザーに関連アイテムをレコメンドすることでこの問題に対処します。グラフはノードとエッジで構成され、ノードはアイテムまたはユーザーを表し、エッジはそれらの間の関係やインタラクションを表します。このアルゴリズムは高度にスケーラブルに設計されており、膨大な数のアイテムとユーザーが存在する環境で効率的に動作できます。
ハイパーパラメータ:
パラメータ 説明 データ型 設定可能な値 デフォルト値 user_id_colum user_datasetの一意の列名です。 str データセット内の列名 指定 product_id_column product_datasetの一意の列名です。 str データセット内の列名 指定 depth 各ランダムウォークのステップ数です。 int 任意の正の整数 10 n_epochs ランダムウォークプロセスの最大ステップ数です。 int 任意の正の整数 50 higher_weight より可能性の高い接続に向けてグラフエッジにバイアスをかけるための重みです。 float 0から1の間のfloat 1.0 lower_weight より可能性の低い接続に向けてグラフエッジにバイアスをかけるための重みです。 float 0から1の間のfloat 0.0001 recommendation_type 行う予測のタイプです。 str 'fbt', 'cwbab' 'cwbab' with_feature_encoding ユーザー特徴のエンコーディングを使用するかどうかを指定します。 bool True, False False このアルゴリズムを選択するサンプルシナリオ:
Pixieは、ユーザーの閲覧履歴と購買行動に基づいて商品を提案でき、商品発見の改善と販売コンバージョン率の向上につながります。
例:
家電製品を専門とするEコマースプラットフォームがPixieを活用してレコメンデーションシステムを改善します。
ユーザーがスマートフォンを購入すると、アルゴリズムはrecommendation_type: **fbt(Frequently Bought Together:よく一緒に購入される商品)**を使用して、画面保護フィルムや充電器など、現在の購入に直接関連する必要な関連購入品をレコメンドします。
同時に、アルゴリズムがrecommendation_type: “cwbab(Customers who bought also bought:購入した顧客が他にも購入した商品)“を使用する場合、スマートウォッチやBluetoothスピーカーなど、顧客が後で購入を検討する可能性のある補完的な商品を提案します。即時のニーズと将来の潜在的なニーズを区別することで、プラットフォームは平均注文額を増加させるだけでなく、長期的な顧客エンゲージメントと満足度を構築します。
-
リカレンスサイクルレコメンデーションシステム
リカレンスサイクルレコメンデーションモデルは、ユーザーの行動における繰り返しパターンに基づいてアイテムを識別し提案するようにトレーニングされています。過去のデータを分析することで、購入、サブスクリプション、エンゲージメントなど、ユーザーが特定のインタラクションを繰り返す可能性のある繰り返しサイクルや間隔を検出します。 Recurrence Finderアルゴリズムは、ユーザーが再購入する可能性が最も高いアイテムを予測し、商品の補充や好みのアイテムへの再エンゲージメントのプロセスを簡素化します。
リカレンスレコメンデーションモデルを構築するために使用されるアルゴリズムは:
Recurrence Finder
Recurrence Finderは、顧客の商品購入、イベント参加、毎日のアラーム設定などの繰り返しイベントを識別・予測し、過去のタイムスタンプを活用して将来の発生を予測します。過去のイベントからパターンを分析することで、将来のイベント発生を提供し、効果的な計画と意思決定を支援します。このモデルは、顧客維持、イベント管理、時間管理ツールの戦略最適化に役立ちます。
将来の発生を予測する能力により、Recurrence FinderはEコマースからヘルスケアまで、さまざまなドメインにおける効率性と生産性を向上させます。
ハイパーパラメータ:
パラメータ 説明 データ型 設定可能な値 デフォルト値 user 一意のユーザーIDを含むデータセット内の列の名前です。この列は、ユーザーに基づくトランザクションの繰り返しを識別するために不可欠です。 str データセット内の有効な列名 ユーザー指定 product 一意の商品IDを含むデータセット内の列の名前です。この列は、トランザクションにおける特定の商品の繰り返しを追跡するために使用されます。 str データセット内の有効な列名 ユーザー指定 timestamp_column トランザクションのタイムスタンプを含むデータセット内の列の名前です。この列は、繰り返しトランザクション間の時間間隔を計算するために重要です。 str データセット内の有効な列名 ユーザー指定 quantity 繰り返し分析でトランザクション数量を考慮するかどうかを示すブールフラグです。Trueの場合、quantity_columnを使用して数量ベースの繰り返しパターンを組み込みます。 bool True, False ユーザー指定 quantity_column 各トランザクションで購入された商品の数量を含むデータセット内の列の名前です。quantityパラメータがTrueに設定されている場合に必要です。 str データセット内の有効な列名 ユーザー指定 このアルゴリズムを選択するサンプルシナリオ:
- サブスクリプションベースのビジネスは、繰り返し予測を活用して顧客がサブスクリプションを更新する可能性のあるタイミングを予測できます。これにより、パーソナライズされたオファーやリマインダーなどのターゲットを絞ったリテンション戦略を実施し、更新率と顧客ロイヤルティを向上させることができます。
- ヘルスケアプロバイダーやサロンなどのサービスベースのビジネスは、繰り返し予測を使用して予約を効率的にスケジュールできます。クライアントが予約する可能性のあるタイミングを予測することで、スタッフのスケジュールを最適化し、待ち時間を最小限に抑え、顧客満足度を向上させることができます。
データバリデーション基準
レコメンデーションモデルは3つのデータセットを使用してトレーニングされます:
- トランザクション/インタラクションデータ
- ユーザーの人口統計データ
- アイテムの属性データ
トランザクションデータセットには、transactionID、userID、itemID、注文金額、購入日、タイムスタンプなどのトランザクション詳細が含まれ、ユーザーが行った各購入を記録します。
ユーザーデータセットには、ビジネスのユーザーに関する人口統計情報が保持され、ユーザーの特性や好みに関する洞察を提供します。
アイテム/商品特徴データセットには、カテゴリ、ブランド、価格など、ユーザーが購入するアイテムの属性と特性が含まれます。
3つのデータセットを含むバリデーションチェックは、モデルトレーニングが開始される前にアルゴリズム自体によって自動的に実行されます。以下の基準のいずれかが満たされない場合、アルゴリズムはトレーニングを停止し、エラーをスローします:
- トランザクション、ユーザー、またはアイテムのデータセットに欠損値が存在してはなりません。
- トランザクションデータセットに存在するuserIDまたはitemID/productIDは、それぞれのユーザーまたはアイテムのデータセットにも存在する必要があります。
最終更新日 2026-03-05 11:43:24 +0530 IST
Yes
No
Send your feedback to us