0x00 EN

리서치 / 일일 리포트

  • 읽은 자료 2건
  • 정본 반영 1개 파일
  • 레이더 1건
한 줄 요약X가 뷰어의 최근 검색어 임베딩을 For You 랭커 요청에 실을 수 있게 했다. 스위치가 기본 off라 지금 동작은 그대로다.

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

  • Kuaishou가 LLM 추천 모델의 추론 문장을 latent token으로 압축해 광고 지면 A/B에서 매출을 올렸다고 보고했다.

1최근 검색어가 랭커 입력 후보가 됐다 — X

자료 xai-org/x-algorithm@07d159b — xAI 공개 저장소, 2026-10-23 04:10 UTC 커밋, 코드. 이 노트들이 붙인 번호로는 4세대+48이다. 4세대+N은 이 노트들이 4세대 공개(2026-08-13) 뒤의 X 커밋에 차례로 붙인 번호다. 크론 미러(프로덕션 feature-switch 기본값을 매일 동기화해 공개하는 파일)의 sync 시각은 2026-10-22T16:00:34Z다. 바뀐 파일은 209개이고, 대부분은 visibility-filtering과 abuse-enforcement-service의 정리다.

배경 X For You의 랭킹은 home-mixer(요청을 받아 후보를 모으고 순서를 정하는 서빙 계층)가 Phoenix(Grok 기반 랭킹 트랜스포머)에 후보와 뷰어 정보를 보내 행동별 확률을 받는 구조다. 뷰어 정보에는 지금까지 참여 이력, 팔로우 관계, 인구통계 같은 피드 안의 신호가 들어갔다. 검색은 피드 밖에서 유저가 직접 관심을 말하는 행동이라, 피드 랭킹에 쓰면 이력에 아직 드러나지 않은 관심을 잡을 수 있다. 이번 커밋은 뷰어의 최근 검색어를 임베딩 형태로 Phoenix 요청의 유저 컨텍스트에 싣는 경로를 기본 off로 추가한다.

새로 알게 된 것A. 최근 검색어 최대 16개가 글자 없이 임베딩으로만 랭커에 간다

  • 새 query hydrator(요청 단위로 뷰어 정보를 채우는 단계)가 검색 서비스의 저장소에서 뷰어의 최근 검색어 목록을 받는다 확인 — recent_search_queries_store_client.rs:8-11.

    • 저장소는 Manhattan(X의 key-value 저장소)의 search_mixer_nash 앱, search_recent_queries_nash 데이터셋이다.
    • 클라이언트 타임아웃은 100ms이고 재시도는 1회다.
    • 클라이언트를 만들지 못하면 경고만 남기고 빈 결과를 돌려주는 mock으로 대신한다.
  • 받은 목록은 요청 시각 이전 것만 남기고, 최신순으로 최대 16개를 고르고, 검색어 글자는 지운다 확인 — recent_search_queries_query_hydrator.rs:10-12, 45-58.

    • 임베딩 길이가 2048바이트(bf16 1024차원)가 아닌 항목은 버린다.
    • hydrator 전체 대기 한도는 300ms다.
    const MH_GET_TIMEOUT: Duration = Duration::from_millis(300);
    const MAX_QUERIES: usize = 16;
    const EMBEDDING_BYTES: usize = 1024 * 2;
    
  • 테스트 이름은 이 선택 규칙이 "학습과 맞춘다"고 적는다. 학습 데이터도 같은 규칙으로 검색어를 고른다는 뜻으로 본다 추정 — 같은 파일 73-89행.

    • 테스트 함수 이름은 select_matches_training_and_drops_text다.
  • 고른 목록은 Phoenix 요청의 유저 컨텍스트에 새 필드로 들어간다 확인 — recsys.proto.

    • 필드는 UserContext.recent_search_queries = 21이고, util/phoenix_request.rs의 build_user_context가 채운다.
    • proto RecentSearchQueries는 2026-10-17 커밋(4세대+44)에서 쓰는 코드 없이 먼저 생겼다.
  • 스위치는 기본 off다 확인 — params/param.rs:727-732.

    • 스위치 이름은 EnableRecentSearchQueriesHydration이고, 로그인하지 않은 뷰어(user_id == 0)에서는 켜져도 돌지 않는다.
    • hydrator는 For You의 PhoenixCandidatePipeline과 점수만 계산하는 PhoenixScoresPipeline 양쪽에 들어갔다.
  • 이 커밋의 Phoenix 학습 코드에는 유저 컨텍스트의 검색어를 읽는 변경이 없다. 모델이 이미 이 피처로 학습됐는지는 알 수 없다 추정.

    • 학습 배치에는 원래 search_query_embeddings 필드가 있지만, 이것은 검색 지면 요청의 질의 임베딩으로 쓰여 온 필드다. 2026-09-01 커밋(4세대+13) 때 확인한 내용이다.

새로 알게 된 것그 밖의 변경

  • 섀도 트래픽(실제 응답에 쓰지 않고 실험 클러스터로 복제해 보내는 요청)에서 Experiment18Fou 클러스터로 보내는 비율이 0.5에서 0.3으로 줄었다 확인 — params/param.rs:101.
  • 광고가 파이프라인 어디서 빠졌는지 Kafka로 남기는 funnel trace side effect가 기본 off로 생겼다 확인 — side_effects/funnel_trace_side_effect.rs.
    • 스위치는 EnableAdsFunnelTrace(param.rs 867-872행)다. 블렌더의 비선택 목록도 자리표시 대신 실제로 빠진 광고를 담게 됐다.
  • Phoenix proto에 필드 몇 개가 생겼지만 home-mixer에서 채우는 코드는 없다 확인 — recsys.proto.
    • 페이지 디코딩 파라미터의 diversityWeight, 이력 URL 임베딩 요청 플래그, 행동 CLIENT_TWEET_VIDEO_SESSION = 111, retrieval 데이터셋 IMMERSIVE_32FAV_VIDEO_14_TO_30_DAY, 광고의 url_domain이다.
  • Phoenix 학습 코드에는 광고 보조 가치 헤드(content view, add to cart)와 이력 URL 임베딩 로더가 추가됐다 확인 — models/value_heads.py.
    • 보조 헤드는 aux_value_head_weights=""가 기본이라 꺼져 있다. 이 부분은 줄 단위로 읽지 않았다.
  • visibility-filtering 변경은 hydration 계층과 규칙 표현의 재구성, 알림 규칙 정리가 대부분이다 추정. 홈 타임라인에서 걸러지는 대상이 바뀐 곳은 찾지 못했지만 모든 hunk를 읽지는 않았다.

정본 반영 services/x.md ## 한 줄 요약의 기준 커밋을 07d159b로 올렸다. ### 랭커 입력 피처와 SID 재구성 도입에 최근 검색어 경로 문장을 더하고, 같은 절에 근거 불릿 묶음을 추가했다. ## 출처의 git 로그 확인 문장과 커밋 표, 변경 이력 요약표에 07d159b 행을 추가했다.

의미 X가 피드 밖 행동인 검색을 피드 랭커의 유저 입력으로 쓰려는 준비를 마쳤다. 근거는 저장소 클라이언트, hydrator, proto 필드, 요청 조립이 한 커밋에 다 들어왔고 남은 것은 스위치뿐이라는 점이다. 학습 쪽이 이미 이 피처를 쓰는지는 공개 코드로 확인되지 않으므로, 켜지는 시점을 크론 미러에서 지켜본다.

↑ 목차

2LLM 추천 모델의 추론을 latent token으로 압축했다 — Kuaishou

배경 Kuaishou는 OneRec(생성형 추천 모델) 계열에 LLM을 백본으로 두고, 답하기 전에 사용자 관심을 문장으로 추론하게 하는 방식(Think-then-Answer)을 써 왔다. 추론 문장을 매번 생성하면 서빙 비용이 크게 늘어난다. 이 논문은 추론 문장을 학습 가능한 latent token 몇 개로 압축해, 문장을 생성하지 않고도 추론의 이득을 얻으려 한다.

새로 알게 된 것A. 추론 문장 없이도 명시적 추론보다 낫고 처리량이 17배 이상이라고 보고한다

  • 명시적 추론을 쓰는 Think 변형 대비 SID@64가 17.44%, No-Think 변형 대비 9.33% 높다고 초록이 쓴다 확인 — arXiv 2610.30675.
    • SID@64는 생성한 상위 64개 Semantic ID(아이템을 의미 토큰 열로 나타낸 식별자) 안에 정답이 드는 비율로 읽힌다.
  • 온라인 추론 처리량이 17배 이상 높다고 쓴다 확인 — 같은 초록.
  • 지역 서비스 광고 지면의 온라인 A/B에서 OneRec·OneReason 기준선 대비 추정 매출 +9.6%를 얻었다고 쓴다 확인 — 같은 초록.

정본 반영 추적 서비스와 직결되지 않아 정본은 고치지 않았다. radar.md의 ### LLM-native 랭킹의 확산 — GenRec 이후 누가 따라오나 스레드에 추가 근거 한 줄을 더했다.

의미 서빙 경로의 LLM 추천이 "추론을 얼마나 싸게 하나"로 옮겨 가는 두 번째 진술이다. 근거는 2026-10-19의 Spotify 진술이 서빙 비용을 다뤘고, 이 논문도 처리량을 주된 결과로 내세운다는 점이다. 다만 지면이 지역 서비스 광고라 피드에 옮겨질지는 알 수 없으므로 레이더에 둔다.

↑ 목차

레이더

↑ 목차

다음에 볼 것

↑ 목차

조회 현황

  • X: xai-org/x-algorithm에 새 커밋 1건(07d159b)이 있었다. 릴리스는 확인하지 않았다.
  • Meta: engineering.fb.com RSS의 최신 글은 2026-10-19자로, 이미 확인했다. ai.meta.com/blog와 transparency.meta.com은 이번에 확인하지 않았다.
  • Netflix: RSS의 최신 글은 2026-10-22자(Single-tenant Titus)로, 이미 확인했다. research.netflix.com/publications는 확인하지 않았다.
  • arXiv cs.IR: 30건을 파싱했고, 2026-10-22 제출분이 새로 들어왔다. 통과는 1건(OneLatent)이다. LinkedIn PAIR는 Premium 인물 검색 retrieval이고 오프라인 지표뿐이라 탈락시켰다.
  • WebSearch 교차 확인은 이번에 하지 않았다.

↑ 목차