최종 채택안

템플릿 일반검색 · 2026-09-14 · 두 문서에서 최종 채택한 4컷 판

전체 검색식 조정 과정

4컷 · 최종판
1

배경 — 벡터점수에 생긴 컨피던스

유저픽이 없는 비템찾에서 벡터 점수만으로 좋은 화면이 나왔어요.

지금: 유저픽 고인물이 상단 고정
목표: 새롭고 예쁜 템플릿이 상단에 노출

유저픽을 없애는 게 아니라, 새 템플릿이 비집고 들어올 통로를 여는 거예요.

2

점수식에서 조정한 값 세 개

한 식 안에서 min_score · 최신성 · k 를 조정했어요.

( 유저픽 + k × 벡터 ) × 최신성
+ BM25 + 키워드완전일치

후보 자체는 min_score가 먼저 거른 뒤의 이야기예요.

min_score가 후보를 거르고, 최신성이 새 템플릿을 밀어주고, k가 의미 유사도의 힘을 정해요.

3

결정 두 개

min_score와 최신성은 육안평가로 확정했어요.

후보 하한1.4min_score
최신성 가중치최대 1.10등록 90일 이내 보너스
4

남은 결정 — k는 A/B로

실험군 1 · 적당한 knn boost100
실험군 2 · 높은 knn boost300
100컨셉유저픽이 적당히 있는 검색어만 바꾸고, 유저픽으로 가득한 검색어(인기검색어)는 불변
300컨셉유저픽 세기와 무관하게, 모든 검색어에서 벡터점수가 높은 템플릿을 상단노출

벡터 가중치 k

4컷 · 그래프판
1

k가 곱해지는 자리

벡터 점수에 가중치를 주기 위한 값이에요. (벡터 점수에 곱해져요)

( 유저픽 + k × 벡터 ) × 최신성
+ BM25 + 키워드상수

벡터는 1.3~1.9, 유저픽은 수백 단위예요. k를 100쯤 줘야 겨우 대등해져요.

2

유저픽 세기 눈금

검색어마다 상단을 지키는 유저픽의 세기가 달라요. 여섯 단계로 나눴어요.

분류가장 약한 유저픽
K1 유저픽 없음
K2 매우 약함20 미만
K3 약함20~120
K4 보통120~250
K5 강함250~450
K6 매우 강함450 이상

이 세기가 이후 모든 그림을 가르는 변수예요.

3

실험군 1 = 100

컨셉이 "유저픽이 적당히 있는 검색어만 바꾸고, 유저픽으로 가득한 검색어는 불변"이에요.

k=600.6
k=1001.0
k=2001.9

인기검색어 상위 10개 중 바뀌는 템플릿 수예요. 100까지는 1개 이내, 200부터는 아니에요.

인기검색어에서 바뀌는 템플릿을 1개 이내로 지키는 마지막 값이 100이에요.

4

실험군 2 = 300

컨셉이 "유저픽 세기와 무관하게 모든 검색어에서 벡터 상단 노출"이에요.

k=1004.0
k=2006.3
k=3006.7
k=5007.0

유저픽 약한 구간(K2) 상위 10개 중 바뀌는 템플릿 수예요. 300까지는 늘고, 그 위는 6.7 → 7.0으로 거의 안 늘어요.

효과가 닿는 마지막 값이 300이에요. 500은 얻는 것 없이 유저픽만 더 밀어내고, 100과도 충분히 벌어져서 지표가 갈려요.

전체 검색식 조정 과정

템플릿 일반검색 · 2026-09-14 · 배경 → 목표 → 정책 세 값

6컷

1

배경 — 벡터점수에 생긴 컨피던스

출발점은 검색이 아니라 비템찾이었어요.

비슷한 템플릿 찾기(비템찾)에서
통합임베딩 결과 > 인기순 결과
같은 임베딩을 일반검색에도 세게 쓸 근거가 생김

임베딩이 사람이 고른 인기순보다 나은 화면을 만든 걸 이미 봤어요. 그 힘을 일반검색 상단에 쓰기로 했어요.

2

목표 — 고인물 상단 깨기

유저픽은 한번 오르면 잘 안 내려와요.

지금: 유저픽 고인물이 상단 고정
목표: 새롭고 예쁜 템플릿이 상단에 노출

유저픽을 없애는 게 아니라, 새 템플릿이 비집고 들어올 통로를 여는 거예요.

3

점수식에서 조정한 값 세 개

한 식 안에서 min_score · 최신성 · k 를 조정했어요.

( 유저픽 + k × 벡터 ) × 최신성
+ BM25 + 키워드완전일치

후보 자체는 min_score가 먼저 거른 뒤의 이야기예요.

min_score가 후보를 거르고, 최신성이 새 템플릿을 밀어주고, k가 의미 유사도의 힘을 정해요.

4

결정 1 — min_score 1.4

벡터 후보의 원점수 하한이에요.

1.4검색어 80개(A·B·C·D) 육안평가 최빈값 · 438개 검색어 상위 100개에서 결과 부족 0건

1.5부터는 결과가 좁아지고 1.3 이하는 어중간한 후보가 남아요. 1.4가 최빈이었어요.

5

결정 2 — 최신성 최대 1.10

등록 90일 이내 템플릿에 주는 보너스의 최대치예요.

최대 1.10검색어 21개 판정 — 현행(1.05) 선택 0표, 1.10이 최다 6표 · 나간 유저픽 4개로 최소

현행 1.05가 최선이라고 본 검색어가 하나도 없었어요. 1.15부터는 나간 유저픽이 6 → 10개로 늘어요.

6

남은 결정 — k는 A/B로

실험군 1 · 적당한 knn boost100
실험군 2 · 높은 knn boost300
100컨셉유저픽이 적당히 있는 검색어만 바꾸고, 유저픽으로 가득한 검색어(인기검색어)는 불변
300컨셉유저픽 세기와 무관하게, 모든 검색어에서 벡터점수가 높은 템플릿을 상단노출

자세한 근거는 왼쪽의 k 문서에 있어요.

4컷

1

배경과 목표

비템찾에서 임베딩이 인기순을 이겼어요. 그 힘으로 고인물 상단을 깨요.

지금: 유저픽 고인물이 상단 고정
목표: 새롭고 예쁜 템플릿이 상단에 노출

유저픽을 없애는 게 아니라 새 템플릿이 들어올 통로를 여는 거예요.

2

정책 — 다이얼 세 개의 값

순서대로 정했고 두 개는 끝났어요.

정할 값결정상태
min_score (하한 컷)1.4확정
최신성 가중치최대 1.10확정
벡터 가중치 k100 vs 300A/B 예정

결정 기준 문서 — min_score · 최신성 가중치

두 값은 확정됐고 k만 실험이 남았어요.

3

확정 근거 요약

두 값 모두 검색어 분류 기반 육안평가로 정했어요.

min_score1.4
최신성1.10

올릴수록 좋아지는 지표만 보지 않고, 나간 유저픽 수로 상한을 걸었어요.

4

다음 — k A/B 실험

마지막 다이얼은 실험으로 확정해요.

실험군 1 · 적당한 knn boost100
실험군 2 · 높은 knn boost300
100컨셉유저픽이 적당히 있는 검색어만 바꾸고, 유저픽으로 가득한 검색어(인기검색어)는 불변
300컨셉유저픽 세기와 무관하게, 모든 검색어에서 벡터점수가 높은 템플릿을 상단노출

어느 결과가 나와도 다음 행동이 정해져 있어요. 둘 다 이기면 사이 값, 둘 다 지면 현행 유지예요.

4컷 · 압축판

위 6컷의 이야기 순서 그대로, 식 설명 없이
1

배경 — 벡터점수에 생긴 컨피던스

유저픽이 없는 비템찾에서 벡터 점수만으로 좋은 화면이 나왔어요.

비슷한 템플릿 찾기(비템찾)에서
통합임베딩 결과 > 인기순 결과
같은 임베딩을 일반검색에도 세게 쓸 근거가 생김

그 힘을 일반검색 상단에 쓰기로 했어요.

2

목표 — 고인물 상단 깨기

유저픽은 한번 오르면 잘 안 내려와요.

지금: 유저픽 고인물이 상단 고정
목표: 새롭고 예쁜 템플릿이 상단에 노출

유저픽을 없애는 게 아니라, 새 템플릿이 비집고 들어올 통로를 여는 거예요.

3

결정 두 개

min_score와 최신성은 육안평가로 확정했어요.

후보 하한1.4min_score
최신성 가중치최대 1.10등록 90일 이내 보너스
4

남은 결정 — k는 A/B로

실험군 1 · 적당한 knn boost100
실험군 2 · 높은 knn boost300
100컨셉유저픽이 적당히 있는 검색어만 바꾸고, 유저픽으로 가득한 검색어(인기검색어)는 불변
300컨셉유저픽 세기와 무관하게, 모든 검색어에서 벡터점수가 높은 템플릿을 상단노출

4컷 · 최종판

배경·목표를 한 컷으로 합치고 점수식 컷을 넣은 판
1

배경 — 벡터점수에 생긴 컨피던스

유저픽이 없는 비템찾에서 벡터 점수만으로 좋은 화면이 나왔어요.

지금: 유저픽 고인물이 상단 고정
목표: 새롭고 예쁜 템플릿이 상단에 노출

유저픽을 없애는 게 아니라, 새 템플릿이 비집고 들어올 통로를 여는 거예요.

2

점수식에서 조정한 값 세 개

한 식 안에서 min_score · 최신성 · k 를 조정했어요.

( 유저픽 + k × 벡터 ) × 최신성
+ BM25 + 키워드완전일치

후보 자체는 min_score가 먼저 거른 뒤의 이야기예요.

min_score가 후보를 거르고, 최신성이 새 템플릿을 밀어주고, k가 의미 유사도의 힘을 정해요.

3

결정 두 개

min_score와 최신성은 육안평가로 확정했어요.

후보 하한1.4min_score
최신성 가중치최대 1.10등록 90일 이내 보너스
4

남은 결정 — k는 A/B로

실험군 1 · 적당한 knn boost100
실험군 2 · 높은 knn boost300
100컨셉유저픽이 적당히 있는 검색어만 바꾸고, 유저픽으로 가득한 검색어(인기검색어)는 불변
300컨셉유저픽 세기와 무관하게, 모든 검색어에서 벡터점수가 높은 템플릿을 상단노출

6컷

1

상단이라는 자리

검색 상단은 유저픽이 오래 지켜온 자리예요.

지금: 유저픽 고인물이 상단 고정
목표: 새롭고 예쁜 템플릿이 상단에 노출

문제는 검증된 상단이 아니라, 새 템플릿이 들어올 길이 없다는 거예요.

2

무기 — 이미 이겨본 임베딩

비템찾에서 같은 임베딩이 인기순을 이겼어요.

비슷한 템플릿 찾기(비템찾)에서
통합임베딩 결과 > 인기순 결과
같은 임베딩을 일반검색에도 세게 쓸 근거가 생김

"벡터를 믿어도 되나"라는 질문에 이미 답이 있는 상태로 시작했어요.

3

다이얼 1 — 문지기

min_score는 입구에서 어중간한 후보를 거르는 문지기예요.

1.4이보다 약하게 걸린 벡터 후보는 아예 입장 불가

문지기가 세면 결과가 모자라요. 438개 검색어에서 결과 부족 0건인 최대치가 1.4였어요.

4

다이얼 2 — 신선도 보너스

등록 90일 이내 템플릿에 점수를 얹어요.

최대 1.10새 템플릿일수록 크게, 90일이 지나면 0

유저픽 등급을 못 넘는 크기라 인접 순서만 바꿔요. 그래서 안전하게 올릴 수 있었어요.

5

다이얼 3 — 힘 배분

k는 의미 유사도가 유저픽을 미는 힘이에요.

약함
20
보통
120
강함
250
매우
450+
벡터 × k →→→ 미는 힘

유저픽 점수가 곧 방패 두께예요. 미는 힘(벡터 × k)이 방패보다 세지는 순간 순서가 뒤집혀요.

방패(유저픽) 두께가 검색어마다 달라서, 하나의 값이 아니라 실험 두 개로 정해요.

6

안전장치

다이얼을 돌리는 내내 이걸 세면서 돌렸어요.

안전장치내용
나간 유저픽 수값을 올릴 때마다 밀려나는 유저픽을 세서 상한을 정함
인기검색어 대조군실트래픽 상위 검색어의 첫 화면 교체를 별도 감시
검색어 분류유저픽 세기별로 나눠 판정 — 평균에 묻히는 손해를 막음

"좋아졌다"는 육안으로, "망가뜨리지 않았다"는 숫자로 확인하는 구조예요.

4컷

1

문제와 무기

상단은 유저픽 고인물이고, 우리에겐 비템찾에서 이겨본 임베딩이 있어요.

비슷한 템플릿 찾기(비템찾)에서
통합임베딩 결과 > 인기순 결과
같은 임베딩을 일반검색에도 세게 쓸 근거가 생김

그 임베딩을 일반검색 상단에 쓰는 프로젝트예요.

2

다이얼 세 개

점수식에서 돌릴 수 있는 다이얼은 세 개뿐이에요.

다이얼 1 · 문지기min_score어중간한 벡터 후보를 입구에서 거름
다이얼 2 · 신선도최신성등록 90일 이내 템플릿에 보너스
다이얼 3 · 힘 배분k의미 유사도가 유저픽을 미는 힘

역할이 서로 달라서 하나씩 따로 판정해 정했어요.

3

정한 값

두 개는 확정, 하나는 실험이에요.

정할 값결정상태
min_score (하한 컷)1.4확정
최신성 가중치최대 1.10확정
벡터 가중치 k100 vs 300A/B 예정

결정 기준 문서 — min_score · 최신성 가중치

각 값의 결정 기준은 링크의 위키에 근거와 함께 있어요.

4

안전장치

올리기만 한 게 아니라 지키는 걸 같이 쟀어요.

안전장치내용
나간 유저픽 수값을 올릴 때마다 밀려나는 유저픽을 세서 상한을 정함
인기검색어 대조군실트래픽 상위 검색어의 첫 화면 교체를 별도 감시
검색어 분류유저픽 세기별로 나눠 판정 — 평균에 묻히는 손해를 막음

나간 유저픽 수가 상한을 정해줬어요.

6컷

1

정책 결론

템플릿 일반검색 검색식의 새 정책이에요.

정할 값결정상태
min_score (하한 컷)1.4확정
최신성 가중치최대 1.10확정
벡터 가중치 k100 vs 300A/B 예정

결정 기준 문서 — min_score · 최신성 가중치

아래 컷들이 이 표의 근거예요.

2

배경

확신의 출처는 비템찾이에요.

비슷한 템플릿 찾기(비템찾)에서
통합임베딩 결과 > 인기순 결과
같은 임베딩을 일반검색에도 세게 쓸 근거가 생김

같은 임베딩이 이미 사람이 고른 결과를 이겨봤어요.

3

목표

유저픽 고인물만 있는 상단을 바꿔요.

지금: 유저픽 고인물이 상단 고정
목표: 새롭고 예쁜 템플릿이 상단에 노출

새롭고 예쁜 템플릿이 상단에 노출될 통로를 만드는 거예요.

4

min_score 1.4의 근거

검색어 80개를 네 분류로 나눠 판정했어요.

1.4검색어 80개(A·B·C·D) 육안평가 최빈값 · 438개 검색어 상위 100개에서 결과 부족 0건

컷을 올려 어중간한 후보를 거르되, 결과가 모자라지 않는 최대치예요.

5

최신성 1.10의 근거

검색어 21개를 세 분류로 나눠 판정했어요.

최대 1.10검색어 21개 판정 — 현행(1.05) 선택 0표, 1.10이 최다 6표 · 나간 유저픽 4개로 최소

효과는 생기고(첫 화면 신규 진입) 손해는 최소(나간 유저픽 4개)인 지점이에요.

6

k 실험 계획

마지막 값은 A/B로 확정해요.

실험군 1 · 적당한 knn boost100
실험군 2 · 높은 knn boost300
100컨셉유저픽이 적당히 있는 검색어만 바꾸고, 유저픽으로 가득한 검색어(인기검색어)는 불변
300컨셉유저픽 세기와 무관하게, 모든 검색어에서 벡터점수가 높은 템플릿을 상단노출

유저픽 세기별로 영향이 네 배 갈려서, 경계값 두 개를 실험에 올려요.

4컷

1

정책 결론

새 검색식 정책 세 줄이에요.

정할 값결정상태
min_score (하한 컷)1.4확정
최신성 가중치최대 1.10확정
벡터 가중치 k100 vs 300A/B 예정

결정 기준 문서 — min_score · 최신성 가중치

두 개 확정, 하나 실험 대기예요.

2

배경과 목표

유저픽이 없는 비템찾에서 임베딩 결과의 퀄리티가 좋았어요. 그래서 유저픽의 힘을 낮추고 벡터 점수를 올려볼 생각을 하게 됐어요.

지금: 유저픽 고인물이 상단 고정
목표: 새롭고 예쁜 템플릿이 상단에 노출

유저픽 제거가 아니라 신규 진입 통로 확보예요.

3

확정 두 값의 근거

둘 다 검색어 분류 기반 육안평가로 정했어요.

min_score1.4
최신성1.10

나간 유저픽 수를 상한선으로 썼어요.

4

k 실험 계획

경계값 두 개를 A/B에 올려요.

실험군 1 · 적당한 knn boost100
실험군 2 · 높은 knn boost300
100컨셉유저픽이 적당히 있는 검색어만 바꾸고, 유저픽으로 가득한 검색어(인기검색어)는 불변
300컨셉유저픽 세기와 무관하게, 모든 검색어에서 벡터점수가 높은 템플릿을 상단노출

100은 인기검색어가 안 바뀌는 마지막 값, 300은 그 위로 올려도 화면이 더는 안 바뀌는 값이에요.

벡터 가중치 k

마지막 남은 값 · 실험군 100 vs 300 제안

6컷

1

k가 곱해지는 자리

벡터 점수에 가중치를 주기 위한 값이에요. (벡터 점수에 곱해져요)

( 유저픽 + k × 벡터 ) × 최신성
+ BM25 + 키워드상수

벡터는 1.3~1.9, 유저픽은 수백 단위예요. k를 100쯤 줘야 겨우 대등해져요.

2

유저픽 세기 눈금

검색어마다 상단을 지키는 유저픽의 세기가 달라요. 여섯 단계로 나눴어요.

분류가장 약한 유저픽
K1 유저픽 없음
K2 매우 약함20 미만
K3 약함20~120
K4 보통120~250
K5 강함250~450
K6 매우 강함450 이상

이 세기가 이후 모든 그림을 가르는 변수예요.

3

k=100에서의 반응

현행 대비 상위 10개 중 바뀌는 템플릿 수예요. 같은 k인데 반응이 네 배 갈려요.

K2 약함4.0
K4 보통3.5
K6 강함1.5
인기검색어1.0

유저픽이 약할수록 많이 바뀌고, 셀수록 안 바뀌어요.

4

k=300에서의 반응

같은 지표를 k=300에서 다시 쟀어요.

K2 약함6.7
K4 보통6.0
K6 강함2.3
인기검색어2.0

이제 인기검색어까지 움직여요. 500으로 올려도 K2는 6.7 → 7.0이라, 300부터는 더 올려도 화면이 거의 안 바뀌어요.

5

실험군 1 = 100

컨셉이 "유저픽이 적당히 있는 검색어만 바꾸고, 유저픽으로 가득한 검색어는 불변"이에요.

k=600.6
k=1001.0
k=2001.9

인기검색어 상위 10개 중 바뀌는 템플릿 수예요. 100까지는 1개 이내, 200부터는 아니에요.

인기검색어에서 바뀌는 템플릿을 1개 이내로 지키는 마지막 값이 100이에요.

6

실험군 2 = 300

컨셉이 "유저픽 세기와 무관하게 모든 검색어에서 벡터 상단 노출"이에요.

300인기검색어 2.0개 · K6 2.3개까지 효과가 닿는 마지막 값 — 이보다 올려도 화면이 더는 안 바뀜

500은 얻는 것 없이 유저픽만 더 밀어내요. 100과도 충분히 벌어져서 지표가 갈려요.

6컷 · 그래프판

실험군 2 컷을 숫자 대신 그래프로 바꾼 판
1

k가 곱해지는 자리

벡터 점수에 가중치를 주기 위한 값이에요. (벡터 점수에 곱해져요)

( 유저픽 + k × 벡터 ) × 최신성
+ BM25 + 키워드상수

벡터는 1.3~1.9, 유저픽은 수백 단위예요. k를 100쯤 줘야 겨우 대등해져요.

2

유저픽 세기 눈금

검색어마다 상단을 지키는 유저픽의 세기가 달라요. 여섯 단계로 나눴어요.

분류가장 약한 유저픽
K1 유저픽 없음
K2 매우 약함20 미만
K3 약함20~120
K4 보통120~250
K5 강함250~450
K6 매우 강함450 이상

이 세기가 이후 모든 그림을 가르는 변수예요.

3

k=100에서의 반응

현행 대비 상위 10개 중 바뀌는 템플릿 수예요. 같은 k인데 반응이 네 배 갈려요.

K2 약함4.0
K4 보통3.5
K6 강함1.5
인기검색어1.0

유저픽이 약할수록 많이 바뀌고, 셀수록 안 바뀌어요.

4

k=300에서의 반응

같은 지표를 k=300에서 다시 쟀어요.

K2 약함6.7
K4 보통6.0
K6 강함2.3
인기검색어2.0

이제 인기검색어까지 움직여요. 500으로 올려도 K2는 6.7 → 7.0이라, 300부터는 더 올려도 화면이 거의 안 바뀌어요.

5

실험군 1 = 100

컨셉이 "유저픽이 적당히 있는 검색어만 바꾸고, 유저픽으로 가득한 검색어는 불변"이에요.

k=600.6
k=1001.0
k=2001.9

인기검색어 상위 10개 중 바뀌는 템플릿 수예요. 100까지는 1개 이내, 200부터는 아니에요.

인기검색어에서 바뀌는 템플릿을 1개 이내로 지키는 마지막 값이 100이에요.

6

실험군 2 = 300

컨셉이 "유저픽 세기와 무관하게 모든 검색어에서 벡터 상단 노출"이에요.

k=1004.0
k=2006.3
k=3006.7
k=5007.0

유저픽 약한 구간(K2) 상위 10개 중 바뀌는 템플릿 수예요. 300까지는 늘고, 그 위는 6.7 → 7.0으로 거의 안 늘어요.

효과가 닿는 마지막 값이 300이에요. 500은 얻는 것 없이 유저픽만 더 밀어내고, 100과도 충분히 벌어져서 지표가 갈려요.

4컷 · 그래프판

위 그래프판에서 3·4번을 뺀 판
1

k가 곱해지는 자리

벡터 점수에 가중치를 주기 위한 값이에요. (벡터 점수에 곱해져요)

( 유저픽 + k × 벡터 ) × 최신성
+ BM25 + 키워드상수

벡터는 1.3~1.9, 유저픽은 수백 단위예요. k를 100쯤 줘야 겨우 대등해져요.

2

유저픽 세기 눈금

검색어마다 상단을 지키는 유저픽의 세기가 달라요. 여섯 단계로 나눴어요.

분류가장 약한 유저픽
K1 유저픽 없음
K2 매우 약함20 미만
K3 약함20~120
K4 보통120~250
K5 강함250~450
K6 매우 강함450 이상

이 세기가 이후 모든 그림을 가르는 변수예요.

3

실험군 1 = 100

컨셉이 "유저픽이 적당히 있는 검색어만 바꾸고, 유저픽으로 가득한 검색어는 불변"이에요.

k=600.6
k=1001.0
k=2001.9

인기검색어 상위 10개 중 바뀌는 템플릿 수예요. 100까지는 1개 이내, 200부터는 아니에요.

인기검색어에서 바뀌는 템플릿을 1개 이내로 지키는 마지막 값이 100이에요.

4

실험군 2 = 300

컨셉이 "유저픽 세기와 무관하게 모든 검색어에서 벡터 상단 노출"이에요.

k=1004.0
k=2006.3
k=3006.7
k=5007.0

유저픽 약한 구간(K2) 상위 10개 중 바뀌는 템플릿 수예요. 300까지는 늘고, 그 위는 6.7 → 7.0으로 거의 안 늘어요.

효과가 닿는 마지막 값이 300이에요. 500은 얻는 것 없이 유저픽만 더 밀어내고, 100과도 충분히 벌어져서 지표가 갈려요.

5컷

5·6번을 한 컷으로 합친 판
1

k가 곱해지는 자리

벡터 점수에 가중치를 주기 위한 값이에요. (벡터 점수에 곱해져요)

( 유저픽 + k × 벡터 ) × 최신성
+ BM25 + 키워드상수

벡터는 1.3~1.9, 유저픽은 수백 단위예요. k를 100쯤 줘야 겨우 대등해져요.

2

유저픽 세기 눈금

검색어마다 상단을 지키는 유저픽의 세기가 달라요. 여섯 단계로 나눴어요.

분류가장 약한 유저픽
K1 유저픽 없음
K2 매우 약함20 미만
K3 약함20~120
K4 보통120~250
K5 강함250~450
K6 매우 강함450 이상

이 세기가 이후 모든 그림을 가르는 변수예요.

3

k=100에서의 반응

현행 대비 상위 10개 중 바뀌는 템플릿 수예요. 같은 k인데 반응이 네 배 갈려요.

K2 약함4.0
K4 보통3.5
K6 강함1.5
인기검색어1.0

유저픽이 약할수록 많이 바뀌고, 셀수록 안 바뀌어요.

4

k=300에서의 반응

같은 지표를 k=300에서 다시 쟀어요.

K2 약함6.7
K4 보통6.0
K6 강함2.3
인기검색어2.0

이제 인기검색어까지 움직여요. 500으로 올려도 K2는 6.7 → 7.0이라, 300부터는 더 올려도 화면이 거의 안 바뀌어요.

5

실험군 1 = 100 · 실험군 2 = 300

두 컨셉을 그대로 실험에 올려요.

실험군 1 · 적당한 knn boost100
실험군 2 · 높은 knn boost300
100컨셉유저픽이 적당히 있는 검색어만 바꾸고, 유저픽으로 가득한 검색어(인기검색어)는 불변
300컨셉유저픽 세기와 무관하게, 모든 검색어에서 벡터점수가 높은 템플릿을 상단노출

100은 인기검색어에서 바뀌는 템플릿을 1개 이내로 지키는 마지막 값이고, 300은 이보다 올려도 화면이 더는 안 바뀌는 값이에요.

4컷 · 압축판

위 5컷에서 3·4번을 한 컷으로 합친 판
1

k가 곱해지는 자리

벡터 점수에 가중치를 주기 위한 값이에요. (벡터 점수에 곱해져요)

( 유저픽 + k × 벡터 ) × 최신성
+ BM25 + 키워드상수

벡터는 1.3~1.9, 유저픽은 수백 단위예요. k를 100쯤 줘야 겨우 대등해져요.

2

유저픽 세기 눈금

검색어마다 상단을 지키는 유저픽의 세기가 달라요. 여섯 단계로 나눴어요.

분류가장 약한 유저픽
K1 유저픽 없음
K2 매우 약함20 미만
K3 약함20~120
K4 보통120~250
K5 강함250~450
K6 매우 강함450 이상

이 세기가 이후 모든 그림을 가르는 변수예요.

3

k=100 vs 300에서의 반응

현행 대비 상위 10개 중 바뀌는 템플릿 수예요. 같은 k인데 반응이 네 배 갈려요.

k=100k=300
유저픽 약4.0
6.7
유저픽 강1.5
2.3
인기검색어1.0
2.0

유저픽이 약할수록 많이 바뀌고, 셀수록 안 바뀌어요. 300부터는 더 올려도 화면이 거의 안 바뀌어요.

4

실험군 1 = 100 · 실험군 2 = 300

두 컨셉을 그대로 실험에 올려요.

실험군 1 · 적당한 knn boost100
실험군 2 · 높은 knn boost300
100컨셉유저픽이 적당히 있는 검색어만 바꾸고, 유저픽으로 가득한 검색어(인기검색어)는 불변
300컨셉유저픽 세기와 무관하게, 모든 검색어에서 벡터점수가 높은 템플릿을 상단노출

100은 인기검색어에서 바뀌는 템플릿을 1개 이내로 지키는 마지막 값이고, 300은 이보다 올려도 화면이 더는 안 바뀌는 값이에요.

4컷

1

유저픽 세기별 k 영향도

현행 대비 상위 10개 중 바뀌는 템플릿 수예요. 위가 k=100, 아래가 k=300이에요.

k=100k=300
유저픽 약4.0
6.7
유저픽 강1.5
2.3
인기검색어1.0
2.0

같은 k인데 유저픽 세기에 따라 체감이 네 배까지 달라요. 이게 이번 설계의 출발점이에요.

2

인기검색어의 경계

인기검색어 상위 10개 중 바뀌는 템플릿 수를 k별로 늘어놓았어요.

k=600.6
k=1001.0
k=2001.9
k=3002.0

"불변"이라고 말할 수 있는 경계가 k=100이에요. 200부터는 첫 줄의 절반 가까이 바뀌어요.

3

실험군 1 = 100

유저픽이 적당히 있는 검색어만 바꾸고, 유저픽으로 가득한 검색어는 그대로 두는 컨셉이에요.

100K2 4.0개 · K4 3.5개가 바뀌는데 인기검색어는 1.0개

바꿀 곳은 바꾸면서 인기검색어 불변을 지키는 최대 지점이에요.

4

실험군 2 = 300

유저픽 세기와 무관하게, 모든 검색어에서 벡터점수가 높은 템플릿을 상단에 두는 컨셉이에요.

300K6 2.3개 · 인기검색어 2.0개 — 가장 센 유저픽까지 효과가 닿음

그 위는 올려도 안 바뀌어요. 500에서 K2가 6.7 → 7.0으로 거의 안 늘어요.

6컷

1

방패와 미는 힘

유저픽은 상단을 지키는 방패, 벡터 × k는 미는 힘이에요.

약함
20
보통
120
강함
250
매우
450+
벡터 × k →→→ 미는 힘

유저픽 점수가 곧 방패 두께예요. 미는 힘(벡터 × k)이 방패보다 세지는 순간 순서가 뒤집혀요.

k를 올린다는 건 미는 힘을 키우는 일이에요.

2

검색어마다 다른 방패 두께

같은 k라도 방패가 얇은 검색어는 밀리고 두꺼운 검색어는 버텨요.

분류가장 약한 유저픽
K1 유저픽 없음
K2 매우 약함20 미만
K3 약함20~120
K4 보통120~250
K5 강함250~450
K6 매우 강함450 이상

가장 약한 유저픽 점수가 곧 그 검색어의 방패 두께예요.

3

뒤집힘이 시작되는 k

방패 두께 ÷ 벡터 점수가 뒤집힘 시작 지점이에요.

K2 ≈13K3 ≈75K4 ≈156K5·K6 ≈281+k=100k=300

뒤집힘 시작 k ≈ 가장 약한 유저픽 점수 ÷ 벡터 점수 (벡터 1.6 기준 어림값)

구간마다 시작점이 달라요. K2는 13부터 밀리는데 K5·K6은 281은 돼야 밀려요.

4

k=100이 미치는 범위

눈금 위에서 100이 어디까지 닿는지 보면 돼요.

K2 ≈13밀림
K3 ≈75밀림
K4 ≈156일부
K5·K6버팀

막대는 그 구간에서 뒤집힘이 진행된 정도의 감각치예요.

약한 방패(K2·K3)는 넘고, 센 방패(K5·K6)는 존중하는 값이에요.

5

k=300이 미치는 범위

300은 가장 두꺼운 방패의 시작점(≈281)을 넘어요.

K2밀림
K3밀림
K4밀림
K5·K6밀림

모든 구간에 힘이 닿아요. 다만 그 위로는 순서가 벡터 순서로 수렴해서 더 올려도 안 변해요.

6

실험군 두 개의 자리

컨셉을 눈금 위의 자리로 옮기면 이렇게 돼요.

실험군 1 · 적당한 knn boost100
실험군 2 · 높은 knn boost300
100컨셉유저픽이 적당히 있는 검색어만 바꾸고, 유저픽으로 가득한 검색어(인기검색어)는 불변
300컨셉유저픽 세기와 무관하게, 모든 검색어에서 벡터점수가 높은 템플릿을 상단노출

100은 센 방패 앞에서 멈추는 값, 300은 모든 방패를 넘는 최소값이에요.

5컷

5·6번을 한 컷으로 합친 판
1

방패와 미는 힘

유저픽은 상단을 지키는 방패, 벡터 × k는 미는 힘이에요.

약함
20
보통
120
강함
250
매우
450+
벡터 × k →→→ 미는 힘

유저픽 점수가 곧 방패 두께예요. 미는 힘(벡터 × k)이 방패보다 세지는 순간 순서가 뒤집혀요.

k를 올린다는 건 미는 힘을 키우는 일이에요.

2

검색어마다 다른 방패 두께

같은 k라도 방패가 얇은 검색어는 밀리고 두꺼운 검색어는 버텨요.

분류가장 약한 유저픽
K1 유저픽 없음
K2 매우 약함20 미만
K3 약함20~120
K4 보통120~250
K5 강함250~450
K6 매우 강함450 이상

가장 약한 유저픽 점수가 곧 그 검색어의 방패 두께예요.

3

뒤집힘이 시작되는 k

방패 두께 ÷ 벡터 점수가 뒤집힘 시작 지점이에요.

K2 ≈13K3 ≈75K4 ≈156K5·K6 ≈281+k=100k=300

뒤집힘 시작 k ≈ 가장 약한 유저픽 점수 ÷ 벡터 점수 (벡터 1.6 기준 어림값)

구간마다 시작점이 달라요. K2는 13부터 밀리는데 K5·K6은 281은 돼야 밀려요.

4

k=100이 미치는 범위

눈금 위에서 100이 어디까지 닿는지 보면 돼요.

K2 ≈13밀림
K3 ≈75밀림
K4 ≈156일부
K5·K6버팀

막대는 그 구간에서 뒤집힘이 진행된 정도의 감각치예요.

약한 방패(K2·K3)는 넘고, 센 방패(K5·K6)는 존중하는 값이에요.

5

실험군 두 개의 자리

300은 가장 두꺼운 방패의 시작점(≈281)을 넘어요. 컨셉을 눈금 위의 자리로 옮기면 이렇게 돼요.

실험군 1 · 적당한 knn boost100
실험군 2 · 높은 knn boost300
100컨셉유저픽이 적당히 있는 검색어만 바꾸고, 유저픽으로 가득한 검색어(인기검색어)는 불변
300컨셉유저픽 세기와 무관하게, 모든 검색어에서 벡터점수가 높은 템플릿을 상단노출

100은 센 방패 앞에서 멈추는 값, 300은 모든 방패를 넘는 최소값이에요. 그 위로는 순서가 벡터 순서로 수렴해서 더 올려도 안 변해요.

4컷 · 압축판

위 5컷에서 3·4번을 한 컷으로 합친 판
1

방패와 미는 힘

유저픽은 상단을 지키는 방패, 벡터 × k는 미는 힘이에요.

약함
20
보통
120
강함
250
매우
450+
벡터 × k →→→ 미는 힘

유저픽 점수가 곧 방패 두께예요. 미는 힘(벡터 × k)이 방패보다 세지는 순간 순서가 뒤집혀요.

k를 올린다는 건 미는 힘을 키우는 일이에요.

2

검색어마다 다른 방패 두께

같은 k라도 방패가 얇은 검색어는 밀리고 두꺼운 검색어는 버텨요.

분류가장 약한 유저픽
K1 유저픽 없음
K2 매우 약함20 미만
K3 약함20~120
K4 보통120~250
K5 강함250~450
K6 매우 강함450 이상

가장 약한 유저픽 점수가 곧 그 검색어의 방패 두께예요.

3

뒤집힘 시작점과 두 k의 자리

방패 두께 ÷ 벡터 점수가 뒤집힘 시작 지점이에요.

K2 ≈13K3 ≈75K4 ≈156K5·K6 ≈281+k=100k=300

뒤집힘 시작 k ≈ 가장 약한 유저픽 점수 ÷ 벡터 점수 (벡터 1.6 기준 어림값)

K2는 13부터 밀리는데 K5·K6은 281은 돼야 밀려요. 100은 K4와 K5 사이, 300은 K5·K6 시작점 너머에 서 있어요.

4

실험군 두 개의 자리

300은 가장 두꺼운 방패의 시작점(≈281)을 넘어요. 컨셉을 눈금 위의 자리로 옮기면 이렇게 돼요.

실험군 1 · 적당한 knn boost100
실험군 2 · 높은 knn boost300
100컨셉유저픽이 적당히 있는 검색어만 바꾸고, 유저픽으로 가득한 검색어(인기검색어)는 불변
300컨셉유저픽 세기와 무관하게, 모든 검색어에서 벡터점수가 높은 템플릿을 상단노출

100은 센 방패 앞에서 멈추는 값, 300은 모든 방패를 넘는 최소값이에요. 그 위로는 순서가 벡터 순서로 수렴해서 더 올려도 안 변해요.

4컷

1

방패와 미는 힘

유저픽은 방패, 벡터 × k는 미는 힘이에요.

약함
20
보통
120
강함
250
매우
450+
벡터 × k →→→ 미는 힘

유저픽 점수가 곧 방패 두께예요. 미는 힘(벡터 × k)이 방패보다 세지는 순간 순서가 뒤집혀요.

k를 올린다 = 미는 힘을 키운다.

2

구간별 뒤집힘 시작점

방패 두께 ÷ 벡터 점수가 뒤집힘 시작 k예요.

K2 ≈13K3 ≈75K4 ≈156K5·K6 ≈281+k=100k=300

뒤집힘 시작 k ≈ 가장 약한 유저픽 점수 ÷ 벡터 점수 (벡터 1.6 기준 어림값)

100은 K4와 K5 사이, 300은 K5·K6 시작점 너머에 서 있어요.

3

실험군 1 = 100

약한 방패는 넘고 센 방패 앞에서 멈추는 자리예요.

100K2·K3는 밀리고, K5·K6과 인기검색어(1.0개)는 버팀

"인기검색어 불변" 컨셉이 유지되는 마지막 지점이에요.

4

실험군 2 = 300

모든 방패를 넘는 최소값이에요.

300가장 센 방패 시작점(≈281)을 막 넘은 지점 · 그 위는 올려도 변화 없음

500까지 올려도 화면은 거의 안 변하고 유저픽만 더 밀려나요.

6컷

1

결론

A/B 실험군 두 개의 k 값이에요.

실험군 1 · 적당한 knn boost100
실험군 2 · 높은 knn boost300
100컨셉유저픽이 적당히 있는 검색어만 바꾸고, 유저픽으로 가득한 검색어(인기검색어)는 불변
300컨셉유저픽 세기와 무관하게, 모든 검색어에서 벡터점수가 높은 템플릿을 상단노출

아래 다섯 컷이 이 두 숫자의 근거예요.

2

근거 1 — 유저픽 세기별 영향도

같은 k라도 유저픽 세기에 따라 화면 변화가 네 배 갈려요.

k=100k=300
유저픽 약4.0
6.7
유저픽 강1.5
2.3
인기검색어1.0
2.0

하나의 평균으로 고르면 안 되고, 구간별로 어디까지 허용할지를 정해야 해요.

3

근거 2 — 100은 불변의 경계

인기검색어 상위 10개 중 바뀌는 템플릿 수예요.

k=600.6
k=1001.0
k=2001.9
k=3002.0

바뀌는 템플릿 1개 이내를 "불변"이라 부른다면 그 경계가 100이에요. 그래서 실험군 1이 100이에요.

4

근거 3 — 300 위로는 변화 없음

유저픽 약한 구간의 교체 수를 k별로 늘어놓았어요.

k=1004.0
k=2006.3
k=3006.7
k=5007.0

300 이후로는 올려도 화면이 거의 안 변해요. 그래서 실험군 2가 300이에요.

5

근거 4 — 두 값을 벌린 이유

후보였던 200을 안 쓴 이유예요.

조합문제
100 vs 200인기검색어에서 200은 이미 불변이 아님
200 vs 300첫 화면에서 갈리는 템플릿이 1개 남짓이라 지표 구분 불가
100 vs 300컨셉이 다르고 화면 차이도 뚜렷함

차이가 벌어져야 A/B 지표가 노이즈를 뚫고 갈려요.

6

결과 읽는 법

실험이 끝나면 이렇게 해석하면 돼요.

결과해석
둘 다 승벡터 상향이 맞음 → 사이 값 재탐색
둘 다 패현행 유지
1승 2패인기검색어 보호가 유효 → 100 계열 확정
1패 2승벡터를 더 세게 → 300 계열 확정

어느 결과가 나와도 다음 행동이 정해져 있어요.

5컷

5·6번을 한 컷으로 합친 판
1

결론

A/B 실험군 두 개의 k 값이에요.

실험군 1 · 적당한 knn boost100
실험군 2 · 높은 knn boost300
100컨셉유저픽이 적당히 있는 검색어만 바꾸고, 유저픽으로 가득한 검색어(인기검색어)는 불변
300컨셉유저픽 세기와 무관하게, 모든 검색어에서 벡터점수가 높은 템플릿을 상단노출

아래 다섯 컷이 이 두 숫자의 근거예요.

2

근거 1 — 유저픽 세기별 영향도

같은 k라도 유저픽 세기에 따라 화면 변화가 네 배 갈려요.

k=100k=300
유저픽 약4.0
6.7
유저픽 강1.5
2.3
인기검색어1.0
2.0

하나의 평균으로 고르면 안 되고, 구간별로 어디까지 허용할지를 정해야 해요.

3

근거 2 — 100은 불변의 경계

인기검색어 상위 10개 중 바뀌는 템플릿 수예요.

k=600.6
k=1001.0
k=2001.9
k=3002.0

바뀌는 템플릿 1개 이내를 "불변"이라 부른다면 그 경계가 100이에요. 그래서 실험군 1이 100이에요.

4

근거 3 — 300 위로는 변화 없음

유저픽 약한 구간의 교체 수를 k별로 늘어놓았어요.

k=1004.0
k=2006.3
k=3006.7
k=5007.0

300 이후로는 올려도 화면이 거의 안 변해요. 그래서 실험군 2가 300이에요.

5

두 값을 벌린 이유 · 결과 읽는 법

후보였던 200을 안 쓴 이유와, 실험이 끝난 뒤의 해석이에요.

조합문제
100 vs 200인기검색어에서 200은 이미 불변이 아님
200 vs 300첫 화면에서 갈리는 템플릿이 1개 남짓이라 지표 구분 불가
100 vs 300컨셉이 다르고 화면 차이도 뚜렷함

실험이 끝나면 이렇게 읽어요.

결과해석
둘 다 승벡터 상향이 맞음 → 사이 값 재탐색
둘 다 패현행 유지
1승 2패인기검색어 보호가 유효 → 100 계열 확정
1패 2승벡터를 더 세게 → 300 계열 확정

차이가 벌어져야 지표가 갈리고, 어느 결과가 나와도 다음 행동이 정해져 있어요.

4컷 · 압축판

위 5컷에서 3·4번을 한 컷으로 합친 판
1

결론

A/B 실험군 두 개의 k 값이에요.

실험군 1 · 적당한 knn boost100
실험군 2 · 높은 knn boost300
100컨셉유저픽이 적당히 있는 검색어만 바꾸고, 유저픽으로 가득한 검색어(인기검색어)는 불변
300컨셉유저픽 세기와 무관하게, 모든 검색어에서 벡터점수가 높은 템플릿을 상단노출

아래 다섯 컷이 이 두 숫자의 근거예요.

2

근거 1 — 유저픽 세기별 영향도

같은 k라도 유저픽 세기에 따라 화면 변화가 네 배 갈려요.

k=100k=300
유저픽 약4.0
6.7
유저픽 강1.5
2.3
인기검색어1.0
2.0

하나의 평균으로 고르면 안 되고, 구간별로 어디까지 허용할지를 정해야 해요.

3

근거 2·3 — 100과 300이 경계인 이유

위는 인기검색어, 아래는 유저픽 약한 구간(K2)의 교체 수예요.

인기검색어 상위 10개 중 바뀌는 템플릿 수 — 100까지가 불변

k=600.6
k=1001.0
k=2001.9
k=3002.0

K2 교체 수 — 300 위로는 올려도 안 변함

k=1004.0
k=2006.3
k=3006.7
k=5007.0

인기검색어 불변의 마지막 값이라 실험군 1이 100, 효과가 포화되는 시작값이라 실험군 2가 300이에요.

4

두 값을 벌린 이유 · 결과 읽는 법

후보였던 200을 안 쓴 이유와, 실험이 끝난 뒤의 해석이에요.

조합문제
100 vs 200인기검색어에서 200은 이미 불변이 아님
200 vs 300첫 화면에서 갈리는 템플릿이 1개 남짓이라 지표 구분 불가
100 vs 300컨셉이 다르고 화면 차이도 뚜렷함

실험이 끝나면 이렇게 읽어요.

결과해석
둘 다 승벡터 상향이 맞음 → 사이 값 재탐색
둘 다 패현행 유지
1승 2패인기검색어 보호가 유효 → 100 계열 확정
1패 2승벡터를 더 세게 → 300 계열 확정

차이가 벌어져야 지표가 갈리고, 어느 결과가 나와도 다음 행동이 정해져 있어요.

4컷

1

결론

실험군 두 개의 k 값이에요.

실험군 1 · 적당한 knn boost100
실험군 2 · 높은 knn boost300
100컨셉유저픽이 적당히 있는 검색어만 바꾸고, 유저픽으로 가득한 검색어(인기검색어)는 불변
300컨셉유저픽 세기와 무관하게, 모든 검색어에서 벡터점수가 높은 템플릿을 상단노출

나머지 세 컷이 근거예요.

2

근거 1 — 유저픽 세기별 영향도

같은 k라도 유저픽 세기에 따라 네 배 갈려요.

k=100k=300
유저픽 약4.0
6.7
유저픽 강1.5
2.3
인기검색어1.0
2.0

평균 하나로 못 골라요. 구간별 허용선을 정하는 문제예요.

3

근거 2 — 100은 불변의 경계

인기검색어 상위 10개 중 바뀌는 템플릿 수예요.

k=600.6
k=1001.0
k=2001.9
k=3002.0

인기검색어에서 바뀌는 템플릿이 1개 이내인 마지막 값이라 실험군 1이 100이에요.

4

근거 3 — 300 위로는 변화 없음

유저픽 약한 구간의 교체 수예요.

k=1004.0
k=2006.3
k=3006.7
k=5007.0

300 위로는 올려도 안 변해요. 모든 검색어에 닿는 최소값이라 실험군 2가 300이에요.