レビュースコアからレコメンデーションモデルを作成

2017.04.28::adachi

ウェブサイトやオンラインショッピング画面でのコンテンツ表示のバックで使用されるレコメンデーション(推薦)を、RapidMinerの拡張機能(Extension)を使って実行してみます。

レコメンデーションとは、端的に言えばオンラインショッピングを例に挙げると、「あなたにおススメの商品はこれです」と商品一覧を画面に表示してくれる仕組みです。次のような、ユーザー・商品ごとのレビュースコアデータがあるとします。

user_idが4のユーザはitem_idが781、69、327、310の商品に対してスコアを付けています。この他の商品に対しては、未購入のためスコアを付けてないと仮定します。このユーザの好みが分かり、適切なものを推薦すれば、未購入の商品を買ってくれる可能性があります。

ユーザの好みを探る方法、その基本的な考え方を以下の図を使って説明します。

 

 

商品数は数多くあるものの、ここでは商品1と2に絞って考えます。上の図では、商品1と2についてレビュースコアを付けた顧客をプロットしています。顧客間の類似度を計算し、その結果、顧客は「商品1が高評価のグループ」「商品2が高評価のグループ」「商品1と2ともに普通の評価のグループ」の3つの特徴を持つグループに分けられるとします。同じグループに属する顧客は好みが似ているということになります。

次に、顧客(赤)と顧客(青)に着目します。仮に、顧客(赤)が上の図にはない商品3に高評価を付けていれば、顧客(青)も商品3を気に入るかもしれません。つまり、顧客(青)に商品3を薦めれば、購入する可能性が高いと言えます。

以上の内容をRapidMiner Extension【Recommender】で実装してみます。

————————————-

Trainのスコアデータでモデルを作成し、Testのスコアデータを持つユーザに当てはめどの商品を推薦すればよいかをランク付けします。モデル作成にはk-NNアルゴリズムを使用し、全ユーザ間の距離から類似度を算出します。

今回は商品のレビュースコアを元にレコメンモデルを作成しましたが、商品の購買履歴から作成することも可能です。また、ウェブサイトの操作ログを使ってコンテンツ表示に活かすこともできます。ぜひ手持ちデータを当てはめて分析してみてください!

トップへ戻る