--- title: "レコメンデーション" url: https://docs.catalyst.zoho.com/ja/quickml/help/ml-algorithms/recommendation/ description: "QuickMLは、Catalyst開発プラットフォームにおける完全ノーコードの機械学習パイプラインビルダーサービスであり、エンドツーエンドのソリューションで機械学習パイプラインを作成できます。" last_updated: 2026-03-05T06:13:24Z service: QuickML type: general --- # レコメンデーションアルゴリズム レコメンデーションアルゴリズムは、過去の取引やインタラクションデータ、アイテム属性、ユーザーの人口統計情報などのさまざまなデータセットを活用し、ユーザーの行動パターンを分析して、ユーザーの興味に合った高度にパーソナライズされたレコメンデーションを生成します。これらは、さまざまなプラットフォームにおけるインタラクションの促進、リテンションの向上、ユーザーエクスペリエンスの強化において重要な役割を果たします。 QuickMLでは、多様なレコメンデーションモデルを構築するためのさまざまなビジネスニーズに対応するように設計された情報検索アルゴリズムを現在サポートしています。 ## レコメンデーションシステムの種類 リアルタイム環境で使用されているレコメンデーションモデルの種類には以下が含まれます: - シーケンシャルレコメンデーションシステム - パーソナライズドレコメンデーションシステム - リカレンスサイクルレコメンデーションシステム ## a. 情報検索 レコメンダーシステムは、過去のインタラクション、好み、行動を分析し、各ユーザーが関心を持つ可能性の高いパーソナライズされた商品を提案するインテリジェントなツールです。高度なアルゴリズムを使用してユーザーの嗜好やニーズを理解し、ユーザー固有の好みに合った正確なレコメンデーションを行います。 情報検索アルゴリズムは、パーソナライズされたレコメンデーションを提供することにより、ユーザーエクスペリエンスとエンゲージメントを向上させる正確な提案を生成することを目的としています。 QuickML内の各タイプのレコメンダーシステムで使用されるアルゴリズムは以下の通りです。 1. ## シーケンシャルレコメンデーションシステム シーケンシャルレコメンデーションアルゴリズムは、機械学習技術を活用して過去のインタラクションデータを分析し、シーケンス内で次に消費される可能性が高いアイテムを予測します。このアルゴリズムは、過去のインタラクションの順序を考慮して、購買パターンに合った商品を提案します。 これらのモデルを構築するために使用されるアルゴリズムは: ### SubSequence **SuBSeq**(Succinct BWT-Based Sequence Prediction)は、Burrows-Wheeler Transform(BWT)を活用した強力なアルゴリズムで、シーケンシャルレコメンデーションシステム向けに特別に設計されており、トランザクション/インタラクションデータから意味のあるパターンを抽出するための高度な技術を活用します。サブシーケンスマイニングに焦点を当て、ユーザーの行動シーケンス内の繰り返しシーケンスや複雑なパターンを識別することができます。効率的なデータ処理とパターン認識の組み合わせにより、SubSeqは時間的依存関係、ユーザーの好み、文脈のニュアンスを捉えることに優れ、最終的に個々の行動に合わせた高度にパーソナライズされたレコメンデーションを生成します。メモリ使用量と計算複雑度の面で特に効率的です。 #### ハイパーパラメータ:
| パラメータ | 説明 | データ型 | 設定可能な値 | デフォルト値 |
|---|---|---|---|---|
| `transactions_column` | 入力データのアイテムセットの列名です。 | str | データセット内の列名 | 指定 |
| `min_similar_sequence` | 必要な類似シーケンスの最小数です。 | int | 任意の正の整数 | 2 |
| パラメータ | 説明 | データ型 | 設定可能な値 | デフォルト値 |
|---|---|---|---|---|
| `no_components` | 潜在特徴埋め込みの次元数です。値が高いほどより複雑な関係を捉えられますが、データセットに対して大きすぎると過学習する可能性があります。 | int | 任意の正の整数 | 10 |
| `n` | k-OSトレーニングの場合、各更新ステップで各ユーザーに対して考慮される正のサンプルの最大数を指定します。 | int | 任意の正の整数 | 10 |
| `learning_schedule` | 使用する学習率スケジュールを決定します。オプションには、トレーニング中の勾配情報に基づいて学習率を調整するadagradやadadeltaなどの適応スケジュールが含まれます。 | str | 'adagrad', 'adadelta'r | 'adagrad' |
| `loss` | 最適化する損失関数を指定します:
|
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 | データセット内の有効な列名 | ユーザー指定 |
| パラメータ | 説明 | データ型 | 設定可能な値 | デフォルト値 |
|---|---|---|---|---|
| `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 |
| パラメータ | 説明 | データ型 | 設定可能な値 | デフォルト値 |
|---|---|---|---|---|
| `user` | 一意のユーザーIDを含むデータセット内の列の名前です。この列は、ユーザーに基づくトランザクションの繰り返しを識別するために不可欠です。 | str | データセット内の有効な列名 | ユーザー指定 |
| `product` | 一意の商品IDを含むデータセット内の列の名前です。この列は、トランザクションにおける特定の商品の繰り返しを追跡するために使用されます。 | str | データセット内の有効な列名 | ユーザー指定 |
| `timestamp_column` | トランザクションのタイムスタンプを含むデータセット内の列の名前です。この列は、繰り返しトランザクション間の時間間隔を計算するために重要です。 | str | データセット内の有効な列名 | ユーザー指定 |
| `quantity` | 繰り返し分析でトランザクション数量を考慮するかどうかを示すブールフラグです。Trueの場合、quantity_columnを使用して数量ベースの繰り返しパターンを組み込みます。 | bool | True, False | ユーザー指定 |
| `quantity_column` | 各トランザクションで購入された商品の数量を含むデータセット内の列の名前です。quantityパラメータがTrueに設定されている場合に必要です。 | str | データセット内の有効な列名 | ユーザー指定 |