Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
意外と簡単!「この商品を買った人はこんな商品も買っています」を作ってみよう
Search
yuta ishizaka
September 08, 2016
Technology
3
760
意外と簡単!「この商品を買った人はこんな商品も買っています」を作ってみよう
勉強会資料です。
テストデータなどはイベント開催ページにて。
http://d-cube.connpass.com/event/39131/
yuta ishizaka
September 08, 2016
Tweet
Share
More Decks by yuta ishizaka
See All by yuta ishizaka
ProductZine webiner資料
yutaishizaka
0
60
s-dev talks #2 〜チームビルディング〜 LT資料
yutaishizaka
3
650
業務ハックのためのPFDのすゝめ
yutaishizaka
1
310
スタートアップ2人目エンジニアのリアル
yutaishizaka
2
470
product_kaizen_night
yutaishizaka
1
670
Other Decks in Technology
See All in Technology
AI×Data×SaaS×Operation
sansantech
PRO
0
100
自作LLM Native GORM Pluginで実現する AI Agentバックテスト基盤構築
po3rin
2
210
Sidekiq その前に:Webアプリケーションにおける非同期ジョブ設計原則
morihirok
17
6.2k
Green Tea Garbage Collector の今
zchee
PRO
2
350
データエンジニアがこの先生きのこるには...?
10xinc
0
400
それでも私はContextに値を詰めたい | Go Conference 2025 / go conference 2025 fill context
budougumi0617
4
890
FastAPIの魔法をgRPC/Connect RPCへ
monotaro
PRO
0
460
[2025-09-30] Databricks Genie を利用した分析基盤とデータモデリングの IVRy の現在地
wxyzzz
0
400
Findy Team+のSOC2取得までの道のり
rvirus0817
0
230
BtoBプロダクト開発の深層
16bitidol
0
130
pprof vs runtime/trace (FlightRecorder)
task4233
0
140
DEFCON CHV CTF 2025 Write-up
bata_24
0
190
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1371
200k
Speed Design
sergeychernyshev
32
1.1k
Done Done
chrislema
185
16k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6.1k
Building Applications with DynamoDB
mza
96
6.6k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.2k
GraphQLとの向き合い方2022年版
quramy
49
14k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Gamification - CAS2011
davidbonilla
81
5.4k
Git: the NoSQL Database
bkeepers
PRO
431
66k
Mobile First: as difficult as doing things right
swwweet
224
9.9k
Transcript
株式会社ビズリーチ 1 意外と簡単! 「この商品を買った人はこんな商品も 買っています」を作ってみよう
Copyright © 2016 BizReach Inc. All Right Reserved. これ⾒見見たことありますか?
2
Copyright © 2016 BizReach Inc. All Right Reserved. これ⾒見見たことありますか?
3 Amazon
Copyright © 2016 BizReach Inc. All Right Reserved. これ⾒見見たことありますか?
4
Copyright © 2016 BizReach Inc. All Right Reserved. これ⾒見見たことありますか?
5 YouTube
Copyright © 2016 BizReach Inc. All Right Reserved. 6
これを作ります
Copyright © 2016 BizReach Inc. All Right Reserved. アジェンダ
• ⾃自⼰己紹介 • レコメンドとは – 代表的なレコメンド⼿手法 • 作ってみよう – 環境作り – 実際に作ってみる 7
Copyright © 2016 BizReach Inc. All Right Reserved. ⾃自⼰己紹介
名前: ⽯石坂優太 職歴: 2008/4-‐‑‒2015/5 パイオニア(PM、アーキテクト) 2015/5-‐‑‒now ビズリーチ(企業向けサービスのグロース) スキル: C++, Java, Python, Rails, iOSApp, etc... 8
Copyright © 2016 BizReach Inc. All Right Reserved. ⾃自⼰己紹介
9
Copyright © 2016 BizReach Inc. All Right Reserved. レコメンドとは
• レコメンド(recommend)とは? 10
Copyright © 2016 BizReach Inc. All Right Reserved. レコメンドとは
• レコメンド(recommend)とは? 11 おすすめする
Copyright © 2016 BizReach Inc. All Right Reserved. 有名なレコメンド
• Amazon – ある商品を買った⼈人に、おすすめ商品を表⽰示することで、更更なる購⼊入を誘う – テンション・リダクション効果を狙っている • YouTube – ある動画を観た⼈人に、おすすめ動画を表⽰示することで、更更に視聴を促す 12
Copyright © 2016 BizReach Inc. All Right Reserved. レコメンドの効果
• 趣味嗜好に合わせた選択肢を提⽰示するので、コンバージョン率率率が⾼高い – 特に協調フィルタリングは好みを考慮するので効果が⾼高い • 利利⽤用者が思いつかない選択肢を提⽰示できる – 検索索では、利利⽤用者が思いつく選択肢にしかたどり着けない 13
Copyright © 2016 BizReach Inc. All Right Reserved. 代表的なレコメンドの⼿手法
• コンテンツ(内容)ベース – テキスト情報や属性情報などの内容で近さを評価し、内容が近いものをオ ススメする • 協調フィルタリング – 購⼊入者同⼠士の好みの類似性で近さ評価し、好みが近い⼈人が好きな商品をレ コメンドする 14
Copyright © 2016 BizReach Inc. All Right Reserved. 代表的なレコメンドの⼿手法
• コンテンツ(内容)ベース – テキスト情報や属性情報などの内容で近さを評価し、内容が近いものをオ ススメする • 協調フィルタリング – 購⼊入者同⼠士の好みの類似性で近さ評価し、好みが近い⼈人が好きな商品をレ コメンドする → AmazonやYouTubeは基本的にこっち 15
Copyright © 2016 BizReach Inc. All Right Reserved. コンテンツベース
16 ・新宿に住んでいる ・好きな食べものジャンルにカレーを登録している 新宿の飲み屋グループ 新宿のカレー屋グループ 原宿のカレー屋グループ ↓お店の情報をあらかじめ分析してグルーピング
Copyright © 2016 BizReach Inc. All Right Reserved. コンテンツベース
17 ・新宿に住んでいる ・好きな食べものジャンルにカレーを登録している 新宿の飲み屋グループ 新宿のカレー屋グループ 原宿のカレー屋グループ
Copyright © 2016 BizReach Inc. All Right Reserved. コンテンツベース
18 ・新宿に住んでいる ・好きな食べものジャンルにカレーを登録している 新宿の飲み屋グループ 新宿のカレー屋グループ 原宿のカレー屋グループ 内容が近いのでオススメする
Copyright © 2016 BizReach Inc. All Right Reserved. レコメンドの⼿手法(協調フィルタリング)
19
Copyright © 2016 BizReach Inc. All Right Reserved. レコメンドの⼿手法(協調フィルタリング)
20 購入!
Copyright © 2016 BizReach Inc. All Right Reserved. レコメンドの⼿手法(協調フィルタリング)
21 同じものを買った!
Copyright © 2016 BizReach Inc. All Right Reserved. レコメンドの⼿手法(協調フィルタリング)
22 こっちは買ってない
Copyright © 2016 BizReach Inc. All Right Reserved. レコメンドの⼿手法(協調フィルタリング)
23 おすすめする
Copyright © 2016 BizReach Inc. All Right Reserved. 作ってみよう
• AmazonやYouTubeで使われている「協調フィルタリング」のレコメンド を作ります – 近さの評価の仕⽅方は⾊色々ありますが、⼀一番シンプルなやつをつくりま す • Pythonで作ります – Pythonはデータ分析系のライブラリが充実しているので、レコメンド や機械学習に向いている 24
Copyright © 2016 BizReach Inc. All Right Reserved. 開発環境を作る
• Windowsの場合 http://qiita.com/koara-‐‑‒local/items/8d48d0306c85c61aed97 ※⼿手順4で pip install pandas もやる 25
Copyright © 2016 BizReach Inc. All Right Reserved. 開発環境を作る
• Macの場合 1. pythonのバージョン確認 python -‐‑‒-‐‑‒version 2. jupyterのインストール sudo pip install jupyter 3. pandasのインストール sudo pip install pandas 4. jupyter起動 jupyter notebook 26
Copyright © 2016 BizReach Inc. All Right Reserved. 実際に作ってみる
• とあるECサイトのユーザーのAさんが買い物をした時に、オススメの商品を5件表⽰示 する 27 購入! おすすめ!
Copyright © 2016 BizReach Inc. All Right Reserved. 実際に作ってみる
1. 購⼊入履履歴データを読み込む testdata.csv を⽤用意しました。 2. 購⼊入履履歴データを各お客さんごとにまとめる 後の計算をわかりやすくするためにデータを整形します。 {“Aさん” : [“商品A”, “商品B”, “商品C”], “Bさん” : [“商品B”]・・・} のようなデータに整形します。 3. レコメンドしたい対象(Aさん)とその他の共起数をとる 共起数 = 購⼊入したものが⼀一致している数 4. 共起数が⾼高い順にオススメとして表⽰示する 購⼊入したものの⼀一致数が多いほど、好みが近いため、優先的に表⽰示しましょう。 28
Copyright © 2016 BizReach Inc. All Right Reserved. testdata.csv
29
Copyright © 2016 BizReach Inc. All Right Reserved. ⾏行行動データの読み込み
30 conversionsには、 [(‘Aさん’,’商品A’), (‘Aさん’, ‘商品B’), (‘Bさん’, ‘商品C’), (‘Bさん’, ‘商品G’)・・・] のようなデータが入ってきます。 これを {“Aさん” : [“商品A”,“商品B”], “Bさん” : [“商品B”,“商品C”]・・・} のようなデータに一度変換します。
Copyright © 2016 BizReach Inc. All Right Reserved. 共起
31 1個被ってる ので、共起1 2個被ってる ので、共起2
Copyright © 2016 BizReach Inc. All Right Reserved. レコメンドの⼿手法
• 協調フィルタリングの弱点 – 特定の商品が集中してレコメンドされやすい • 誰からも好みと思われなかった商品はレコメンドされない • Amazonのようなレコメンドでは、商品数が無制限なので、ひとつの商品が集中 してレコメンドされても問題にならない(みんな買える) • Pairsのような⼈人材マッチングだと問題になる(1000⼈人の⼥女女性に1⼈人のモテ男性を 薦めても、マッチング成⽴立立するのは1⼈人だけなので、効率率率が悪いし、成⽴立立しない マッチングを薦めるのは顧客体験を損ねる) – ⾏行行動をベースにするので、⾏行行動がなければレコメンドできない • つまり、新規のお客さんにはレコメンドできないので、⼯工夫が必要 → コールドスタート問題 と⾔言います 32
Copyright © 2016 BizReach Inc. All Right Reserved. 付録
• Pythonのデータ分析等でよく使うライブラリ – Numpy – scikit-‐‑‒learn 33