ユーザーの行動履歴を使ったレコメンド手法
今回は、いよいよレコメンドの手法について解説していきます。この連載はネットショップのオーナーさん向けなので、あまり技術的に深入りしない形で進めたいと思います。
前回、「ユーザーの行動履歴を使いつつ商品情報の変化も活用するパターンと、ユーザーの行動履歴だけを使うパターン」があると書きましたが、まずはユーザーの行動履歴だけを使うパターンについてです。
ユーザーの行動履歴を使うレコメンドの一番の基本は、やはり相関係数を用いた協調フィルタリングです。協調フィルタリングは手法(概念)の名前、相関係数は計算方法の名前です。
ちょっと難しい感じがしますが、具体的に見ていきましょう。
STEP1:行動履歴をマトリックスにする
まず、ユーザーのアイテムに対する行動履歴をマトリックスで表現します。
アイテムというのはECの場合だいたい商品です。旅行の予約などの場合はプランです。行動履歴というのはだいたいが購買や予約のことを言いますが、閲覧自体を行動履歴にしても構いません。
話を大変単純化するために、ユーザーAからEが、アイテムa~eに0から1までの間の数値評価をしたとして、下記のようなマトリックスを作ることができます。
アイテム/ユーザー | A | B | C | D | E |
---|---|---|---|---|---|
a | 1 | 0 | 0 | 1 | 1 |
b | 0.5 | 1 | 0.9 | 0.3 | 0.7 |
c | 0.8 | 0.3 | 0.1 | 0.7 | 0.5 |
d | 0 | 0.8 | 1 | 0.1 | 0.5 |
e | 0.2 | 0.1 | 0.4 | 0 | 0.3 |
実際の計算をしなくても、パッと見てたとえばユーザーAとユーザーDはなんとなく似ていそうな感じがします。
STEP2:相関係数で計算する
では、これらを具体的に相関係数を用いて計算してみましょう。プログラムでもエクセルでも可能です。
A | B | C | D | E | |
---|---|---|---|---|---|
A | 1. | -0.46926246 | -0.78628934 | 0.95120221 | 0.51540832 |
B | -0.46926246 | 1. | 0.89304716 | -0.45177395 | -0.67409217 |
C | -0.78628934 | 0.89304716 | 1. | -0.74185075 | -0.65391115 |
D | 0.95120221 | -0.45177395 | -0.74185075 | 1. | 0.70715934 |
E | 0.51540832 | -0.67409217 | -0.65391115 | 0.70715934 | 1. |
a | b | c | d | e | |
---|---|---|---|---|---|
a | 1. | -0.89985013 | 0.8926074 | -0.88662069 | -0.28867513 |
b | -0.89985013 | 1. | -0.62130056 | 0.6032341 | 0.07602859 |
c | 0.8926074 | -0.62130056 | 1. | -0.99329302 | -0.55215763 |
d | -0.88662069 | 0.6032341 | -0.99329302 | 1. | 0.54845432 |
e | -0.28867513 | 0.07602859 | -0.55215763 | 0.54845432 | 1. |
STEP3:相関の値から
相関の値は-1から1の間の数値で表され、1はまったく同じ、0はまったく無関係、-1はまったく真逆という相関を意味しています。
ユーザーAとユーザーEは0.95とかなり高い相関となりました。またアイテムbとeは0.076とその好まれ方にほとんど相関がなく、アイテムcとdは-0.99と真逆の好まれ方をしているとわかります。
一見「難しそう」な数字ですが、先述のとおり、ツールを使えば誰でも求められます。
重要なのはそこではなく、
- ユーザーの行動をどう数値化するか
- 出てきた結果をどう評価するか
の2つです。
せっかくレコメンドの仕組みをECショップに導入しても、上記が適当だと意味がありません。それぞれどう考えればいいのか、見ていきましょう。