kaeken(嘉永島健司)のTech探究ブログ

主に情報科学/情報技術全般に関する知見をポストします。(最近は、特にData Science、機械学習、深層学習、統計学、Python、数学、ビッグデータ)

レコメンデーションに用いられる3つの指標まとめ

概要

購買データから、同時に購入される商品の傾向を分析することを、

マーケットバスケット分析(ショッピングバスケット分析とも呼ばれる。以下バスケット分析)

と呼びます。アソシエーション分析の一種です。

バスケット分析では、

「商品Aを買うときは、商品Bを買う」といった同時購買のルールを見出すことが求められます。

以下では、

「商品Aを買う」(条件部)とき、「商品Bを買う」(結論部)

というルールを

A=>B

という記号で表現します。

「商品Aを買うときは、商品Bを買う」というパターンが発見されたら、

レコメンデーションで使うことができます。

ここでは、まず、

レコメンデーションに用いられる3つの指標をまとめたいと思います。

3つの重要な指標

3つの重要な指標について説明します。

  • Support(支持度): 同時確率
  • Confidence(信頼度): 条件付き確率
  • Lift(リフト): 改善率

Support(支持度)

A=>BのSupport(支持度) とは、

すべてのトランザクションに占める商品A,Bが同時に購入されたトランザクションの割合を指します。

A=>BのSupport(支持度) : AとBの同時購買回数 / 全トランザクション数

と定義します。

具体的には、

全購買件数が5件あり、

商品Aと商品Bを購入した回数が2回であれば、

A=>BのSupport(支持度) : 2 / 5 = 0.4

となります。

Support(支持度)の高いルールは良いルールと言えます。

なお、

A=>BのSupport(支持度)

B=>AのSupport(支持度)

は、等しくなります。

Confidence(信頼度)

A=>BのConfidence(信頼度)とは、

商品Aを買ったトランザクションに占める、

Bが同時に購入されたトランザクションの割合、

つまり条件付き確率を指します。

A=>BのConfidence(信頼度) : AとBの同時購買回数 / Aの購買回数

B=>AのConfidence(信頼度) : AとBの同時購買回数 / Bの購買回数

と定義します。

具体的には、

商品Aを購入したトランザクションが3件、

商品Bを購入したトランザクションが2件、

商品Aと商品Bを同時購入したトランザクションが2件であれば、

A=>BのConfidence(信頼度) : 2 / 3

B=>AのConfidence(信頼度) : 2 / 2

となります。

Confidence(信頼度)の高いルールは良いルールと言えます。

なお、

A=>BのConfidence(信頼度)

B=>AのConfidence(信頼度)

は、基本的に異なります。

つまり、方向性によっては、レコメンデーションの意味をなさないときがありますので、注意が必要です。

例)髭剃り本体を買った人に替え刃をレコメンドできるが、替え刃を買った人に髭剃り本体をリコメンドしても意味がない(当然もっているはず)

Lift(リフト)

A=>BのLift(リフト)とは、

A=>BのSupport(支持度)を、

AとBが独立と仮定したときの購買確率で割った値を指します。

Aの購買確率 : Aの購買回数 / 全トランザクション数

Bの購買確率 : Bの購買回数 / 全トランザクション数

A=>BのLift(リフト) : A=>BのSupport(支持度) / Aの購買確率 * Bの購買確率

別の定義で表現すれば、

A=>BのConfidence(信頼度)を、

Bの購買確率で割った値を指します。

A=>BのLift(リフト) : A=>BのConfidence(信頼度) / Bの購買確率

要するに、

Aの購入によってどれぐらい確率が持ち上げ(Lift)られているか?

という指標です。

A=>BのLift(リフト)値1 を越えているかが、有効なルールの判断基準と言えます。

具体的には、

トランザクションが5件あり、

商品Aを購入したトランザクションが3件、

商品Bを購入したトランザクションが2件であれば、

Aの購入確率 : 3 / 5

Bの購入確率 : 2 / 5

であり、

商品Aと商品Bを同時購入したトランザクションが2件であれば、

A=>BのSupport(支持度) : 2 / 5

A=>BのConfidence(信頼度) : 2 / 3

であり、

A=>BのLift(リフト) : A=>BのSupport(支持度) / Aの購買確率 * Bの購買確率 = (2 / 5) / (3 / 5) * (2 / 5) = 5 / 3 > 1

または、

A=>BのLift(リフト) : A=>BのConfidence(信頼度) / Bの購買確率 = (2 / 3) / (2 / 5) = 5 / 3 > 1

であり、

この例では、

A=>BのLift(リフト)値1 を超えているので、

同時購入されやすいと言えます。

逆に、

A=>BのLift(リフト)値1 以下ならば、

同時購入されにくいと言えます。

以上、

3つの重要な指標について説明しました。

  • Support(支持度): 同時確率
  • Confidence(信頼度): 条件付き確率
  • Lift(リフト): 改善率