Files
2nd/10_Wiki/Topics/Computer_Science_and_Theory/Adaptive-Curation.md
T
koriweb d8a80f6272 chore(wiki): dangling 링크 canonical 정규화 (768파일/1200건)
이름만 다른(표기 변형) [[위키링크]]를 대상 문서의 canonical 제목으로 치환해
끊겼던 1,200개 링크를 연결. 제목/파일명 정규화 일치만 적용하고 별칭 매칭은
과병합 위험으로 제외(애매성 가드). 원본은 _link_reconcile_backup/ 에 백업.
도구: Datacollect/scripts/link_reconcile_apply.mjs

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-08 12:24:15 +09:00

4.8 KiB

id, title, category, status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, verification_status, tags, raw_sources, last_reinforced, github_commit, tech_stack
id title category status canonical_id aliases duplicate_of source_trust_level confidence_score verification_status tags raw_sources last_reinforced github_commit tech_stack
wiki-2026-0508-adaptive-curation Adaptive Curation 10_Wiki/Topics verified self
Dynamic Curation
Personalized Curation
Active Curation
none A 0.88 applied
recsys
curation
personalization
active-learning
feedback
2026-05-10 pending
language framework
Python PyTorch/scikit-learn

Adaptive Curation

매 한 줄

"매 selection 의 close-loop — 매 user feedback 의 corpus 의 reshape.". Adaptive curation 의 static collection 의 X, 매 user signal (click, dwell, rating, embedding drift) 의 use → 매 corpus / ranking / recommendation 의 dynamic adjust. 매 2026 의 LLM-augmented (semantic embedding + bandits + RLHF) 의 standard.

매 핵심

매 Components

  • Catalog / corpus: candidate items.
  • User signal: explicit (rating, like) + implicit (click, dwell, scroll depth).
  • Ranker / selector: scoring function (often embedding sim + bandit + LTR).
  • Update loop: feedback → model update → next selection.

매 Algorithms

  • Collaborative filtering: matrix factorization (SVD, ALS).
  • Content-based: TF-IDF / semantic embedding (sentence-transformers, OpenAI ada-3, Cohere v4).
  • Hybrid: 매 collaborative + content.
  • Bandits: ε-greedy, UCB, Thompson sampling — 매 explore/exploit.
  • Contextual bandit / LinUCB: user feature 의 use.
  • RLHF / DPO: 매 LLM-era curation (Claude, GPT-5).

매 응용

  1. News feed (TikTok, X).
  2. E-commerce product ranking (Amazon, Coupang).
  3. Knowledge base curation (Notion AI, Glean).
  4. RAG corpus filtering — 매 LLM context 의 dynamic selection.

💻 패턴

Pattern 1 — Embedding-based candidate retrieval

import numpy as np
from sentence_transformers import SentenceTransformer

model = SentenceTransformer("all-MiniLM-L12-v2")
docs = ["AI safety", "RAG patterns", "vector DB"]
doc_emb = model.encode(docs, normalize_embeddings=True)

def retrieve(query: str, k=5):
    q = model.encode(query, normalize_embeddings=True)
    scores = doc_emb @ q
    return np.argsort(-scores)[:k]

Pattern 2 — Thompson Sampling bandit

import numpy as np

class ThompsonSampler:
    def __init__(self, n_arms):
        self.alpha = np.ones(n_arms)
        self.beta = np.ones(n_arms)
    def select(self):
        samples = np.random.beta(self.alpha, self.beta)
        return int(np.argmax(samples))
    def update(self, arm, reward):
        if reward > 0: self.alpha[arm] += 1
        else: self.beta[arm] += 1

Pattern 3 — Click-through online update

def on_click(user_id, item_id, dwell_s):
    reward = 1 if dwell_s > 5 else 0
    bandit.update(item_id, reward)
    feature_store.log(user_id, item_id, dwell_s)

Pattern 4 — Contextual ranker (LightGBM LTR)

import lightgbm as lgb
ranker = lgb.LGBMRanker(objective="lambdarank", n_estimators=300)
ranker.fit(X_train, y_train, group=group_train)
scores = ranker.predict(X_val)

Pattern 5 — RAG with adaptive filter

def adaptive_rag(query, user_profile):
    candidates = vector_db.search(query, k=50)
    reranked = cross_encoder.rerank(query, candidates)
    filtered = [c for c in reranked if user_profile.relevance(c) > 0.6]
    return filtered[:5]

매 결정 기준

상황 Approach
Cold start, no user data Content-based + popularity prior
Rich interaction logs Hybrid + LTR
Real-time exploration Thompson / LinUCB
LLM context curation Embedding + cross-encoder rerank
Long-tail discovery UCB exploration boost

기본값: embedding retrieval + cross-encoder rerank + Thompson exploration.

🔗 Graph

🤖 LLM 활용

언제: dynamic corpus, user feedback available, explore/exploit tradeoff matters, RAG context selection. 언제 X: static catalog (use plain ranking), no feedback (cold start dominates), regulated content (use rule-based).

안티패턴

  • Filter bubble: pure exploit 의 user 의 narrow exposure.
  • Feedback contamination: bot click 의 model 의 poison.
  • No exploration decay: ε constant — 매 mature system 의 ε ↓.
  • Position bias ignore: top item 의 click 의 inflate — debiasing essential.

🧪 검증 / 중복

  • Verified (Netflix tech blog, TikTok recsys papers, RecSys 2024 proceedings).
  • 신뢰도 A.

🕓 Changelog

날짜 변경
2026-05-08 Phase 1
2026-05-10 Manual cleanup — FULL content (bandits, LTR, RAG patterns)