10 minute read

“언제 끼어들까(proactive)”를 넘어, 애초에 나만의 비서(assistant)를 초개인화한다는 게 뭔지 떠오르는 마구잡이의 생각들 정리. 아직 정말 생각해보는 단계로, 동의가 되는 부분과 고민해야된다고 생각하는 부분을 구분한다.


Motivation

대화 시스템 내에 개인에게 최적화된 assistant를 구현하고자 한다면, 내게 떠오르는 자연스러운 문제는 이걸 어떤 최적화를 통해 어떻게 초개인화하여 그 효과를 입증할지, 그 전체 프로세스중 어느 한 구석도 도통 분명히 잡히지 않는다는 것. 몰론 proactive(선톡)는 한 가지 단서일 수는 있지만, 그건 초개인화의 결과 중 하나지 본질은 아닐 것이다.

여기서 assistant는 부르면 답하는 도구가 아니라 유저의 대화를 지켜보는 observer다. 대화를 관찰해 그 사람에 대한 것을 쌓고(유저모델), 그것으로 응답하거나 먼저 끼어든다. 즉 이 글에서 개인화는 관찰 > 유저모델 > 행동의 흐름이고, 아래 정의는 그 가운데 ‘유저모델’을 다룬다.

정의: 유저모델과 개인화

몇 가지 개념이 혼동될 수 있어서 미리 정의하고 넘어가고자 한다. 이 정의는 절대적인 것은 아니며, 연구적으로 통용된다고 단언하기도 어려운 부분이 있다. 다만 현재 아이데이션에서 서술을 편리하게 하기 위한 목적으로 정리되었으며, 향후 연구를 진행하면서 더 뾰족(?)하고 명료하게 정의할 수 있도록 해야할 것이다.

유저모델 $z_u$. agent가 유저 $u$에 대해 그 사람에게 맞춘 응답을 하는 데 쓰는 정보를 통틀어 유저 모델 $z_u$라 하자. 같은 질문이라도 어시스턴트는 $z_u$ 없이 답할 수도(누구에게나 같은 generic 응답), $z_u$를 ground하여 답할 수도(그 사람에 맞춘 응답) 있다. 이때 ‘응답’을 단순 ‘들어온 질문에 대한 답’으로 생각하지 않고, 질문이 없는 순간에 먼저 말을 걸지 말지를 정하는 것까지 포함하는, 넓은 의미의 행동으로 보고자 한다. 그래야 $z_u$가 ‘무엇에 답하나(reactive)’만이 아니라 ‘언제 말을 거나(proactive)’에도 관여하게 되고, KANANA의 선톡(proactive)도 같은 표현으로 정의될 수 있도록 하고자 한다.

$z_u$를 그 형태로 규정하지 않고 일단은 어떤 기능을 하는 지로 규정해보려고 한다. 같은 질문에 대해 $z_u$를 넣은 응답이, 넣지 않은 응답보다 그 유저에게 평균적으로 더 낫다는 결과를 성립시키는 것이면 형태가 무엇이든 유저모델이 된다고 보려 한다. 예를 들면, cateogrical하게 묶인 어떤 slot-value 쌍처럼 전통적인 방식을 들고 있는 user에 대한 knowledge base일 수도, 추상화된 embedding vectors일 수도 있을 것이며(정보 묶음), 추상화된 텍스트 문장이나 확률적으로 동작하여 유저의 다음 행동을 예측하는 뉴럴 네트워크 모델 같은 것이 될 수도 있을 것이다. (학습된 per-user 임베딩 USER-LLM, 유저별 파라미터 모듈 OPPU.)

다만, 이렇게 형태를 규정하지 않는다면 $z_u$가 정확히 어떤 모습이어야 하는지 전혀 좁혀질 수 없다. 최소 직전 대화 몇 턴을 그대로 넣어주는 것도 $z_u$로 볼 수 있는가? “안 넣는 것보다는 낫다”는 결과적 조건은 충족할 수도 있을 것이기 때문이다. 적어도 $z_u$가 유익한 경우에 대해 아래 두 가지를 조건을 만족해야 한다고 본다.

  • [조건 1] 시간적 일관성. 유저의 세션이 바뀌어도 유지되는 정보여야 한다. 어떤 세션에서 세운 $z_u$가 같은 유저의 다른 세션에서 적용되지 않는 정보라면, 즉 세션마다 reset할 수 있는 식의 임시적(temporal) 정보라면, $z_u$라고 볼 수 없을 것이다.
  • [조건 2] task 전이성. 어떤 task에서 구한 $z_u$가 다른 task에도 적용되어야 한다. 즉 특정 task에 한정한 rule은 의미가 없다고 보고 배제하거나, 별도 task 별 유저 모델로 정의하는 방식 등을 취할 수 있다.

두 조건을 모두 만족하는 $z_u$만 유저 모델로 인정된다면, 적어도 통째로 대화를 전부 넣어주는 것은(raw context) 효과적이지 못할 것이고, 적절히 선택된 어떤 대화 조각은(retrieval) 때에 따라서는 효과적으로 보일 수도 있을 것이라고 예상된다.

개인화. 결국 개인화란, 세션과 task에 걸쳐 유저 개인에게 꾸준히 남는 정보($z_u$)를 세우고 그에 맞춰 응답하는 것이라 정리할 수 있다.

다만 이 ‘일관성 + 전이성’ 두 조건이 정말 본질적 대상에 가까운가, 아니면 여기서도 빠진 감각이 있는가. 빠졌다면 그게 다음 문제일 가능성이 높다.

Problem States. 위 정의는 문제를 다음 두 가지로 분리해서 볼 수 있게 한다.

  • representation: $z_u$를 무엇으로, 어떻게 모델링/추정할 것인가.
  • policy: 추정한 $z_u$를 실제 응답에 어떻게 쓸 수 있는가. 무슨 내용을, 언제, 어떤 톤(?)으로, 어디까지 드러낼지.

가령 선톡은 이 중 policy의 ‘언제(타이밍)’에 해당한다. ‘지금 이 사람에게 말을 걸어야 하나’를 $z_u$로 판단하는 것이 곧 선톡이니, 선톡은 유저모델의 한 응용이지 그 자체가 본질은 아니다. (Deng et al. 2024, Deng et al. 2025.)

즉, 주요 어려움은 representation쪽에 있다고 보고, 이 노트는 이를 우선 고민한다. 상대적으로 policy는 무슨 내용을, 언제, 어떤 톤으로 내보낼지로 정의하고 나면, 쓸 만한 $z_u$만 있으면 대체로 프롬프트나 규칙, 제품 수준에서 풀리는 engineering 문제에 가까울지도 모른다. 즉 조정할 부분은 많아도, 아직 안 풀린 모델링 난제가 여기 있다고 보긴 어렵다는 자의적인 판단인데, 표현 형식이 정리되어야 고민해볼 수 있을 것이다. (다만 이건 확정이 아니라 고민중의 가정일뿐이고, 같은 $z_u$라도 언제, 어떻게 꺼내는지가 유저의 만족을 구분짓는 경우가 있다면 policy를 부차적으로 보고 있는 이 판단은 기각될 수 있다.)

개인화 품질의 병목은 $z_u$를 어떻게 쓰느냐가 아니라 애초에 어떤 $z_u$를 세우느냐를 우선하고자 한다.

representation: 무엇을 모델링하나

  • 중요한 부분은 모델링할 preference, 관계 그래프(누구와 어떤 사이인지), routine, goal, 어떠면 그 안에 잠재적으로 존재하는 유저에 대한 기저정보 등으로 보인다.
    • 이를 단순히 명목화(카테고리로 분류하여 하나씩 열거)하는 게 적합한 방식인지 전혀 확신이 서지 않는다. 확장성을 포함해서 누가 언제 어떻게 얼마나까지를 정의해내는지는 정말로 전적으로 human engineering이라고 생각한다. .
    • 그렇다면 이걸 아우르는 하나의 표현(가설) 을 세우는 게 맞나? 지난 Latent Preference Modeling 연구에서의 어려움으로, 이를 가설화 한다는 것은 오류 가능성 자체를 내포하고 있으며, 한번 추상화된 가설을 다시 뒤집는 것에는 비용이 비싸다는 인상이다.
    • 어쨌든 “잠재”라고 하는 것은, 말 그대로 숨은 상태로 존재한다는 것이기 때문에 그 범위에 한계를 매기기 어려우므로… 물론 그 어려운 것을 해내야 가치있는 연구가 된다는 사실은 잘 알고 있다.
  • 현재까지 드는 생각은, user에 대한 모델이 “지정 항목별로 담느냐(categorical slots)”도 “무엇이다(hypothesis)”라고도 추상화하게끔 하는 방식 모두에 거부감이 든다.
    • “표현 = 통합 가설(예: 유저는 잠재 정책이다)”은 발견이 아니라 결정을 발견인 척하는 느낌으로도 볼 수 있다. 유저의 real policy를 모르는데 그렇게 정의하고 출발하는 것.
      • 그냥 당연히 한계일수밖에 없는 문제일 수 있는데, 가령 RL에서도 신이 내린 reward model은 알 수 없지만 proxy를 사용한다거나(reward overoptimization, InstructGPT) 하는 측면에서, 그럼에도 불구하고 너무 사람에 따라 다르고 상황에 따라 달라 가변성이 크다고 느낀다.
    • “평가 = 슬롯 명목화(선호 맞췄나 / 루틴 맞췄나)”는 사람 이해를 서식 채우기로 환원해서 시쳇말로 짜친다. 어느 순간이든 그 사람 속성 대부분은 지금 결정과 무관하기도 하고.

평가: 개인화한 경우가 그렇지 않은 경우보다 나은지를 보이는 방법

개인화가 더 낫다는 걸 가장 확실하게 보이는 방법은 실제 유저에게 배포해 만족도를 직접 조사하는 것이다. 당연하게도 이 방식은 비싸고 느리며, 소규모 연구에서는 privacy와 ground truth 확보도 어렵다. 시스템 배포 없이도 평가할 수 있는 상호보완 평가 축을 설계하기 위해 추천 시스템(recsys)을 참고했다. 연구 철학(?) 관점에 추천 시스템도 “무엇이 객관적으로 옳은 추천인가”라는 정답 없는 문제를 다룬다고 본다. 이 문제를 평가 가능한 형태로 바꿔 온 부분, 그러니까 정답이 없는 문제를 어떻게 다뤄왔는지가 주요 참고점이다. (Dacrema et al. 2019, Schnabel et al. 2016.)

확실한건 예측의 단위를 참고하긴 어렵다. 추천 시스템은 유저가 다음에 고를 “아이템”이 Top-K 안에 들었는지로 평가하는데, 적어도 범 task에서 preference의 문제를 다룰 떄 아이템 수준으로 평가하는 것은 어렵지 않을까 싶다. action set이 많은 agentic tool-use 상황이라면 비슷하게 엮어볼 수도 있겠는데, 단순 어떤 task 로 연결시킬지로 문제를 환원해도 될지는 잘 모르겠다. 아무튼 현재는 그 단위를 “유저의 결정” 또는 “이 응답이 이 유저가 받아들였는가”로 둔다. 모순적이지만 이렇게 정리해놓고 보면 여전히 top-k, pairwise, leave-one-out 같은 방법이 그대로 적용될 수 있다. (pairwise 랭킹 BPR, top-k 지표 NDCG.)

평가 방식

서로 다른 질문에 답하는 세 축을 함께 본다.

1. Held-out 예측: “이 유저의 다음 행동을 맞히는가”. 한 유저의 행동 기록을 시간순으로 자른다. 앞부분만으로 유저모델을 구축한 뒤, 뒷부분을 예측하게 한다. 정답은 그 유저가 실제로 한 다음 행동이다. 추천 시스템의 leave-one-out(마지막 하나를 숨겨두고 모델이 그걸 맞히는지 보는 방식)을 “아이템”이 아니라 “행동” 수준으로 옮긴 것이다. (per-user held-out 벤치마크 LaMP, multi-session 프로필 추적 PersonaMem.)

2. Counterfactual swap: “정말 그 유저에게 맞춰 움직이는가” (가장 중요). 같은 질문을 주되, 유저 정보만 A에서 B로 바꿔 넣는다. 개인화가 제대로 됐다면 출력이 각 유저에 맞는 방향으로 달라져야 한다. 바뀌지 않는다면 유저를 무시하는 generic이고, 엉뚱한 방향으로 바뀌면 잘못 개인화된(mis-personalized) 것이다. 핵심은 비교 대상을 “유저 정보 없음(generic)”만 두지 않고 “엉뚱한 사람의 정보를 넣은 것(wrong-user)”까지 두기 위함으로, 그래야 “generic보다 낫다”를 넘어 “다른 사람 모델보다, 즉 바로 그 유저의 정보에 의존해서 낫다”를 보일 수 있다. (유저에 따라 응답이 달라져 stateless 평가 실패 Wang et al. 2025, gold 없이 per-user 정렬 평가 PREF.)

3. 만족/효용: “실제로 유저에게 도움이 됐는가”. 결국 유저가 이득을 봤는지가 중요하다. 다만 실제 사람으로 재려면 privacy와 정답 확보가 어려우니, 시뮬레이션 유저를 대화 루프에 넣고 제안을 받아들였는지/거절했는지, 성공까지 몇 턴 걸렸는지 등으로 만족도를 간접적으로 재볼 수도 있다. (SimulatorArena.)

다만 “유저의 특정 속성을 맞혔는가”(선호 맞췄나, 루틴 맞췄나) 식의 속성 맞히기를 주된 지표로 삼지는 않으려 한다. 속성을 다 맞혀도 그 순간의 응답이 이 사람에게 안 맞을 수 있고, (그걸 강제하는 게 적당하지 않을 수 있음) 속성 정확도가 개인화가 실제로 도움이 됐는지를 보장하지 못하기 때문이다. 적절한 예시인지는 잘 모르겠지만, 유저가 채식주의자라는 정보가 올바른 $z_u$이나, 현재 관련 정보값이 없다고 가정하자. 그래도 유저가 “근처 점심 추천, 채식 위주로”라고 물으면, 모델은 지금 대화 맥락만 보고 채식 식당을 추천할 수도 있다. 즉 유저에 대한 정보를 맞추지 못했다고 해도 응답은 잘 할 수도 있는 것이다. 혹은 그 틀린 속성이 현재 상황의 결정과 무관하다면? 응답은 역시 올바르게 될 수도 있으므로. 다만 어떤 representation이 되어야하는지를 확정하지는 않았으므로 (만약 속성 단위 key-value pair가 필요하다면 주요 지표로 고려해야할 수도 있기 때문에) 속성 단위 평가를 완전히 버리지는 않고, 어떤 차원에서 개인화가 되고 안 되는지를 보는 ablation 분석으로 보는게 적합하다고 본다.

3번 평가에 대해: user simulator 만들기

핵심은 유저를 흉내내는 게 아니라 잠재 프로필을 미리 정해놓고 그 프로필대로 행동하는 유저를 생성하는 것이 되어야 하는데 유저별 프로필을 연구자가 세팅하니 ground truth를 확정할 수는 있을 것이다. 방식은 아래 두 가지가 기본적으로 떠오르는데, 핵심적으로 고민해야하는지는 잘 모르겠다. 조잡해서 차라리 소규모 Human Test가 나아보이기도 하다.

  • 프롬프트 페르소나: LLM에 프로필을 주고 일종의 role-playing. 다만 이 방식으로는 persona control이 잘 되지 않는다는 숱한 연구가 보고되고 있고(persona 일관성 문제), assistant-LM 자체가 유저처럼 행동하도록 학습되지를 않아서(UserLM) 근본적으로 닮기 어렵다.
  • fine-tuned user LM (userlm식): 실제 대화의 유저 턴으로 role-flip 학습(DAUS). 분포가 real user에 가까운건 맞는데 학습과 그에 상응할 데이터가 필요하고, 프로필 당 모델이 필요하다는 비효율이 크다.

To do

  • representation: user representation를 실제로 어떻게 만들고 유지해야하는지가 핵심인데, 아직 정리가 잘 안 됨. 뭔가 아예 point estimate 이상으로 보고 싶은데 걸리는게 많아 아직 한참 고민중… 서울에서 열리는 ICML 참여 기회가 있는데 그 때 관련 연구를 좀 더 들여다볼 수 있으면 한다.
  • 관측의 최소 단위: 유저의 “수용”이 관측되는 최소 단위가 무엇인가(제안 accept/reject, 응답 edit, 다음 발화 sentiment, thumb up/down).
  • task 정의를 위해 policy 고도화 필요: 현재는 representation이 핵심이라 policy(개입 여부/타이밍)같은 논의는 주요하게 다루지 않았는데, 사실은 “무슨 task를 풀지”를 정의하려는 순간 그 행동(개입)을 정면으로 다뤄야만. 주력 task를 (a) 다음 행동 예측으로 좁혀 representation에 집중하는게 맞는지, (b) proactive 개입까지 포함해서 observer로서의 개입여푸 파악을 포함해서 강조할지 잘 모르겠다. (b)는 “개입 타이밍에 정답이 없다”는 주관성이 또 평가 병목으로 작용할듯…
  • 관찰/행동 서술 공백: 개인화를 관찰 > 유저모델 > 행동으로 뒀는데, 정작 “대화에서 무엇을 어떻게 관찰해 $z_u$를 세우나(입력)”와 “$z_u$로 언제 무엇을 개입하나(출력)”에 대한 고민 필요.

References

너무 개괄적으로 봐서 좀 천천히 살펴봐야될 듯. 아직 어떤 연구가 조명받고 있는지 잘 파악이 안 됨.

개인화 / 유저모델 (representation)

  • Zhang et al. (2024). Personalization of Large Language Models: A Survey. arXiv:2411.00027. 개인화 LLM 분류/정의 Survey 페이퍼.
  • Salemi, Mysore, Bendersky, Zamani (2024). LaMP: When Large Language Models Meet Personalization. ACL 2024. arXiv:2304.11406. per-user 프로필 기반 개인화 벤치마크 7 task.
  • Jiang et al. (2025). Know Me, Respond to Me: Benchmarking LLMs for Dynamic User Profiling (PersonaMem). COLM 2025. arXiv:2504.14225. 세션을 넘어 유지 및 전이되는 유저 프로필? 확인필요. (앞서 정의한 조건 1, 2와 직접 대응되기는 해서).
  • Ning et al. (2024). USER-LLM: Efficient LLM Contextualization with User Embeddings. WWW 2025 Companion. arXiv:2402.13598. raw history 대신 학습된 per-user 임베딩($z_u$의 한 형태).
  • Tan et al. (2024). Democratizing LLMs via Personalized PEFT (OPPU). EMNLP 2024. arXiv:2402.04401. 유저당 파라미터 모듈로 $z_u$를 담는 접근.

잠재 선호, proxy reward

  • Gao et al. (2024). Aligning LLM Agents by Learning Latent Preference from User Edits (PRELUDE/CIPHER). NeurIPS 2024. arXiv:2404.15269. 명시적 라벨이 아니라 유저의 edit에서 잠재 선호를 추론(관측 신호 논의와 연결).
  • Gao, Schulman, Hilton (2022). Scaling Laws for Reward Model Overoptimization. ICML 2023. arXiv:2210.10760.
  • Ouyang et al. (2022). Training LMs to Follow Instructions with Human Feedback (InstructGPT). NeurIPS 2022. arXiv:2203.02155. RLHF에서 preference proxy의 표준 레퍼런스.

proactive

  • Deng, Liao, Lei, Yang, Lam, Chua (2025). Proactive Conversational AI: A Comprehensive Survey. ACM TOIS 43(3). doi:10.1145/3715097. proactive 대화 AI 최신 서베이.
  • Deng et al. (2024). Towards Human-centered Proactive Conversational Agents. SIGIR 2024. arXiv:2404.12670.
  • Liu et al. (2025). ProactiveEval: A Unified Evaluation Framework for Proactive Dialogue Agents. arXiv:2508.20973 (preprint). proactivity를 target planning + dialogue guidance로 평가.

평가: recsys, counterfactual

  • Järvelin, Kekäläinen (2002). Cumulated Gain-based Evaluation of IR Techniques (NDCG). ACM TOIS 20(4). doi:10.1145/582415.582418. 단일 정답 대신 top-k 랭킹 지표.
  • Rendle, Freudenthaler, Gantner, Schmidt-Thieme (2009). BPR: Bayesian Personalized Ranking from Implicit Feedback. UAI 2009. arXiv:1205.2618. pairwise 랭킹 목적함수(평가를 상대 랭킹으로).
  • Ferrari Dacrema, Cremonesi, Jannach (2019). Are We Really Making Much Progress? RecSys 2019. doi:10.1145/3298689.3347058. offline 평가 이득이 제대로된 baseline 없이는 착시일 수 있다는 연구.
  • Schnabel et al. (2016). Recommendations as Treatments: Debiasing Learning and Evaluation. ICML 2016. arXiv:1602.05352. 추천을 인과적 처치로 보고 IPS로 편향 없는 offline 추정.
  • Wang, Ho, Koyejo (2025). The Inadequacy of Offline LLM Evaluations: A Need to Account for Personalization in Model Behavior. arXiv:2509.19364 (preprint). 같은 질문도 유저에 따라 응답이 달라져 stateless 평가 놓침(counterfactual swap 축의 근거).
  • Fu et al. (2025). PREF: Reference-Free Evaluation of Personalised Text Generation in LLMs. arXiv:2508.10028 (preprint). gold 개인화 정답 없이 per-user 정렬을 측정.

user simulator

  • Naous, Laban, Xu, Neville (2025). Flipping the Dialogue: Training and Evaluating User Language Models (UserLM). arXiv:2510.06552 (preprint). 유저 턴으로 role-flip 학습한 전용 User LM; assistant-LM은 유저 흉내내기 실패.
  • Dou et al. (2025). SimulatorArena: Are User Simulators Reliable Proxies for Multi-Turn Evaluation of AI Assistants? EMNLP 2025. arXiv:2510.05444. 프로필 조건 시뮬레이터가 인간 판단과 ρ≈0.7(시뮬 realism 검증).
  • Yoon, He, Echterhoff, McAuley (2024). Evaluating LLMs as Generative User Simulators for Conversational Recommendation. NAACL 2024. arXiv:2403.09738. 시뮬레이터가 실제 유저 행동을 얼마나 재현하는지 측정.
  • Sekulić et al. (2024). Reliable LLM-based User Simulator for Task-Oriented Dialogue (DAUS). SCI-CHAT@EACL 2024. arXiv:2402.13374. 실제 TOD로 fine-tune한 유저 시뮬레이터.
  • Abdulhai et al. (2025). Consistently Simulating Human Personas with Multi-Turn RL. arXiv:2511.00222 (preprint). 페르소나 일관성을 RL로 강화.