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
『SUUMO』における行動履歴ログの品質担保の取り組み / techplay221101_03...
Search
Recruit
PRO
November 01, 2022
Technology
1
2.9k
『SUUMO』における行動履歴ログの品質担保の取り組み / techplay221101_03_niibori
2022/11/01_リクルートが考える『意思決定に効くデータマネジメント』~アナリティクスエンジニア組織の立ち上げと事例紹介~での、新堀の講演資料になります
Recruit
PRO
November 01, 2022
Tweet
Share
More Decks by Recruit
See All by Recruit
Balancing Revenue Goals and Off-Policy Evaluation Performance in Coupon Allocation
recruitengineers
PRO
1
20
Flutterによる 効率的なAndroid・iOS・Webアプリケーション開発の事例
recruitengineers
PRO
0
130
VPC Traffic Mirroring とOSS を利⽤した ネットワークフォレンジック基盤の構築・運⽤
recruitengineers
PRO
2
50
スタサプ ForSCHOOLアプリのシンプルな設計
recruitengineers
PRO
3
1.1k
リクルート流データ基盤塾~鶴谷と学ぶ~
recruitengineers
PRO
5
250
『SUUMO』 スマホサイト デザインリニューアルへの挑戦
recruitengineers
PRO
5
350
『リクルートダイレクトスカウト』 のリニューアルから振り返る: ビジョンドリブンの可能性
recruitengineers
PRO
3
310
負債あるモノリスのオブザーバビリティに組織で向き合う
recruitengineers
PRO
9
400
あなたの知らないiOS開発の世界
recruitengineers
PRO
4
330
Other Decks in Technology
See All in Technology
Next.jsとNuxtが混在? iframeでなんとかする!
ypresto
1
320
BLADE: An Attempt to Automate Penetration Testing Using Autonomous AI Agents
bbrbbq
0
330
CDCL による厳密解法を採用した MILP ソルバー
imai448
3
200
Lambda10周年!Lambdaは何をもたらしたか
smt7174
2
130
20241120_JAWS_東京_ランチタイムLT#17_AWS認定全冠の先へ
tsumita
2
310
Taming you application's environments
salaboy
0
200
10XにおけるData Contractの導入について: Data Contract事例共有会
10xinc
7
700
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
3
950
アジャイルチームがらしさを発揮するための目標づくり / Making the goal and enabling the team
kakehashi
3
170
Application Development WG Intro at AppDeveloperCon
salaboy
0
200
電話を切らさない技術 電話自動応答サービスを支える フロントエンド
barometrica
1
130
Platform Engineering for Software Developers and Architects
syntasso
1
530
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
459
33k
Typedesign – Prime Four
hannesfritz
40
2.4k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
It's Worth the Effort
3n
183
27k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
Code Reviewing Like a Champion
maltzj
520
39k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
380
Unsuck your backbone
ammeep
668
57k
What's in a price? How to price your products and services
michaelherold
243
12k
Designing for Performance
lara
604
68k
Transcript
© Recruit Co., Ltd. All Rights Reserved 『SUUMO』における行動履歴ログの品質担 保の取り組み 1
データ推進室 データテクノロジーユニット D3M 部 HR/住まいD3Mグループ 新堀 秀和 2022/11/01
© Recruit Co., Ltd. All Rights Reserved 自己紹介 新堀 秀和
(にいぼり ひでかず) データ推進室 データテクノロジーユニット D3M 部 HR/住まいD3Mグ ループ グループマネージャー 2017年にリクルート住まいカンパニーに中途入社し、開発ディレクション 組織に配属。 入社して間もなく、データの利活用を推進する目的で、D3M 部の前身となるデータマネジメントグループの立ち上げに参画。 2021年 の会社統合後はHR領域と住まい領域のD3Mグループのマネージャーを 務めている。 好きな言語はPHP/JavaScript、好きなことはチームビルド/アジャイル カルチャー 2 #recruitdata
© Recruit Co., Ltd. All Rights Reserved まなび 領域 住まい
領域 データ推進室の組織構成 3 データテクノロジー ユニット SaaS 領域 データプロダクト ユニット HR 領域 データサイエンス部 データエンジニアリング部 … D3M (Data Driven Decision Making) 部 1. 白子 3.林田 2.新堀 山邉 データソリューションユニット #recruitdata
© Recruit Co., Ltd. All Rights Reserved 『SUUMO』サービス 不動産クライアントとカスタマーを繋ぐメディア 4
#recruitdata
© Recruit Co., Ltd. All Rights Reserved 『SUUMO』でのデータ利活用: 『SUUMO』では、メディア(Webサイト/アプリ)から取得できる行動履歴ログ(主に Webビーコン型のログ)を使って、
・機械学習を用いたリコメンドサービス開発 ・モニタリング(データマート/BI) 等に利活用している 5 Webサイト/アプリ Webビーコンロ グ 収集・加工・蓄積 (ETL, DWH,...etc) リコメンド サービス モニタリング #recruitdata
© Recruit Co., Ltd. All Rights Reserved 『SUUMO』でのデータ利活用: 『SUUMO』では、メディア(Webサイト/アプリ)から取得できる行動履歴ログ(主に Webビーコン型のログ)を使って、
・機械学習を用いたリコメンドサービス開発 ・モニタリング(データマート/BI) 等に利活用している 6 Webサイト/アプリ Webビーコンロ グ 収集・加工・蓄積 (ETL, DWH,...etc) リコメンド サービス モニタリング #recruitdata アナリティクスエンジニアの主たる活動範囲
© Recruit Co., Ltd. All Rights Reserved 『SUUMO』のフロント開発,データ開発 • フロント開発:
サイト/アプリメディアでは、マッチング向上(利便性向上等)の目的で、高頻度か つ継続的にSUUMOのUI/UX改善を実施 • データ開発: 行動履歴ログを使って、リコメンド/モニタリングなどを通してマッチング精度向 上 7 #recruitdata
© Recruit Co., Ltd. All Rights Reserved 『SUUMO』のフロント開発,データ開発 • フロント開発:
サイト/アプリメディアでは、マッチング向上(利便性向上等)の目的で、高頻度か つ継続的にSUUMOのUI/UX改善を実施 • データ開発: 行動履歴ログを使って、リコメンド/モニタリングなどを通してマッチング精度向 上 8 高頻度のUI/UX改善によりサイト/アプリが変更され、取得される行動履 歴ログが改変、リコメンドやモニタリングの障害原因となっていた #recruitdata
© Recruit Co., Ltd. All Rights Reserved Webサイト/アプリ Webビーコンロ グ
収集・加工・蓄積 (ETL, DWH,...etc) リコメンド サービス モニタリング なぜ、障害が発生するのか? • 行動履歴ログの埋め込みは、フロント開発で実施するが、フロント開発では行動 履歴ログがどのように使われているか把握できない • 結果、狙ったテストが実施できず、意図せずして、行動履歴ログが改変され、後続 のデータサービス障害が発生 9
© Recruit Co., Ltd. All Rights Reserved Webサイト/アプリ Webビーコンロ グ
収集・加工・蓄積 (ETL, DWH,...etc) リコメンド サービス モニタリング なぜ、障害が発生するのか? • 行動履歴ログの埋め込みは、フロント開発で実施するが、フロント開発では行動 履歴ログがどのように使われているか把握できていない • 結果、狙ったテストが実施できず、意図せずして、行動履歴ログが改変され、後続 のデータサービス障害が発生 10 【今日の話】 アナリティクスエンジニアが、フロントエンジニアと連 携して、行動履歴ログの品質担保
© Recruit Co., Ltd. All Rights Reserved 行動履歴ログの品質担保方法 ログ仕様(正解データ)を用意してテストする 11
#recruitdata
© Recruit Co., Ltd. All Rights Reserved 行動履歴ログの品質担保方法 ログ仕様(正解データ)を用意してテストする ただし、問題が、、、
• テストを実施すれば良いが、高頻度かつ継続的にサイト/アプリ開発を実施して いる中に、アナリティクスエンジニアが入ってテストを実施すると、改善スピード が阻害される 12 #recruitdata
© Recruit Co., Ltd. All Rights Reserved 行動履歴ログの品質担保方法 ログ仕様(正解データ)を用意してテストする ただし、問題が、、、
• テストを実施すれば良いが、高頻度かつ継続的にサイト/アプリ開発を実施して いる中に、アナリティクスエンジニアが入ってテストを実施すると、改善スピード が阻害される → 自動テストで解決すれば良い 13 #recruitdata
© Recruit Co., Ltd. All Rights Reserved 行動履歴ログの品質担保方法 ログ仕様(正解データ)を用意してテストする ただし、問題が、、、
• テストを実施すれば良いが、高頻度かつ継続的にサイト/アプリ開発を実施して いる中に、アナリティクスエンジニアが入ってテストを実施すると、改善スピード が阻害される → 自動テストで解決すれば良い 14 フロント開発で使えるE2E自動テストを組んで、行動履歴ログの品質担保 を実施 #recruitdata
© Recruit Co., Ltd. All Rights Reserved 実際の取り組み内容と課題 E2Eテストフレームワークを使って、サイト/アプリの生成するWebビーコン型の行動 履歴ログが仕様通りの内容か、自動でテスト
①行動履歴ログの仕様管理 ②①を使って行動履歴ログの生成機能を自動テスト 15 #recruitdata
© Recruit Co., Ltd. All Rights Reserved 実際の取り組み内容と課題 E2Eテストフレームワークを使って、サイト/アプリの生成するWebビーコン型の行動 履歴ログが仕様通りの内容か、自動でテスト
①行動履歴ログの仕様管理 ②①を使って行動履歴ログの生成機能を自動テスト 一般的なE2E自動テストと何が違うのか? 16 #recruitdata
© Recruit Co., Ltd. All Rights Reserved 一般的な自動テスト 17 仕様書を作成
する テストコードを書 く テストを通す サイト情報 (URL/DOM) ログ 情報 結果確認 テスト 実行 テスト コード JS #recruitdata
© Recruit Co., Ltd. All Rights Reserved 課題(1) 仕様が更新されない 18
仕様書を作成 する テストコードを書 く テストを通す サイト情報 (URL/DOM) ログ 情報 結果確認 テスト 実行 テスト コード JS 更新されない #recruitdata
© Recruit Co., Ltd. All Rights Reserved 課題(1)の対応 : 仕様をテストコード管理
19 仕様をコード管 理 テストコードを書 く テストを通す 結果確認 テスト 実行 テスト コード JS サイト情報 ログ情報 #recruitdata
© Recruit Co., Ltd. All Rights Reserved 課題(1)の対応 : 仕様をテストコード管理
20 仕様をコード管 理 テストコードを書 く テストを通す 結果確認 テスト 実行 テスト コード JS サイト情報 ログ情報 仕様を更新しないと、テストが通らないプロセス #recruitdata
© Recruit Co., Ltd. All Rights Reserved 課題(2) メンテナンスコストの高騰 21
仕様をコード管 理 テストコードを書 く テストを通す 結果確認 テスト 実行 テスト コード JS サイト情報 ログ情報 サイト改修のたび にエンハンス #recruitdata
© Recruit Co., Ltd. All Rights Reserved 課題(2)の対応 : テストコードの自動生成
22 仕様をDBに登 録 テストコードの 自動生成 テストを通す 結果確認 テスト 実行 テスト コード JS サイト情報 (URL/DOM) ログ情報 #recruitdata
© Recruit Co., Ltd. All Rights Reserved 課題(2)の対応 : テストコードの自動生成
23 仕様をDBに登 録 テストコードの 自動生成 テストを通す 結果確認 テスト 実行 テスト コード JS サイト情報 (URL/DOM) ログ情報 テストコードの作成を不要にし、メンテナンスコストを抑制 #recruitdata
© Recruit Co., Ltd. All Rights Reserved 実際の取り組み内容と課題 E2Eテストフレームワークを使って、サイト/アプリの生成するWebビーコン型の行動 履歴ログが仕様通りの内容か、自動でテスト
①行動履歴ログの仕様管理 → 仕様を更新しないと、テストが通らないプロセスを構築 ②①を使って行動履歴ログの生成機能を自動テスト → テストコードの作成を不要にし、メンテナンスコストを抑制 24 #recruitdata
© Recruit Co., Ltd. All Rights Reserved 『SUUMO』における行動履歴ログのテストフロー 25 仕様をDBに登
録 テストコードの 自動生成 テストを通す 結果確認 テスト 実行 テスト コード JS サイト情報 (URL/DOM) ログ情報 ログ仕様をDBに登録するだけで、テストコードの作成が不 要で、テストを実行できるフロー #recruitdata
© Recruit Co., Ltd. All Rights Reserved 『SUUMO』における行動履歴ログのテストフロー 26 仕様をDBに登
録 テストコードの 自動生成 テストを通す 結果確認 テスト 実行 テスト コード JS サイト情報 (URL/DOM) ログ情報 UI/UX改善による、行動履歴ログの予期せぬ改変なし 改善スピードをほぼ損なうことなく、データサービスの障害も0件 #recruitdata
© Recruit Co., Ltd. All Rights Reserved まとめ • データ開発:
◦ 行動履歴ログを使って、リコメンド/モニタリングなどを通してマッチング精度向上 • フロント開発: ◦ マッチング向上(利便性向上等)の目的で、高頻度かつ継続的にSUUMOのUI/UX 改善を実施 行動履歴ログの予期せぬ改変により、データプロダクトの障害発生 27 このコンフリクトを解消するために、アナリティクスエンジニアが、フロント エンジニアと連携して、行動履歴ログの品質担保を実施 #recruitdata
© Recruit Co., Ltd. All Rights Reserved この後のセッション 28 講演資料などのハッシュタグ
#recruitdata イベント終了後にアンケートのご案内もあ りますので、是非ご回答をお願いします! #recruitdata