神経協調フィルタリングでレコメンデーションエンジンのマスタリング
『神経協調フィルタリングによるレコメンデーションエンジンの極め方』
この記事は、ニューラルコラボレーティブフィルタリング(NCF)を使用した推薦エンジンの作成に関する完全なマニュアルです。推薦エンジンの簡単な紹介から始めて、異なるタイプの推薦エンジンを舞い踊って、主にモデルベースの協調フィルタリングに焦点を当て、最終的にはニューラル推薦エンジンの動作について説明します。さらに魅力を増すために、最後に実際の例も紹介します。お楽しみに!
免責事項 — この記事は、読者が推薦エンジンと協調フィルタリングについて理解していることを前提としています。
アウトライン —
1. 推薦エンジンとそのタイプとは?
推薦エンジンまたはレコメンデーションシステムとも呼ばれる推薦エンジンは、視聴、購入、消費する可能性の高いコンテンツを提供するエンジンまたはアルゴリズムです。これらのシステムは、電子商取引サイト、ストリーミングサービス、ソーシャルメディアやコンテンツプラットフォームなど、さまざまなオンラインプラットフォームで重要な役割を果たしています。これらのエンジンの主な目標は、ユーザーの好みと行動を分析し、適切な推薦を提供することで、ユーザーのエンゲージメントと満足度を向上させることです。最も一般的な例は、Netflix、Amazon Primeなどのオンラインストリーミングサービスで、「おすすめのコンテンツ」として表示されるホームページの推薦です。
推薦エンジンのタイプ :
- コンテンツベースフィルタリング
- 協調フィルタリング
- ハイブリッドモデル
それでは、これらについて簡単に説明しましょう —
コンテンツベースフィルタリングは、ユーザーが過去に対話したアイテムの特性や特徴を分析します。アイテムの属性に焦点を当てることで、類似の特性を持つアイテムを推薦します。これは、ユーザーベースが少なく、提供する商品が多い場合に主に使用されます。
協調フィルタリング (CF)は、一群のユーザーの好みや行動を調べることでアイテムを推薦します。ユーザーベースCFは、似たようなユーザーを特定し、その似たようなユーザーが好きなアイテムを推薦します。一方、アイテムベースCFは、ユーザーが以前に楽しんだアイテムに類似したアイテムを推薦します。
ハイブリッド推薦エンジンは、コンテンツベースと協調フィルタリングの両方の側面を組み合わせたアプローチをとります。さまざまな手法を統合することで、個別の制約を克服し、より正確で多様な推薦を提供します。
今、協調フィルタリング推薦エンジンは、メモリベースとモデルベースの2つにさらに分類されます。
これらの2つの方法の大きな違いは、ユーザーがアイテムに対して与える評価を決定する方法です。
- メモリベースCFは、相関(例:ピアソン相関係数)を使用してユーザー/アイテムの類似性を測定し、ユーザーがアイテムに対して与える評価の重み付き平均を取り、ユーザーのアイテムに対する評価を生成します。
- モデルベースCFは、機械学習や統計モデルを使用してデータのパターンと関係を学習し、それを使用してユーザーのアイテムに対する評価を決定します。
どちらの方法も興味深いですが、この記事ではタイトルを正当化するために、モデルベースの協調フィルタリングにより詳しく掘り下げます!
2. モデルベースの協調フィルタリングとNCF
モデルベースの協調フィルタリングは、ユーザーとアイテムの相互作用からモデルを作成し、予測を行うという簡単な手法です。機械学習や統計モデルを使用してデータのパターンと関係を学習します。詳細を見ていきましょう。
モデルベースのCFは、通常、ユーザー特徴とアイテム特徴の行列を生成し、ランダムに初期化してドット積し、重み付けしてユーザーとアイテムの相互作用スコアを生成します。下の画像で視覚化できます。
上記のように、行列UおよびVはユーザー特徴およびアイテム特徴の行列です。これらはランダムに初期化されます。
- ユーザーとアイテムの相互作用行列(R)は、ユーザーによって評価されないアイテムがほとんどのため、通常スパースです。
- 行列UとVは、ユーザーとアイテムの相互作用行列の予測値を生成するためにドット積されます。これらは2つのランダム行列(UおよびV)のドット積から得られるいくつかのランダムな値です。これをランダム値の行列R`と呼びましょう。
- 実際の出力と予測出力間の損失を最小化するために、通常の機械学習における勾配降下法などの最適化アルゴリズムを使用するように、行列UおよびV内の値を更新するために勾配降下法を使用するアプローチがここで採用されます。
勾配降下法は、これらのランダムな重みを最適な値に調整し、予測された評価と実際の評価値との間の差を最小化します。
モデルは、行列UおよびV内の潜在的な特徴に重みを割り当てることを学習します。これらの重みは、ユーザーとアイテムの相互作用データのパターンと嗜好を捉えます。モデルが収束するまでこれらの重みは最適化されます。学習された行列UおよびVは、元の行列内の欠損エントリーを予測し、ユーザーに対してパーソナライズされた推薦を行うために使用されます。
推薦システム
これは、疎なユーザーとアイテムの相互作用行列を2つの低ランク行列(UおよびV)に分解する方法で、行列因子化と呼ばれています。SVDといった他のモデルベースのCF手法もあります。
- 特異値分解(SVD)
- 確率的行列因子化(PMF)
- 非負行列因子化(NMF)
- 因子化マシン(Factorization Machines)
- ニューラル協調フィルタリング(NCF)
- レコメンデーションのためのディープラーニングモデル — RNN、CNN、Transformersなど
これらのモデルベースのCF手法の要点は、ユーザーとアイテムの相互作用データの潜在的な特徴パターンを学習することです。行列因子化、SVDなどの手法は線形パターンのみを捉えることができますが、他の手法は非線形性も捉えることができます。NCFはそのような手法の一つです!
ニューラル協調フィルタリング
ニューラル協調フィルタリング(NCF)は、ニューラルネットワークの表現力を活用して、ユーザーとアイテムの相互作用における複雑で非線形な関係性をモデル化します。従来の協調フィルタリング手法は線形パターンを捉えることができますが、NCFはReLUなどの活性化関数を使用して非線形性を捉えることができます。協調フィルタリングレイヤーにニューラルネットワークを組み込むことで、推薦問題を機械学習タスクに変換し、通常は多層パーセプトロン(MLP)またはディープニューラルネットワークを含むニューラルアーキテクチャを使用します。
NCFモデルの構築方法について詳しく見ていきましょう。
純粋なNCFモデルの作業アルゴリズム
Matrix Factorisation(MF)などの従来の協調フィルタリングモデルを構築する際には、通常、疎なユーザー-アイテム相互作用行列から始め、ユーザーとアイテムの潜在的な特徴行列UおよびVを作成します。これらの特徴行列はランダムに初期化されるか、埋め込みを使用して作成されます。次に、これらの特徴行列をドット積して行列R`を生成し、その後、行列UおよびV内の値を更新するために使用されます。NCFは、MFモデルの構造を取り入れ、ニューラルネットワークと組み合わせます。
典型的なNCFモデルは埋め込みを利用します。アーキテクチャは3つのレイヤーに分解されます。
- Matrix Factorisation(MF)レイヤー — ユーザーとアイテムの埋め込みに対してドット積を行うR`を生成します。行列R`はユーザーとアイテム間の線形相互作用を捉えます。
- ニューラルネットワーク(NN)レイヤー — MLPを介して渡されるユーザーとアイテムの結合された埋め込みを生成します。MLPレイヤーはユーザーとアイテム間の非線形相互作用を捉えるために使用されます。
- NCF出力レイヤー — MFレイヤーの出力とNNレイヤーの出力を組み合わせて最終出力を生成します。MFレイヤーからの出力R`はNNレイヤーの出力と連結されます。この連結ベクトルは、最終的なモデルの出力を生成するためにDenseレイヤーを介して渡されます。
MLPをトレーニングに組み込む唯一の目的は、ユーザーとアイテムの潜在的な特徴の非線形相互作用を捉えることです。
モデルは、バッチ正規化、ドロップアウトレイヤー、Adamなどの最適化手法などのさまざまな組み合わせに対応するように調整できます。
実際の問題に触れてみましょう。
4. NCFを用いたレコメンデーションエンジンの作成
4.1 問題の設定
伝統的なCFモデルの代わりにNCFを使って通常の映画推奨者の問題設定を行います。関連する問題設定は、KaggleやUCI Machine Learningリポジトリなどのウェブサイトで見つけることができます。
4.2 データセット
フィルタリングと前処理を行ったデータセットは、以下のようになりますー
ユーザーが映画に対して与えたuserId、movieId、および評価が含まれています。協調フィルタリング手法では、他のユーザーやアイテムの特徴に関係なく、ユーザーとアイテムの相互作用のパターンを学習するため、CFモデルやCFから派生したモデル(NCFなど)には、ユーザーとアイテムの相互作用のみが必要です。
4.3 ユーザー-映画相互作用行列
ユーザー-映画相互作用行列は、ユーザーが映画に対して付けた評価を示しています。これはスパース行列です。なぜなら、ユーザーがすべての映画を見ているわけではないからです。
4.4 モデリングのためのデータの準備
ニューラルネットワークは数値のみを入力として受け取るため、userIdとmovieIdをインデックス化しました。これにより、userIdとmovieIdが整数以外のカテゴリ化された形式や他の形式にある場合に役立ちます。次に、データをランダムな80-20の分割に分割し、トレーニングセットと検証セットを生成しました。
4.5 モデルアーキテクチャ
モデルアーキテクチャをステップバイステップで説明しますー
- エポック数、バッチサイズ、学習率、埋め込みサイズなどのハイパーパラメータを定義します。
- Kerasのレイヤーを使用してモデルの入力層を定義します。Input
- ユーザーと映画の埋め込みでMF層を定義します。埋め込みをフラット化し、ドット積をとって類似度スコアを生成します(伝統的なMFアーキテクチャ)。
- ユーザーと映画の埋め込みでNN層を定義し、埋め込みをフラット化し、結合します。さらに、Multi-Layer Perceptron(MLP)を介して入力として渡し、出力を生成します。ニューロンの数、バッチ正規化、ドロップアウトレイヤーなどの修正を追加および調整します。
- MF層とNN層の出力を連結してNCF層を定義します。連結されたベクトルを一つのニューロンを持つDense層に通し、モデル全体の出力を生成します。
- 選択した損失関数(MSE)および最適化手法でモデルを構築およびコンパイルします。
4.6 モデルのトレーニングと評価
所望のエポック数とバッチサイズでモデルをトレーニングします。最良の結果を生成するために、異なるエポック数とバッチサイズの組み合わせを試してみてください。
4.7 予測する
モデルの訓練と評価が成功した後、未評価の映画に対してレーティングを得るために、データセット全体に対して予測を行います。
5. 結論
レコメンデーションエンジンの旅に乗り出すと、技術が自分自身以上に私たちを理解する世界が広がります。ニューラル協調フィルタリング(NCF)はただのアルゴリズムではありません。それはユーザーごとにカスタムで作られた旅を紡ぐ魔法使いです。NCFの力によって、レコメンデーションはただの提案ではありません – 新しい情熱と経験を発見するための個人に合わせた招待状です。別れを告げる際に、進化する技術の興奮を受け入れ、すべてのレコメンデーションがデジタルな冒険の喜びをかきたてる小さなスパークであることを知りましょう。
これらもチェックしてみてください —
クリック確率予測の力
CPP — 現代のレコメンデーションシステム、オンライン広告主などのアルゴリズムを支えるエンジン
VoAGI.com
ロジスティック回帰のワンストップ
ロジスティック回帰? なぜ回帰と呼ばれるのですか? それは線形ですか? なぜそれほど人気があるのですか? ログオッズとは一体何ですか?
pub.towardsai.net
サポートベクターマシンのワンストップ
サポートベクター? マシン? なぜオズワルド・モズリーは死んでいないのですか?
VoAGI.com
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- 「Huggingface 🤗を使用したLLMsのためのRLHFトレーニングパイプライン」
- In this article, we will explore the fascinating world of NOIR, Stanford University’s mind-controlled AI robot.
- 「ChatGPT for Parents — 生産性を高めるために必要なプロンプト」
- 「物理的な制約が脳のようなAIの進化を促す」
- 「CNN(畳み込みニューラルネットワーク)におけるポイントワイズ畳み込みの探求:全結合層の置き換え」
- 「起業家にとって最も優れたChatGPTプロンプト20選」
- ゲームに飢える:GeForce NOWに参加する18の新しいゲーム