[kdd cup tencent] 자료 조사 - OneTrans

OneTrans 정리
- 이미지랑 같이 넣고싶은데 사이즈 조절이 안되어 일단 올립니다\~

1. 문제 정의와 기존 한계

  • 1.1 기존 추천 시스템 구조
    • sequence modeling과 feature interaction이 분리됨
      • user 행동 → sequence encoder
      • feature → interaction module
    • 두 결과를 나중에 결합 (late fusion)
  • 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에서 동시에 처리
  • 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
    • 목적
      • 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)
  • 4.3 Causal Attention 구조
    • S-token
      • 이전 sequence만 참조
    • NS-token
      • 전체 S-token 참조
      • 이전 NS-token도 참조
    • 의미
      • NS-token이 sequence 전체를 읽고 요약

5. Attention의 역할 (중요 개념)

  • 5.1 단순 누적이 아님
    • 마지막 token은 모든 정보를 가지지만
    • attention으로 선택적으로 집계
  • 5.2 역할 분리
    • S-token
      • context builder (sequence representation)
    • NS-token
      • query 역할 (feature-based interpretation)
  • 5.3 핵심 효과
    • feature별로 다른 관점에서 sequence 해석
    • interaction 다양성 증가

6. Pyramid Stack (Sequence 압축 구조)

  • 6.1 동작 방식
    • layer마다 query token 감소
      • tail token만 query 사용
    • key/value는 전체 sequence 유지
    • output은 tail만 유지 → 길이 감소
  • 6.2 직관
    • 뒤쪽 token일수록 더 많은 정보 포함
    • 중요한 정보만 남기면서 압축
  • 6.3 효과
    • Progressive distillation
      • 긴 sequence → 핵심 정보로 압축
    • 계산 효율 증가
      • O(L²) → O(L × L')

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
  • 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 시 재계산
    • 메모리 절감