レコメンドに用いられる協調フィルタリングの利点と欠点とは?

目次
ウマたん当サイト【スタビジ】の本記事では、レコメンドロジックとして様々なところで用いられる協調フィルタリングの仕組みを見ていきたいと思います。そして協調フィルタリングの利点・欠点についてもまとめていきますよ!
アマゾンで自分にぴったりの商品がオススメされたりスマートニュースで自分に合った記事が表示されるようになったり・・・
世の中では、一人一人へのパーソナライゼーションが進化して至る所でレコメンドが行われるようになりました。
そんなレコメンドロジックを支える手法である協調フィルタリングについて、見ていきたいと思います。
ウマたん協調フィルタリングは現代のパーソナライゼーションを支える非常に重要な手法だよ!
以下のYoutube動画でも詳しく解説しています!
類似度の計算方法と、Pythonでの実装は、以下の動画でも解説しています!
協調フィルタリングとは

協調フィルタリングとは、購買や評価の履歴からユーザー同士(またはアイテム同士)の類似性を計算しレコメンドを行う手法です。
つまり、同じような趣味・嗜好を持っている人は同じようなモノに興味を持つだろうというロジック。
ざっくり言うと、Aさんはお店でビールとキムチとティッシュを買いました。Bさんは、ビールとキムチを買いました。そんなBさんはティッシュも買ってくれる可能性が高いからティッシュもオススメしよう!という感じ(ざっくりすぎ笑)
実際のところは以下のような表にユーザー別の商品購買情報が並んでおり、
| ビール | キムチ | ティッシュ | ・・・ | |
| ユーザーA | 1 | 1 | 1 | |
| ユーザーB | 1 | 1 | 0 | |
| ユーザーC | 1 | 0 | 0 | |
| ・・・ |
ユーザーAとユーザーBの購買データからユーザーの類似度(相関関係)を算出し、それを基にレコメンドを行います(ユーザーベースの協調フィルタリング)。
またアイテムベースの協調フィルタリングは、アイテム同士の類似性をユーザー購買情報から導き出します。
| ユーザーA | ユーザーB | ユーザーC | ユーザーD | |
| ビール | 1 | 1 | 1 | 1 |
| ティッシュ | 1 | 1 | 1 | 0 |
AさんとBさんとCさんがビールとティッシュを買っているなら、ビールとティッシュは類似性が高いと考えられその上でビールを買ったDさんにティッシュもレコメンドするというもの!
商品の特徴が似ているものを勧めるコンテンツベースのレコメンドだと、ビールやキムチとティッシュは商品として類似していないのでレコメンドされませんが、協調フィルタリングを使えば、ユーザーの類似性を算出し、新たな商品との出会いを創出することができるのです。
協調フィルタリングの利点

それでは、協調フィルタリングにはどんな利点があるのでしょうか?
セレンディピティ(偶然の出会いがある)
自分と同じ趣味・嗜好を持っている人の商品がレコメンドされるため、自分が全く知らなかった商品との出会いが発生します。
ルールベースレコメンドだと、面白みのないありきたりのレコメンドに落ち着いてしまいます。
多くの人に画一的ではないレコメンド配信が可能
行動ベース・ルールベースだとどうしても同じようなレコメンドが走ってしまいますが、協調フィルタリングなら大規模ユーザー・大規模商品を抱えるサービスであっても個人に寄り添ったレコメンドを自動で行うことが可能です。
協調フィルタリングの欠点

さて、そんな協調フィルタリングですがいくつか欠点もあるんです。
類似品をレコメンドしてしまう可能性がある
協調フィルタリングでは、同じ商品の色違いをレコメンドしてしまうなどの可能性があるため、注意が必要です。
マイノリティ・新ユーザーへの精度が悪くなる
同じ傾向を持っている人が他にいないユーザーや、新たに登録したばかりのユーザーには精度良くレコメンドすることができません。
新しい商品はレコメンドされづらい
まだ購入されていない商品はレコメンドされません。そのため結果的に新しい商品はレコメンドされにくくなってしまいます。
これらの問題はコールドスタート問題と呼ばれます。以下の記事で詳しく解説していますのでチェックしてみてください!
コールドスタート問題について解説!定義・背景と解決策についてくわしく!当サイト【スタビジ】の本記事では、コールドスタート問題について解説してきます。コールドスタート問題とは「システムが使用履歴などのデータを持っていないため、効果的な動作と提供が難しい状況」と定義されています。例として推薦するシステムにおいて、事前にある程度のデータがないとほかのユーザーの情報が参照できないため、推薦できないといった問題です。今回はコールドスタート問題の定義・背景・解決策について解説します!
協調フィルタリング まとめ
協調フィルタリングは、ユーザー同士の類似度を基にレコメンドを出し分けるロジックで様々なサービスで使われています。
ただ、ここで紹介したようにいくつかの欠点があることも頭の片隅に置いておきましょう!
個人的には完璧なレコメンドというものはユーザーにとってベストではないと思っていて、ある程度無秩序な方がユーザー満足度は高い気がしています。
本当に自分にぴったりのモノだけレコメンドして欲しいなら100%、ある程度関係ないものも見てみたいなら50%というようにユーザーがレコメンドの精度を調節できれば良いなと思っています。
余談でしたが、協調フィルタリングについて簡単に理解していただければ幸いです。
協調フィルタリングの仕組みをもっと知りたい方は以下のスタアカのレコメンドロジックコースをチェックしてみてください!
またUdemyでレコメンド・協調フィルタリングが学べるコースも公開していますのでぜひ興味のある方はチェックしてみてください!
読んだ内容を、スタアカの「レコメンドロジック」コースで身につける
データサイエンス・AIを、動画と課題で体系的に学べるオンラインスクール。最初のレッスンは無料で見られます。







