콘텐츠로 이동
Data Prep
상세

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)

가장 직관적인 방법: 한 데이터 포인트를 제거하고 재학습하여 성능 변화 측정.

\[ \phi_i^{LOO} = V(\mathcal{D}) - V(\mathcal{D} \setminus \{z_i\}) \]

여기서 \(V(S)\)는 데이터셋 \(S\)로 학습한 모델의 성능 (정확도, 손실 등).

장점 단점
직관적 \(N\)번 재학습 필요 (비용 \(O(N)\))
구현 간단 데이터 간 상호작용 무시
비가산적 (equitable하지 않음)

2. Influence Functions (Koh & Liang, ICML 2017)

LOO의 근사 방법. 재학습 없이 Hessian 역행렬로 영향력 추정.

\[ \mathcal{I}(z_i, z_{test}) = -\nabla_\theta L(z_{test}, \hat{\theta})^\top H_{\hat{\theta}}^{-1} \nabla_\theta L(z_i, \hat{\theta}) \]
  • \(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):

\[ H^{-1} v \approx \sum_{j=0}^{J} (I - H)^j v \quad \text{(Neumann series)} \]

또는 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 정의:

\[ \phi_i = \frac{1}{N} \sum_{S \subseteq \mathcal{D} \setminus \{z_i\}} \binom{N-1}{|S|}^{-1} \left[ V(S \cup \{z_i\}) - V(S) \right] \]

공리적 정당성 (Shapley Value의 4가지 공리):

공리 의미
Efficiency 모든 데이터의 가치 합 = 전체 성능 이득
Symmetry 동일 기여 데이터는 동일 가치
Null Player 기여 없는 데이터의 가치 = 0
Linearity 가치 함수의 선형 결합 = 개별 가치의 선형 결합

TMC-Shapley (Truncated Monte Carlo 근사):

\[ \hat{\phi}_i = \frac{1}{T} \sum_{t=1}^{T} \left[ V(S_{\pi_t}^{i} \cup \{z_i\}) - V(S_{\pi_t}^{i}) \right] \]

여기서 \(\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)\)에 계산 가능.

\[ \phi_i^{KNN} = \frac{1}{N} \sum_{j=1}^{N} \frac{\mathbb{1}[y_i = y_{test}]}{j} \cdot \mathbb{1}[z_i \in \text{top-}j(z_{test})] \]

장점: 대규모 데이터셋(100K+)에서도 실용적인 속도.

5. Beta Shapley (Kwon & Zou, AISTATS 2022)

Shapley Value의 Efficiency 공리를 완화하여 더 나은 실무 성능 달성.

\[ \phi_i^{\beta} = \sum_{S \subseteq \mathcal{D} \setminus \{z_i\}} w_{\alpha, \beta}(|S|) \left[ V(S \cup \{z_i\}) - V(S) \right] \]

가중치 \(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 근사.

\[ \hat{\phi}_i \approx \text{CHG}(z_i) = f(\text{hardness}(z_i), \nabla_\theta L(z_i)) \]
  • 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