◂ feed-research2026-08-29 빌드

설문 신호 — 물어보고, 그 답으로 랭커를 학습시킨다

최종 갱신: 2026-08-09

참여 로그는 유저가 무엇을 했는지만 알려준다. 설문은 직접 묻는다. "이 포스트가 시간을 쓸 가치가 있었나", "이 영상이 네 관심사에 얼마나 맞나". 그 답을 라벨로 써서 랭커를 바꾼다.

문제는 하나로 요약된다. 설문 응답은 참여 로그보다 4자릿수 이상 희소하다.

"the model has a limited number of labeled positive and negative examples for user-item pairs, accounting for less than one ten-thousandth of the total video exposures"

[확인]USM (TikTok), arXiv:2412.10674, 2024. 설문 커버리지를 숫자로 밝힌 유일한 1차 출처다.

Meta도 같은 말을 정성적으로만 한다: "User perception feedback collected using surveys are extremely sparse" [확인] engineering.fb.com, 2026-01-14.

이 정도 데이터로는 랭커를 직접 학습시킬 수 없다. 그래서 공개된 시스템은 전부 설문을 밀집 신호로 환산하는 중간 장치를 갖고 있다. 그 장치가 무엇인지가 이 노트의 본론이다. "설문을 랭킹에 반영한다"는 문장은 아무것도 설명하지 않는다.

지렛대 4가지 — 희소한 설문이 랭커를 움직이는 법

방식 설문이 들어가는 자리 학습 대상 사례
가중치 결정 모델 . 헤드 가중치 w를 설문으로 고른다 (모델 학습 안 함) Meta 2021
밀집 대리 모델로 증류 설문 응답 자체를 예측하는 모델을 만들어 전 노출에 적용 설문 응답 YouTube 2021
정렬(alignment) 레이어 본 모델의 기존 예측들을 입력 피처로 받는 경량 레이어 설문 응답(이진화) Meta UTIS 2026
헤드 + 응답 편향 보정 설문 헤드를 가중합에 넣고 응답 성향을 IPW로 보정 설문 응답 + 제출 확률 TikTok USM 2024

[확인] 각 항목은 아래에서 개별 인용.

①만 유일하게 모델을 건드리지 않는다. 나머지 셋은 전부 "설문 응답을 예측하는 함수"를 만들어 희소성을 우회한다. ②와 ③의 차이가 특히 중요하다 — ②는 원시 피처에서 설문을 새로 예측하고, ③은 이미 학습된 참여 예측들 위에 얇은 층을 얹는다. ③이 훨씬 적은 라벨로 수렴한다 [추정] (근거: 입력 차원이 헤드 개수 수준으로 줄고, 본 모델이 이미 표현학습을 끝냈다).

① 가중치를 설문으로 정한다 — Meta 2021

Meta의 value model V = Σ w·Y에서 w를 무엇으로 고르느냐의 답이 설문이다.

"the way we take each prediction into account for Juan is based on the actions that people tell us (via surveys) are more meaningful and worth their time" "People with higher correlation gain more value from that specific event, as long as we make this method incremental and control for potential confounding variables."

[확인]engineering.fb.com, 2021-01-26

두 번째 문장이 기계적으로 더 중요하다. **"correlation"**이라고 썼다 — 설문 응답과 각 참여 이벤트의 상관을 재서 가중치를 조정한다는 뜻이다 [추정]. 즉 설문은 라벨이 아니라 가중치 캘리브레이션의 기준점으로 쓰인다. 수식도, 상관 계수도, 갱신 주기도 공개되지 않았다.

수식·헤드 구조 자체는 → multi-task-ranking.md, Meta 쪽 맥락은 → facebook.md.

② 설문 응답을 예측하는 모델을 만든다 — YouTube 2021

가장 오래되고 가장 널리 알려진 방식.

[확인]On YouTube's recommendation system, Cristos Goodrow, 2021-09-15

구조적으로 이게 가장 공격적인 선택이다. 설문을 보조 신호로 쓰는 게 아니라 최적화 대상 자체를 설문 예측치로 바꿨다(watchtime → valued watchtime). 대신 대리 모델이 틀리면 목적함수 전체가 틀린다. YouTube가 홀드아웃 감시를 명시하는 이유가 이것으로 보인다 [추정].

모델 구조·투입 지점(랭커의 어느 헤드인지, 가중치가 몇인지)은 블로그에 없다. [관찰] 2026-08-09 (검사한 코퍼스: 이 절이 인용한 YouTube 블로그 본문 1건)

③ 기존 예측 위에 정렬 레이어를 얹는다 — Meta UTIS, 2026

이 저장소가 찾은 설문 신호에 대한 가장 기계적인 1차 출처다. 전부 [확인]Adapting the Facebook Reels RecSys AI Model Based on User Feedback, engineering.fb.com, 2026-01-14.

UTIS = User True Interest Survey.

"Daily, a certain proportion of users viewing sessions on the platform are randomly chosen to display a single-question survey asking, 'To what extent does this video match your interests?' on a 1-5 scale."

핵심 메커니즘 세 문장:

"User perception feedback collected using surveys are extremely sparse but such feedback can be generalized in large scale recommendation systems using our novel model 'Perception Layer' architecture that uses existing event predictions as additional features."

"We trained a lightweight UTIS alignment model layer on the collected user survey responses using existing predictions of the main model as input features."

"The survey responses used to train our model were binarized for easy modelling and denoises variance in responses."

→ 이게 희소성 문제의 답이다. 설문 모델의 입력이 원시 피처가 아니라 본 랭킹 모델이 이미 뱉고 있는 참여 예측 벡터다. 입력 차원이 헤드 개수 수준으로 줄어드니 수만 건 규모의 라벨로도 학습이 된다 [추정]. 그리고 1–5 척도를 이진화해서 응답 분산을 죽인다 — 5단계 회귀를 포기하고 노이즈를 줄이는 쪽을 택했다.

투입 지점이 두 군데로 갈린다:

성과 (전부 [확인], 같은 글):

구분 수치
오프라인 accuracy 59.5% → 71.5%
오프라인 precision 48.3% → 63.2%
오프라인 recall 45.4% → 66.1%
A/B (10M+ 유저) high survey ratings +5.4%
A/B low survey ratings −6.84%
A/B total user engagement +5.2%
A/B integrity violations −0.34%

⚠ 성과 지표 해석 주의. "high survey ratings +5.4%"는 설문 응답률 지표가 개선됐다는 뜻이고, 이 모델은 바로 그 설문을 예측하도록 학습됐다. 목적함수와 평가지표가 같은 축이다. 진짜 반증력은 engagement +5.2%가 같이 올랐다는 데 있다 — 설문 최적화가 참여를 깎지 않았다는 것 [추정].

⚠ 오프라인 baseline이 무엇인지 안 밝혔다. accuracy 59.5%의 비교 대상이 "설문 헤드 없는 본 모델"인지 "다수 클래스 예측"인지 글에 없다. [관찰] 2026-08-09 (UTIS 블로그 본문 1건)

④ 헤드로 넣되 "누가 답하는가"를 보정한다 — TikTok USM, 2024

[확인]USM: Unbiased Survey Modeling for Limiting Negative User Experiences in Recommendation Systems, TikTok, 2024

→ ①②③이 다루지 않는 문제를 여기서만 다룬다. 설문에 답하는 사람은 무작위 표본이 아니다. 화난 사람이 더 답한다면 설문 모델은 불만을 과대추정한다. Meta UTIS 글에도 YouTube 블로그에도 이 보정에 대한 언급이 없다. [관찰] 2026-08-09 (검사한 코퍼스: 두 블로그 본문 2건)

X — 설문 프롬프트는 있는데, 랭킹으로 가는 경로가 안 보인다

X는 For You 타임라인에 설문 프롬프트를 실제로 꽂는다. 그런데 공개 코드에서 그 응답이 랭커로 흘러가는 배선을 찾을 수 없다.

있는 것 (전부 [확인], twitter/the-algorithm @ c54bec0, 2025-09-03):

없는 것 — 여기가 결론이다:

  1. 홈 타임라인 응답이 학습 신호 스트림(UUA)으로 구조화되지 않는다. BaseFeedbackSubmitClientEventeventNamespace.page로 분기하는데 case "search" 하나만 처리하고 나머지는 case _ => None으로 버린다 (:16,39). 구조화되는 건 검색 결과 페이지의 relevance_prompt_module(→ TweetRelevantToSearch)과 did_you_find_it_module(→ DidYouFindItSearch)뿐이다. [확인]
  2. 홈 쪽 로깅은 "몇 개 띄웠나"만 센다. eventValue = count(relevancePrompt) — 응답 내용이 아니라 노출 카운트다. [확인] ClientEventsBuilder.scala:113-114
  3. 랭커에 설문 헤드가 없다. Phoenix 공개 체크포인트 19개, 프로덕션 22개, 2025 Navi 15개 — 어느 목록에도 설문 계열 헤드가 없다. [확인]multi-task-ranking.md

[추정]: X는 설문을 랭킹 라벨이 아니라 제품 지표·수동 분석용으로 쓰거나, 소비 경로가 공개 범위 밖이다. 근거는 위 3가지의 조합이다. "X는 설문을 랭킹에 쓴다"고도 "안 쓴다"고도 단정할 수 없고, 공개된 것은 수집 장치뿐이라고만 말할 수 있다.

지면·랭커 맥락은 → x.md.

Netflix — 설문이 아니라 명시적 평점, 그리고 온보딩 취향 조사

Netflix의 공개 자료는 랜덤 표본 설문이 아니라 모든 유저가 언제든 누를 수 있는 제품 컨트롤(별점 → thumbs → two thumbs up) 쪽이다. 이건 이 노트의 주제와 구조가 다르다 — 희소하지만 무작위가 아니고, 응답 편향 성격도 다르다.

1차 출처 확보 (2026-08-09 갱신 — 이전 판의 "no primary source found"에서 승격):

랜덤 표본 설문(UTIS류)을 랭킹 라벨로 쓴다는 1차 출처는 여전히 없다. [추정] — 검사한 코퍼스는 netflixtechblog.com과 about.netflix.com의 추천 관련 글(2026-08-09 열람)이고, 미공개 자료까지 없다는 근거는 아니다. 2024 장기 만족 블로그의 보상 함수 r=f(play, complete, thumb)thumb이 항으로 들어 있어 명시 평점의 랭킹 소비는 확인된다 [확인]netflix.md. 유사 기능(Meta의 Show more/less, X의 not_interested)은 설문이 아니라 유저 컨트롤로 분류하는 게 맞다 → facebook.md의 "유저 컨트롤" 절.

Meta 자체 문서 간 불일치 — Reels

UTIS 블로그는 Facebook Reels를 명시하는데, Facebook Reels system card에는 "survey"라는 단어가 한 번도 안 나온다. 카드가 나열하는 예측 태스크 10개(시청시간, 풀스크린 진입, 완주, 스킵, like, hide, "see less" 요청, 세션 시작, 다음 릴 이동 등)는 전부 참여·부정 행동이고 설문 항목이 없다.

[관찰] 2026-08-09 — 검사한 코퍼스는 fb-reels system card 본문 1건(최종 갱신 2026-06-19)이고 survey 문자열이 0회다. 대조 대상은 UTIS 블로그 2026-01-14. ⚠ 카드 인용의 유효기간 주의 → facebook.md의 "system card 인용의 유효기간" 절.

[추정] 두 가지 해석이 가능하고 구분할 근거가 없다: (a) UTIS는 헤드가 아니라 value formula의 추가 입력항이라 "예측 태스크" 목록에 안 들어간다 (블로그 서술과 일관됨), (b) system card가 갱신 시점 기준으로 아직 반영하지 않았다.

이 저장소 규칙의 실전 사례다. 엔지니어링 블로그가 규제 공개 문서보다 앞서 있고, 두 문서를 합쳐야 그림이 나온다. 규제 문서를 정본으로 삼으면 UTIS가 통째로 안 보인다.

이 케이스에서 일반화할 수 있는 것

누가 이걸 쓰는가

아직 확인 못한 것

출처

Netflix (1차)

2차 (참고용 — 1차 확보로 강등 해제)

공개 소스코드