俺のアソシエーション分析がこんなに効果がでないわけがない -...

50
株式会社ユーリエ 代表取締役社長 兼 CTO 池内 孝啓 みんなの Python 勉強会 #6 2015-11-09

Upload: takahiro-ikeuchi

Post on 16-Apr-2017

2.229 views

Category:

Engineering


7 download

TRANSCRIPT

Page 1: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

株式会社ユーリエ 代表取締役社長 兼 CTO

池内 孝啓

みんなの Python 勉強会 #62015-11-09

Page 2: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

2

Page 3: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

Agenda

• 自己紹介

• アソシエーション分析とは

• 実装編

• 俺のアソシエーション分析がこんな(略

Page 4: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

自己紹介

4

Page 5: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

• 池内 孝啓 @iktakahiro

• 株式会社ユーリエ 代表取締役社長 兼 CTO

• PyData.Tokyo Organizer

• blog: https://librabuch.jp

5

自己紹介

Page 6: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

• 2011-03 ~ 2015-08 株式会社ALBERT

• 2014-11 ~ PyData.Tokyo 設立

• 2015-08 ~ 株式会社ユーリエ 設立

6

経歴(結局雑

Page 7: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

7

スーパー宣伝タイム

Page 8: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

© 2015 eurie Inc.

「PyData入門」書きました

Page 9: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

新刊でました

Page 10: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -
Page 11: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

の紹介

11

Page 12: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

12

Python+Dataを通じて

世界のPyDataエクスパートと

繋がるコミュニティーを作る

Page 13: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

13

• #6 データマイニングコンペティション (86/33人

• #5 自然言語処理(115/40人

• #4 データ解析アルゴリズムの高速化 (101/36人)

Page 14: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

宣伝おわり

14

Page 15: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

15

(タイトルはアレですが)

理論ではなくビジネス寄りの話をします

Page 16: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

アソシエーション分析とは

16

Page 17: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

スーパーのバスケット

人 買った物

Aさん パン、バター

Bさん パン、ジュース、サラダ

Cさん サラダ、玉子

Dさん バター、パン、ジュース

Page 18: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

• パンとバターを一緒に買った人が2人

• パンとジュースを一緒に買った人が2人

18

併せ買いされやすい?

• 商品を近くに陳列する

• セット割引を行う

Page 19: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

• Association rule, Frequent item-sets

• 「バスケット分析」が有名

• “この商品をみているひとは この商品もみています”

• 共起性を求める分析

19

アソシエーション分析

Page 20: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

共起性の指標

20

Page 21: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

21

|X \ Y |• 商品 X と Y をどちらも購入した人

• 商品 X を 買った人が、 X と Y を買う確率 = Confidence

Page 22: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

22

• 併売は全体に対してどの程度発生しているか = Support

• Lift

Page 23: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

Lift 図解

Page 24: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

X > Y の Confidence は 0.5

Y は全体の 0.7

Page 25: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

25

X > Y の Lift

Page 26: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

26

• Jaccard 係数 (あとで実装をみせます)

• Dice 係数

|X \ Y ||X [ Y |

|X \ Y ||X|+ |Y |

Page 27: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

ツールでみる

アソシエーション分析

27

Page 28: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

• http://orange.biolab.si/

• Orange.associate に Apriori アルゴリズム(※1) が実装されています

• 実装例としてみるのはよいがこのツールは使わなくていいです

28

Python の場合

※1 http://www-users.cs.umn.edu/~kumar/dmbook/ch6.pdf

Page 29: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

• http://r-forge.r-project.org/projects/arules

• arules パッケージ に Apriori, Eclat アルゴリズムが実装されています

29

R の場合

Page 30: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

• https://spark.apache.org/docs/latest/mllib-frequent-pattern-mining.html

• MLlib に FP-growth アルゴリズム (※1) が実装 (v1.3 から)

• PySpark からも利用可

30

Apache Spark の場合

※1 http://hanj.cs.illinois.edu/pdf/sigmod00.pdf

Page 31: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

• http://gallery.cortanaanalytics.com/MachineLearningAPI/Recommendations-2

• Frequently Bought Together (FBT) Recommendations

31

Microsoft Azure

Page 32: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

実装編

32

Page 33: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

• http://dask.pydata.org/en/latest/dataframe.html

• pandas の Dataframe の(一部)互換 API を備え、裏側で並列処理をしてくれる

33

Dask - 並列処理パッケージ

Page 34: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

34

- 最終回 -

Page 35: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

Why don’t you do your Best ?

35

Page 36: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

古典的手法の1つですが

無闇に適応している例が散見される

36

Page 37: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

37

某サイトの例(現在は改善されてます)

• この洗濯機を買っている人はこの洗濯機も買っています => ないない;てきな ※ キャプチャ自粛

Page 38: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

• 分析が適応できる商材か?

• そもそも バスケット とはなにか?

• etc…

38

課題

Page 39: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

• 改廃が激しい商品の場合(季節商材など)分析できるころには販売がおわっている

• 併売が発生しない類の商材もある => 不動産とか旅行 => 比較検討は充分ある

• 商品点数が多いと(100万~)ほとんどの商品にルールが付かない(売れていないので当然ですが…)

39

分析が適応できる商材か?

Page 40: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

• アプリやデジタルコンテンツの併売に 意味はある??(ないとは言ってない)

40

Page 41: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

• 通勤途中に iPhone で商品を選んで 家についたら iMac で購入

41

そもそも バスケットとはなにか?

• セッションが分断されていてログ上は直接コンバージョンしたように見える

Page 42: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

• データ収集はシステムの問題でもあるが、取り組んでいるデータの裏にあるシステムの都合( = ある条件でセッションが切れる、とか)を把握しておく必要がある

• ひいてはモデルが考案されたときと現代とのライフスタイルの変化も考慮に

42

Page 43: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

評価 / 効果測定をしよう

43

Page 44: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

• 売上をあげたい、、だけではない

44

目的 = KPI設定

• サイトの回遊率を高めたい

• リピーターを増やしたい

Page 45: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

• ビジネス的なミニマムの KPI (クリック率とか)の測定は設計すればそれなりに実行できますが、その施策本当に効果あったの?という観点での評価は結構難しい(と思います

45

Page 46: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

• A/B テスト

• Bandit Algorithms

• Contextual Bandit

46

効果測定のために

この辺を深掘りするとよいと思う

※ 解説は詳しい人に委ねたい感

Page 47: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

• 「推薦システム Recommender System」(神嶌 敏弘先生)http://www.kamishima.net/archive/recsys.pdf73頁~「推薦システムの評価」

47

Page 48: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

付録

48

Page 49: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

• Apriori and Eclat algorithm in Association Rule Mininghttp://www.slideshare.net/wanaezwani/apriori-and-eclat-algorithm-in-association-rule-mining

• Contextual Bandit Examplehttps://github.com/JohnLangford/vowpal_wabbit/wiki/Contextual-Bandit-Example

49

参考文献

Page 50: 俺のアソシエーション分析がこんなに効果がでないわけがない - 最終回 -

• Jupiter Notebook: http://jupyter.org/

• pandas: http://pandas.pydata.org/

• 俺妹ジェネレーター: http://hirokichi.jp/oreimo/

50

仕様したツール