추천을 넘어, 사용자 상태로 · 1부 / 전 3부

일반적인 추천 알고리즘과 우리의 접근이 다른 이유

추천 시스템을 설명할 때 우리는 흔히 “어떤 아이템의 점수를 높일 것인가”부터 이야기합니다. 협업 필터링은 비슷한 사람이 선택한 것을 찾고, 콘텐츠 기반 모델은 아이템 속성의 유사성을 계산하며, 시퀀스 모델은 직전 행동에서 다음 행동을 예측합니다. 모두 훌륭한 기술입니다. 다만 이 질문만으로는 설명되지 않는 것이 하나 남습니다. 같은 사람이 왜 오늘, 이 순간에는 어제와 다른 선택을 하는 걸까요?

우리의 출발점은 추천 점수가 아니라 사용자의 변화하는 상태입니다. UMM(User Mind Map)은 커머스, 콘텐츠, 소셜, 광고에서 발생한 행동을 각 도메인의 언어로 그대로 섞지 않습니다. 먼저 도메인별 신호를 중립적인 사용자 상태로 번역하고, 그 상태를 기존 검색·후보 생성·랭킹 모델이 함께 읽게 합니다. 추천 모델을 버리는 접근이 아니라, 서로 다른 추천 모델 아래에 공통의 “사용자 이해 계층”을 놓는 접근입니다.

도식 · 일반 추천과 UMM 기반 추천의 관점 차이

핵심 문장 — 일반적인 추천이 “다음에 무엇을 클릭할까”를 직접 최적화한다면, UMM은 “지금 이 사용자는 어떤 상태인가”를 먼저 표현해 여러 추천기가 같은 문맥을 공유하게 합니다.

계산 대상이 다른 시스템과 비교하면 UMM의 역할이 보인다

UMM의 차이를 이해하려면 모델 이름보다 각 시스템이 무엇을 직접 계산하는가를 비교하는 편이 빠릅니다. 아래 사례들은 서로 우열을 가리는 대상이 아닙니다. PageRank는 검색 순위를 위한 대표적인 링크 분석이고, Amazon과 Netflix는 각자의 서비스에서 개인화를 발전시킨 사례입니다. UMM은 이 모델들을 대신하기보다, 여러 모델이 함께 읽을 수 있는 사용자 상태를 제공합니다.

Google PageRank — 어느 페이지가 중요한가

초기의 PageRank는 웹 페이지를 노드, 하이퍼링크를 방향이 있는 간선으로 보고 페이지의 상대적 중요도를 계산합니다. 중요한 페이지에서 링크를 받은 페이지는 더 높은 점수를 얻습니다. 이를 무작위 탐색자가 링크를 따라 계속 이동할 때, 장기적으로 자주 방문하게 되는 페이지가 어디인가라는 관점으로도 설명할 수 있습니다.

예를 들어 개발자가 “대규모 추천 시스템 설계”를 검색했을 때, 여러 신뢰도 높은 기술 문서가 공통으로 참조하는 페이지는 중요한 문서일 가능성이 높습니다. PageRank는 이런 전역적 중요도를 잘 표현합니다. 다만 PageRank 자체가 “이 개발자가 방금 장애 대응을 끝내 피로한 상태인지”, “입문 자료를 찾는지 심화 자료를 찾는지”를 모델링하는 것은 아닙니다. 실제 검색 순위는 PageRank 하나가 아니라 검색어 관련성 등 여러 신호를 함께 사용합니다.

Amazon item-to-item — 이 상품과 함께 볼 상품은 무엇인가

Amazon이 공개한 item-to-item 협업 필터링은 사용자가 구매하거나 평가한 각 상품과 비슷한 상품을 찾고, 그 결과를 합쳐 추천 목록을 만듭니다. 전체 사용자끼리 매번 유사도를 비교하는 대신 상품 간 관계를 미리 계산해 대규모 카탈로그에서도 실시간 추천을 가능하게 한 접근입니다.

카메라를 본 사용자에게 함께 고려하거나 구매할 만한 렌즈·배터리·메모리카드 후보를 제시하는 장면을 떠올리면 쉽습니다. 실제 제품 호환성은 별도의 카탈로그 규칙으로 검증해야 합니다. item-to-item 방식은 “이 상품을 본 사람이 함께 고려한 상품”을 찾는 데 강합니다. 반면 사용자가 이미 구매를 마쳤는지, 비슷한 상품을 너무 많이 봐서 피로한지, 지금은 새로운 범주를 탐색하고 싶은지를 별도의 공통 상태로 표현하는 것은 다른 문제입니다.

Netflix 개인화 — 이 회원에게 지금 어떤 콘텐츠가 적합한가

Netflix는 공개 기술 글에서 Continue Watching, Today’s Top Picks for You처럼 목적이 다른 여러 개인화 모델이 공통 데이터에서 회원 선호를 학습한다고 설명합니다. 최근에는 모델마다 따로 학습하던 선호 표현을 더 중앙화해 여러 추천 작업이 함께 활용하는 방향도 소개했습니다.

한 회원이 범죄 드라마는 연속으로 완주하고 코미디는 초반에 자주 이탈한다면, 이 시청 흐름은 여러 화면의 개인화에 사용될 수 있습니다. 이 점은 “공통 표현을 여러 모델이 공유한다”는 면에서 UMM과 닮았습니다. 차이는 공개된 Netflix 사례가 하나의 콘텐츠 서비스 안에서 회원 선호를 통합하는 데 초점을 둔다면, UMM은 커머스·콘텐츠·소셜·광고처럼 어휘가 다른 도메인을 중립적인 상태로 번역하고 값마다 신뢰도와 근거 수를 계약으로 제공한다는 데 있습니다.

접근중심 대상주요 입력직접 내는 답UMM과의 핵심 차이
Google PageRank웹 페이지와 링크 그래프페이지 사이의 하이퍼링크전역적으로 중요한 페이지사용자 현재 상태나 관측 근거를 직접 표현하지 않는다.
Amazon item-to-item상품 간 유사 관계구매·평가·조회한 상품함께 고려할 가능성이 높은 상품한 카탈로그의 아이템 관계가 중심이며 공통 상태 계층은 아니다.
Netflix 개인화회원과 콘텐츠의 상호작용시청 순서·완주·서비스 맥락회원별 콘텐츠와 화면 순위공통 선호 표현과 닮았지만 단일 콘텐츠 서비스의 개인화가 중심이다.
UMM시간에 따라 변하는 사용자 상태도메인 행동을 번역한 공통 신호여러 추천기가 공유하는 상태·신뢰도·근거기존 후보 생성·랭킹·정책 모델에 공통 문맥을 제공한다.

도식 · PageRank, Amazon, Netflix와 UMM의 중심 대상 비교

같은 사용자 여정을 모델별로 나눠 보면

한 회사가 쇼핑, 리뷰 콘텐츠, 광고 서비스를 함께 운영한다고 가정해 보겠습니다. 사용자는 월요일에 러닝화를 여러 번 비교하고 관련 리뷰 영상을 끝까지 봤습니다. 화요일에는 러닝화를 구매했습니다. 수요일에는 이미 산 러닝화 광고를 세 번 닫았지만, 러닝 훈련 콘텐츠는 계속 완주했습니다.

기존 모델도 각자의 역할을 잘 수행합니다. 상품 기반 추천은 러닝화와 함께 구매되는 양말이나 깔창을 찾을 수 있고, 콘텐츠 순위 모델은 완주한 리뷰와 비슷한 영상을 올릴 수 있습니다. 광고 모델은 과거의 높은 클릭 가능성을 보고 러닝화 광고를 다시 선택할 수도 있습니다. 문제는 각 모델이 자기 서비스의 관측만 보면 “구매는 끝났고, 관심은 러닝 훈련으로 이동했으며, 같은 상품 광고에는 피로가 쌓였다”는 변화 전체를 공유하기 어렵다는 점입니다.

UMM은 이 여정을 하나의 변하지 않는 선호로 단정하지 않습니다. 화요일 구매 이후 구매 의도는 낮추되 러닝이라는 장기 선호와 콘텐츠 몰입은 유지합니다. 수요일의 반복적인 광고 닫기는 회피와 피로의 근거로 누적합니다. 그러면 커머스 추천은 같은 신발보다 회복용품이나 액세서리를, 콘텐츠 추천은 제품 리뷰보다 훈련 영상을, 광고 정책은 이미 구매한 신발의 노출 억제를 선택할 수 있습니다. 세 추천기가 서로 다른 결과를 내지만 같은 사용자 상태를 읽는 것입니다.

기존 추천 모델을 버리는 것은 아니다

UMM은 협업 필터링이나 딥러닝 순위 모델을 대체하지 않습니다. 비슷한 사용자가 본 상품을 찾거나, 아이템 내용을 비교하거나, 최근 행동 순서를 학습하는 역할은 기존 모델이 계속 담당합니다. UMM은 그 모델들이 공통으로 읽을 수 있는 사용자 상태를 추가합니다.

예를 들어 후보 생성 모델은 사용자의 장기 선호를 이용해 수백 개의 후보를 찾습니다. 순위 모델은 실시간 피로와 탐색 상태를 읽어 그 후보의 순서를 조정합니다. 마지막 정책 계층은 광고 피로나 명시적 거절이 높을 때 노출 빈도를 낮춥니다. 하나의 상태가 모델마다 다른 방식으로 쓰이지만, 사용자에 대한 해석은 일관성을 유지합니다.

  • 후보 생성은 “무엇을 좋아하는가”를 넓게 찾습니다.
  • 순위 모델은 “지금 무엇이 적절한가”를 계산합니다.
  • 정책 계층은 “무엇을 보여주지 말아야 하는가”까지 제어합니다.

도메인 어휘를 코어에 넣지 않는다

커머스의 cart_add, 콘텐츠의 completion, 소셜의 follow, 광고의 not_interested는 서로 다른 사건입니다. 이를 하나의 거대한 피처 테이블에 넣으면 초기에는 빠르지만, 시간이 지나면서 코어가 특정 산업의 어휘와 데이터 사정에 종속됩니다. 새 산업을 추가할 때마다 기존 모델과 스키마를 다시 흔들게 됩니다.

UMM은 이 문제를 두 층으로 나눕니다. 첫 번째 층은 장바구니, 완주율, 팔로우처럼 산업마다 다른 행동을 읽습니다. 그리고 이를 몰입도, 구매 의도, 사회적 반응, 탐색, 회피처럼 어느 산업에서도 이해할 수 있는 공통 신호로 번역합니다. 두 번째 층은 원래 행동이 장바구니였는지 콘텐츠 완주였는지 몰라도 이 공통 신호만으로 사용자 상태를 계산합니다.

코드에서도 이 경계를 강제합니다. 공통 계산 코드가 커머스나 콘텐츠의 세부 필드를 직접 참조하지 못하게 합니다. 덕분에 “도메인 중립”은 문서에만 적힌 원칙이 아니라 의존성 규칙으로 지켜지는 구조가 됩니다.

도식 · 도메인 채널에서 공통 사용자 상태 코어로의 번역

이 설계의 효과는 단순한 재사용성에 그치지 않습니다. 같은 인지적 부담이라는 상태를 콘텐츠의 잦은 스킵과 광고 피로가 함께 설명할 수 있고, 같은 탐색 성향을 새로운 카테고리 소비와 낯선 주제 이동이 각자 채울 수 있습니다. 입력의 의미는 도메인에 남지만, 상태의 규격은 공통입니다. 그래서 새 산업은 코어를 다시 만드는 대신 “우리 행동이 어떤 중립 신호에 해당하는가”를 정의하면 됩니다.

한 사람의 여러 행동을 같은 문맥으로 연결한다

한 사용자가 쇼핑 앱에서 새 카테고리를 탐색하고, 콘텐츠 앱에서는 관련 리뷰 영상을 완주했다고 가정해 보겠습니다. 두 서비스의 이벤트 이름과 데이터 구조는 다릅니다. 하지만 둘 다 탐색 상태와 몰입 깊이를 설명하는 근거가 됩니다. UMM은 원본 이벤트를 섞지 않고, 각 서비스가 공통 사용자 상태에 기여하도록 만듭니다.

이때 중요한 것은 “한 앱의 행동으로 다른 앱의 결론을 단정하지 않는다”는 점입니다. 각 서비스의 근거량과 신뢰도를 함께 보존합니다. 콘텐츠 완주 한 번이 곧바로 강한 구매 의도로 바뀌지 않습니다. 여러 채널의 근거가 같은 방향으로 쌓일 때만 추천 강도가 높아집니다.

여러 앱의 신호 결합은 동일 고객사 범위와 사용자가 허용한 개인화 목적 안에서만 수행합니다. 통합 사용자 ID는 서비스 간 결합을 위한 경계 키일 뿐 추천 특성이 아니며, 앱별 근거와 신뢰도는 분리해 보존합니다. 개인화 해제나 삭제 요청은 원본 이벤트뿐 아니라 해당 이벤트에서 파생된 사용자 상태와 근거 집계에도 반영합니다.

값 하나보다 ‘근거가 있는 값’이 중요하다

추천 피처는 흔히 숫자 하나로 납작해집니다. 하지만 0.0은 정말 관심이 0이라는 뜻일 수도 있고, 아직 한 번도 관측하지 못했다는 뜻일 수도 있습니다. 두 상태를 같게 다루면 콜드스타트 사용자에 대해 근거 없는 확신을 갖게 됩니다. UMM은 관측 부재를 임의의 0으로 채우지 않습니다. 외부 JSON 계약에서는 해당 값을 null로 제공하고, 값이 존재할 때는 신뢰도와 근거량을 하나의 상태 묶음(envelope)으로 전달합니다.

외부 계약은 축별로 value, confidence, evidence_n, source를 제공합니다. 쉽게 말하면 상태값, 신뢰도, 근거가 된 행동 수, 계산 방식입니다. 신뢰도는 축별 예측 오차와 근거량을 바탕으로 보정됩니다. 따라서 순위 모델은 값이 같더라도 근거가 많은 상태와 아직 불확실한 상태를 다르게 다룹니다. “0과 부재”, “값과 근거”를 처음부터 구분하는 구조가 추천 강도를 안정적으로 제어합니다.

도식 · 값과 부재, 증거를 구분하는 envelope

여기에 고객사별 데이터 격리가 더해집니다. 고객사, 앱, 앱 내부 사용자 ID, 통합 사용자 ID는 추천 특성이 아니라 데이터를 나누는 경계입니다. 같은 사용자 ID가 서로 다른 고객사에서 쓰여도 데이터가 섞이지 않습니다. 외부 API도 세션의 세부 필드 대신 승인된 요약만 제공합니다. 즉 개인화의 깊이와 데이터 보호를 동시에 확보합니다.

차별점은 ‘더 많은 심리 라벨’이 아니다

UMM의 차별점은 사람의 성격을 더 많이 맞히는 데 있지 않습니다. 관측할 수 없는 성격이나 민감 특성을 편의상 고정 라벨로 만들지 않고, 특정 시간창에서 관측된 행동으로 설명할 수 있는 상태만 다룹니다. 최근 반응의 방향과 활성도 역시 영구적인 개인 속성이 아니라 이벤트 흐름에 따라 변하는 현재 반응 상태로 취급합니다.

운영 중인 모든 축은 사용자 상태와 이후의 실제 행동 결과를 연결해 학습합니다. 과거 데이터 재현 테스트와 온라인 실험도 통과해야 순위 모델과 정책에 연결됩니다. UMM 기반 순위 모델은 이 상태를 후보 다양성, 콘텐츠 길이, 추천 강도, 노출 빈도에 직접 반영합니다. 새 축을 추가할 때도 같은 절차를 반복해 성능과 사용자 경험을 함께 지킵니다.

도식 · 상태 학습에서 온라인 랭킹까지의 운영 사다리

결국 우리의 차이는 특정 모델 이름이 아닙니다.

  • 아이템 중심 최적화 앞에 사용자 상태 계층을 둡니다.
  • 도메인 행동과 공통 코어 사이에 명시적인 번역 경계를 둡니다.
  • 값과 함께 근거·출처·부재를 전달합니다.
  • 개인정보와 테넌트 격리를 모델의 바깥이 아니라 계약 안에 넣습니다.
  • 검증된 사용자 상태를 신뢰도와 함께 온라인 순위에 반영합니다.

이 구조는 협업 필터링이나 딥러닝 랭커와 경쟁하지 않습니다. 오히려 여러 추천기가 서로 다른 방식으로 계산하더라도 “지금 이 사용자에 대해 무엇을 알고, 무엇은 모르는가”를 같은 언어로 공유하게 만듭니다. 2부에서는 이 철학이 실제 이벤트 수집, 세션 계산, 시간축 집계, API 계약으로 어떻게 구현되는지 살펴보겠습니다.

비교에 사용한 공개 자료

공개 자료는 각 시스템의 특정 시점과 공개 범위만 설명합니다. 실제 운영 시스템 전체가 이 구조로만 구성된다는 의미는 아닙니다.


시리즈 · 추천을 넘어, 사용자 상태로

Leave a comment

ADDEEP

애딥(Addeep)은 차세대 증강 AI 엔진 ‘GPR(Generative Pre-trained Recommender)’을 중심으로, 사람의 마음을 읽고 콘텐츠를 자동으로 만드는 Web3 기반 S2E(Social to Earn) 소셜 플랫폼입니다.

사용자의 의도와 관심사를 이해하고, 콘텐츠·광고·커머스를 자동으로 결합하여 개인 맞춤형 스마트 콘텐츠를 생성합니다.

이 블로그에서는

  • 애딥의 핵심 기술(GPR·LMM·ACT) 인사이트
  • ZαLPHA세대 트렌드와 크리에이터 문화 연구
  • 스마트 콘텐츠 및 S2E 생태계 분석
  • 애딥 서비스 업데이트 및 운영 스토리
    를 가장 빠르게 전달합니다.


사람과 사람,
그리고 가치가 연결되는 새로운 소셜 시대.
그 중심에 애딥이 있습니다.