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
データバリデーションによるFeature Storeデータ品質の担保
Search
Yudai Hayashi
April 25, 2025
Technology
1
100
データバリデーションによるFeature Storeデータ品質の担保
めぐろLT #26 「データエンジニアリングよもやま」で発表した内容です
https://meguro-lt.connpass.com/event/347477/
Yudai Hayashi
April 25, 2025
Tweet
Share
More Decks by Yudai Hayashi
See All by Yudai Hayashi
MCPを理解する
yudai00
14
10k
「仮説行動」で学んだ、仮説を深め ていくための方法
yudai00
7
1.7k
相互推薦システムでのPseudo Label を活用したマッチ予測精度向上の取り組み
yudai00
1
800
Wantedly Visitにおけるフリーワード検索時の推薦のオンライン化事例紹介
yudai00
1
220
RustとPyTorchで作る推論サーバー
yudai00
12
7.2k
BigQueryで作る簡単なFeature Store
yudai00
2
360
プロダクトのコードをPandasからPolarsへ書き換えた話
yudai00
8
3.6k
データサイエンティストになって得た学び
yudai00
1
240
社内での継続的な機械学習勉強会の開催のコツ
yudai00
2
790
Other Decks in Technology
See All in Technology
Software Delivery Observability CI・CD , DORA metrics も Datadog で可視化しよう / datadog-ci-cd-observability
parupappa2929
0
120
MagicPod MCPサーバー開発の裏側とAIエージェント活用の展望
magicpod
0
270
Part1 GitHubってなんだろう?その2
tomokusaba
2
820
猫でもわかるS3 Tables【Apache Iceberg編】
kentapapa
2
250
さくらのクラウド開発の裏側
metakoma
PRO
18
5.6k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
38
11k
分解し、導き、託す ログラスにおける“技術でリードする” 実践の記録
hryushm
0
470
激動の一年を通じて見えてきた「技術でリードする」ということ
ktr_0731
8
7.9k
PythonツールであるpygnmiをSONiCのgNMIに対して使ってみた
sonic
0
140
20 Years of Domain-Driven Design: What I’ve Learned About DDD
ewolff
1
390
Kaigi Effect 2025 #rubykaigi2025_after
sue445
0
170
Google CloudのAI Agent関連のサービス紹介
shukob
0
120
Featured
See All Featured
Statistics for Hackers
jakevdp
799
220k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
BBQ
matthewcrist
88
9.6k
Done Done
chrislema
184
16k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
Designing Experiences People Love
moore
142
24k
Raft: Consensus for Rubyists
vanstee
137
6.9k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.6k
Visualization
eitanlees
146
16k
Balancing Empowerment & Direction
lara
0
32
Transcript
© 2025 Wantedly, Inc. データバリデーションによるFeature Storeデータ品質の担保 めぐろLT #26 「データエンジニアリングよもやま」 Apr.
25 2025 - Yudai Hayashi
© 2025 Wantedly, Inc. 自己紹介 林 悠大 • 経歴: ◦
2022年に応用物理分野で Ph.D取得 ◦ 2022年にウォンテッドリー株式会社に新卒入社。データサイ エンティストとして推薦システムの開発に従事 @python_walker @Hayashi-Yudai
© 2025 Wantedly, Inc. 今日話すこと • 我々が管理している Feature Storeでのデータ品質担保の取り組みについて紹介 •
Table-to-Tableで特徴量を作成する際には、バリデーションが通っていないデータが最終テーブルに一 時的にでも存在しないことを担保することが重要
© 2025 Wantedly, Inc. 背景 - Feature Storeを自作して機械学習モデルに利用 • 各種特徴量を定期計算して
BigQueryに テーブルを作成する仕組み ◦ PythonFeature: Pythonを使っ て計算する特徴量 ◦ SQLFeature: SQLだけで計算す る特徴量 • 計算した特徴量は複数の機械学習シス テムで利用
© 2025 Wantedly, Inc. 課題 - 計算した特徴量が意図通りになっていなくても気づけない状態になっていた • 特徴量が「意図通りになっていない」とは? ◦
欠損するはずがないフィールドに欠損がある ◦ 全く同じデータが複数回出現する ◦ … • 意図通りになっていないと何がまずいか ◦ 人為的な特徴量のノイズにより、特徴量を学習に利用した機械学習モデルの性能が劣化する (garbage-in-garbage-out) 特徴量を作る際に十分なバリデーションをかけることが重要 ただし、SQLFeatureはBQ上で処理が完結するので、バリデーション方法を工夫する必要 がある
© 2025 Wantedly, Inc. 解決策 - 中間テーブルを作成してバリデーションを行う 要求:バリデーションを通っていないテーブルが存在しない • 中間テーブルを作成してからバリデーションをか
ける。通ったら最終テーブルにコピー • 特徴量の情報はYAMLで管理しており、そこから keyカラムを読み取る ◦ 特徴量計算するクエリを書くときはバリ デーションのことを考えなくてよい
© 2025 Wantedly, Inc. まとめ • 我々が管理している Feature Storeでのデータ品質担保の取り組みについて紹介 •
SQLだけで計算する特徴量においてバリデーションを行うために、一時テーブルを作成してバリデーション を行った後、最終テーブルにコピーするという方策を取った ◦ バリデーションを通っていないデータが最終テーブルに存在しないことを担保 ◦ バリデーションロジックを特徴量計算から切り離すことで、新しい特徴量を追加する時でも設定し忘 れるリスクを回避