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
750
意外と簡単!「この商品を買った人はこんな商品も買っています」を作ってみよう
勉強会資料です。
テストデータなどはイベント開催ページにて。
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
55
s-dev talks #2 〜チームビルディング〜 LT資料
yutaishizaka
3
620
業務ハックのためのPFDのすゝめ
yutaishizaka
1
290
スタートアップ2人目エンジニアのリアル
yutaishizaka
2
440
product_kaizen_night
yutaishizaka
1
640
Other Decks in Technology
See All in Technology
FODにおけるホーム画面編成のレコメンド
watarukudo
PRO
2
280
月間60万ユーザーを抱える 個人開発サービス「Walica」の 技術スタック変遷
miyachin
1
140
iPadOS18でフローティングタブバーを解除してみた
sansantech
PRO
1
150
DMMブックスへのTipKit導入
ttyi2
1
110
AWSの生成AIサービス Amazon Bedrock入門!(2025年1月版)
minorun365
PRO
7
470
When Windows Meets Kubernetes…
pichuang
0
310
JuliaTokaiとJuliaLangJaの紹介 for NGK2025S
antimon2
1
120
EMConf JP の楽しみ方 / How to enjoy EMConf JP
pauli
2
150
AWS Community Builderのススメ - みんなもCommunity Builderに応募しよう! -
smt7174
0
180
生成AI × 旅行 LLMを活用した旅行プラン生成・チャットボット
kominet_ava
0
160
embedパッケージを深掘りする / Deep Dive into embed Package in Go
task4233
1
220
テストを書かないためのテスト/ Tests for not writing tests
sinsoku
1
170
Featured
See All Featured
Bash Introduction
62gerente
610
210k
Designing for Performance
lara
604
68k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.7k
Code Review Best Practice
trishagee
65
17k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
113
50k
Making Projects Easy
brettharned
116
6k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
570
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
192
16k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Gamification - CAS2011
davidbonilla
80
5.1k
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