トレジャーデータ(Treasure Data)ブログ

トレジャーデータ(Treasure Data)ブログです。

本サイトは移転しました。新サイトにリダイレクトします。

トレジャーデータで実践:Basket 分析(応用編3)「共起」から「遷移」へ

本記事は移転しました。新サイトにリダイレクトします。

はじめに

トレジャーデータはクラウドでデータマネージメントサービスを提供しています。

今回は「共起」の概念を拡張して「遷移」を見ていきます。また,「推移」を見ることはリコメンデーションロジックを求める事とほぼ同義ですので,活用幅が大幅に拡がっていきます。

「共起」から「遷移」へ

「共起」

今まで見てきた「共起」という概念は,各ユーザーが「同時」に購入したアイテムペアを1回の「共起」として捉え,共起回数や共起係数を見ていくものでした。つまり,

「このアイテムを買ったユーザーは同時にこのアイテムを買っています」

を示してしました。

f:id:treasure-data:20150518133804j:plain

↑ 共起の概念はユーザーの1回のお買い物の中で同時に入れられたアイテムペアを対象としていました。

「遷移」

今度は「同時」ではなく「その次」の買い物において登場したアイテムとペアリングすることで

「このアイテムを買ったユーザーは次にこのアイテムを買っています」

という意味を持ったペアを抽出することを考えてみます。

f:id:treasure-data:20150518134424j:plain

↑ ユーザーAの n 回目の買い物で購入されたアイテム1と,n+1 回目の買い物で買われたアイテム2を「アイテム1からアイテム2への(1ステップ)遷移」としてカウントします。また,二回連続で購入されたアイテムは「連続遷移」として特徴あるアイテムとして着目していきます。

遷移回数と遷移係数

上のクエリは全レコードに対して,goods1 → good2 への遷移回数と,共起係数と同じロジックの係数を求めたテーブルです。

 

今回のペアは方向性を持ちますので「goods1→goods2」と「goods2→goods1」は異なる値を持ちます。

一方的な方向性を持ったアイテムペア

例えば,シリーズタイトルは一般的にタイトルの順番で購入されますし,スマートフォンやTVなどの家電はまず本体が購入され,次にケースなどのオプション品が購入され,その逆は起こりにくい傾向があります。

そういった極端に一方的な方向性のペアをマーキングしておくことは重要です。

連続購入されたアイテム

また前回の買い物に続いて今回も同じものが購入された場合,そのアイテムは「連続リピート(連続遷移)」されたアイテムとして注目に値するアイテムです。

↑ のクエリで,連続遷移のあったアイテムを回数順にピックアップしたテーブルが以下になります。

レコメンデーションロジック

「遷移」という方向性を持ったアイテムペアは,一般的にレコメンデーションロジックとして応用されます。そしてここで紹介する「遷移係数」は「共起係数」とはまた違ったものになります。

Confidence

式:| A ∩ B | /  | A |

f:id:treasure-data:20150518142000j:plain

 信頼度を表す Confidence 係数は

  • 「分母」:アイテムA を買った人が
  • 「分子」:次にアイテムBを買う

割合を指標化したものです。

Support

式:| A ∩ B | /  | Ω |

f:id:treasure-data:20150518142947j:plain

支持度を表す Support 係数は,そもそも全体の中でアイテムAとアイテムBがどれくらい一緒に買われているかを見る指標です。全アイテム集合をΩとしていますが,|Ω| の値が多い場合は,この係数は非常に小さくなりがちなので注意してください。

Lift

式:( | A ∩ B | / | A | ) / ( | B | / | Ω | )

 

  • 「分母」:アイテムA を買った人が次にBも買う割合
  • 「分子」:アイテムBの全アイテム数に対する割合

 

の比を表したものです。

f:id:treasure-data:20150518143925j:plainf:id:treasure-data:20150518143951j:plain

レコメンデーションテーブル

上記で紹介したレコメンデーション係数を並べたテーブルを見てみましょう。

 

レコメンデーション係数それぞれが特徴のある遷移を導き出してくれます。