レコメンドエンジンを構築するに当たって調べたこと
最近関わっている案件で、レコメンドエンジンを構築することになったので、その際調べたことを記録しておきます。
レコメンドエンジン
レコメンデーションとは
ユーザに対して自動的に何らかのおすすめを提示すること。レコメンデーションを行うソフトウェアのことをレコメンドエンジンという
- ユーザ: システムを使う人間。利用者
- アイテム: ユーザにおすすめするもの、サービス、商品etc
Point
- 何(誰)に対して
- 何(誰)をおすすめするのか
Pattern
- ユーザに対してアイテムをレコメンドする
- アイテムに対してアイテムをレコメンドする
- アイテムに対してユーザをレコメンドする
- ユーザに対してユーザをレコメンドする
協調フィルタリング
http://www.albert2005.co.jp/technology/marketing/c_filtering.html
ある対象者が商品をチェックまたは購入したデータと、対象者以外がチェックまたは購入したデータの両方を用い、 その購入パターンから人同士の類似性、または商品間の共起性をアソシエーション分析(相関分析)で解析し、 対象者個人の行動履歴を関連づけることでパーソナライズされた商品を提示することができる手法です。
協調フィルタリングとレコメンド
協調フィルタリングはユーザの行動データを利用する
レコメンデーションの分類
データを軸とする分類
コンテンツデータ
アイテムそのものから得られる情報。
コンテンツデータの場合、ユーザに関する情報が無いので、各ユーザ向けにパーソナライズされたレコメンデーションは行えない-
アイテムそのものではなく、ユーザの行動などに付随して得られる情報。
手法を軸とする分類
ルールベース
サービスの提供者が予めユーザの行動を想定してルールを作成しておき、そのルールに従ってレコメンデーションを行う
サービス提供者、ユーザ双方の納得感があるレコメンデーションが行いやすい
ルールを作成する、メンテナンスコストが発生する機械学習・統計ベース
予め正解となるデータを作って置くか、もしくはアイテム間の何らかの類似度を見ることで、自動でレコメンデーションを行う手法
サンプリング
あるデータの1部を利用する
クラスタリング
データの集合を部分集合(クラスタ)に切り分けて、それぞれの部分集合に含まれるデータがある共通の特徴を持つようにする。この特徴は多くの場合、類似性や、ある程度定められた距離尺度に基づく近さで示される。