# X, 추천 피드 알고리듬 공개

> Clean Markdown view of GeekNews topic #26010. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=26010](https://news.hada.io/topic?id=26010)
- GeekNews Markdown: [https://news.hada.io/topic/26010.md](https://news.hada.io/topic/26010.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2026-01-21T12:33:02+09:00
- Updated: 2026-01-21T12:33:02+09:00
- Original source: [github.com/xai-org](https://github.com/xai-org/x-algorithm)
- Points: 37
- Comments: 2

## Summary

**X의 ‘For You’ 피드는** 이제 **Transformer 기반 추천 시스템 Phoenix**가 중심이 되어 개인화 품질을 끌어올립니다. 팔로우한 계정의 실시간 게시물(Thunder)과 전 세계 후보 콘텐츠(Phoenix Retrieval)를 결합하고, 모든 후보를 다중 행동 확률로 평가해 순위를 매깁니다. 수작업 피처 엔지니어링을 제거하고 모듈형 파이프라인으로 구성해, 추천 로직의 확장성과 일관성을 동시에 확보했습니다.   
  
요즘 X에선 다들 이걸 분석해 어떻게 X 프리미엄 계정(파란딱지)의 수익을 올릴 수 있을지 고민하고 있습니다.

## Topic Body

- X "For You" 피드의 개인화된 콘텐츠 추천 품질을 높이기 위해 개발된 **머신러닝 기반 추천 시스템**  
- **팔로우한 계정(Thunder)** 과 **비팔로우 콘텐츠(Phoenix Retrieval)** 2가지 소스를 결합해 피드 구성  
- 모든 후보 게시물을 **Grok 기반 Transformer 모델인 Phoenix**로 평가해 최종 순위를 산출  
  - 이 모델은 각 게시물의 참여 확률을 예측함   
- 시스템에서 수작업으로 설계된 모든 기능 및 대부분의 휴리스틱 알고리듬은 제거   
- 사용자의 활동 내역(좋아요, 답글, 공유)을 분석하여 관련성있는 콘텐츠를 파학함   
  
### 시스템 아키텍처  
- **Home Mixer**는 전체 파이프라인을 조정하는 오케스트레이션 계층  
  - 사용자 행동 이력과 팔로잉 정보를 수집하는 **Query Hydration** 단계 포함  
  - 후보 수집, 데이터 보강, 필터링, 점수화, 최종 선택까지 일련의 단계 관리  
  - gRPC 기반 **ScoredPostsService**로 사용자별 정렬된 게시물 반환  
- **Thunder**는 인메모리 저장소로, **Kafka 이벤트 스트림**을 통해 실시간 게시물 수집  
  - 원본 게시물, 답글/재게시물, 동영상 게시물에 대한 사용자별 저장소 관리  
  - 요청하는 사용자가 팔로우하는 계정에서 "In-네트워크" 게시물 후보를 제공  
  - 팔로우한 계정의 최신 게시물을 초저지연으로 제공  
  - 외부 데이터베이스 접근 없이 **서브밀리초 수준 조회 성능** 확보  
- **[Phoenix](https://github.com/xai-org/x-algorithm/blob/main/phoenix/README.md)** 는 추천의 핵심 ML 컴포넌트로, **Retrieval**과 **Ranking** 두 단계로 구성  
  - 검색: **Two-Tower 모델**을 사용해 사용자 특징/참여기록 임베딩과 게시물 임베딩 간 유사도 계산하여 Top-K 게시물 조회   
  - 랭킹: **Transformer with Candidate Isolation** 구조로 각 후보가 독립적으로 평가되도록 설계  
    - 사용자 컨텍스트(참여 이력) 및 Candidate 게시물을 입력으로 받고   
    - 각 게시물에 대해 **좋아요, 리플, 리포스트, 클릭 등 다중 행동 확률** 예측  
- **Candidate Pipeline**은 재사용 가능한 추천 파이프라인 프레임워크  
  - `Source`, `Hydrator`, `Filter`, `Scorer`, `Selector` 등 Trait들 정의  
  - 병렬 실행과 오류 처리, 로깅 기능을 내장해 확장성과 안정성 확보  
  
### 작동 방식  
- ## 파이프라인 단계  
  - 1\. **쿼리 데이터 가져오기** : 사용자의 최근 활동 내역 및 메타데이터(예: 팔로우 목록)를 가져옴  
  - 2\. **후보 발굴** : 다음 소스에서 후보 글(candidate post)을 검색  
    - Thunder : 팔로우하는 계정(네트워크 내부)의 최근 게시물  
    - Phoenix Retrieval : 글로벌 코퍼스에서 머신러닝으로 발견된 게시물(네트워크 외부)  
  - 3\. 다음 정보를 활용해 **후보자 추출(Hydration)** :   
    - 핵심 게시물 데이터(텍스트, 미디어 등)  
    - 작성자 정보(사용자 이름, 인증 상태)  
    - 동영상 길이 (동영상 게시물의 경우)  
    - 구독 상태  
  - 4\. **사전 점수 필터** : 다음 조건을 만족하는 게시물을 제거  
    - 중복  
    - 너무 오래된 것  
    - 시청자 본인의 것  
    - 차단/음소거된 계정의 것  
    - 음소거된 키워드 포함한 것  
    - 이전에 봤거나 최근에 서빙된 것  
    - 구독 불가한 콘텐츠  
  - 5\. **채점 방식** : 여러 채점기를 순차적으로 적용  
    - Phoenix Scorer : Phoenix 트랜스포머 모델을 이용한 머신러닝 예측 결과를 가져옴  
    - 가중 점수 계산기 : 예측 결과를 종합하여 최종 관련성 점수를 산출  
    - 저자 다양성 점수 계산기 : 다양성을 위해 중복된 저자 점수의 영향을 줄임  
    - OON 스코어러 : 네트워크 외부 콘텐츠에 대한 점수를 조정  
  - 6\. **선택** : 점수순으로 정렬하고 상위 K명의 후보자를 선택  
  - 7\. **선택 후 절차** : 후보 글에 대한 최종 검증  
- ## 스코어링과 랭킹   
  - Phoenix 모델의 예측값을 **가중합 방식**으로 결합  
  - 긍정적 행동(좋아요, 공유 등)은 가중치를 높이고, 부정적 행동(차단, 신고 등)은 감점 처리  
- ## 두단계 필터링   
  - 점수 계산 전 필터 : 중복, 기준보다 오래된 게시물, 본인 글, 못보는 유료 콘텐츠, 이미 보거나 서빙된 글, 차단 계정, 뮤트된 키워드 등 제거  
  - 선택 후 필터: 삭제된 게시물, 스팸 게시물, 폭력성 콘텐츠, 잔인한 게시물 및 동일한 대화 스레드의 여러 분기 중복을 제거   
  
### 핵심 설계 원칙  
- **수작업 피처 엔지니어링 제거**, Transformer가 사용자 행동 시퀀스에서 직접 학습  
- **후보 독립 평가(Candidate Isolation)** 로 일관된 점수 산출 및 캐싱을 용이하게 함   
- **Hash 기반 임베딩**으로 검색과 순위 매기기 모두 임베딩 조회에 여러 해시 함수를 사용  
- **다중 행동 예측(Multi-Action Prediction)** 으로 단일 "관련성" 점수가 아닌 여러 행동에 대해 예측  
- **모듈형 파이프라인 아키텍처**  
  - 파이프라인 실행 및 모니터링을 비즈니스 로직과 분리  
  - 독립적인 단계의 병렬 실행 및 오류에 대한 적절한 처리  
  - 새로운 소스, 하이드레이션, 필터 및 점수기를 쉽게 추가 가능   
  
### 라이센스    
- [Apache License 2.0](https://github.com/xai-org/x-algorithm/blob/main/LICENSE)

## Comments



### Comment 49623

- Author: pmc7777
- Created: 2026-01-21T16:53:05+09:00
- Points: 2

"Rust 62.9%"

### Comment 49635

- Author: nemorize
- Created: 2026-01-21T20:22:54+09:00
- Points: 1

https://news.hada.io/topic?id=8854  
이거랑은 또 다른걸까요? 주말에 시간 내서 읽어봐야겠네요...
