OneTrans 정리
OneTrans 정리
- 이미지 사이즈 조절이 안돼서 정리만 먼저 올립니다!
1. 문제 정의와 기존 한계
- 1.1 기존 추천 시스템 구조
- sequence modeling과 feature interaction이 분리됨
- user 행동 → sequence encoder
- feature → interaction module
- 두 결과를 나중에 결합 (late fusion)
- sequence modeling과 feature interaction이 분리됨
- 1.2 기존 방식의 문제
- sequence ↔ feature 간 정보 교환 부족
- end-to-end joint optimization 어려움
- scale-up 시 성능 정체 발생
2. OneTrans 핵심 아이디어
- 2.1 Unified Modeling
- 모든 입력을 token으로 변환
- sequence → S-token
- feature → NS-token
- 하나의 Transformer에서 동시에 처리
- 모든 입력을 token으로 변환
- 2.2 핵심 목표
- sequence modeling + feature interaction 통합
- early fusion 구조로 interaction 강화
- LLM 방식 최적화 적용 가능
3. Tokenization 구조
- 3.1 Non-Sequential Token (NS)
- user / item / context feature
- 구성 방식
- Group-wise
- feature 그룹별 MLP → token 생성
- Auto-split
- 전체 feature → 하나의 projection → split
- Group-wise
- 목적
- feature를 token 형태로 변환하여 attention 가능하게 함
- 3.2 Sequential Token (S)
- user 행동 sequence (click, purchase 등)
- 처리 방식
- event embedding → 공통 차원 d로 projection
- 여러 sequence merge
- timestamp-aware (권장)
- intent-order (purchase → cart → click)
- 특징
- sequence를 압축하지 않고 그대로 유지
4. OneTrans Block 구조
- 4.1 기본 구조
- pre-norm causal Transformer
- 입력 순서
- [S-tokens, NS-tokens]
- 4.2 Mixed Parameterization (핵심)
- S-token
- Q/K/V + FFN → shared parameter
- NS-token
- Q/K/V + FFN → token-specific parameter
- 목적
- S: 패턴 학습 (homogeneous)
- NS: feature별 의미 보존 (heterogeneous)
- S-token
- 4.3 Causal Attention 구조
- S-token
- 이전 sequence만 참조
- NS-token
- 전체 S-token 참조
- 이전 NS-token도 참조
- 의미
- NS-token이 sequence 전체를 읽고 요약
- S-token
5. Attention의 역할 (중요 개념)
- 5.1 단순 누적이 아님
- 마지막 token은 모든 정보를 가지지만
- attention으로 선택적으로 집계
- 5.2 역할 분리
- S-token
- context builder (sequence representation)
- NS-token
- query 역할 (feature-based interpretation)
- S-token
- 5.3 핵심 효과
- feature별로 다른 관점에서 sequence 해석
- interaction 다양성 증가
6. Pyramid Stack (Sequence 압축 구조)
- 6.1 동작 방식
- layer마다 query token 감소
- tail token만 query 사용
- key/value는 전체 sequence 유지
- output은 tail만 유지 → 길이 감소
- layer마다 query token 감소
- 6.2 직관
- 뒤쪽 token일수록 더 많은 정보 포함
- 중요한 정보만 남기면서 압축
- 6.3 효과
- Progressive distillation
- 긴 sequence → 핵심 정보로 압축
- 계산 효율 증가
- O(L²) → O(L × L')
- Progressive distillation
7. KV Caching (핵심 최적화)
- 7.1 구조 분리
- Stage I (S-side)
- 유저 sequence → 1번 계산
- K/V cache 저장
- Stage II (NS-side)
- candidate마다 NS-token 생성
- cached S-token과 attention
- Stage I (S-side)
- 7.2 핵심 아이디어
- 같은 유저 → sequence 동일
- item만 다름 → 부분 계산만 반복
- 7.3 Cross-request caching
- user sequence는 append-only
- 이전 cache 재사용
- 새 행동만 계산
- O(L) → O(ΔL)
8. LLM 기반 최적화 적용
- 8.1 FlashAttention
- attention 메모리 및 연산 감소
- throughput 증가
- 8.2 Mixed Precision (FP16/BF16)
- 메모리 절약
- 연산 속도 증가
- 8.3 Activation Recomputation
- forward activation 저장 안 함
- backward 시 재계산
- 메모리 절감