Data Valuation¶
메타 정보¶
| 항목 | 내용 |
|---|---|
| 분류 | Data-Centric AI / Data Economics |
| 핵심 논문 | "Data Shapley: Equitable Valuation of Data for ML" (Ghorbani & Zou, ICML 2019), "Understanding Black-box Predictions via Influence Functions" (Koh & Liang, ICML 2017), "Beta Shapley" (Kwon & Zou, AISTATS 2022), "Data Shapley in One Training Run" (Covert et al., ICLR 2025) |
| 주요 저자 | James Zou (Stanford), Amirata Ghorbani, Pang Wei Koh, Percy Liang, Yongchan Kwon |
| 핵심 개념 | 개별 학습 데이터 포인트가 모델 성능에 미치는 기여도를 정량적으로 측정하는 기법 |
| 관련 분야 | Cooperative Game Theory, Explainable AI, Data Marketplace, Data-Centric AI |
정의¶
Data Valuation은 학습 데이터셋의 개별 데이터 포인트 \(z_i = (x_i, y_i)\)가 학습된 모델의 성능에 얼마나 기여했는지를 정량화하는 문제다. 공정한 가치 배분, 데이터 품질 평가, 데이터 선택/정제, 데이터 거래 등에 활용된다.
왜 필요한가¶
문제: "데이터는 새로운 석유" -- 그런데 각 데이터의 가치는?
시나리오 1: 데이터 거래
-> 판매자 A의 데이터 1000건 vs 판매자 B의 데이터 500건
-> 양이 아니라 "품질"에 따라 가격이 달라야 함
시나리오 2: 데이터 디버깅
-> 모델 성능이 낮음
-> 어떤 데이터가 성능을 떨어뜨리는가? (잡음, 오라벨링)
시나리오 3: 데이터 선택
-> 대규모 데이터에서 가장 가치 있는 부분집합 선택
-> 학습 효율성 극대화
핵심 방법론¶
1. Leave-One-Out (LOO)¶
가장 직관적인 방법: 한 데이터 포인트를 제거하고 재학습하여 성능 변화 측정.
여기서 \(V(S)\)는 데이터셋 \(S\)로 학습한 모델의 성능 (정확도, 손실 등).
| 장점 | 단점 |
|---|---|
| 직관적 | \(N\)번 재학습 필요 (비용 \(O(N)\)) |
| 구현 간단 | 데이터 간 상호작용 무시 |
| 비가산적 (equitable하지 않음) |
2. Influence Functions (Koh & Liang, ICML 2017)¶
LOO의 근사 방법. 재학습 없이 Hessian 역행렬로 영향력 추정.
- \(H_{\hat{\theta}} = \frac{1}{N} \sum_{i=1}^{N} \nabla^2_\theta L(z_i, \hat{\theta})\): Hessian 행렬
- \(\nabla_\theta L\): 파라미터에 대한 손실의 그래디언트
계산 최적화 (Hessian-Vector Product):
또는 LiSSA (Linear time Stochastic Second-order Algorithm) 사용.
import torch
import torch.nn as nn
from torch.autograd import grad
def compute_influence_function(
model: nn.Module,
train_loader,
test_sample: tuple,
damping: float = 0.01,
num_samples: int = 100,
recursion_depth: int = 100
) -> dict:
"""
Influence Function 계산.
Returns:
dict: {데이터 인덱스: 영향력 점수}
"""
model.eval()
criterion = nn.CrossEntropyLoss()
x_test, y_test = test_sample
# 1) 테스트 샘플에 대한 gradient 계산
output = model(x_test.unsqueeze(0))
loss = criterion(output, y_test.unsqueeze(0))
test_grad = list(grad(loss, model.parameters()))
test_grad = [g.detach() for g in test_grad]
# 2) Inverse-HVP (LiSSA 근사)
ihvp = [g.clone() for g in test_grad] # 초기값 = test_grad
for _ in range(recursion_depth):
# 미니배치에서 HVP 계산
batch = next(iter(train_loader))
x_batch, y_batch = batch
output = model(x_batch)
loss = criterion(output, y_batch)
params = list(model.parameters())
grads = grad(loss, params, create_graph=True)
# HVP: H @ ihvp
hvp = grad(
grads, params,
grad_outputs=ihvp,
retain_graph=True
)
# Neumann update: ihvp = test_grad + (I - H) @ ihvp
ihvp = [
tg + (1 - damping) * ih - h
for tg, ih, h in zip(test_grad, ihvp, hvp)
]
# 3) 각 학습 데이터의 영향력 계산: -grad_train^T @ ihvp
influences = {}
for idx, (x_train, y_train) in enumerate(train_loader.dataset):
output = model(x_train.unsqueeze(0))
loss = criterion(output, y_train.unsqueeze(0))
train_grad = grad(loss, model.parameters())
influence = sum(
(tg * ig).sum().item()
for tg, ig in zip(train_grad, ihvp)
)
influences[idx] = -influence / len(train_loader.dataset)
return influences
3. Data Shapley (Ghorbani & Zou, ICML 2019)¶
협력 게임 이론의 Shapley Value를 데이터 가치 평가에 적용.
Shapley Value 정의:
공리적 정당성 (Shapley Value의 4가지 공리):
| 공리 | 의미 |
|---|---|
| Efficiency | 모든 데이터의 가치 합 = 전체 성능 이득 |
| Symmetry | 동일 기여 데이터는 동일 가치 |
| Null Player | 기여 없는 데이터의 가치 = 0 |
| Linearity | 가치 함수의 선형 결합 = 개별 가치의 선형 결합 |
TMC-Shapley (Truncated Monte Carlo 근사):
여기서 \(\pi_t\)는 랜덤 순열, \(S_{\pi_t}^{i}\)는 순열에서 \(z_i\) 이전의 데이터.
import numpy as np
from typing import Callable
def tmc_shapley(
train_data: list,
val_data: tuple,
utility_fn: Callable,
num_permutations: int = 100,
tolerance: float = 0.01,
truncation_threshold: float = 0.001
) -> np.ndarray:
"""
TMC-Shapley: Monte Carlo 근사 기반 Data Shapley 계산.
Args:
train_data: [(x_1, y_1), ..., (x_N, y_N)]
val_data: (X_val, y_val)
utility_fn: 데이터셋 -> 성능 점수 함수
num_permutations: Monte Carlo 반복 횟수
tolerance: 수렴 기준
Returns:
shapley_values: 각 데이터의 Shapley 값 (N,)
"""
N = len(train_data)
shapley_values = np.zeros(N)
marginals = np.zeros((num_permutations, N))
for t in range(num_permutations):
perm = np.random.permutation(N)
prev_utility = utility_fn([], val_data) # 빈 집합의 utility
for j, idx in enumerate(perm):
subset = [train_data[perm[k]] for k in range(j + 1)]
curr_utility = utility_fn(subset, val_data)
marginals[t, idx] = curr_utility - prev_utility
# Truncation: 변화가 거의 없으면 나머지는 0
if abs(curr_utility - prev_utility) < truncation_threshold:
break
prev_utility = curr_utility
# 수렴 확인
shapley_values = marginals[:t+1].mean(axis=0)
if t > 10:
prev_avg = marginals[:t].mean(axis=0)
if np.max(np.abs(shapley_values - prev_avg)) < tolerance:
print(f"수렴 at permutation {t}")
break
return shapley_values
4. KNN-Shapley (Jia et al., AISTATS 2019)¶
KNN 분류기의 Shapley Value에 대한 닫힌 형태(closed-form) 해.
핵심 아이디어: KNN 분류기를 utility function으로 사용하면 Shapley Value를 \(O(N \log N)\)에 계산 가능.
장점: 대규모 데이터셋(100K+)에서도 실용적인 속도.
5. Beta Shapley (Kwon & Zou, AISTATS 2022)¶
Shapley Value의 Efficiency 공리를 완화하여 더 나은 실무 성능 달성.
가중치 \(w_{\alpha, \beta}(k) \propto B(k + \beta, N - k - 1 + \alpha)\) (Beta 분포 기반).
| \((\alpha, \beta)\) | 효과 |
|---|---|
| (1, 1) | 표준 Shapley Value와 동일 |
| (1, 16) | 작은 부분집합에 가중치 -> 잡음 데이터 탐지에 유리 |
| (16, 1) | 큰 부분집합에 가중치 -> 전체 데이터 맥락 반영 |
6. Data Shapley in One Training Run (ICLR 2025)¶
기존 Data Shapley의 핵심 한계(재학습 반복)를 극복. 단일 학습 과정에서 Shapley Value 근사.
- CHG (Compound of Hardness and Gradient) utility function
- 각 에포크에서 데이터 포인트의 난이도와 gradient를 활용
- 계산 복잡도: 단일 학습 1회 수준
방법론 비교¶
| 방법 | 계산 비용 | 이론적 보장 | 대규모 적용 | 노이즈 탐지 | 주요 학회 |
|---|---|---|---|---|---|
| LOO | \(O(N)\) 재학습 | 없음 | 어려움 | 보통 | - |
| Influence Functions | 단일 학습 + HVP | 볼록 모델에서 보장 | 중간 | 보통 | ICML 2017 |
| Data Shapley (TMC) | \(O(N \cdot T)\) 재학습 | Shapley 공리 | 어려움 | 좋음 | ICML 2019 |
| KNN-Shapley | \(O(N \log N)\) | Shapley 공리 | 좋음 | 좋음 | AISTATS 2019 |
| Beta Shapley | TMC와 유사 | 완화된 공리 | 어려움 | 우수 | AISTATS 2022 |
| TracIn | 체크포인트 수에 비례 | 근사 | 좋음 | 보통 | NeurIPS 2020 |
| TRAK | 단일 학습 + 프로젝션 | 근사 | 좋음 | 좋음 | ICML 2023 |
| CHG Shapley | 단일 학습 | Shapley 근사 | 우수 | 우수 | ICLR 2025 |
응용 분야¶
1. 데이터 품질 평가 및 디버깅¶
Data Valuation으로 데이터 품질 파이프라인:
[학습 데이터] --> [Data Valuation] --> [가치 점수 할당]
| |
| v
| 음수 값 데이터 -> 잡음/오라벨
| 낮은 값 -> 중복/불필요
| 높은 값 -> 핵심 데이터
v
[정제된 데이터] --> [모델 재학습] --> 성능 향상
2. 데이터 마켓플레이스¶
- 판매자의 데이터 기여도에 비례한 보상 분배
- 공정한 데이터 가격 책정
- OpenDataVal 벤치마크 (NeurIPS 2023 Datasets & Benchmarks)
3. 효율적 학습 (Data Selection)¶
def select_valuable_data(
train_data: list,
shapley_values: np.ndarray,
budget_fraction: float = 0.5
) -> list:
"""가치가 높은 데이터만 선택하여 학습 효율화"""
n_select = int(len(train_data) * budget_fraction)
top_indices = np.argsort(shapley_values)[::-1][:n_select]
return [train_data[i] for i in top_indices]
4. 저작권 및 기여도 추적¶
- GDPR의 "잊혀질 권리"와 연관
- 특정 데이터 제공자의 모델 성능 기여도 정량화
- AI 생성 콘텐츠에 대한 학습 데이터의 영향 추적
한계와 과제¶
| 한계 | 설명 |
|---|---|
| 계산 비용 | Shapley 기반 방법은 본질적으로 비용이 높음 (재학습 반복) |
| 불안정성 | 모델, 하이퍼파라미터, 검증 데이터에 따라 값이 변동 |
| 비볼록 모델 | Influence Functions 등의 근사가 부정확할 수 있음 |
| 대규모 확장 | 수백만 데이터 포인트에 대한 효율적 계산은 여전히 도전 |
| Utility 함수 선택 | 어떤 성능 메트릭을 사용하느냐에 따라 결과가 달라짐 |
연구 방향 (2024-2026)¶
현재 주요 연구 방향:
1. 효율적 계산
- 단일 학습 기반 방법 (CHG Shapley, ICLR 2025)
- 프로젝션 기반 근사 (TRAK)
- Amortized Data Valuation
2. LLM 학습 데이터 가치
- 대규모 사전학습 코퍼스의 데이터 가치
- Instruction Tuning 데이터의 품질 평가
- 저작권 이슈와 연계
3. 분산 환경
- Federated Learning에서의 데이터 가치
- 다중 데이터 제공자 간 공정 분배
- 데이터 마켓 설계
4. 이론적 기반 강화
- Data Valuation의 일관성/안정성 보장
- 근사 오차의 이론적 분석
- Utility 함수 비의존적 방법
도구 및 라이브러리¶
| 도구 | 설명 | URL |
|---|---|---|
| OpenDataVal | Data Valuation 통합 벤치마크 | https://github.com/opendataval/opendataval |
| pyDVL | Data Valuation 라이브러리 | https://github.com/aai-institute/pyDVL |
| DataScope | KNN-Shapley 구현 | https://github.com/easeml/datascope |
관련 문서¶
| 주제 | 링크 |
|---|---|
| Training Data Attribution | ../training-data-attribution/summary |
| Data-Centric AI | ../data-centric-ai/summary |
| Dataset Distillation | ../dataset-distillation/summary |
| Federated Learning | ../federated-learning/summary |
| Differential Privacy | ../differential-privacy/summary |
참고¶
- Ghorbani, A. & Zou, J. (2019). "Data Shapley: Equitable Valuation of Data for Machine Learning." ICML 2019
- Koh, P.W. & Liang, P. (2017). "Understanding Black-box Predictions via Influence Functions." ICML 2017
- Jia, R. et al. (2019). "Towards Efficient Data Valuation Based on the Shapley Value." AISTATS 2019
- Kwon, Y. & Zou, J. (2022). "Beta Shapley: a Unified and Noise-reduced Data Valuation Framework." AISTATS 2022
- Pruthi, G. et al. (2020). "Estimating Training Data Influence by Tracing Gradient Descent." NeurIPS 2020
- Park, S.M. et al. (2023). "TRAK: Attributing Model Behavior at Scale." ICML 2023
- Jiang, K.F. et al. (2023). "OpenDataVal: a Unified Benchmark for Data Valuation." NeurIPS 2023
- Covert, I. et al. (2025). "Data Shapley in One Training Run." ICLR 2025