같은 AI에게 한국인과
미국인을 연기시켰다
합성 패널 · 한국 6·3 지선 백테스트 × 미국 중간선거 실측 · AI 예측 방법론
CRM 메시지에는 관문이 다섯 개 있다. 보냈다 → 열었다 → 읽었다 → 클릭했다 → 샀다. 관문마다 허들이 다르지만, 내 경험으로 가장 높은 벽은 가운데다 — 열게 만드는 것까지는 제목의 일이고, 사게 만드는 것은 상품의 일이다. 읽고 클릭하게 만드는 것, 그게 메시지의 일이고 가장 어렵다.
「누구에게 보낼 것인가」는 풀 수 있는 문제였다. 리테일 브랜드의 CRM을 맡아 RFM 모델을 만들었을 때, 세그먼트를 가른 순서 그대로 클릭률도 매출도 줄을 섰다 — 모델이 대단해서가 아니라 무엇을 한 번의 구매로 셀 것인가라는 기준을 제대로 갈랐기 때문이다. 그런데 끝까지 안 풀리는 질문이 하나 남았다. 「그래서, 어떤 메시지를 쓰는가?」 보내 보기 전에는 아무도 모른다. 보내고 나면 이미 늦다.
그 답을 찾다 합성 오디언스(synthetic audience)에 닿았다 — AI 페르소나 집단에게 메시지를 먼저 보여주고 반응 분포를 얻는 방법으로, 미국에서는 이미 정치 캠페인 쪽에서 상업화가 진행 중이다. 믿기 전에 시험부터 하기로 했다. 시험장은 선거로 골랐다 — 정답(개표)이 공표되는, 세상에서 가장 투명한 행동 데이터라서. 그렇게 같은 AI에게 한국 유권자와 미국 유권자를 연기시켰고, 결과부터 말하면 — 한국 AI는 과묵했고, 미국 AI는 고집불통이었다.
01한국 — AI가 답을 거부한다
시작은 한국이었다. 실제 인구·투표 통계로 만든 페르소나에게 정치 질문을 던졌다. 서울 35세 남성: 지지 정당을 물으면 12번 중 12번 「지지 정당 없음」. 창의성을 최대로 올려도(temperature 1.0) 분산이 0이었다. 광주 45세 여성에게 대통령 국정 평가를 물으면 긍정이 10번 중 0번 — 실제 광주의 긍정 평가는 79%인데. 대통령 이름을 과거 인물로 바꿔 물어도 같았다. 모르는 게 아니라, 한국 정치라는 주제 자체를 회피하는 것이다.
지역별 지지율 집계를 배경 정보로 쥐여줘도 소용없었다. 「강남 30.1%」 같은 중간 범위의 통계는 페르소나의 입을 열지 못했다 — AI는 집계 수치를 개인의 목소리로 번역하지 않는다.
02돌파 — 통계가 아니라 이력을 줬다
문을 연 것은 한 줄이었다. 「당신은 지난 대선에서 ○○ 후보에게 투표했습니다.」 집계 통계가 아니라 개인의 과거 행동으로 주자, 같은 페르소나가 즉시 자연스러운 분포를 냈다 — 같은 정당 투표자 여덟이면 긍정 4·부정 2·유보 2처럼, 실제 여론조사에서 보이는 결이다.
과거 투표는 구별 실제 개표 비율(선관위 전수)로 배분했다. 그러자 구별 순서가 실제와 맞아 들어갔고(강남 15% < 노원 24%), 모델이 정답을 학습할 수 없는 최신 여론조사와 준-블라인드로 대조하자 서울 오차 +0.6%p까지 내려왔다.
여기서 얻은 규칙 하나. AI에게 통계를 읽어 주는 것은 소용없다. 통계를 개인의 이력으로 번역해 주어야 한다. 이 번역이 이 방법의 심장이다 — 기억해 두시라, 뒤에서 다시 쓴다.
03미국 — 정반대의 실패
같은 엔진을 미국에 이식했다. 이번엔 반대 문제가 터졌다. 미국 페르소나는 근거를 주지 않아도 완벽하게 갈렸다 — 텍사스 58세 백인 남성은 8번 모두 같은 쪽. 메인주에서는 현지에서 유명한 「공화당 상원의원에게 민주 성향 유권자가 넘어가는」 크로스오버 패턴을 프롬프트에 넣어주지 않았는데 스스로 재현했다. 영어 정치 데이터를 워낙 많이 학습해서, 페르소나가 아니라 사실상 정치 평론가다.
문제는 그 지식에 자체 성향이 붙어 있다는 것이다. 공화당이 크게 이기는 주에서도 모델은 민주당 우위를 뱉었고, 뉴스·후보 프로필 같은 부품을 끼워도 답이 거의 움직이지 않았다. 한국 AI는 비어 있어서 문제였고, 미국 AI는 차 있어서 문제다.
04실패 모드가 정반대라는 것이 발견이다
그림 2 · 같은 페르소나에게 같은 질문을 반복한 결과 — 실패의 방향이 정반대다
| 한국 페르소나 | 미국 페르소나 | |
|---|---|---|
| 실패 모드 | 과묵 — 응답을 회피한다 | 과신 — 자기 견해를 고집한다 |
| 원인 | 한국어 정치 데이터 부족 | 영어 정치 데이터 과잉 |
| 무엇을 하는가 | 근거를 설계해 주입한다 (과거 행동 이력) | 통계 앵커로 눌러 잡는다 (calibration) |
이 표가 말하는 것: 어느 쪽이든 「AI를 잘 시키는」 문제가 아니다. 「무엇을 근거로 주고, 무엇을 통계로 잡을지 설계하는」 문제다.
대학원에서 공부하던 시절, 구글의 데이터 사이언티스트 특강에서 들은 한마디가 아직도 남아 있다. 요지는 이랬다 — 「어차피 모델은 있는 걸 가져다 쓴다. 중요한 건 어떤 데이터를, 어떻게 가공해서, 어떻게 전달하느냐다.」 그때는 LLM이라는 말도 없던 시절인데, 지금 와서 한 글자도 고칠 것이 없다. 모델은 누구나 같은 것을 쓴다 — 갈리는 것은 주입하는 데이터의 설계다. 한국 페르소나의 침묵과 미국 페르소나의 고집이 그 오래된 문장을 정확히 다시 증명하고 있었다.
05성적표 — 정직하게
이 방법이 어디까지 왔는지는 숫자로 적는 게 맞다. 한국 6·3 지방선거를 백테스트했다(모델의 지식 컷오프가 선거보다 앞서 정답을 학습할 수 없는 조건). 잣대는 하나로 통일한다 — 오차(MAE, %p) = Σ|예측 득표율 − 실제 개표 득표율| ÷ 지역 수. 낮을수록 좋다.
| 단계 | 전체 오차(MAE) | 접전 4곳 |
|---|---|---|
| 배분 + AI만 | 12.45%p | 4.74 |
| + 현직 프리미엄·과대마진 압축 | 6.89 | 2.65 |
| + 연고 크로스보팅 | 4.08 | 2.65 |
| 국내 경쟁 AI 예측 발표치 | 2.99 | 4.04 |
| 지상파 출구조사 | 2.68 | — |
그림 1 · 6·3 지방선거 백테스트 — 부품(현직 프리미엄·압축·크로스보팅)을 실측 계수로 끼울 때마다 오차가 내려간다. 정답을 아는 상태의 조립이다
전체 오차로는 아직 경쟁 AI에 뒤진다(4.08 vs 2.99). 대신 승부가 갈리는 접전지에서는 앞선다(2.65 vs 4.04) — 출구조사 짝수 자리다. 그리고 이것은 정답을 아는 상태에서 부품을 조립한 백테스트다. 성능의 진짜 증명은 아직 없다 — 그건 아래 §07에서.
표에 없는 실험이 하나 있다 — 사실 저 계수들 전에, 후보 개인의 미시 정보(현직 여부·출신·경력)를 페르소나에게 직접 주입해 봤다. 오차는 12.45에서 10.35로 내려왔다. 레버가 맞긴 맞는 것이다. 그런데 뜯어보니 모델은 「현직」이라는 단어에 일률 +5~9%p를 얹고 있었다 — 그게 정답 방향인 지역은 좋아졌지만, 아닌 지역은 오히려 나빠졌다. 실측된 현직 프리미엄은 +2.95%p다. 그래서 이 실험은 폐기가 아니라 교체됐다 — 방향은 AI가 알지만, 크기는 AI에게 맡기면 안 된다. 미시 정보가 알려준 레버를 통계 계수로 다시 만든 것이 표의 두 번째 행이다.
연고 크로스보팅도 같은 방식이다. 2014년 대구에서 실측된 +22.3%p가 12년 뒤 같은 후보에게 +22.5%p로 그대로 반복됐다 — 계수는 전부 과거 선거 전수 실측에서 온다.
06그래서 이 엔진은 무엇을 파는가
서두의 질문으로 돌아가자 — 「어떤 메시지를 쓰는가」. 이 엔진이 파는 것은 두 가지다. 정치 쪽에는 접전지에서 출구조사급 정밀도를 내는 AI 예측 — 승부가 갈리는 곳만 정확하면 되는 캠프의 수요와 정확히 겹친다. 그리고 커머스 쪽에는 보내기 전에 메시지를 시험하는 합성 고객 패널.
§02의 규칙을 그대로 옮기면 된다. 유권자 페르소나가 「강남 30.1%」라는 집계에 입을 열지 않았듯, 고객 페르소나도 「우리 고객 재구매율 24%」로는 연기하지 못한다. 유권자에게 「당신은 지난 대선에서 ○○를 찍었다」를 줬듯, 고객에게는 당신 회사의 주문 이력을 준다 — 「당신은 지난 1년 이 브랜드를 세 번 샀고, 마지막은 할인 때였다」. 그 순간 페르소나는 신제품 컨셉에, 가격 인상에, 카피 A와 B에 답하기 시작한다.
관문마다 따로 물을 수 있다는 것이 이 방법의 다음 단계다. 다섯 관문은 각각 다른 질문이다 — 이 제목이면 여는가, 이 첫 줄이면 읽는가, 이 제안이면 누르는가. 실제 발송은 다섯 관문을 한 번에 통과해야 하지만, 합성 패널은 관문을 하나씩 떼어 시험할 수 있다. 우리가 지금 설계하고 있는 부분이다 — 아직 실측 전이므로, 여기까지는 설계이지 성능 주장이 아니다.
그리고 §03의 교훈이 경고로 붙는다. 모델은 소비 트렌드도 잔뜩 학습했다 — 놔두면 자기 견해를 말한다. 그래서 실측 통계로 눌러 잡는 calibration 층이 반드시 필요하고, 그 층이 곧 상품이다. 모델은 누구나 쓴다. 당신 회사의 데이터를 페르소나가 연기할 수 있는 이력으로 바꾸는 설계는 누구나 못 한다.
07이 방법이 틀렸다면, 그것도 공표한다
지금 미국 중간선거(11월 3일)를 대상으로 예측을 진행 중이다. 방법론과 합격 기준(오차 4%p 이하)을 개표 전에 봉인했다 — 문서의 지문(해시)을 미리 공개해 사후에 고칠 수 없게 만들었고, 실패하면 실패도 그대로 공표한다. 백테스트는 연습이었고, 그것이 첫 실전이다.
정확히 적어 둔다 — 봉인한 숫자는 이 글의 AI 페르소나가 직접 낸 값이 아니다. 지지율에서 출발한 통계 앵커다. 봉인 직전에 AI에 뉴스·후보 정보를 끼워 보니 한 주(조지아)에서만 17%p가 흔들렸고, 원인을 통제할 수 없었다. 그래서 AI의 직접 출력은 봉인치에서 뺐다. AI 엔진은 같은 날 진단으로 함께 채점되고, 그 성적도 따로 공표한다. §06에서 말한 그대로다 — AI만으로는 못 맞추고, 실측 통계로 눌러 잡는 층이 있어야 한다.
개표 전에 잠가 둔 선거가 둘 더 있다 — 브라질 대선 결선(10월 25일)과 대만 지방선거(11월 28일). 그 둘은 페르소나가 아니라 지난 개표와 조사로 만든 구조 모델이다. 채점은 선거마다 결과가 나오는 대로 봉인했던 숫자와 실제 개표를 나란히 놓은 후속 글로 따로 낸다.
봉인을 준비하며 배운 것이 둘 있다. 하나 — 예측 업계의 기본 장사는 선택 편향이다. 맞은 예측은 사후에 크게 걸리고, 틀린 예측은 조용히 사라진다. 개표 전에 봉인하면 그 장사가 불가능해진다. 우리가 봉인하는 이유는 정직해 보이려는 게 아니라, 사후 선별이 불가능한 예측만이 다음 계약의 근거가 될 수 있어서다. 둘 — 가장 어려웠던 건 예측이 아니라 합격선을 미리 적는 일이었다. 「몇 %p면 성공인가」를 결과를 보기 전에 못 박아야 했는데, 그 기준을 정하는 순간 백테스트의 모든 숫자가 변명이 아니라 근거가 됐다.
그리고 이 구조는 선거에 갇힐 이유가 없다. CRM 캠페인에도 똑같이 쓸 수 있다 — 발송 전에 합성 패널의 예측(어느 세그먼트가 어느 메시지에 반응할지)을 봉인하고, 발송 후 실측 클릭·매출과 대조해 같이 채점하는 것. 「우리 AI가 맞는지 결과로 확인하자」를 계약 구조로 만드는 방법이고, 우리가 다음으로 설계하는 것이 그것이다.
11월 3일의 채점표가 궁금하다면, 아래에 이메일을 남겨 두시라. 개표가 끝나면 이 글의 후속으로 채점표를 쓰고, 그 글이 나올 때 보내드린다 — 맞았어도, 틀렸어도.
방법론 — 합성 패널: 공표 집계자료(선관위 개표·인구통계)로 grounding한 LLM 페르소나 집단의 응답 분포. 본문의 모든 예측치는 여론조사가 아니라 AI 예측이다. 백테스트는 모델 지식 컷오프 이후 선거로만 검증(정답 학습 차단). 개인 단위 유권자 프로파일링 없음 — 페르소나는 공표 통계의 합성이다. 특정 정당·후보에 대한 논평이 아니라 방법론 기록이다.
같은 방법을 다른 업종에 적용한다. 병목은 업종마다 다르고, 그 차이를 찾는 것이 이 시리즈가 하는 일이다.
업종 하나의 병목을 공개 데이터로 짚습니다. 새 글이 나올 때만 보냅니다.
여기까지가 공개 데이터로 보이는 것입니다. 재구매·증분·귀속 — 결정을 바꾸는 숫자는 귀사 데이터 안에 있고, 그걸 세울 수 있는 상태로 만드는 것이 Lambency가 하는 일입니다.
caffrey.w.lee@gmail.com