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

コンテンツ ベース フィルタリングでは、アイテムの機能を使用して他のアイテムをおすすめしています 過去のアクションや明示的なリクエストに基づいて ユーザーが好むものと類似しています できます。

コンテンツ ベースのフィルタリングのデモを行うために、いくつかの機能をハンドエンジニアリングしてみましょう。 ダウンロードしてください次の図は、特徴量行列を示しています。 各行はアプリを表し、各列は機能を表します。機能 カテゴリ(教育、カジュアル、健康など)や 多岐にわたります。簡単に説明すると、この特徴マトリックスはバイナリであるとします。 ゼロ以外の値は、アプリにこの機能があることを意味します。

また、同じ特徴空間でユーザーを表します。ユーザー関連イベントには、 ユーザーが明示的に提供することもできます。たとえばユーザーが "エンタメアプリ"選択します。暗黙的に指定することも、 アプリを自動インストールできますたとえば、ユーザーが Science R Us が公開している別のアプリをインストールしました。

モデルは、このユーザーに関連するアイテムをおすすめします。そのためには、 まず類似性指標(ドット積など)を選択します。次に、 システムをセットアップし、この類似性に従って各候補アイテムをスコア付けします。 表示されます。レコメンデーションは、このユーザーに特有のものであり、 他のユーザーに関する情報は使用していませんでした。

ユーザーとおすすめのアプリを示したマトリックスの画像

類似度尺度としてドット積を使用する

ユーザーのエンベディングと \(x\) アプリが Embeddings \(y\) はどちらもバイナリ ベクトルです。以降 \(\langle x, y \rangle = \sum_{i = 1}^d x_i y_i\)、 両方に表示される特徴が \(x\) \(y\) 求められます。つまり、 \(\langle x, y \rangle\) は 両方のベクトルで同時にアクティブになる特徴の ペア数です高 ドット積は、より一般的な特徴を示すため、類似性が高くなります。

実際に試してみましょう。

前述のアプリの問題で、各アプリのドット積を計算します。 その情報を元に、以下の質問に答えてください。

おすすめするアプリ
Science R Us が開発した教育アプリ。
正解です。このアイテムはドット積が最も高くなります 2 でユーザーは科学アプリや教育アプリをとても気に入っています。
Healthcare が作成した健康アプリ。
このアプリのスコアは 1 です。Google が推奨する 最悪の推奨事項ではありません 最善とはいえません
TimeWastr が作成したカジュアル アプリ。
このアプリのドット積が最も小さいのは 0 です。Google ユーザーはゲームなどのカジュアル アプリに興味がない。