본문 바로가기

잡학다식/IT 컬럼

X(구 트위터) ‘For You’ 추천 피드 알고리즘 공개 – Phoenix와 Thunder로 완성된 머신러닝 추천 시스템

728x90
반응형
728x170

X(구 트위터)가 ‘For You’ 피드의 추천 알고리즘을 GitHub를 통해 공개했습니다.
이번 공개는 단순한 코드 공유를 넘어, 대규모 소셜 플랫폼이 개인화 추천을 어떻게 설계하고 운영하는지를 구체적으로 보여준 사례입니다.

이 글에서는 X의 추천 시스템이 어떤 문제를 해결하기 위해 만들어졌는지, 전체 아키텍처 구조, 핵심 머신러닝 모델(Phoenix), 그리고 실제 피드가 만들어지는 과정을 단계별로 정리해봅니다.
추천 시스템이나 대규모 데이터 파이프라인에 관심 있는 분이라면 흐름만 따라가도 많은 인사이트를 얻을 수 있습니다.

반응형

X ‘For You’ 피드 추천 시스템 개요

X의 ‘For You’ 피드는 개인화된 콘텐츠 추천 품질을 높이기 위해 개발된 머신러닝 기반 추천 시스템입니다.
이 시스템의 가장 큰 특징은 두 가지 서로 다른 콘텐츠 소스를 결합한다는 점입니다.

두 가지 콘텐츠 소스

  • Thunder
    • 사용자가 팔로우한 계정에서 생성된 콘텐츠
    • 네트워크 내부(In-Network) 게시물 제공
  • Phoenix Retrieval
    • 팔로우하지 않은 계정의 콘텐츠
    • 머신러닝 기반으로 글로벌 코퍼스에서 발견된 게시물

이 두 소스를 결합해, 익숙한 콘텐츠와 새로운 콘텐츠를 함께 제공하는 구조입니다.


전체 시스템 아키텍처 한눈에 보기

X 추천 시스템의 전체 파이프라인은 Home Mixer를 중심으로 동작합니다.

Home Mixer의 역할

Home Mixer는 추천 파이프라인의 오케스트레이션 계층으로, 다음 역할을 수행합니다.

  • 사용자 행동 이력과 팔로잉 정보를 수집 (Query Hydration)
  • 후보 게시물 수집부터 최종 선택까지 전체 단계 관리
  • gRPC 기반 ScoredPostsService를 통해 사용자별 정렬된 게시물 반환

즉, Home Mixer는 “어떤 게시물을 어떻게 평가하고 보여줄지”를 총괄하는 컨트롤 타워 역할을 합니다.


Thunder – 초저지연 팔로잉 콘텐츠 제공

Thunder는 팔로우한 계정의 게시물을 담당하는 인메모리 저장소입니다.

Thunder의 주요 특징

  • Kafka 이벤트 스트림을 통해 실시간 게시물 수집
  • 원본 게시물, 답글, 리포스트, 동영상 게시물 관리
  • 외부 데이터베이스 접근 없이 서브밀리초(sub-millisecond) 조회 성능
  • 사용자가 팔로우한 계정의 최신 게시물을 초저지연으로 제공

즉, “지금 막 올라온 팔로우 계정의 글”을 빠르게 제공하는 데 최적화된 구조입니다.


Phoenix – 추천의 핵심 머신러닝 엔진

Phoenix는 X 추천 시스템의 핵심 ML 컴포넌트로, Retrieval과 Ranking 두 단계로 구성됩니다.


Phoenix Retrieval – 후보 게시물 탐색

Two-Tower 모델 기반 검색

Phoenix Retrieval은 Two-Tower 모델을 사용합니다.

  • 사용자 특징 및 참여 기록 → 사용자 임베딩
  • 게시물 콘텐츠 → 게시물 임베딩
  • 두 임베딩 간 유사도를 계산해 Top-K 게시물 검색

이 단계에서는 “사용자와 비슷한 성향의 콘텐츠”를 빠르게 찾아내는 것이 목적입니다.


Phoenix Ranking – Transformer 기반 정밀 평가

검색된 후보 게시물은 Transformer 기반 Phoenix Ranking 모델에서 다시 평가됩니다.

Candidate Isolation 구조

  • 각 후보 게시물을 독립적으로 평가
  • 점수 일관성 확보
  • 캐싱이 용이한 구조

다중 행동 예측 (Multi-Action Prediction)

Phoenix 모델은 단일 점수가 아니라 다음 행동 확률을 각각 예측합니다.

  • 좋아요
  • 리플
  • 리포스트
  • 클릭

이를 통해 “얼마나 관련 있는가”를 단일 기준이 아닌, 다양한 사용자 행동 관점에서 판단합니다.


Candidate Pipeline – 재사용 가능한 추천 프레임워크

추천 로직은 Candidate Pipeline이라는 모듈형 프레임워크로 구성됩니다.

주요 구성 요소 (Trait)

  • Source
  • Hydrator
  • Filter
  • Scorer
  • Selector

이 구조는 다음과 같은 장점을 제공합니다.

  • 단계별 병렬 실행
  • 오류 처리 및 로깅 내장
  • 새로운 소스나 점수기를 쉽게 추가 가능
  • 확장성과 안정성 확보

실제 ‘For You’ 피드 생성 과정 (단계별 정리)

1단계: 쿼리 데이터 가져오기

  • 사용자의 최근 활동 내역
  • 팔로우 목록 등 메타데이터 수집

2단계: 후보 게시물 발굴

  • Thunder: 팔로우 계정의 최신 게시물
  • Phoenix Retrieval: 네트워크 외부 게시물

3단계: Hydration (데이터 보강)

  • 게시물 텍스트 및 미디어
  • 작성자 정보 및 인증 상태
  • 동영상 길이
  • 구독 상태

4단계: 사전 필터링

다음 게시물은 이 단계에서 제거됩니다.

  • 중복 콘텐츠
  • 너무 오래된 게시물
  • 본인 게시물
  • 차단/뮤트 계정 및 키워드
  • 이미 본 게시물
  • 접근 불가한 유료 콘텐츠

5단계: 점수 계산 (Scoring)

  • Phoenix Scorer: ML 예측 결과
  • 가중 점수 계산기: 최종 관련성 점수 산출
  • 저자 다양성 점수 조정
  • OON 스코어러: 네트워크 외부 콘텐츠 보정

6단계: 선택

  • 점수 기준 정렬
  • 상위 K개 게시물 선택

7단계: 선택 후 필터링

  • 삭제된 게시물
  • 스팸, 폭력성, 잔인한 콘텐츠 제거
  • 동일 대화 스레드 중복 제거

스코어링과 랭킹의 핵심 포인트

  • 긍정 행동(좋아요, 공유 등)은 가중치 증가
  • 부정 행동(차단, 신고 등)은 감점
  • 점수 계산 전 / 선택 후 이중 필터링 구조

이로 인해 추천 품질과 안전성 모두를 동시에 관리합니다.


핵심 설계 원칙 정리

X 추천 시스템은 다음 원칙을 중심으로 설계되었습니다.

  • 수작업 피처 엔지니어링 제거
  • Transformer가 사용자 행동 시퀀스에서 직접 학습
  • 후보 독립 평가(Candidate Isolation)
  • Hash 기반 임베딩 활용
  • 다중 행동 예측 기반 추천
  • 모듈형 파이프라인 아키텍처

X의 ‘For You’ 추천 알고리즘 공개는 대규모 소셜 추천 시스템이 어떻게 단순한 규칙 기반을 넘어, 완전히 머신러닝 중심으로 진화했는지를 잘 보여줍니다.

특히,

  • 팔로우 콘텐츠와 비팔로우 콘텐츠의 균형
  • Transformer 기반 다중 행동 예측
  • 모듈형 파이프라인 설계

이 세 가지는 향후 추천 시스템을 설계하는 데 중요한 참고 사례가 될 수 있습니다.

추천 시스템을 고민하고 있다면, 이번 X의 공개는 “정답”이라기보다 현실적인 구현 방향과 설계 철학을 보여주는 좋은 기준점이 될 것입니다.

300x250

https://github.com/xai-org/x-algorithm

 

GitHub - xai-org/x-algorithm: Algorithm powering the For You feed on X

Algorithm powering the For You feed on X. Contribute to xai-org/x-algorithm development by creating an account on GitHub.

github.com

728x90
반응형
그리드형