<추천 시스템 입문>을 읽고
연초가 정신없이 흘러갔다. 올 1월부터 CRM과 더불어 디스플레이/배너 추천 영역을 함께 보게 되었기 때문이다. 미팅에 참석해 보면 전시/디스플레이 담당자들은 늘 최적화를 통해 달성하고 싶은 비즈니스 목표와 함께, "이 브랜드는 꼭 상단에 노출해야 한다"거나 "특정 소재는 일정 비율 이상 가져가야 한다" 같은 사업부의 요구사항을 함께 전달한다.
PM이 모델링과 리서치를 모두 이해할 필요는 없다고 생각한다. 하지만 적어도 무엇이 가능하고 무엇은 타협하면 안 되는지 정도는 알고 있어야 한다고 느꼈다. 그렇지 않으면 당장 해결 가능한(Quick-win) 요구와 구조적으로 무리한 요구를 구분할 수 없고, 비즈니스 목표 달성을 위해 어디까지 조정해야 하는지도 판단하기 어렵기 때문이다.
또한, 비즈니스 목표 달성을 위한 개선 방안을 제안하려 해도 아직은 무엇이 진짜 문제인지 파악하기 어려웠다. 지표가 떨어졌을 때 그것이 모델의 문제인지, 로그 설계나 가드레일의 문제인지, 아니면 단순한 트래픽 변동인지조차 구분할 만큼 추천 시스템에 대한 나만의 기준이 구조화되어 있지 않았다.
그래서 이번 설 연휴에 마음을 다잡고 추천 시스템을 제대로 공부하기로 했다.
1회독을 마친 지금, 낯선 개념들을 당장 시스템에 적용하거나 추천의 방향성을 곧바로 제안하기는 어려울 것이다. 실무에서는 현재 내가 접한 개념보다 훨씬 트렌디하고 고도화된 알고리즘을 복합적으로 사용하고 있을 것이기 때문이다.
하지만 분명한 수확은 있었다. 그동안 단편적으로만 들리던 용어들이 어떤 맥락에서 쓰이는지, 거대한 추천 시스템이 어떤 구조로 맞물려 돌아가는지, 그리고 각 개념이 실제 서비스의 어떤 지점에서 활용될 수 있는지 조금씩 보이기 시작했다는 점이다.
읽으면서 느낀 주요 포인트를 정리해 봤다.
1. 신규 소재 최적화의 해답을 MAB에서 찾다
신규 IP 소재나 새로운 트렌드 아이템을 어떻게 최적화할 것인가. 그동안 DS/MLE 문서에서 종종 접했던 MAB(Multi-Armed Bandit)가 그 해답 중 하나라는 것을 이제야 이해했다. MAB는 제한된 기회 속에서 검증된 성과를 내는 Exploitation과 새로운 가능성을 찾는 Exploration 사이의 균형을 잡아 보상을 최대화하는 알고리즘이다.
이는 단순히 수식을 넘어 탐색과 활용을 구조적으로 관리하는 영리한 체계로, 특히 트렌디한 소재를 다루는 플랫폼에서 강력한 도구가 된다. 모든 플랫폼은 기존의 스테디셀러와 새로운 트렌드 아이템 사이에서 끊임없는 조율을 반복하기 때문이다.
만약 데이터가 없는 신규 소재를 무작정 많이 노출하면 전체 성과가 불안정해지고, 반대로 검증된 소재만 밀어붙이면 서비스의 성장 동력은 결국 고갈된다. 즉, “얼마나, 어떻게 탐색할 것인가”를 정교하게 설계하지 않으면 장기적인 성장은 멈출 수밖에 없다. 결과적으로, 플랫폼의 추천 알고리즘은 기술적인 성능의 문제를 넘어, 사업 전략이 어떤 방향을 지향하느냐에 따라 달라지는 '선택'의 문제라는 점을 깊이 체감했다.
2. 노출 로그를 수집했던 이유 : 네거티브 피드백의 필요성
이번 공부를 통해 로그에 대한 관점도 크게 바뀌었다. 그동안은 노출(Impression) 로그 수집에 회의적이었다. 데이터 양이 워낙 방대해 비용 부담이 크고, 쿼리를 실행할 때도 부하가 심해 클릭(Click) 로그만으로도 충분하지 않을까 생각했기 때문이다.
하지만 추천 시스템의 구조를 들여다보니, '무엇을 클릭했는가'만큼이나 '무엇을 보고도 클릭하지 않았는가'라는 신호가 시스템의 정교함을 결정짓는 핵심이었다. 특히 사용자가 선택하지 않은 리스트인 네거티브 피드백(Negative Feedback)은 모델이 사용자의 선호를 다각도로 학습하게 하여 추천의 편향성을 줄이는 결정적인 역할을 한다.
이러한 피드백 데이터 없이는 위치에 따라 클릭률이 달라지는 Position Bias를 보정할 수 없고, 과거 데이터로 모델을 검증하는 오프라인 평가조차 왜곡될 수밖에 없다. 클릭 데이터만으로는 그것이 정말 좋아서 누른 것인지, 단순히 상단에 있어서 누른 것인지 구분할 수 없기 때문이다.
결국 로그 설계는 단순한 인풋이 아니라, 추천 시스템이 무엇을 학습하고 어떤 방향으로 진화할지를 결정하는 전략적 요소임을 알게 됐다. 앞으로는 로그를 설계하고 관리하는 조직과도 훨씬 더 긴밀하게 소통하며 추천의 토양을 단단히 다져야겠다는 확신이 들었다.
3. 예측과 결과 사이의 간극
오프라인 테스트 지표와 실제 온라인 성과 지표 사이의 간극을 어떻게 해석해야 하는가 고민해 보게 된다. 그동안 DS/MLE 조직이 오프라인 테스트 결과를 보면, 항상 그래서 CTR이나 CVR이 어떻게 될지를 생각했다. 오프라인 결과가 좋다고 하니, 당연히 실 성과도 비례할 것이라 생각하면서 이 오프라인 결과지를 제대로 읽지 못했던 것 같다.
하지만 공부를 통해 깨달은 사실은, DS/MLE가 다루는 오프라인 지표와 PM이 중시하는 온라인 지표는 애초에 서로 문제를 바라보고 있다는 점이었다. 오프라인 지표가 '과거의 데이터를 얼마나 정확히 재현(예측)했는가'라는 모델의 정답률에 집중한다면, 온라인 지표는 '실제 환경에서 사용자의 행동을 얼마나 유도했는가'라는 인과적 변화를 측정한다.
이 둘 사이의 괴리를 메우는 일은 추천 시스템이 본질적으로 안고 있는 숙명과도 같은 과제라는 것을 알았다. 모델의 수치가 아무리 높아도 실제 UI/UX 환경, 노출 위치, 혹은 당시의 시장 트렌드에 따라 사용자의 반응은 완전히 달라질 수 있기 때문이다. 결국 PM이 DS/MLE와 해야 하는 일은 두 지표 사이의 간극을 데이터로 구조화하여 '왜 다른 결과가 나왔는지'를 추론하고 그 다음 가설을 함께 세우도록 유도해야 한다는 점이었다.
4. 유의미한 명시적 선호도를 얻으려면
마이페이지를 담당하는 회원 도메인 팀과 가깝게 일하며, 나는 그동안 명시적 선호도(Explicit Feedback)를 최대한 많이 확보하는 것이 커스터머 조직의 핵심 역할 중 하나라 생각했다. 선호 브랜드, 관심 카테고리, 스타일 태그 등 사용자가 직접 입력한 데이터는 해석이 명확하고 정확하기 때문이다. 이 데이터의 입력률이 높이면 추천 성능을 획기적으로 개선할 수 있을 거라 기대했다.
하지만 공부하다 보니, 명시적 선호도는 설계가 잘못되면 ROI가 처참할 수도 있겠다는 생각을 했다. 사용자가 시간을 들여 입력한 정보가 실제 모델의 피처(Feature)로 즉각 연결될 수 없다면, 그 데이터는 자산이 아니라 비용이다. 특히 패션이나 트렌드 도메인에서 취향은 고정값이 아니라 끊임없이 변한다. 정적인 설문으로 수집된 선호 정보는 시간이 흐를수록 오히려 추천의 정확도를 왜곡하는 독이 되기도 한다.
명시적 선호도는 사용자가 지향하는 '이상향'과 실제 '구매 행동' 사이의 간극을 메워주지 못한다. 미니멀한 스타일을 선호한다고 체크하지만 실제로는 스트릿 의류를 구매하는 식의 '지향점 편향'이 발생하기 때문이다. 결국 명시적 선호도가 성공하려면 넷플릭스나 스포티파이처럼 수집 즉시 추천 품질이 좋아졌다는 '체감형 리워드'를 제공하여 사용자가 자신의 취향을 계속 업데이트하게 만드는 정교한 연결 설계가 필수적이다.
결국 데이터는 많다고 전략이 되지 않는다. 추천을 모르는 PM은 데이터를 무작정 늘리자고 말하지만, 추천을 이해하기 시작한 PM은 그 데이터를 어떻게 모델과 연결해 선순환 구조를 만들지 고민해야 한다는 점을 배웠다.