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
Databricksを活用してDELISH KITCHENのレシピレコメンドを開発した話
Search
Naoki Furuhama
April 10, 2024
Technology
1.3k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Databricksを活用してDELISH KITCHENのレシピレコメンドを開発した話
https://findy.connpass.com/event/313933/
Naoki Furuhama
April 10, 2024
Other Decks in Technology
See All in Technology
Genie Codeハンズオン応用編
taka_aki
0
130
なぜ Temporal の大小比較には compare しかないのか / Why Does Temporal Only Have compare() for Comparisons
kazukihayase
1
190
【GCC2026】TrueHDRIを用いたルックデブ環境とライティングテクニック
bandainamcostudios
PRO
0
140
Master Dataグループ紹介資料
sansan33
PRO
1
4.8k
作って理解するCoding Agent 〜フレームワークに頼らないピュア Python での実装〜
takapy
3
590
AIに狂うスタートアップが、あえて「人との協働」に全振りした新卒エンジニア研修 / New Graduate Engineer Training at a Startup Accelerating AI Adoption
ohnoeight
0
170
Kiro入門|仕様駆動開発で変わるAI時代の開発スタイル
cmkudo
0
280
コネクションをピン留めさせずに SELECTクエリのタイムアウトを設定した話
codmoninc
0
180
長期運営で肥大化したExcelマスターデータの解消に向けた移行事例
gree_tech
PRO
0
100
属人化を叩き割れ!「制作加速」と「安定化」の矛盾を打破する:8年目プロダクトが辿り着いた「ミスが起こり得ない」アセット制作フローの全貌
gree_tech
PRO
0
120
tamachi.go 誕生の裏側
rymiyamoto
1
190
Software Supply Chain Attackからクラウド環境を守るためにできること
lhazy
2
290
Featured
See All Featured
Designing for Timeless Needs
cassininazir
1
450
Building Adaptive Systems
keathley
44
3.2k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
How GitHub (no longer) Works
holman
316
150k
WENDY [Excerpt]
tessaabrams
11
39k
Scaling GitHub
holman
464
140k
KATA
mclloyd
PRO
35
15k
Ruling the World: When Life Gets Gamed
codingconduct
0
310
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
570
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
290
Site-Speed That Sticks
csswizardry
13
1.5k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.9k
Transcript
Databricksを活用してDELISH KITCHENの レシピレコメンドを開発した話 2024/04/05 データ基盤だけじゃない! 意外と知らないDatabricks活用方法LT @Naoki_Furuhama
Copyright © 2015 every, Inc. All rights reserved. 2 自己紹介
株式会社エブリー 開発本部 CTO室 Data&AI データサイエンティスト 古濵 尚樹(Naoki Furuhama) 2022年 香川大学工学研究科 修了 2022年 株式会社エブリー 入社 現在3年目。入社後は、新規事業のデータ基盤構築や、 Databricksを用いた ETLパイプラインの開発に従事。現在は、 DELISH KITCHENのレシピレコメン ドの開発をメインで担当している。
3 Copyright © 2015 every, Inc. All rights reserved. 会社概要
会社名 設立 株式会社エブリー 東京都港区六本木 3-2-1 住友不動産六本木グランドタワー 38F 133.3億円 所在地 2015年9月1日(6月決算) 累計調達 主要株主 KDDI、伊藤忠食品、加藤産業、旭食品、セイノーホー ルディングス、味の素、 DCMベンチャーズ、グロービス・ キャピタル・パートナーズ、 WiL、DBJキャピタル、 SMBCベンチャーキャピタル、 SBIインベストメント他 エブリーは 3つの領域で日本最大級のメディアを運営! 生活に寄り添ったサービスを提供しています。 株式会社エブリー 開発部 X @every_engineer 株式会社エブリー 広報 X @every_pr
4 Copyright © 2015 every, Inc. All rights reserved. DELISH
KITCHENについて ▪ 日本最大級のレシピ動画サービス ▪ 「おいしい楽しい「食事」と「健康」をすべての人に」をミッションに毎日配信 ▪ SNS/APP/WEBを通じて専門家監修の50,000本以上のレシピ動画を提供
5 Copyright © 2015 every, Inc. All rights reserved. 今日する話
• DELISH KITCHENにおけるレシピレコメンドの概要 • Databricksを活用したレシピレコメンドの実装 ◦ ルールベース→機械学習(ML) 今日しない話 • データ基盤の詳細 • MLやレコメンドに関する詳しい説明 今日する話 / しない話
Copyright © 2015 every, Inc. All rights reserved. 6 メダリオンアーキテクチャを採用したデータ基盤
https://www.databricks.com/jp/glossary/medallion-architecture
Copyright © 2015 every, Inc. All rights reserved. 7 メダリオンアーキテクチャを採用したデータ基盤
https://www.databricks.com/jp/glossary/medallion-architecture
レシピレコメンド概要
9 Copyright © 2015 every, Inc. All rights reserved. 背景
▪ 日本最大級のレシピ動画サービス ▪ 「おいしい楽しい「食事」と「健康」をすべての人に」をミッションに毎日配信 ▪ SNS/APP/WEBを通じて 専門家監修の50,000本以上のレシピ動画 を提供 ユーザ数・レシピ数の増加とともに ユーザ自らが好みのレシピを見つけることが困難 DELISH KITCHENではユーザの嗜好に寄り添った アプリのパーソナライズに向けた開発をしています レシピのレコメンド開発を担当
10 Copyright © 2015 every, Inc. All rights reserved. レコメンドの対象面
ホーム 動画 レシピ詳細
11 Copyright © 2015 every, Inc. All rights reserved. レシピレコメンドの全体構成
全体構成 delta lakeにあるイベントログをデータソースとして、レコメンドするためのロジックを 集計する そのレコメンド結果をdelta lakeに保存 レコメンド結果をDelish ServerのRedisにデプロイし、アプリのリクエストに対して Serverがレシピを返す
12 Copyright © 2015 every, Inc. All rights reserved. レシピレコメンドの既存ロジック
データソース アプリのイベントログ ロジックはルールベースで集計 検索経由の視聴ログをもとに集計 動画の視聴秒数が多いレシピ上位k件をレコメンド
13 Copyright © 2015 every, Inc. All rights reserved. 既存ロジックの課題
動画を視聴をしないユーザもいる。 ユーザの目的が動画の視聴することではなく、レシピを探しているため。 このようなユーザには材料などが見れるレシピ詳細の表示ログをもとにレコメンドしたい。 動画を視聴したからと言って興味があるレシピとは限らない 複数のイベントログを組み合わせたい場合、ルールが複雑化 レコメンドの精度を上げるためにルールが複雑化していくのは目に見えている。 今回のケースで言えば、検索経由の視聴ログとレシピ詳細の表示ログを組み合わせたい など。
14 Copyright © 2015 every, Inc. All rights reserved. 新規ロジック
- 候補生成とリランキングによるアプローチ 候補生成 大規模なユーザ x アイテムの組み合わせを全て扱わず、 ユーザ一人当たりに対してレコメンド対象となる候補を生成 する リランキング ユーザの嗜好に合ったレシピをレコメンドするために、候 補を並び替える https://storage.googleapis.com/pub-tools-public-publication-data/pdf/45530.pdf 候補生成とリランキングの2つのステージにわ けてレコメンドする手法 候補生成 → spark.sqlで集計 リランキング → ML
候補生成とリランキングの実装
16 Copyright © 2015 every, Inc. All rights reserved. 候補生成とリランキングの全体像
17 Copyright © 2015 every, Inc. All rights reserved. リランキング(学習)
正解ラベル • 翌日以降の動画の視聴有無 ◦ 0 or 1 学習 • LightGBMで二値分類問題を解くタスク • 実験およびリランキングモデルはmlflowで 管理 既存ロジック 新規ロジック
18 Copyright © 2015 every, Inc. All rights reserved. リランキング(候補と特徴量)
候補 • 候補をfull outer joinして候補群を作成 ◦ 検索経由の視聴 ◦ レシピ詳細の表示 • 候補群のuser x recipeからレコメンド 検索経由 の視聴 レシピ詳細の 表示 候補群 ユーザ行動 特徴量 full outer join レシピの栄養素 特徴量 特徴量 候補群 特徴量 • 候補群と各特徴量をleft joinして特徴量 を作成 • ユーザ行動 ◦ 視聴秒数、タップログ等 • レシピの栄養素 ◦ カロリー、たんぱく質、脂質、糖質等 left join
19 Copyright © 2015 every, Inc. All rights reserved. 候補生成
候補生成の仕組みをmodule化 • 使い回しやすい 2-stage recommender systemの デザインパター ンを考えて実装した話 Databricksのpython fileで切り出し • Candidateクラス • QueryGeneratorクラス • Evaluatorクラス
20 Copyright © 2015 every, Inc. All rights reserved. 候補生成
候補生成モジュールに実装されている候補一覧 を、delta lakeに保存 候補生成 • queryをQueryGeneratorから取得 • spark.sql(query)を実行 評価 • 生成した候補と正解データを元に評価 • precision@k, recall@k, map@k等
21 Copyright © 2015 every, Inc. All rights reserved. リランキング(予測)
予測 • 最新の候補群と特徴量から動画の視聴する確率を 予測 • 確率の高いレシピの上位k件をレコメンド
22 Copyright © 2015 every, Inc. All rights reserved. A/Bテスト
評価指標 • クリック率 control • 既存ロジック(視聴秒数で降順に並び替え) test1 • 新規ロジック(リランキングモデルの予測値で並び替え)
23 Copyright © 2015 every, Inc. All rights reserved. まとめ
弊社テックブログに詳細な話をまとめてます! DELISH KITCHENのレシピのレコメンドに Two-stage Recommender Systemsを導入するまでの道のり https://tech.every.tv/entry/2024/03/27/160717 • ユーザ数・レシピ数の増加に伴い、DELISH KITCHENではレシピのレコメンドを開発中 • よりユーザの嗜好に寄り添ったレコメンドを実現するために、ルールベースから候補生 成とリランキングによるレコメンドを実装・検証した • A/Bテストしたところ、クリック率の改善がみられた
Copyright © 2015 every, Inc. All rights reserved. 24 エブリーからのお知らせ
一緒にサービスを作る仲間を大募集中です! 🔍 エブリー 採用 https://corp.every.tv/recruits • エンジニアリングブログもやってます • エブリー公式採用オウンドメディア「every.thing」はこちら https://tech.every.tv/ https://everything.every.tv/
None