[レコメンダ システム]: 協調フィルタリングとコンテンツ ベース フィルタリングの概要

1 はじめに

「情報化時代を脱し、レコメンデーション時代に入ろうとしている」

多くの機械学習手法と同様に、レコメンデーション システムはユーザーの過去の行動に基づいて予測を行います。レコメンダー システムは、具体的には、ユーザーの過去の行動、社会的関係、および関心のあるポイントに基づく情報フィルタリング システムです。一連のアイテムに対するユーザーの好みを予測します。

過去数十年にわたって、Youtube、Amazon、Netflix、およびその他の多くの Web サービスの台頭により、レコメンダー システムは私たちの生活の中でますます重要な位置を占めるようになりました。e コマース (購入者が興味を持ちそうなアイテムを推奨する) からオンライン広告 (ユーザーの好みに合った適切なコンテンツをユーザーに推奨する) まで、レコメンデーション システムは今日の私たちの日常生活に欠かすことができません。一般に、レコメンダー システムは、関連するアイテムをユーザーに推奨するように設計されたアルゴリズムです (アイテムとは、視聴する映画、読むテキスト、購入する製品、または業界に依存するその他のアイテムです)。

レコメンダー システムは、一部の業界では非常に重要です。これは、効率的である場合に莫大な収益を生み出すことができ、競合他社との差別化を図る方法でもあるためです。レコメンダー システムの重要性の証しとして、数年前に Netflix が独自のアルゴリズムよりも優れたパフォーマンスを発揮し、 100万ドルのボーナス。

レコメンデーション システムを構築するための最も一般的な 2 つのアプローチは次のとおりです。

  • コンテンツベース
  • 協調フィルタリング

その中で、協調フィルタリングはメモリベースとモデルベースの2つの方法に分けられます.次に、それらの原理、長所と短所について説明します.

2.コンテンツベースのフィルタリング

ユーザー インタラクションやフィードバックを使用する代わりに、コンテンツ ベースのアプローチでは、アイテム自体の特性に関する多くの情報が必要です。たとえば、ジャンル、年、監督、俳優などの映画の属性や、自然言語処理を適用して抽出された記事のテキスト コンテンツなどです。

  • 属性に基づいて項目にタグを付ける
  • ラベルによる類似度の計算

次に、コンテンツベースのアプローチのアイデアは、利用可能な「機能」に基づいて観察されたユーザーとアイテムの相互作用を説明するモデルを構築しようとすることです. ユーザーと映画を引き続き考慮して、たとえば、若い女性は一部の映画をより高く評価する傾向があり、若い男性は他の映画をより高く評価する傾向があるなどの事実をモデル化しようとします. このようなモデルを取得できれば、ユーザーの新しい予測を簡単に行うことができます。そのユーザーのプロファイル (年齢、性別など) を確認し、その情報に基づいて関連する映画の提案を決定するだけです。したがって、コンテンツベースの推薦方法は静的な方法です。

画像-20220807225313531

コンテンツベースの方法は、コールド スタートの問題による影響がはるかに少なくなります。新しいユーザーまたはアイテムをその特性 (属性) によって分析できるため、これらの新しいエンティティに関連する推奨事項を提供できます。論理的には、新規ユーザーのみのプロジェクトや以前には存在しなかった機能を使用するプロジェクトでは問題が発生しますが、システムが十分に古くなると、これはめったに発生しなくなります。、推奨問題は、多くの場合、分類問題(ユーザーがアイテムを「好き」かどうかを予測する) または回帰問題(アイテムに対するユーザーの評価を予測する)に変換されます。コンテンツの素人の説明に基づいて、どちらの場合も、使用できるユーザーまたはアイテムの特性に基づくモデルを設定します (コンテンツ ベースと呼ばれるもの)。

分類 (または回帰) がユーザーの特性に基づいている場合、アプローチ。モデリング、最適化、および計算は「アイテムごと」に実行できます。この場合、ユーザーの特性に基づいてモデルを構築および学習し、「各ユーザーがこのアイテムを好きになる確率は?」という質問に答えようとします。(または「各ユーザーはこのアイテムをどのくらい評価しましたか?」)。通常、アイテムを操作するユーザーは多数いるため、結果のモデルは堅牢性に基づいています。ただし、学習したモデルのインタラクションが各ユーザーに由来することを考えると、たとえこれらのユーザーが同様の特性 (機能) を持っていても、それらのユーザーの好みは異なる場合があります。これは、この方法はより堅牢ですが、後のユーザー中心の方法よりも個人的ではないことを意味します。

プロジェクトの特性を研究している場合、アプローチはユーザー中心です。モデリング、最適化、および計算は「ユーザーが」行うことができます。次に、アイテムの特徴に基づいてユーザーごとにモデルをトレーニングし、「このユーザーが各アイテムを好きになる確率は?」という答えを出そうとします。この時点で、ユーザーごとにモデルをトレーニングできます。得られたモデルは、調査対象のユーザーからのインタラクションのみを考慮するため、アイテム中心のモデルよりもパーソナライズされています。ただし、ほとんどの場合、ユーザーが操作するアイテムは比較的少ないため、得られるモデルはアイテム中心のモデルよりもはるかに堅牢ではありません。

ここに画像の説明を挿入

実際的な観点からは、ほとんどの場合、新しいユーザーに関する情報を取得すること (ユーザーはあまり多くの質問に答えたくない場合) は、新しいアイテムに関する多くの情報を取得するよりもはるかに困難です。(これらのアイテムを使用したことがある人は、自分のアイテムを適切なユーザーに推奨するために、この情報を入力することに関心があるため)。また、表現したい関係の複雑さに応じて、構築するモデルは単純なものから複雑なものまで、線形回帰からディープ ニューラル ネットワークまでさまざまです。最後に、コンテンツベースのアプローチは、ユーザー中心とアイテム中心の両方になり得ることに言及しましょう。たとえば、2 つの特徴ベクトルを積み重ねてニューラル ネットワーク アーキテクチャを構築することにより、ユーザーとアイテムの両方に関する情報をモデルで使用できます。

2.1 項目中心のベイジアン分類器

まず、アイテム中心の分類の場合を考えてみましょう。アイテムごとに、ユーザーの特徴を入力として受け取り、「好き」または「嫌い」を出力するベイジアン分類器をトレーニングしたいと考えています。したがって、分類タスクを完了するには、
pitem ( like ∣ userfeatures ) pitem ( dislike ∣ userfeatures ) \frac{p_{item}(like|user_{features})}{p_{item}(dislike|user_{機能} )}pです(好きユーザー_ _ _ _ _ _ _特徴_ _ _ _ _)pです(いいユーザー_ _ _特徴_ _ _ _ _)
特定の特性を持つユーザーが検討中のアイテムを気に入る確率と、気に入らない確率の比率。分類ルールを定義する条件付き確率比 (単純なしきい値を使用) は、ベイジアン式の用語で表すことができます
。 userfeatures ∣ 嫌い ) × pitem ( 嫌い ) \frac{p_{item}(like|user_{features})}{p_{item}(dislike|user_{features})}= \frac{p_{item}(user_{機能}| 好き)\times p_{アイテム}(好き)}{p_{アイテム}(ユーザー_{機能}|嫌い)\times p_{アイテム}(嫌い)}pです(好きユーザー_ _ _ _ _ _ _特徴_ _ _ _ _)pです(いいユーザー_ _ _特徴_ _ _ _ _)=pです(ユーザー_ _特徴_ _ _ _ _好きです) _ _ _ _×pです(好き) _ _ _ _ _pです(ユーザー_ _特徴_ _ _ _ _いい) _×pです(いい) _

ここで:ピテム (好き) p_{アイテム} (好き)pです( like )、前のデータから計算できる事前確率です

ピテム ( ⋅ ∣ いいね ) p_{item}(·|いいね)pです( l ike )は条件付き確率であり、これはベイジアン モデルの最も重要な部分です. まず、ナイーブ ベイズは、特徴が条件付きで独立していると仮定します。このようにして、条件付き確率を分解できます。

特徴量が離散データの場合、トレーニング サンプルの各カテゴリの各区分の頻度を数えることが便利である限り、それを使用してP ( userfeaturei ∣ like ) P(user_{feature_i}|like)を推定できます。P (ユーザー_ _特徴_ _ _ _ _ _いい) . _

以下の説明は、地物属性が連続値である場合に焦点を当てています。

特徴が連続データの場合: その値は通常、ガウス分布 (正規分布とも呼ばれます) に従うと想定されます。したがって、学習サンプルの各カテゴリの特徴項目区分の平均値と標準偏差を計算し、正規分布の式に代入すれば、必要な推定値を得ることができます。平均と標準偏差の計算はここでは繰り返されません。

議論する必要があるもう 1 つの問題は、P ( userfeaturei ∣ like ) = 0 P(user_{feature_i}|like)=0 の場合です。P (ユーザー_ _特徴_ _ _ _ _ _いい) _=0どうしよう、この現象は特定のカテゴリの下に特定の特徴項目区分が表示されない場合に発生し、分類器の品質を大幅に低下させます。この問題を解決するために、ラプラス平滑法ます. その考え方は非常に単純で、どのカテゴリにも属さないすべての分割数に 1 を加えることで、トレーニング サンプル セットの数が十分に多ければ、結果に影響を与えず、前述の頻度が 0 であるという恥ずかしい状況を解決します。

画像-20220808162754857

2.1 ユーザー中心の線形回帰

次に、ユーザー中心の回帰の場合を考えてみましょう。ユーザーごとに、アイテムの特徴を入力として取り、そのアイテムの評価を出力する単純な線形回帰をトレーニングしたいと考えています。M をユーザーとアイテムの相互作用行列、行列 X を学習するユーザー係数、行列 Y を特定のアイテムの特徴とします。次に、特定のユーザー i について、次の最適化問題を解くことでX i X_iを学習します。バツ中の関係
X i = min 1 2 ∑ ( i , j ) [ ( X i ) ( Y j ) T − M ij ] 2 + λ 2 ∑ k ( X ik ) 2 X_i = min\frac{1}{2 }\sum_{(i,j)}[(X_i)(Y_j)^T-M_{ij}]^2+\frac{\lambda}{2}\sum_{k}(X_{ik})^2バツ=21( i , j )[( X) (かつ)TMij]2+2lk( X)2
注: i は固定されているため、最初の合計はユーザー i に関連する (ユーザー、アイテム) ペアのみです。すべてのユーザーのモデルを同時に解決すると、最適化問題は、アイテムを固定したまま、後で「交互行列因数分解」で解決する問題とまったく同じであることがわかります。これは、モデルベースの協調フィルタリング方法 (行列分解など) とコンテンツベースの方法潜在モデルの存在を前提としていることをが、モデルベースの協調フィルタリングは、ユーザーとアイテムの両方の行列を学習する必要があります。ベースのメソッドは、ユーザーまたはアイテムのマトリックスを学習するだけで済みます。

画像-20220808163143037

3. 協調フィルタリング

  • 協調フィルタリングとは、データ、行動、好きなものを通じて、あなたに似たユーザーを見つけることです。あなたが興味を持ちそうなアイテムやコンテンツをお勧めします
  • 日常生活の中で、同じ興味を持つ友人を見つけて、映画や音楽を勧めてくれます。

協調フィルタリングは動的なアプローチです。協調フィルタリングでは、一連のアイテムに対するユーザーの過去の設定以外は必要ありません。これは過去のデータに基づいているため、過去に気に入ったユーザーは将来も気に入るだろうという前提が中心になっています。ユーザーの好みに関しては、通常、2 つのカテゴリに分けられます。明示的な評価は、タイタニック号の 5 つ星評価など、ユーザーがアイテムに与える割合です。これは、アイテムがどれだけ好きかについてのユーザーからの最も直接的なフィードバックです。ページビュー、クリック、購入記録、音楽トラックを聴くかどうかなど、ユーザーの好みを間接的に反映する暗黙の評価。この記事では、レコメンダー システムの伝統的で強力なツールである協調フィルタリングについて詳しく見ていきます。

レコメンダー システムの協調フィルタリングは、記録されたユーザーとアイテム間の過去の対話のみに基づいて、新しいレコメンデーションを生成する方法です。これらのインタラクションは、User-Item Interaction Matrixに保存されます。

画像-20220807225820675

次に、協調フィルタリング方法の主なアイデアは、これらの過去のユーザー アイテムが相互作用して、類似のユーザーおよび/または類似のアイテムを検出し、これらの推定された類似度に基づいて予測を行うことです。

協調フィルタリング アルゴリズムのカテゴリは、一般にメモリ ベースの方法とモデル ベースの方法と呼ばれる 2 つのサブカテゴリに分けられます。メモリベースの方法は、モデルを仮定せずに記録されたインタラクション値を直接使用し、基本的に最近傍検索に基づいています (たとえば、関心のあるユーザーから最も近いユーザーを見つけて、それらのユーザーの中で最も人気のあるアイテムを推奨します)。モデルベースのアプローチは、基礎となる「生成」モデルを想定して、ユーザーとアイテムの相互作用を説明し、それを発見して新しい予測を作成しようとします。

[外部リンクの画像転送に失敗しました。元のサイトにアンチヒル機構がある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-bNoEE9QB-1659963301314) (https://raw.githubusercontent.com/19973466719/jojo- pic/main/img/20220808205354.png)]

協調フィルタリング方法の主な利点は、ユーザーやアイテムに関する情報を必要としないため、より広いコンテキストで使用できることです。さらに、より多くのユーザーがアイテムと対話するほど、新しいレコメンデーションはより正確になります。固定された一連のユーザーとアイテムに対して、時間の経過とともに記録された新しい対話が新しい情報をもたらし、システムをより効果的にします。

ただし、過去の対話のみを考慮して推奨を行うため、協調フィルタリングには「コールド スタートの問題」があります。新しいユーザーに何かを推奨したり、新しいアイテムを任意のユーザーに推奨したりすることは不可能であり、多くのユーザーや効果的に対処するアイテム。この欠点は、さまざまな方法で対処できます。新しいユーザーにランダムなアイテムを推奨するか、ランダムなユーザーに新しいアイテムを推奨する (ランダム戦略)、人気のあるアイテムを新しいユーザーに推奨する、または最もアクティブなユーザーに新しいアイテムを推奨する (最大期待戦略)、セットを推奨する異なる新しいユーザーのアイテムまたは異なるユーザーのグループの新しいアイテム (探索的戦略)、または最後に、ユーザーまたはアイテムに対する非協調的なフィルタリング方法の早期使用。
以下では、主に 3 つの古典的な協調フィルタリング方法を紹介します。2 つのメモリベースの方法 (ユーザー-ユーザーおよびアイテム-アイテム) と 1 つのモデルベースの方法 (行列因数分解) です。

3.1 メモリベースの協調フィルタリング

ユーザー - ユーザーおよびアイテム - アイテムのアプローチは、主に、ユーザー - アイテム相互作用マトリックスからの情報のみを使用し、新しい推奨事項を生成するモデルを想定していないという特徴があります。

3.1.1 ユーザー - ユーザー

ユーザーに新しい推奨事項を作成するために、ユーザー間メソッドは、最も類似した「相互作用プロファイル」(最近傍) を持つユーザーを大まかに特定して、それらの近隣ユーザーの間で最も人気のあるアイテムを推奨しようとします(これらのアイテムは、新しいユーザーにとって重要です)。ユーザー)。

簡単に言えば、履歴データ情報に基づいてユーザーを分類し、同じカテゴリのユーザーの間で人気のあるアイテムをレコメンドすることです。たとえば、ユーザー A、B、および C が非常に似ている場合、ユーザー A と B は製品 D をよく購入しますが、ユーザー C は一度も購入したことがありません。製品 D をユーザー C に推奨することができます。

このアプローチは、ユーザーを表し、アイテムとの相互作用に基づいてユーザー間の距離を評価するため、「ユーザー中心」と呼ばれます。

特定のユーザーに推奨事項を作成したいとします。第 1 に、各ユーザーは、さまざまなアイテムを含むインタラクション ベクトル (インタラクション マトリックスの各行) で表すことができます。次に、関心のあるユーザーと他のすべてのユーザーとの間の「類似性」を計算できます。この類似度の尺度は、同じアイテムに対して同様のインタラクションを持つ 2 人のユーザーが近いと見なされるようにするためのものです。各ユーザーとの類似度が計算されると、ユーザーの k 最近傍を取得し、それらの中で最も人気のあるアイテムを提案できます (参照ユーザーがまだ操作していないアイテムのみを調べます)。

ユーザー間の類似性を計算するときは、「共通の相互作用」の数 (2 人のユーザーが共通に持っているアイテムの数) を慎重に考慮する必要があることに注意してください。実際、ほとんどの場合、参照ユーザーとのやり取りが 1 回しかないが、この 1 回のやり取りに 100% 一致する可能性があるが、100 回の相互やり取りがあるが98回しかないユーザーよりも優れていると見なされる人は避けたいと考えています。 %より類似しています。したがって、2 人のユーザーが多くの一般的なアイテムを同じように操作する場合 (同様の評価、同様のホバー時間など)、それらは類似していると見なされます。

画像

3.1.2 アイテム-アイテム

ユーザーに新しいレコメンデーションを作成するためのアイテム-アイテム アプローチの考え方は、ユーザーが既に「積極的に」操作したアイテムに類似したアイテムを見つけることです。2 つのアイテムを操作する大多数のユーザーが同様の方法で行動する場合、2 つのアイテムは類似していると見なされます。このアプローチは、ユーザーのアイテムとのやり取りに基づいてアイテムを表し、それらのアイテム間の距離を評価するため、「アイテム中心」と呼ばれます。

特定のユーザーに推奨事項を作成したいとします。まず、このユーザーのお気に入りのアイテムを検討し、(他のすべてのアイテムと同様に) 各ユーザーとのインタラクション ベクトル (インタラクション マトリックスの「その列」) によってそれを表します。次に、「最良のアイテム」と他のすべてのアイテムとの類似度を計算できます。類似度が計算されると、k 個の最近傍アイテムを保持して、関心のあるユーザーに推奨することができます。

より関連性の高いレコメンデーションを取得するには、ユーザーのお気に入りのアイテムだけでなく、**n 個のトップ アイテムを考慮することもできます。**この場合、これらの優先アイテムのいくつかに近いアイテムをお勧めできます。

画像

3.1.3 user-user と item-item の比較

ユーザー間の方法は、アイテムとの相互作用に関して類似のユーザーを検索することに基づいています。一般に、各ユーザーは少数のアイテムのみを操作するため、メソッドは記録された操作に対して非常に敏感 (分散が大きい) になります。一方、最終的なレコメンデーションは、関心のあるユーザーと同様のユーザーの記録された対話のみに基づいているため、よりパーソナライズされた結果 (低バイアス) が得られます。
対照的に、アイテム-アイテム アプローチは、ユーザー-アイテム インタラクションの観点から類似したアイテムを検索することに基づいています。一般に、多くのユーザーがアイテムを操作するため、近隣検索は個々の操作に対する感度がはるかに低くなります (分散が低くなります)。対応するものとして、さまざまなユーザー (参照ユーザーとは非常に異なるユーザーでさえも) からの対話がレコメンデーションで考慮され、方法がより個人的ではなくなります (より偏ったものになります)。したがって、この方法はユーザー間方法ほどパーソナライズされていませんが、より堅牢です。

画像-20220808001021534

複雑さと副作用

メモリベースの協調フィルタリングの最大の欠点の 1 つは、簡単に拡張できないことです。大規模なシステムでは、新しい推奨事項を生成するのに時間がかかる可能性があります。実際、何百万ものユーザーと何百万ものアイテムを持つシステムの場合、最近傍探索ステップは慎重に設計しないと扱いにくくなる可能性があります (KNN アルゴリズムの複雑さは O(ndk) で、n はユーザー数、d はアイテムの数、k は考慮される近傍の数)。大規模システムの計算をより扱いやすくするために、アルゴリズムの設計時に相互作用行列のスパース性を利用するか、近似最近傍法 (ANN) を使用することができます。
ほとんどのレコメンデーション アルゴリズムでは、人気のあるアイテムに「増加と成長」の影響を与えたり、ユーザーをいわゆる「情報なし」ゾーンに閉じ込めたりしないように細心の注意を払う必要があります。** 言い換えれば、私たちのシステムがますます人気のあるアイテムを推奨する傾向にあることを望んでおらず、また、ユーザーが既に気に入っているアイテムに非常に近いアイテムの推奨のみを受け取り、その機会を逃してしまうことも望んでいません。それらについて学ぶ新しいアイテムも好きかもしれません (これらはお勧めするのに「十分に近い」わけではないため)。前述したように、これらの問題はほとんどのレコメンデーション アルゴリズムで発生する可能性がありますが、特にメモリ ベースの協調フィルタリング アルゴリズムで発生する可能性があります。実際、この現象は、「正規化された」モデルがないために、より顕著になり、より頻繁に観察される可能性があります。

3.2 モデルベースの協調フィルタリング手法

モデルベースの協調フィルタリング方法は、ユーザーとアイテムの相互作用情報のみに依存し、潜在モデルがこれらの相互作用を説明する必要があると想定しています。たとえば、行列因数分解では、巨大でまばらなユーザーとアイテムの相互作用行列を、2 つの小さくて密度の高い行列の積に分解する必要があります。ユーザーと要素の行列 (ユーザー表現を含む) に要素と項目の行列 (アイテムの表現を含む) を掛けたものです。

たとえば、ユーザーの映画評価のマトリックスがあるとします。ユーザーと映画の間の相互作用をモデル化するために、次のように仮定できます。

  • いくつかの映画的な機能があります。
  • これらの機能は、ユーザーの好みを説明するためにも使用できます (ユーザーは価値の高い機能を好み、そうでない場合は機能の価値が低くなります)。

画像-20220808131508796

ただし、これらの機能をモデルに明示的に割り当てたくはありません (後で説明するコンテンツ ベースのメソッドに使用できるため)。代わりに、システムがこれらの便利な機能を独自に検出し、ユーザーとアイテムを自動的に表示できるようにすることを好みます。それらは与えられるのではなく学習されるため、個々に抽出された特徴は数学的な意味を持ちますが、直感的な解釈はできません。ただし、このアルゴリズムは、人間が考えることができる直感的な分解に非常に近い構造を生成することになります。実際、この分解の結果、好みの点で近いユーザーと、特徴の点で近いアイテムは、潜在空間での表現が近いという結果になります。

行列分解の数学的説明

次に、行列分解の数学的概要を簡単に紹介します。より具体的には、すべてのデータをコンピューターのメモリに同時にロードすることなく、非常に大きな行列の分解を取得できる勾配降下法に基づく古典的な反復法について説明します。
各ユーザーが特定のアイテムのみを評価した、評価を含む対話行列 M(nxm) を考えてみましょう。

画像-20220808173423436

それらのほとんどは None です, これは、ユーザーがまだ映画を評価していないことを意味します. 推薦システムでは, タスクは重く, この評価マトリックスはしばしば非常にまばらなマトリックスです. マトリックス分解が行うことは、マトリックスに欠けている評価を予測することです。これにより、予測された評価がユーザーの好みを反映できるようになります。この行列を次のように分解します:
M = XYTM=XY^TM=X YT
ここで、X はユーザー マトリックス(n×l) で、各行はユーザーを表し、Y はアイテム マトリックス(l×k) で、各列はアイテムを表します。

ここで、l はユーザーとアイテムの潜在空間を表す次元です。したがって、内積が既存の相互作用に最も近い行列 X と Y を検索します。M ij M_{ij}となるペア (i,j) のセットとして E を表すMijnull ではなく、「評価誤差」を最小化する X と Y を見つけたい
( X , Y ) = min ∑ M ij ≠ 0 [ M ij − ( X i ) ( Y j ) T ] 2 (X,Y) = min \sum_{M_{ij}\neq0}[M_{ij}-(X_i)(Y_j)^T]^2( X =Mij= 0[ Mij( X) (かつ)T ]2 L2正則化
を追加するようになります:( X , Y ) = min 1 2 ∑ M ij ≠ 0 [ M ij − ( X i ) ( Y j ) T ] 2 + λ 2 ( ∑ i , k ( X ik ) 2 + ∑ j , k ( Y jk ) 2 ) (X,Y) = min\frac{1}{2}\sum_{M_{ij}\neq0}[M_{ij}-(X_i)(Y_j) ^ T]^2+\frac{\lambda}{2}(\sum_{i,k}(X_{ik})^2+\sum_{j,k}(Y_{jk})^2)
( X =21Mij= 0[ Mij( X) (かつ)T ]2+2l(k( X)2+j k(JK)2 )上記の損失関数最小化する
だけです今回は最適化処理です。スコア行列から User 行列と Item 行列を分解するには、左側のスコア行列 M のみが既知で、User 行列と Item 行列は不明です。ユーザー行列とアイテム行列を学習するために、ユーザー行列*アイテム行列とスコア行列の既知のスコア差を最小化する(最適化問題)

行列 X と Y は勾配降下法で解くことができ、2 つのことがわかります。まず、各ステップで E のすべてのペアの勾配を計算する代わりに、これらのペアのサブセットのみを考慮して、目的関数を「バッチ」最適化できます。第二に、X と Y の値を同時に更新する必要はなく、各ステップで X と Y に対して勾配降下を交互に行うことができます (その際、行列を固定して最適化すると見なします)。次のステップで反対のことを行う前に) 別の行列反復)、次の結果が得られると仮定します。

画像-20220808152357549

マトリックスが分解されると、より少ない情報で新しい推奨事項を作成できます。ユーザー ベクトルに任意の項目ベクトルを掛けるだけで、対応する評価を推定できます。ユーザーとアイテムのこれらの新しい表現には、ユーザー-ユーザーおよびアイテム-アイテム メソッドも使用できることに注意してください。(近似) 最近傍検索は、巨大なスパース ベクトルではなく、小さな密なベクトルに対して実行されます。扱いやすい。例として、映画のおすすめを取り上げます。

ユーザーによる映画 i の予測評価u = ユーザー ベクトルとアイテム ベクトルの内積

[外部リンクの画像転送に失敗しました。ソース サイトにアンチ リーチ メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-lRdWehO3-1659963301320) (https://raw.githubusercontent.com/19973466719/jojo- pic/main/img/20220808205436.png)]

これらの 2 つの行列を乗算すると、各ユーザーの各映画の予測スコアを得ることができます. スコアが大きいほど、ユーザーがその映画を気に入る可能性が高くなり、その映画をユーザーに推薦する価値が高くなります.

最後に、この基本的な分解の概念は、より複雑なモデル、たとえば、より一般的なニューラル ネットワークに拡張できることに注意してください。最初に考えられるのはブール相互作用行列です。ブール相互作用を再構築したい場合、単純な内積ではうまくいきません。ただし、このドット積の上にロジスティック関数を追加すると、[0, 1] の値を持つモデルが得られるため、問題をより適切に解決できます。この場合、最適化するモデルは
min 1 2 ∑ M ij ≠ 0 [ f ( X i , Y j T ) − M ij ] 2 + λ 2 ( ∑ i , k ( X ik 2 ) + ∑ j , k ( Y ik ) 2 ) min\frac{1}{2}\sum_{M_{ij}\neq0}[f(X_i,Y_j^T)-M_{ij}]^2+\frac{\lambda } {2}(\sum_{i,k}(X_{ik}^2)+\sum_{j,k}(Y_{ik})^2)21Mij= 0[ f ( XjT)Mij]2+2l(k( X2)+j k()2 )
ここで、f(.) はロジスティック関数です。より深いニューラル ネットワーク モデルは、多くの場合、複雑なレコメンダー システムで最先端に近いパフォーマンス (SOTA

[外部リンクの画像転送に失敗しました。ソース サイトにアンチ リーチ メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-kKuXnXL8-1659963301321) (https://raw.githubusercontent.com/19973466719/jojo- pic/main/img/20220808205446.png)]

4. モデル、バイアス、分散

前述の方法の主な違いに注目しましょう。特に、バイアスと分散への影響を見てみましょう。メモリベースの協調フィルタリング手法
では、潜在モデルは想定されていません。このアルゴリズムは、ユーザーとアイテムの相互作用を直接処理します。たとえば、ユーザーはアイテムとの相互作用によって表され、これらの表現に対する最近傍検索を使用して提案が生成されます。基礎となるモデルが想定されていないため、これらの方法は理論的にはバイアスが低く、分散が大きくなります。モデルベースの協調フィルタリング方法では、いくつかの基本的な相互作用モデルが想定されています。モデルは、独自のユーザーとアイテムの表現からユーザーとアイテムの相互作用の値を再構築するようにトレーニングされています。その後、このモデルに基づいて新しい推奨事項を作成できます。モデルによって抽出されたユーザーとアイテムの潜在的な表現には、人間が解釈するのが難しい数学的意味があります。ユーザーとアイテムの相互作用のモデルが想定されているため、この方法は、基礎となるモデルを想定していない方法よりも、理論的にはバイアスが高くなりますが、分散は低くなります。最後に、コンテンツベースのアプローチでは、いくつかの基本的な相互作用モデルも想定されています。ただし、ここでは、モデルはユーザーとアイテムの表現を定義するものを提供します。たとえば、ユーザーは特定の機能によって表され、アイテムごとに、そのアイテムが好きまたは嫌いなユーザー機能をモデル化しようとします。ここで、モデルベースのフィルタリング アプローチでは、ユーザーとアイテムの相互作用モデルが想定されます。ただし、モデルはより制約されているため (ユーザーとアイテムの表現が与えられているため)、この方法はバイアスが最大になる傾向がありますが、分散は最小になります。

画像-20220808163815149

5. 推薦システムの評価

他の機械学習アルゴリズムと同様に、レコメンダー システムのパフォーマンスを評価して、状況に最適なアルゴリズムを判断できる必要があります。レコメンダーシステムの評価方法は、主に2つのグループに分けられます。明確に定義された指標に基づく評価と、主に人間の判断と満足度の推定に基づく評価です。

5.1 評価指標に基づく評価

レコメンデーション システムが、評価予測や一致確率などの数値を出力するモデルに基づいている場合、平均二乗誤差 (MSE) などの誤差測定を使用して、非常に古典的な方法でこれらの出力の品質を評価できます。この場合、モデルは利用可能なインタラクション データの一部でのみトレーニングされ、残りのインタラクション データでテストされます。

レコメンデーション システムが値を予測するモデルに基づいている場合、これらの値を 2 値化し (しきい値を超える値は正、しきい値を下回る値は負) 、従来のしきい値処理を使用して「カテゴリ的に」評価することもできます。 method Model . 実際、ユーザーとアイテムの過去の相互作用のデータセットも 2 値化される (またはしきい値処理によって 2 値化できる) ため、テスト データセットでモデルの 2 値化された出力の精度 (および精度と再現率) を評価できます。

最後に、数値ベースではなく、推奨事項のリストを返すだけのレコメンダー システム (knn メソッドに基づくユーザー-ユーザーまたはアイテム-アイテムなど) を検討した場合でも、メトリック見積もりは本当に私たちのユーザーに合う おすすめアイテムの割合。この精度を推定するために、ユーザーが操作していない推奨アイテムを考慮することはできません。ユーザーからのフィードバックがあるテスト データセット内のアイテムのみを考慮する必要があります。

5.2 人による評価

レコメンデーション システムを設計するとき、私たちは非常に確実なレコメンデーションを生成するモデルを取得することに関心があるだけでなく、レコメンデーションの多様性や解釈可能性など、他のいくつかの優れた特性も期待できます。
協調フィルタリングで述べたように、先ほど説明した情報が制限された領域にユーザーが閉じ込められるのを避けたいと考えています。「偶発性」の概念は、モデルがそのような制限された領域 (提案された多様性) を作成する傾向があるかどうかを表現するためによく使用されます。レコメンドアイテム間の距離を計算することで推定できる発生率は、低すぎると制限領域ができてしまいますが、高すぎると、レコメンドを推奨する際にユーザーの関心が十分に考慮されていないことになります。 ** (探索と活用) ** . 搾取: 関心のある過去のコンテンツを表示します。探索: 多様性を示すコンテンツ。したがって、提案される選択肢に多様性をもたらすために、ユーザーに非常に適していて、似すぎていないアイテムをお勧めしたいと考えています。たとえば、ユーザーに「Start War 1、2、3」、「Star Wars 1」、「Start Trek Into Darkness」、「Indiana Jones and the Lost Ark Raiders」を推奨する代わりに、これらの 2 つが後で使用される可能性があります。 by us のシステムでは、ユーザーが関心を持つ機会が少ないと見なされますが、見た目があまりにも似ている 3 つのアイテムを推奨することは適切な選択ではありません。
解釈可能性は、レコメンデーション アルゴリズムの成功のもう 1 つの重要なポイントです。実際、特定のアイテムが推奨される理由を理解していない場合、ユーザーは推奨システムに対する信頼を失う傾向があることが示されています。そのため、明確に説明できるモデルを設計すると、アイテムを推奨する理由を推奨するときに短い文を追加できます (「このアイテムが好きな人は、別のアイテムも好きです」、「このアイテムが好き、あなたは興味があるかもしれません」)。この項目「気になる」……)。
最後に、多様性と解釈可能性を評価するのが本質的に難しいという事実に加えて、テスト データセットに属さない推奨事項の品質を評価することも非常に難しいことに注意してください。新しい推奨事項が実際に利用可能かどうかをどうやって知るのでしょうか推奨前に関連性はありましたか? これらすべての理由から、「実際の条件」でモデルをテストすることが役立つ場合があります。レコメンダー システムの目標は行動 (映画を見る、製品を購入する、記事を読むなど) を生成することであるため、期待される行動を生成する能力を実際に評価することができます。たとえば、システムは、A/B テスト アプローチに従って運用することも、ユーザー サンプルのみでテストすることもできます。テストでは、モデルに一定レベルの信頼性を設定する必要があります。( α = 0.05 \alpha=0.05a=0.05 )

6. まとめ

まず、レコメンデーション アルゴリズムは 2 つの古典的なモデルに分けることができます:協調フィルタリング方法(ユーザー間、アイテム間、行列分解など) とコンテンツ ベースの方法です。

第 2 に、メモリベースの協調フィルタリング手法は、潜在モデルを想定しないため、バイアスは低くなりますが、分散が高くなります。モデルベースの協調フィルタリングは、潜在相互作用モデルがユーザーとアイテムの特徴をゼロから学習する必要があると想定するため、バイアスは高くなりますが、より低い分散; コンテンツベースのアプローチは、潜在モデルがユーザーおよび/またはアイテムの特性に基づいて構築されていると想定しているため、最大のバイアスと最小の分散があります

第 3 に、レコメンダー システムは評価が困難です。MSE、精度、再現率、または精度などのいくつかの古典的なメトリックを使用できる場合、多様性 (不測の事態) や可用性などの一部のプロパティをこの方法で評価できないことを覚えておく必要があります。フィールドワーク (オフライン テスト、少量のオンライン AB テスト、オンラインでのフル トラフィック) は、最終的には新しいレコメンデーション システムを評価する唯一の現実的な方法ですが、設定するには一定レベルの信頼が必要です。

第 4 に、この紹介記事では混合方法については説明していないことに注意してください。これらの方法は、多くの場合、協調フィルタリングとコンテンツベースの方法を組み合わせて最先端の方法を実現するため、今日の多くの大規模なレコメンダー システムで使用されています。ハイブリッド手法で行われる組み合わせは、主に 2 つの形式を取ることができます。2 つのモデル (協調フィルタリング モデルとコンテンツ ベースのモデル) を個別にトレーニングし、それらの提案を組み合わせることができます。または、事前情報 (ユーザーとアイテムに関する情報) とインタラクション情報を入力として使用して、2 つのアプローチを統合するモデル (通常はニューラル ネットワーク) を単純に構築します。読んでくれてありがとう!著者の知識は限られています. 間違いがある場合は、あなたのものを優先し、コメント領域でそれらを修正してください.

参考文献:

深層学習推奨システム. Zhe Wang
https://medium.com/towards-data-science/introduction-to-recommender-systems-6c66cf15ada

おすすめ

転載: blog.csdn.net/weixin_45052363/article/details/126235962