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
Ucchiii
July 16, 2025
Programming
0
180
商品比較サービス「マイベスト」における パーソナライズレコメンドの第一歩
Ucchiii
July 16, 2025
Tweet
Share
Other Decks in Programming
See All in Programming
LT 2025-06-30: プロダクトエンジニアの役割
yamamotok
0
880
Vibe Codingの幻想を超えて-生成AIを現場で使えるようにするまでの泥臭い話.ai
fumiyakume
15
6.5k
チームのテスト力を総合的に鍛えて品質、スピード、レジリエンスを共立させる/Testing approach that improves quality, speed, and resilience
goyoki
5
1.2k
Android 16KBページサイズ対応をはじめからていねいに
mine2424
0
450
ご注文の差分はこちらですか? 〜 AWS CDK のいろいろな差分検出と安全なデプロイ
konokenj
4
590
はじめてのWeb API体験 ー 飲食店検索アプリを作ろうー
akinko_0915
0
140
顧客の画像データをテラバイト単位で配信する 画像サーバを WebP にした際に起こった課題と その対応策 ~継続的な取り組みを添えて~
takutakahashi
4
1.3k
レトロゲームから学ぶ通信技術の歴史
kimkim0106
0
110
レベル1の開発生産性向上に取り組む − 日々の作業の効率化・自動化を通じた改善活動
kesoji
1
300
Claude Code + Container Use と Cursor で作る ローカル並列開発環境のススメ / ccc local dev
kaelaela
12
7.1k
Modern Angular with Signals and Signal Store:New Rules for Your Architecture @enterJS Advanced Angular Day 2025
manfredsteyer
PRO
0
270
AI時代のソフトウェア開発を考える(2025/07版) / Agentic Software Engineering Findy 2025-07 Edition
twada
PRO
99
37k
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
How to Ace a Technical Interview
jacobian
278
23k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
The Straight Up "How To Draw Better" Workshop
denniskardys
235
140k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Embracing the Ebb and Flow
colly
86
4.8k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.6k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
Making Projects Easy
brettharned
116
6.3k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Transcript
July 16, 2025 商品比較サービス「マイベスト」における パーソナライズレコメンドの第一歩 Ryota Uchiyama Recommendation Industry Talks
#7
自己紹介 内山 遼大 株式会社マイベスト 開発部 プロダクトチーム バックエンドエンジニア 大学院では、医療画像を用いた機械学習の研究に取り組みながら、 Web系複数社でのイ ンターンを通じてWeb開発を経験。
2024年に新卒で株式会社マイベストに入社し、現在はモバイルアプリのバックエンドエン ジニアとして、要件定義から設計・開発・ QAまで幅広く担当。 •経歴 @ucchiii43 麻雀🀄/日本酒🍶 / 釣り🎣 /体を動かすこと全般 ⚽ 🎾 🏂 •趣味 2
「マイベスト」というサービスをご存知ですか 👀 3
「◯◯ おすすめ」と検索して 4
このページを開いて 5
スクロールして 6
こんな表みたことありませんか? 7
月間利用者数 3,000 ユーザーの “選択”を サポートするサービス 万人以 上 (2024年11月時点)
9 マイベスト独⾃のスコア「おすすめスコア」で⽐較
商品を⾃社で購⼊‧検証しスコアづけしてランキングを作成
テスト環境も⾃社で整備 自社内に倉庫やラボ、撮影スタジオがあり、商品テスト環境を完備したオフィスになっています。検証機器は高価なものだと 1つあたり購入価格で約 1,000万円する など、商品のデータの精度を高めるべく、積極的に設備投資を行っています。
各商材の「〇〇 おすすめ」検索の 3位以内割合 約 86% 月間利用回数 約 5,000万回以上 3位以内 4位以降
2016/2 2017/2 2018/2 2019/2 2020/2 2021/2 2022/2 「検索」の領域では大きなプレゼンスを獲得 既存の選択におけるプラットフォームである「検索」において、月間利用回数 5,000万回以上のサービスにまで成長。 2023/06実績 12
01 マイベスト ✖ パーソナライズ
2017 2018 2019 2020 2021 2022 2023 20XX 提供できる選択体験のよさ PMFに向けた取り組み
フェーズを 3つにわけて、 PMFに向けて取り組む。 これまでは、選択肢のデータベース作りに最も注力してきました。 現在は、ユーザーデータの収集を目的とした施策に注力しており、最終的には選択肢のデータと ユーザーデータを掛け合わせ、パーソナライズされた選択体験を実現したいと考えています。 Phase 1 選択肢のデータベース作り Phase 3 パーソナライズされた選 択体験 …… Phase 2 ユーザーデータの収集 2024 2025 14
パーソナライズ を実現するためにマイ ベストが行っていたこと 15
モバイルアプリをリリース 🎉 2023年3月にiOSモバイルアプリをリリース。 マイベストの膨大な商品データベースを活かしつつ、Webでは提供できなかったパーソナライズ体験をたちあげていく。 会員登録をおこなったユーザーのみが利用可能。
Home画面に様々なレコメンドを掲出 • 特におすすめの記事をピックアップして掲出 • Home画面の中でも特に見られている人気 セクション • 季節に合わせた記事をピックアップして掲出 • トレンドに沿った今すぐ使える商品が見つかる
17
これはあくまで「私たちからのおすすめ」であり、ユー ザーに関わらず一律であるためパーソナライズとはい えない 18
• マイベストを使う → 自分以外の意見も参考にしたい • Amazonの「購入履歴からのおすすめ」や Netflixの「閲覧履歴からのお すすめ」など、何かを選択するサービスにはパーソナライズされたレコメ ンドが当たり前のようにあるのに、その「選択」をサポートする立場のマ イベストにはなかった
19 マイベストは「選択」をサポートするサービス
ならつくろう 18
02 Projectの内容とアプローチ
あなたの閲覧履歴からのおすすめ (アプリ会員専用) 22
Item2Vec 23 引用: https://arxiv.org/abs/1603.04259
24 PoCプロジェクトにおける考慮点 • 短期間で検証できる ◦ 実装が簡潔かつ容易 ◦ 定量的・定性的に検証しやすい • モデルが軽量
◦ 学習に必要な計算リソースの削減とそれに伴うコスト削減 ◦ 学習時間の短縮により「学習 → 検証 → 改善」のスピードアップ
25 PoCプロジェクトにおける考慮点 • 十分枯れた技術であること https://note.com/globis_engineers/n/ne68505eb222e https://engineering.mercari.com/blog/entry/20221004-attempt-t o-improve-item-recommendation-accuracy-using-item2vec/
26 Item2Vecのメリット /デメリット • メリット ✅ モデルが軽量である ✅ 定性評価がしやすい ✅
3つのカラム(user_id, item_id, datetime)のみで学習できる • デメリット ❌ 性別や年齢などの属性情報を使えない ❌ 順序や時系列情報を考慮できない(直近の履歴を重要視できない) ❌ データ量が少ないと正しいベクトルを生成できない
ユーザーデータはめちゃくちゃあるので なんとかなる 27
03 マイベスト ✖ Item2Vec
29 • epochs:50 • 学習データ数:約 1350万件 ◦ 1st-party Cookie で区別したユーザーごとの閲覧履歴
• 使用ライブラリ: gensim • 学習形式: Skip-gram マイベストにおける利用法(学習)
30 マイベストにおける利用法(学習) • 閲覧したコンテンツの記事 ID を入力とする • ユーザーごとの直近 2ヶ月間の閲覧履歴を日時でソートして 1つのデータとする
[“1231”, “41”, “5345”, “5241”, “12343”] [“141”, “6345”] [“5345”, “243”, “6342”, “5241”] [“243”, “1562”, “5241”]
31 マイベストにおける利用法(学習) • 取得したデータを配列にしてモデルに入力し、埋め込みベクトルを生成する [[“1231”, “41”, “5345”, “5241”, “12343”], [“141”,
“6345”], [“5345”, “243”, “6342”, “5241”], [“243”, “1562”, “5241”]] V 1231 V 5241 V 5345 V 41 V 1562 V 243 V 6342 V 12343 V 141 V 6345 モデル
32 マイベストにおける利用法(推論) 1. アプリでの会員の閲覧履歴(記事 ID)(MAX5件)を入力とする 2. 入力された各記事 IDに対応する埋め込みベクトルを取得する 3. 取得した埋め込みベクトルを平均化して、一つの合成ベクトルを生成する
4. 合成ベクトルと類似度の高い埋め込みベクトルを算出し、対応する記事 IDを出力とする a. 出力の数は指定できる(現在は 20件)
33 マイベストにおける利用法(推論) V 1231 V 5241 V 5345 V 41
V 1562 V 243 V 6342 V 12343 V 141 V 6345 [“5345”, “1562”, “6342”] この男性におすすめの記事を 3つ教えて
34 マイベストにおける利用法(推論) input: [“5345”, “1562”, “6342”] V XXX V 1231
V 5241 V 5345 V 41 V 1562 V 243 V 6342 V 12343 V 141 V 6345 ベクトル化 [V 5345 , V 1562 , V 6342 ] ベクトル合成 V XX X
35 マイベストにおける利用法(推論) V XXX と類似度の高いベクトルを算出 V 1231 V 5241 V
5345 V 41 V 1562 V 243 V 6342 V 12343 V 141 V 6345 V XX X [V 5241 , V 243 , V 1231 ] 対応記事ID output: [“5241” , “243” , “1231”]
モデルに関する詳細を知りたい方は原論文をご覧ください https://arxiv.org/abs/1603.04259 36
04 システム構築と結果
38 システムアーキテクチャ図(簡略版)
39 実際の出力を確認 ヘッドホン ワイヤレスヘッドホン 有線ヘッドホン マイクつきヘッドホン 有線無線両用ヘッドホン オーディオテクニカのヘッドホン ソニーのヘッドホン オーバーイヤーヘッドホン
1万円前後のヘッドホン 軽いヘッドホン ゼンハイザーのヘッドホン コスパ最強のワイヤレスヘッドホン BOSEヘッドホン 密閉型ヘッドホン 高級ヘッドホン Aさん (仮称) 直近の閲覧履歴 システムによるレコメンド内容
40 実際の出力を確認 ボディーシート 日焼け止めスプレー・日焼け止めミスト 日焼け止めクリーム 日焼け止めジェル ホームルーター(置くだけ Wi-fi) クリームチーク ミネラルファンデーション
シェーディング 女性向け制汗剤 水クレンジング シミを隠すコンシーラー カフェインレスコーヒー ペティナイフ クロスバイク メンズ雨傘 Lさん (仮称) の直近の閲覧履 歴 システムによるレコメンド内容 、男性
社内で定性評価を実施 41 • ユーザーごとの直近の 5記事を入力 • モデルによりレコメンドされた 10記事を出力 • 34名の社員が
3段階で評価(閲覧履歴に沿っている・イマイチ・ダメ) 約72%が「閲覧履歴に基づいている」と回答
定性評価でいただいたコメント(抜粋) 42 • 履歴に格安SIMがあった場合、格安SIM関連の記事ばかりがおすすめされる • 睡眠の質向上のために枕の記事を見ていたので、ただの枕の記事よりは肩こりがひどい人用 の枕の記事などをおすすめしてもらった方がパーソナライズ感が出る • 女性なので男性向けの記事を勧められても ...
A/Bテストしてみました 43 • AppのHome画面でA/Bテストを実施しました • 対戦相手は、「今週のピックアップ」 ◦ Home画面の中でも特に利用されているセクション ◦ マイベストがおすすめするコンテンツを手動で抽出し掲載
• 該当箇所からコンテンツを開き、 ECへの遷移リンクを踏ん だ割合を調査
A/Bテストしてみました 44 • 「今週のピックアップ」に対して有意差はなし • Home画面においても売り上げを見込める
無事Home画面で全展開されました! 🎉 45
Home画面が大規模 A/Bテスト中なので ラッキーな人しか見れません 😢 46
04 おわりに
記事IDのみを用いたレコメンドでも、 手動(今週のピックアップ)と遜色ない精度、および 売り上げ効果を実現できた 48
Item2Vecを使って見えてきた課題 49 • 新たな発見が少ない ◦ 洗濯機を買いたい人に洗濯機の記事ばかりをおすすめするのはイマイチ ◦ ドライヤー → ヘアオイルのような関連商品への誘導があるとさらなる購買につな
がる • 文脈に沿ったレコメンドが欲しい ◦ [ ベッド → 洗濯機 ] というログがあったら、引っ越しかも?と考えて家電や 日用品(調理器具など)をおすすめして欲しい ◦ そのような文脈の学習データがないと関連付けづらいが、現状あまりない
今回のプロジェクトに携わってみた感想 50 • Item2Vecの実装は比較的簡単だった ◦ PyTorchで一からモデルを作っていた学生時代と比べるととても簡単に実装できた ◦ 大量のデータを CPUだけで時間をかけずに学習できるものすごい •
サービスにおけるシステム開発において考慮すべきことを知れた ◦ 「コスト」や「実装の容易さ」・「検証のしやすさ」など、サービス上での システム開発の考慮点を知れた ◦ また、これらを考慮した上での技術選定の大変さやおもしろさを学べた
今後の展望 51 • マイベストがもつユーザーの情報を反映したい ◦ 性別 ◦ 年齢 • two-towerモデルをはじめとする深層学習モデルを使ってみたい