[G1-Sync] Manual knowledge update
This commit is contained in:
@@ -2,93 +2,146 @@
|
||||
id: wiki-2026-0508-adaptive-curation
|
||||
title: Adaptive Curation
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
status: verified
|
||||
canonical_id: self
|
||||
aliases: [P-Reinforce-AUTO-ADCU-001]
|
||||
aliases: [Dynamic Curation, Personalized Curation, Active Curation]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-reinforced, curation, adaptation, information-filter, adaptive-content, customization]
|
||||
confidence_score: 0.88
|
||||
verification_status: applied
|
||||
tags: [recsys, curation, personalization, active-learning, feedback]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-04-20
|
||||
last_reinforced: 2026-05-10
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
language: Python
|
||||
framework: PyTorch/scikit-learn
|
||||
---
|
||||
|
||||
# [[Adaptive-Curation|Adaptive-Curation]]
|
||||
# Adaptive Curation
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> "당신만을 위한 세상의 가공: 쏟아지는 정보와 상품 중에서 사용자의 시시각각 변하는 맥락, 취향, 피드백을 실시간으로 반영하여 가장 가치 있는 것들만 정제해 보여주는 지능형 큐레이션."
|
||||
## 매 한 줄
|
||||
> **"매 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.
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
적응형 큐레이션(Adaptive-Curation)은 사용자의 행동 데이터와 외부 환경의 변화를 학습하여, 최적의 콘텐츠나 정보를 선별(Curate)해 제공하는 기술 및 전략입니다.
|
||||
## 매 핵심
|
||||
|
||||
1. **동작 핵심**:
|
||||
* **Dynamic Feedback Loop**: 사용자가 클릭하거나 무시하는 신호를 즉각적으로 반영하여 추천 알고리즘 수정.
|
||||
* **Context-Awareness**: 시간, 장소, 현재 감정 상태 등 외부 맥락을 파악하여 큐레이션 기준 변경.
|
||||
* **Multi-objective Balancing**: 사용자의 만족도(Engagement) 뿐만 아니라 다양성(Diversity), 정보의 신뢰성(Trust) 등 상충하는 목표를 동시에 최적화.
|
||||
2. **기존 시스템과의 차이**:
|
||||
* **Static Curation**: 사람이 수동으로 선정한 리스트 (일관성은 높으나 개인화 부족).
|
||||
* **Simple Algorithm**: 과거 취향에만 고착된 추천 (에코 챔버 발생 위험).
|
||||
* **Adaptive Curation**: 변화하는 취향을 선제적으로 감지하고 발견(Discovery)의 기쁨을 제공.
|
||||
### 매 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.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌**: 과거 미디어 정책은 편집자의 권위를 통한 '일방통행적 정보 배포' 정책이었으나, 현대의 플랫폼 정책은 개별 사용자에게 최적화된 '분산형 적응 큐레이션 정책'으로 독점을 정당화함(RL Update).
|
||||
- **정책 변화(RL Update)**: 적응형 큐레이션이 '필터 버블'을 강화하고 확증 편향을 심화시킨다는 비판 정책이 제기됨에 따라, 의도적으로 사용자에게 상반된 의견을 노출시키는 '균형 잡힌 적응 큐레이션 정책' 도입이 공공 알고리즘의 의무 요건이 됨.
|
||||
### 매 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).
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- Personalization, Exploitation vs Exploration, [[Reward Prediction Error|Reward Prediction Error]], Information Ethics, [[Superficiality-Metrics|Superficiality-Metrics]]
|
||||
- **Modern Tech/Tools**: TikTok recommendation engine, Spotify Daily Mix, Amazon's adaptive storefront.
|
||||
---
|
||||
### 매 응용
|
||||
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.
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
## 💻 패턴
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
### Pattern 1 — Embedding-based candidate retrieval
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
```python
|
||||
import numpy as np
|
||||
from sentence_transformers import SentenceTransformer
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
model = SentenceTransformer("all-MiniLM-L12-v2")
|
||||
docs = ["AI safety", "RAG patterns", "vector DB"]
|
||||
doc_emb = model.encode(docs, normalize_embeddings=True)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
def retrieve(query: str, k=5):
|
||||
q = model.encode(query, normalize_embeddings=True)
|
||||
scores = doc_emb @ q
|
||||
return np.argsort(-scores)[:k]
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
### Pattern 2 — Thompson Sampling bandit
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
```python
|
||||
import numpy as np
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
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
|
||||
```
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
### Pattern 3 — Click-through online update
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
```python
|
||||
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)
|
||||
```
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
### Pattern 4 — Contextual ranker (LightGBM LTR)
|
||||
|
||||
```python
|
||||
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
|
||||
|
||||
```python
|
||||
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
|
||||
- 부모: [[Recommender-Systems]] · [[Active-Learning]]
|
||||
- 변형: [[Collaborative-Filtering]] · [[Multi-Armed-Bandit]]
|
||||
- 응용: [[RAG]] · [[News-Feed-Ranking]] · [[Search-Reranking]]
|
||||
- Adjacent: [[Relevance-Feedback]] · [[Ranking-Algorithms]]
|
||||
|
||||
## 🤖 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) |
|
||||
|
||||
Reference in New Issue
Block a user