協調フィルタリングって何?

機械学習

はじめに

レコメンドシステムは通販サイトや動画配信サービスによくレコメンド機能として搭載されており、ユーザビリティを高める方法の一つです。各ユーザーの嗜好に合わせた商品を提案できるように多くの業界で研究・開発が進められています。
レコメンドシステムとは、「ユーザーの過去の行動データや属性情報を利用して、そのユーザーに対して興味がありそうな商品やコンテンツ、情報を自動的に推薦するシステム」と定義されている。(Chat GPT)
協調フィルタリングはそのレコメンドシステムの手法の一つです。協調フィルタリングとは何か?基本的な考え方や概要を紹介します

協調フィルタリングとは?

協調フィルタリングとは、ウェブサイトのアクセス履歴などの利用者の行動履歴を基に、

 1.商品間の関連性を分析し、ある商品を表示したときに関連性の高い商品を表示する方式(アイテムベース)
 2.利用者の好みの類似値を分析し、好みが似た利用者がチェックした、他の商品を表示する方式(ユーザーベース)

があります。

※なるほど統計学園(総務省)引用
https://www.stat.go.jp/naruhodo/15_episode/toukeigaku/recommend.html 

アイテムベース協調フィルタリング

アイテムベース協調フィルタリングは、ユーザーが評価したアイテム同士の類似度を計算し、その結果をもとに他のアイテムを推薦する手法。
※類似度:クラスター間・個体間の類似性の度合いを表すもの。
引用:https://bellcurve.jp/statistics/glossary/753.html 

図を使って、説明します。


・ユーザー1・2・3の3人がリンゴが好き
・ユーザー1・2の2人がみかんが好き
という状況を考えます。
「リンゴ」と「みかん」の間に高い類似度があると判断し、「リンゴ」を好きなユーザーに「みかん」を推薦します。
ユーザー3に対して「リンゴ」が好きであるため、「みかん」を推薦することになります。

このように、アイテムベース協調フィルタリングではアイテム同士の類似性に基いて推薦が行われます。ユーザーが評価したことがないアイテムでも、似たようなアイテムをユーザーが高評価している場合に推薦されます。

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

ユーザーベース協調フィルタリングは、ユーザー同士の嗜好の類似度を計算し、他のユーザーが高評価したアイテムを推薦する手法。

図を使って説明します。

・ユーザー1が「リンゴ」と「みかん」、「レモン」が好き
・ユーザー2が「リンゴ」と「みかん」が好き
という状況を考えます。
ユーザー1と2は似た嗜好を持っている類似度が高いと判断し、「リンゴ」と「みかん」が好きなユーザーに「レモン」を推薦します。
ユーザー2に対して、ユーザー1が「リンゴ」と「みかん」、「レモン」が好きなので、「レモン」を推薦することになります。

このようにユーザーベース協調フィルタリングでは、ユーザー同士の類似度に基いて推薦が行われます。他のユーザーが評価したアイテムに基いて、まだ評価していないアイテムを推薦します。

協調フィルタリングのメリット

・パーソナライゼーション:ユーザーは自分の興味や関心に合った商品や情報を手軽に見つけることができます。例えば、YoutubeやSNSなどでオススメの動画や投稿が表示されているのを見たことがあるかもしれません。この時、あなたの視聴履歴や評価を分析し、似たような嗜好を持つ他のユーザーのデータと組み合わせることで、あなたが興味を持ちそうな新しいコンテンツを提案してくれています。

・新たな発見:ユーザーが自身で探すには至らなかったかもしれない新しいコンテンツや商品を紹介してくれること。

・ユーザー体験の向上:使えば使うほどあなたの好みを学習し、より的確なレコメンデーションを提供すること。例えば、Amazonではあなたの購買履歴や閲覧履歴をもとに、興味がありそうな商品を提案してくれます。これにより、欲しいものをより早く見つけられるようになり、ショッピング体験が格段に向上します。


このように、協調フィルタリングは身近なところで使われており、利便性が向上している一方で、プライバシー問題やコールドスタート問題など、デメリットや課題点も存在します。
今回は協調フィルタリングの概要について、紹介しました。今後学習を進めていく中で、整理できたことや新たな知識として得られたことを発信していきますので、これからもよろしくお願いします。
最後までご覧いただきありがとうございました。

参考サイト

https://qiita.com/KENTAROSZK/items/7dc4e06ae75809594950

コメント

タイトルとURLをコピーしました