0x00

리서치 / 일일 리포트

  • 읽은 자료 3건
  • 정본 반영 2개 파일
  • 레이더 1건
한 줄 요약Meta가 광고 랭킹과 retrieval의 아이템 표현을 의미 토큰 열로 바꿨고, GEM과 함께 전환을 0.35% 올렸다고 공개했다.

오늘 함께 본 다른 변화는 다음과 같다.

  • X의 For You 영상 캐러셀이 메인 피드에 이미 나온 영상과 같은 미디어를 고르지 않게 됐다. 캐러셀은 여전히 기본 off다.
  • X는 피드가 뷰어의 최근 이력에 없던 토픽을 얼마나 보여 주는지 재는 메트릭을 기본 off로 추가했다.
  • Alibaba는 생성형 retrieval의 SID 배정을 다시 하면 검색 품질이 크게 떨어진다고 정량화하고, 기존 SID를 고정하는 갱신으로 A/B 이득을 보고했다.

1Meta 광고가 아이템을 ID 대신 의미 토큰으로 나타낸다 — Meta

배경 추천 모델은 보통 광고나 상품마다 고유 ID를 두고, 그 ID에 붙은 임베딩을 참여 기록으로 학습한다. 이 방식에서는 새로 나온 광고에 기록이 없어서 모델이 아무것도 모르고 시작한다(콜드스타트). semantic ID(아이템 임베딩을 양자화해 만든 짧은 토큰 열)는 비슷한 아이템이 토큰을 공유하게 해서 이 문제를 푼다. 이번 글은 Meta 광고 시스템이 이 토큰화를 랭킹과 retrieval에 프로덕션으로 적용했다고 밝힌다.

새로 알게 된 것A. Meta 광고는 아이템을 공유되는 의미 토큰 열로 나타내고, 그 결과 전환이 올랐다

  • GenRecs Tokenization은 아이템마다 전용 ID를 두는 대신, 안정적인 의미 어휘에서 고른 토큰 집합으로 아이템을 나타낸다 확인 — 블로그.
    • 적용 대상은 광고, 상품, 페이지, 픽셀(광고주 사이트의 전환 추적 엔티티)이고, retrieval과 ranking 양쪽에 쓴다 확인.
  • GEM(Meta의 중앙 광고 생성 모델)과 Adaptive Ranking Model과 함께 쓴 결과, 광고주 전환이 전 지면에서 +0.35% 올랐다 확인 — 같은 글.
    • 각주는 "Meta Internal Data, measured in February 2026"이다. 측정은 8개월 전이다 확인.
    • 어느 지면이 이 수치에 들어가는지는 밝히지 않았다.

"Paired with Meta's GEM and Adaptive Ranking Model, GenRecs Tokenization delivered a +0.35% lift in conversions." — GenRecs Tokenization, 2026-10-19

새로 알게 된 것B. 토큰은 콘텐츠 임베딩과 참여 표현을 합쳐 양자화해 만든다

  • 사전학습 멀티모달 모델이 아이템의 텍스트와 이미지를 임베딩으로 만들고, 토크나이저가 여기에 참여 기반 표현을 더해 짧은 이산 토큰 열로 양자화한다 확인 — 같은 글.
    • 파이프라인은 세 단계다: 임베딩 공간으로 인코딩하고, 독립된 부분공간으로 분해하고, 부분공간마다 codebook(양자화에 쓰는 대표 벡터 목록) 항목으로 바꾼다 확인.
    • 많은 광고 표현에는 학습된 인코더, residual 분해, 학습된 벡터 codebook을 묶은 prefix n-gram을 쓴다고 적었다 확인.
  • 토크나이저 품질은 다운스트림 학습 없이 내재 지표로 미리 가늠할 수 있었다고 쓴다 확인 — 같은 글.
    • 내재 지표는 분포 균형(아이템이 몇 개 ID에 몰리지 않는 정도)과 codebook 활용률(아이템이 하나 이상 배정된 코드의 비율)이다.
    • 시험한 토크나이저 8개 판에서 이 지표와 광고 CTR 예측 정확도의 상관이 강했다고 적었다 확인. 상관 수치는 공개하지 않았다.
  • 같은 어휘 위에 공유 LLM 인코더로 만든 two-tower(유저와 아이템을 따로 임베딩해 내적으로 찾는 retrieval 구조) 작업도 언급했다 확인. 기존 two-tower 성능을 학습 데이터 일부로 냈다고만 썼다.

"As recommendation systems evolve from discriminative scoring to include generative reasoning, the data foundation benefits from evolving from ephemeral IDs to stable semantic representations." — GenRecs Tokenization, 2026-10-19

정본 반영 topics/llm-in-recsys.md ## 누가 이걸 쓰는가의 Meta ads 불릿 아래에 GenRecs Tokenization의 현재 상태(semantic ID 입력, 전환 +0.35%, 2026-02 측정) 하위 불릿을 더했고, ## 출처의 Meta 목록에 이 글을 추가했다. radar.md 생성형 retrieval 스레드에 "레이더가 아니라 정본 반영" 한 줄을 남겼다.

의미 Meta 광고에서 LLM 계열 표현이 랭커의 보조 피처를 넘어 아이템 ID 자리까지 들어갔다 추정. 근거는 글이 "ephemeral IDs"를 의미 표현으로 바꾼다고 쓴다는 점이다. 다만 수치는 2026-02 측정이고 지면이 특정되지 않아, Facebook·Instagram 피드 정본에는 반영하지 않는다.

↑ 목차

2영상 캐러셀이 메인 피드와 같은 영상을 빼게 됐다 — X

자료 xai-org/x-algorithm@74d49a4 — xAI 공개 저장소, 2026-10-20 04:32 UTC 커밋, 코드. 이 노트들이 붙인 번호로는 4세대+45다. 4세대+N은 이 노트들이 4세대 공개(2026-08-13) 뒤의 X 커밋에 차례로 붙인 번호다. 크론 미러(프로덕션 설정 기본값을 매일 동기화해 공개하는 파일)의 sync 시각은 2026-10-19T16:00:41Z다.

배경 X는 2026-10-08 커밋(4세대+38)부터 For You 6번째 자리에 세로 영상 3~5개를 묶는 캐러셀을 기본 off로 만들어 왔다. 캐러셀 후보는 메인 피드로 나가는 상위 35개 다음 순위에서 고르지만, 같은 영상이 다른 포스트에 실려 메인 피드와 캐러셀에 함께 나올 수 있었다. 2026-10-17 커밋(4세대+44)에서 켠 중복 제거 세 가지는 캐러셀 안에서만 작성자, SID(semantic ID), 임베딩을 비교했다. 이번 커밋은 미디어 단위 중복 제거를 더하고, 토픽 새로움 메트릭과 섀도 실험 경로를 추가한다.

새로 알게 된 것A. 캐러셀은 메인 피드와 같은 미디어를 건너뛰고, 이 규칙에는 스위치가 없다

  • 캐러셀은 메인 피드 상위 35개에 든 영상과 미디어 ID나 MD5 해시가 같은 영상을 건너뛴다 확인 — home-mixer/util/video_carousel.rs:52-108.

    • 캐러셀 안에서 앞서 고른 영상과 미디어가 같아도 건너뛴다 확인.
    • 메인 피드 범위는 필터가 &kept[..RESULT_SIZE]로 넘기고, 같은 파일의 후보 풀은 그 뒤(skip(RESULT_SIZE))다 확인 — filters/video_carousel_filter.rs:26-29. RESULT_SIZE는 35다.
    • 미디어 ID와 MD5 해시는 TES(Tweet Entity Service, X 내부의 트윗 메타데이터 조회 서비스)에서 읽는다. 기존 가로세로비 하이드레이터가 이름을 VideoMediaHydrator로 바꾸고 두 값을 함께 채운다 확인.
  • 이 규칙은 파라미터가 없다 확인. 캐러셀 자체(EnableVideoCarousel)는 이 커밋에서도 기본 off다 확인 — params/param.rs:1102.

    • 테스트가 기대 동작을 고정한다. 메인 피드에 미디어 100과 해시 "a"가 있으면 후보 1(미디어 100)과 후보 2(해시 "a")가 빠진다.
    let main_feed = vec![
        with_media(video(90, 1.7778, 0.9), Some(100), &[]),
        with_media(video(91, 0.5625, 0.8), None, &["a"]),
    ];
    // candidates 1(media 100), 2(md5 "a"), 3, 4, 5
    // => select_videos(...) == vec![3, 4, 5]
    

새로 알게 된 것B. 피드가 이력에 없던 토픽을 얼마나 보여 주는지 재는 메트릭이 기본 off로 생겼다

  • 뷰어가 최근 참여한 포스트의 SID 앞 1단계와 2단계를 토픽으로 세는 계산이 생겼다 확인 — home-mixer/util/viewer_history.rs.

    • 참여는 기존 작성자 이력 계산과 같은 positive 행동 18종으로 판정한다 확인.
    • 계산 스위치 HistoryTopicsEnabled는 기본 false이고, 창은 HistoryTopicsWindowDays=28이다 확인 — params/param.rs:508-529.
  • 새 side effect(응답을 바꾸지 않고 로그나 메트릭만 남기는 후처리 단계)가 응답 포스트의 토픽을 이 이력과 비교해 "새 토픽 비율"을 메트릭으로 남긴다 확인 — side_effects/serendipity_stats_side_effect.rs.

    • 메트릭 이름 접두사는 Serendipity이고, NewTopicShareL1, NewTopicShareL2, NewTopicShareL1Top10을 낸다.
    • 실험 버킷이 없으면 요청의 5%만 표본으로 잰다. 메트릭 쪽 이력 창은 28일로 고정이다 확인 — scoring_sequence_query_hydrator.rs:22, 57-68.
    const METRIC_PREFIX: &str = "Serendipity";
    const DEFAULT_SAMPLING_RATE: f64 = 0.05;
    const TOP_POSITIONS: usize = 10;
    
  • 같은 이력 토픽을 VMRanker(DPP 슬레이트 재정렬 서비스) 요청에 실어 보내는 스위치 VMRankerSendHistoryTopics도 기본 false로 생겼다 확인 — 같은 param 파일. VMRanker가 이 값을 쓰는 코드는 공개 저장소에 없다 확인.

새로 알게 된 것C. 섀도 실험 클러스터가 다른 이력 집계로 채점할 수 있게 됐다

섀도 트래픽은 실제 요청 일부를 실험용 Phoenix(X의 트랜스포머 랭킹 모델) 클러스터에도 보내 채점하고, 그 점수는 로그로만 남기는 경로다.

  • 섀도 클러스터마다 유저 행동 시퀀스의 집계 방식을 따로 지정할 수 있게 됐다 확인 — home-mixer/util/shadow.rs:35-49.
    • 기본값은 Experiment16Fou:DENSE_WITH_LONG_DWELL_HOME_EXCURSION 하나다 확인 — params/param.rs:103-108.
    • 이 집계의 정의는 공개되지 않았다. 이름으로 보아 긴 체류 이벤트와 홈 밖 이동을 포함한 이력으로 본다 추정.
  • 섀도 점수를 예측 요청 ID 키로 Redis에 저장하고 다시 읽는 경로가 생겼다 확인 — util/shadow_scores.rs.
    • 섀도 표본 추출의 기준 ID도 요청 ID에서 예측 ID(prediction_id)로 바뀌었다 확인.

새로 알게 된 것그 밖의 변경

  • Phoenix retrieval 인덱스의 SID window에 video_6h와 video_6hto2day가 더해졌다 확인 — phoenix-rankall/src/config/mod.rs:212-213.
    • 그동안 video window 가운데 가장 짧은 것은 48시간이었다. 시간 단위 window 이름을 만드는 함수와 테스트가 함께 생겼다.
  • Phoenix 랭킹과 retrieval 클라이언트가 xDS(서비스 디스커버리) 클라이언트 하나로 정리됐고, retrieval fallback 스위치가 지워졌다 확인 — phoenix_candidate_pipeline.rs.
    • retrieval의 기본 로드밸런싱 정책도 tonic에서 penalized_peak_ewma로 바뀌었다 확인 — home-mixer/main.rs.
  • 랭커 proto의 TweetInfo에 not-interested 수와 알림 발송·열람·클릭·닫기·덜 보기 수 필드 6개가 생겼다 확인 — recsys.proto. 이 diff에는 값을 채우는 코드가 없다 확인.
  • visibility-filtering(포스트마다 노출 가능 여부를 판정하는 서비스)에 인용 포스트 작성자를 따로 판정하는 pass가 생겼고, 모드는 환경 변수로 정하며 기본은 off다 확인 — visibility-filtering/quote.rs.
  • SID 디코더가 중복 SID 묶음을 한 번만 복원하도록 바뀌었고, FA4 attention 커널이 CUTLASS DSL 4.7로 올라갔다 확인 — phoenix/xrex/models/recsys_sid.py. 정책 변화는 없다.
  • abuse-enforcement-service에 backfill 경로가 생겼고, 체크포인트 KMS 재시도 예산이 300초로 늘었다 확인 — 74d49a4. 피드 랭킹과는 관계가 없다.

정본 반영 services/x.md ## 피드 지면 도입의 캐러셀 문장에 4세대+45의 미디어 중복 제거를 넣었고, 캐러셀 불릿에 미디어 중복 제거 불릿을 더하고 EnableVideoCarousel 기본 off의 기준 커밋을 74d49a4로 올렸다. ### 다양성에 토픽 새로움 측정 단락, ### Phoenix retrieval 인덱스에 6시간 영상 window 불릿, ## 열린 질문에 질문 두 개, ## 용어 표에 섀도 트래픽 행을 더했다. ## 한 줄 요약의 기준 커밋, ## 출처의 확인일과 커밋 표, 변경 이력 요약표에 4세대+45 행을 반영했다.

의미 캐러셀은 켜지면 메인 피드와 같은 영상을 반복하지 않게 됐지만, 기본 off라 지금 동작은 그대로다 확인. 토픽 새로움 메트릭은 X가 이력 기반 탐색을 다양성 목표로 시험하려는 준비로 본다 추정. 근거는 측정 경로와 VMRanker 전달 스위치가 같은 커밋에 함께 기본 off로 들어왔다는 점이다.

↑ 목차

3SID를 다시 배정하면 생성형 retrieval이 무너진다 — Alibaba

배경 생성형 retrieval은 아이템마다 SID를 배정하고, 모델이 SID 토큰을 차례로 생성해 아이템을 찾는다. 새 아이템이 계속 들어오면 SID 배정표를 주기적으로 갱신해야 하는데, 배정이 바뀌면 모델이 이미 배운 디코딩 경로가 어긋난다. 이번 논문은 이 갱신 비용을 67일치 Taobao 검색 로그로 재고, 기존 아이템의 SID를 고정하는 갱신 방식을 제안한다.

새로 알게 된 것A. 기존 SID를 고정하고 새 아이템만 끼워 넣는 갱신이 A/B에서 이겼다

  • 배정 갱신은 beam 1에서 HitRate를 41.78–62.05% 떨어뜨렸고, beam 1000에서는 8.33–10.85%만 떨어뜨렸다 확인 — 초록.
    • 큰 beam이 다수의 후보를 만들어 악화를 가린다는 해석을 논문이 직접 쓴다.
  • 기존 아이템 SID 고정, 신규 아이템 삽입, 주기적 warm-start를 묶은 갱신이 3주 A/B에서 GMV +1.16%, UCTCVR +0.29%를 냈다 확인 — HTML 판.
    • 저자 7인 전원의 소속이 Taobao & Tmall Group of Alibaba다.

"Experiments show approximately 9% improvement on old items and 109% on new items; a three-week online A/B test yields UCTCVR +0.29% and GMV +1.16%." — arXiv 2610.26105 (HTML), 2026-10-19

정본 반영 추적 서비스가 아니어서 정본에는 반영하지 않았다. radar.md ### 생성형 retrieval / semantic ID 스레드에 추가 근거 한 줄을 남겼다.

의미 SID 계열이 "배포할 수 있는가"에서 "배포한 뒤 어떻게 갱신하는가"로 넘어간 첫 운영 진술이다 추정. 근거는 지금까지 이 스레드의 진술이 모두 신규 배포의 A/B였다는 점이다. X도 Phoenix retrieval 인덱스의 SID를 여러 시간 window로 운영하므로, 배정 갱신 정책이 공개 코드에 있는지 볼 만하다 추정.

↑ 목차

레이더

↑ 목차

다음에 볼 것

↑ 목차

조회 현황

  • X: xai-org/x-algorithm에 새 커밋 1건(74d49a4)이 있었다. 릴리스는 없다.
  • Meta: engineering.fb.com에 2026-10-19자 글 3건이 있었다. 추천 글은 GenRecs Tokenization 1건이고, AI 에이전트 라우터 글과 Prometheus 슈퍼클러스터 글은 인프라라 건너뛰었다. ai.meta.com/blog와 transparency.meta.com은 이번에 확인하지 않았다.
  • Netflix: RSS의 최신 글은 2026-10-16자로, 2026-10-19 배치에서 이미 확인했다. research.netflix.com/publications는 확인하지 않았다.
  • arXiv cs.IR: 30건을 파싱했다. 최신 제출은 2026-10-19이고, 통과한 것은 Alibaba SID 논문 1건이다. 플랫폼 소속이 드러나지 않은 FLMNet, OneChord, MOSS(다양성 추천)는 공개 벤치마크 결과뿐이라 탈락시켰다.
  • WebSearch 교차 확인은 이번에 하지 않았다.

↑ 목차