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

コンテンツ ベースのフィルタリングは、アイテム機能を使用して、以前のアクションや明示的なフィードバックに基づいて、ユーザーの好みに類似した他のアイテムを推奨します。

コンテンツ ベースのフィルタリングのデモを行うために、Google Play ストアのいくつかの機能を手動で操作してみましょう。以下の図は特徴行列を示しています。各行はアプリを表し、各列は特徴を表しています。機能には、カテゴリ(教育、カジュアル、健康など)やアプリ パブリッシャーなどが含まれる場合があります。わかりやすくするため、この機能マトリックスがバイナリであると仮定します。ゼロ以外の値は、アプリにその特徴があることを意味します。

また、ユーザーを同じ特徴空間で表します。ユーザー関連の機能の一部は、ユーザーが明示的に指定できます。たとえば、ユーザーがプロフィールで [エンターテイメント アプリ] を選択した場合、その他の機能は、以前にインストールしたアプリに基づいて暗黙的に表示されることがあります。たとえば、ユーザーが Science R Us によって公開されている別のアプリをインストールしたとします。

このモデルは、このユーザーに関連するアイテムをおすすめする必要があります。これを行うには、まず類似性の指標(ドット積など)を選択する必要があります。次に、この類似性の指標に従って各候補項目をスコア化するようにシステムを設定する必要があります。モデルは他のユーザーに関する情報を使用していないため、推奨事項はそのユーザー固有のものです。

ユーザーとアプリの候補が示されているマトリックスの画像

ドット商品を類似度の基準として使用する

ユーザーがエンベディング \(x\) し、アプリ エンベディング \(y\) がどちらもバイナリ ベクトルである場合を考えてみましょう。\(\langle x, y \rangle = \sum_{i = 1}^d x_i y_i\)以降、 \(x\) と \(y\) の両方に表示される特徴は合計に 1 を寄与します。つまり、 \(\langle x, y \rangle\) は、両方のベクトルで同時にアクティブな特徴の数です。高点のプロダクトは、より一般的な特徴を示し、類似度も高くなります。

実際に試す

上記のアプリに関する問題について、各アプリのドット積を計算します。 その情報を使用して、以下の質問に答えてください。

どのアプリをおすすめしますか?
Science R Us によって作成された教育アプリ。
正解です。このアイテムには、2 つのドットで最高点を揃えています。Google のユーザーは科学と教育のアプリを非常に気に入っています。
Healthcare によって作成された健康アプリ。
このアプリは 1 点を獲得しています。Google のシステムが提案する中で最悪の推奨値ではありませんが、最善の方法ではありません。
TimeWastr が作成したカジュアルなアプリ。
このアプリのドット値は 0 です。Google のユーザーは、ゲームなどのカジュアル アプリに興味がありません。