1. ホーム
  2. Web プログラミング
  3. プログラミング10000問

推薦システムとは何か、その基本原理 ユースケース

2022-01-16 23:17:43

コンテンツ型推薦システム

各映画の内容とユーザーが評価した映画から、各ユーザーがどの程度映画を好きかを判断し、見ていない映画に対する各ユーザーの評価を予測する。

映画内容マトリックス X * ユーザ嗜好マトリックス θ = 映画評価尺度

では、ユーザー嗜好行列θ(ユーザーが異なる種類の映画をそれぞれどれくらい好きか)はどのように解くのでしょうか?

ユーザー嗜好行列θのコスト関数

ここで、正則化項はオーバーフィッティングを防ぐためのものである。

  • メリット

            (1) コモディティのコールドスタート問題がないこと

            (2) 推奨製品に含まれる属性を明示的に伝えることができる

  • デメリット

             (1) コンテンツの徹底的な分析が必要

             (2) ユーザーを驚かせることはほとんどない

             (3)ユーザーにとってコールドスタートの問題あり

協調フィルタリングに基づく推薦システム

映画評価表とユーザ嗜好行列θから映画内容行列Xを導出し、映画内容行列Xにユーザ嗜好行列θを乗じることで、完全な映画評価表が得られる。

そこで、協調フィルタリングによる映画推薦では、各ユーザーの映画ジャンルごとの好みと、そのユーザーが既に評価した映画から、各映画の内容を推測することで、各ユーザーが見ていない映画に対する評価を予測することにしています。

では、映画の内容行列Xを解くにはどうしたらよいのでしょうか。

映画コンテンツ行列Xのコスト関数。

ユーザー嗜好行列Xが得られる。

(1)映画に対するユーザーの評価を得るためにオンラインアンケートを行うが、すべてのユーザーが記入するとは限らないし、記入したとしても必ずしもすべての情報が正しいとは限らない。

(2) 映画の内容行列Xとユーザーの嗜好行列θの両方を解くより効率的な方法によって

前述により、映画内容行列Xとユーザー嗜好行列θ、それらの第1項は同じであることがわかるので、この2つの式を1つにまとめてXとθの両方を解くことができます。 この方法の利点は、映画のユーザー評価のみを収集することです。

Xとθをランダムに初期化し、勾配降下法などの最適化アルゴリズムで解くことで、このコスト関数を最小化することが目的である。

(1) アイテムに基づく協調フィルタリング

 まず製品間の類似性を計算し、製品間の類似性に基づいてユーザーに推薦する。例えば、ユーザーがハードディスクを購入した場合、ハードディスクとUSBドライブは類似性があるため、USBドライブをユーザーに推薦する可能性が高い。

アイテムに基づく協調フィルタリングでは、ユーザーのアイテムに対する評価だけが必要で、アイテム間の類似度は最初に計算する必要があります。

項目間の類似度を測るには?

画像

商品間の類似度を算出した後、ユーザーの商品評価を予測することができます。

画像

: 製品iの他製品との類似性

画像 ユーザーuの他の製品への評価

分母:アイテムiに類似するアイテムの類似度の総和

は、「ユーザーuの商品iに類似する他の商品に対する評価から、ユーザーuの商品iに対する評価を推測する」と表現される。ユーザーuによるすべての商品の予測評価が判明すると、それらをソートし、最もスコアの高い商品を選択してユーザーに推奨する。

(2) ユーザーベース協調フィルタリング

基本的な考え方 まず、ユーザーAに対して、そのユーザーに似たユーザーを見つけ、他のユーザーが他の商品を買っていることを確認し、他のユーザーが買った商品をユーザーAに推薦する必要がある。

このとき、アイテムに基づく協調フィルタリングと同様に、ユーザー間の類似性を測定する必要があります。

画像

: ユーザーuによる製品iの評価

画像 : この商品に対するユーザーuの評価の平均値

ユーザー間の類似度を計算した後、ユーザーのアイテムに対する評価を予測することが可能である。

 製品評価の計算式。

この式は、ユーザーuの商品iに対する評価を、ユーザーuと類似した他のユーザーの商品iに対する評価から推測することを示している。ユーザーuによるすべての商品の予測評価が判明すると、それらをソートし、最もスコアの高いいくつかの商品を選択してユーザーに推奨する。

    {を使用します。 協調フィルタリングを用いた推薦システムの利点。

(1) 個々のユーザーの履歴から商品の品質を推測することができること

(2)商品に関する専門的な領域知識を必要としない。

    {を使用します。 デメリット

(1)コールドスタートの問題

(2)グレイシープ

(3) 協調フィルタリングの複雑さは商品数、ユーザー数の増加に伴い増加する

(4) 同義語の効果

(5) シリングアタック:競合他社の商品で具体的に低い点数をつけ、自社の商品で高い点数をつけること

日常生活の中で、直接的・間接的に推薦システムに接し、その利便性を享受してきたと思います。以上、レコメンドシステムの紹介でしたが、今後ともBinaryDevelopをよろしくお願いします!(笑)