9
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

レコメンドシステムの種類

Last updated at Posted at 2020-12-24

レコメンドシステムとは

レコメンドシステムとは、複数の選択肢の中でユーザーにとって価値のあるものを選び出し、意思決定を支援する仕組みです。

例えば、AmazonのWebサイトで買い物をしていると、「この商品に関連する商品」や「この商品をチェックした人はこんな商品もチェックしています」という風に、ユーザーに合いそうな他の商品を推薦してくれます。Amazon以外にもNetflix(映画の推薦)やTwitter(ユーザーや投稿の推薦)等、多くのサービスでレコメンドシステムが使われています。

パーソナライズ

レコメンドシステムの分類として、まずざっくりパーソナライズされているかどうかという違いがあります。

  1. 非個人化(non-personalized)

    全てのユーザーに一律に行う推薦(例:人気商品ランキング)
  2. 一時的個人化(ephemeral personalization)

    利用者の入力に基づいた推薦(例:類似商品の提示)
  3. 永続的個人化(persistent personalization)

    利用者の過去の行動に基づいた推薦→その時に同じ入力をしても、過去のデータによって異なる結果を提示

レコメンドシステムの種類

  • ルールベース
  • コンテンツ(内容)ベースフィルタリング
  • 協調フィルタリング
  • 知識ベースフィルタリング
  • ハイブリッドフィルタリング

ルールベース

サイト側に一定のルールを定めることでコンテンツを提示するものです。
例えば、新着情報セール商品を提示したり、この行動をとった人にはこの商品を推薦するというものがあります。これはパーソナライズされていないレコメンドシステムです。

コンテンツ(内容)ベースフィルタリング

コンテンツの属性(変数)をもとに類似性の高いコンテンツを提示するものです。
例えば同じジャンルの映画を推薦したり、同じ作家の本を推薦するというものがあります。

協調フィルタリング

ユーザーの閲覧履歴や行動履歴をもとに推薦するもので、コンテンツベースよりパーソナライズされる手法です。
協調フィルタリングにはアイテムベースとユーザーベースの2つがあります。

  • アイテムベース

    行動履歴をもとに商品ベースで推薦する手法です。

    例えばAさんが商品Aを購入した時、商品Aを購入した他の人は商品Bも購入しているから、Aさんにも商品Bを推薦するというものです。
  • ユーザーベース

    行動履歴をもとにユーザーベースで推薦する手法です。

    ユーザー同士の類似度(購入履歴が似ている等)を算出し、類似度の近いユーザーの購入した商品をレコメンドするものです。

知識ベースフィルタリング

ユーザーに好みを示してもらうことで、「今どうして欲しいか」というユーザーの希望を反映させる推薦方法です。

検索との違いは、あくまで推薦という形で、より狭い範囲で提示するということです。一般的な検索だとその条件に当てはまるものが数百件でも数千件でもヒットしますが、知識ベースフィルタリングでは状況に応じて提案を行います。

ハイブリッドフィルタリング

コンテンツベースフィルタリングと協調フィルタリングを組み合わせた手法で、データが多い場合により効果的です。
例えばAさんとBさんの嗜好が似ていて、かつ商品Aと商品Bの属性が似ているとします。この時Aさんが商品Aと商品Bを購入し、Bさんが商品Aを購入していると、Bさんが商品Bを気に入って購入する可能性が高いと考えられます。
これはコンテンツを軸にしても、ユーザーを軸にしても類似度が高いハイブリッド型の推薦と言えます。

レコメンドシステムの選択

それぞれメリット・デメリットがあるため、求める効果やコストによってシステムを選択する必要があります。

例えば、コンテンツベースだと新規ユーザーにも対応できるというメリットがありますが、似たようなものばかり推薦してしまい新鮮さがないです。
また、協調フィルタリングだと思いがけない商品の推薦でユーザーの満足度が上がりやすい一方、新商品や新規ユーザーへのレコメンドが上手く行えないというデメリットがあります(コールドスタート)。
知識ベースのフィルタリングではよりユーザーのニーズを反映させられる一方、顕在的なニーズのないユーザーには利用してもえらえません。

バッチ処理 vs リアルタイム

上記のアルゴリズムによる分類とは別の角度で、バッチ処理かリアルタイムで推薦しているかという違いもあります。

  1. バッチ処理

    バッチ処理は、ユーザの行動やアイテムの特徴データから事前に推薦リストを作成しておくものです。例えば、Amazonのメーリスであなたにおすすめの商品が届くのは、バッチ処理によるものです。
  2. リアルタイム

    ユーザーの行動からリアルタイムで推薦リストを作成していくものです。NetflixやAmazonでアイテムを閲覧している際に、画面上に出てくるあなたへのおすすめアイテムが変更されるのは、リアルタイムで閲覧履歴が反映されているからです。

最後に

神嶌先生の解説資料が、レコメンドを様々な角度から解説してくださっていて分かりやすかったです!

9
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?