추천 시스템을 실제 서비스에 넣을 때 가장 어려운 부분은 “좋은 모델을 만들었는가”만이 아니다.
더 자주 부딪히는 질문은 어느 순간에, 어떤 사용자를 대상으로, 무엇을 밀어야 하는가다.
카카오 추천팀의 if(kakao)2020 세션 추천 시스템, 써보지 않겠는가 - 맥락과 취향 사이 줄타기는 이 질문을 꽤 실무적으로 보여준다.
발표의 소재는 카카오재팬의 만화 플랫폼 픽코마에 들어간 팝업 추천이다.
사용자가 작품 열람을 멈추고 나가려는 순간, 새로운 작품을 팝업으로 제안하는 장치다.
흥미로운 점은 이 발표가 추천 알고리즘 자체를 과시하는 데 머물지 않는다는 것이다.
핵심은 “개인화 추천이냐, 연관 추천이냐”라는 모델 선택 문제를 서비스 전략, 노출 빈도, 콘텐츠 소비 타이밍, 운영 자동화 문제와 함께 다룬다는 데 있다.
무엇을 다루는 영상인가
영상은 kakao tech 채널에 올라온 if(kakao)2020 발표이며, 발표자는 카카오의 김영민 Alex, 안창배 Dane이다.
YouTube 설명 기준으로 세션의 주제는 픽코마 팝업 추천 프로젝트다.
발표는 크게 세 덩어리로 구성된다.
먼저 팝업 추천을 왜 도입했는지 설명한다.
이어 개인화 추천과 연관 추천을 matrix factorization 기반으로 어떻게 같은 실험 틀에 넣었는지 보여준다.
마지막으로 실제 A/B 테스트 결과, 추천 노출 타이밍, 자동화 이후의 운영 효과를 정리한다.
공개 영상 설명에는 별도의 논문, 코드, 슬라이드 링크가 붙어 있지 않았다.
따라서 이 글의 근거는 YouTube 메타데이터, 영상 자막, 발표 화면에서 확인되는 그래프와 수치에 한정된다.
원자료의 표본 크기나 통계 검정 세부는 공개되어 있지 않으므로, 아래 해석도 “발표가 공개한 운영 실험 사례”로 읽는 편이 정확하다.
팝업 추천은 왜 필요한가
픽코마에는 이미 홈 추천, 뷰어 엔드 추천처럼 여러 추천면이 존재한다.
발표에서 다루는 팝업 추천은 그중에서도 더 적극적인 노출 장치다.
팝업은 사용자의 동선을 가로막기 때문에 과하면 피로감을 만든다.
발표에서는 그래서 각 유저에게 12시간에 한 번만 팝업을 노출하도록 제한했다고 설명한다.
노출 시점도 무작위가 아니라, 사용자가 작품을 보다가 중간에 나가려는 순간이다.
이 타이밍은 중요하다.
사용자가 나가는 이유는 작품이 재미없어서일 수도 있고, 올라온 에피소드를 다 봤기 때문일 수도 있다.
어느 쪽이든 최소한 “다음 작품을 발견할 가능성”이 열려 있는 순간이라고 볼 수 있다.
사업적으로는 두 가지 목표가 겹친다.
하나는 한 작품만 보는 사용자를 두 개 이상의 작품 소비로 유도해 서비스 접점을 늘리는 것이다.
다른 하나는 아직 잘 알려지지 않은 작품을 초기 노출시켜 추천 루프 안으로 편입시키는 것이다.
즉 팝업 추천은 단순한 개인화 UX가 아니다.
전략적으로 밀고 싶은 콘텐츠를 푸시하되, 누구에게 무엇을 보여줄지는 머신러닝으로 정교하게 타깃팅하려는 운영 장치다.
개인화 추천과 연관 추천: 취향인가, 맥락인가
발표의 중심 질문은 단순하다.
사용자가 나가려는 순간에는 그 사용자의 장기 취향을 따라가야 할까, 아니면 방금 보고 있던 작품의 맥락을 이어가야 할까?
개인화 추천은 개별 유저의 취향을 기준으로 삼는다.
유저가 평소 좋아할 만한 작품을 고르는 방식이다.
반면 연관 추천은 현재 보고 있던 작품을 기준으로 삼는다.
로맨스물을 보던 사용자에게 갑자기 호러를 띄우기보다, 비슷한 로맨스 작품을 보여주는 방식에 가깝다.
두 방식을 공정하게 비교하기 위해 발표팀은 matrix factorization을 사용한다.
유저-아이템 상호작용 행렬을 유저 행렬과 아이템 행렬로 분해하면, 유저와 아이템을 같은 latent space에 놓을 수 있다.
개인화 추천에서는 특정 유저 벡터와 모든 아이템 벡터의 유사도를 계산한다.
유저와 가까운 아이템일수록 평소 취향에 맞을 가능성이 높다.
연관 추천에서는 유저 벡터를 쓰지 않는다.
사용자가 방금 보고 있던 아이템의 벡터와 다른 아이템 벡터의 유사도를 계산한다.
현재 작품과 가까운 작품일수록 맥락이 이어진다고 보는 것이다.
이 설계가 좋은 이유는 하나의 모델 표현에서 두 추천 정책을 비교할 수 있다는 점이다.
알고리즘 스택을 완전히 다르게 만들지 않고도, 취향 중심 정책과 맥락 중심 정책을 A/B 테스트할 수 있다.
타임라인으로 보는 핵심 구간
| 구간 | 내용 | 블로그에서 볼 포인트 |
|---|---|---|
| 00:10-05:10 | 픽코마 팝업 추천의 배경과 자동화 목표 | 팝업은 추천면이면서 동시에 전략적 콘텐츠 푸시 장치다 |
| 05:19-07:47 | 개인화 추천과 연관 추천의 문제 설정 | 장기 취향과 직전 소비 맥락 중 무엇을 우선할지 정한다 |
| 08:21-11:35 | matrix factorization 기반 구현 | 같은 latent space에서 user-item, item-item 유사도를 비교한다 |
| 11:41-16:40 | A/B 테스트 결과와 뷰어 엔드 비교 | 팝업에서는 개인화가 우세하지만, 모든 추천면에 일반화되지는 않는다 |
| 16:43-18:28 | 에피소드 회차별 노출 시점 실험 | 빨리 띄우면 전환수가 늘 수 있지만 단조로운 법칙은 아니다 |
| 18:31-22:47 | 시간대, 기다무, 미싱팝 분석 | 추천 품질뿐 아니라 사용자의 그 순간 의도가 전환율을 좌우한다 |
| 22:50-24:58 | 자동화와 스케일업 효과 | 수동 운영보다 전환율과 전환수를 끌어올리고, 추천면 성과도 비교한다 |
이 타임라인에서 중요한 점은 발표의 논리 흐름이다.
모델을 만들고 성능을 자랑하는 순서가 아니라, 서비스 문제를 정의하고, 두 정책을 실험하고, 실패하거나 반대로 나온 결과까지 다음 정책 판단으로 연결한다.
결과: 팝업에서는 취향이 맥락보다 강했다
발표에서 공개한 1차 결론은 명확하다.
팝업 추천에서는 개인화 추천이 연관 추천보다 전환율 기준 약 18% 더 우수했다.
왜 이런 결과가 나왔을까.
발표는 유사도와 전환율의 관계를 나눠서 본다.
먼저 직전에 열람한 작품과 유저 사이의 유사도를 보면, 연관 추천은 “보던 작품이 유저 취향에 맞을 때” 잘 전환된다.
반대로 사용자가 그 작품을 별로 마음에 들어 하지 않는 상황이라면, 그 작품과 비슷한 것을 다시 추천해도 전환이 잘 일어나지 않는다.
개인화 추천은 다르게 움직인다.
직전 작품과 유저의 궁합에 덜 의존하고, 사용자의 더 넓은 소비 이력을 반영한다.
발표에서는 오히려 보던 작품이 마음에 들지 않을 때 개인화 추천의 전환이 상대적으로 잘 나오는 패턴까지 언급한다.
이 지점이 실무적으로 중요하다.
“비슷한 것을 추천하라”는 말은 얼핏 자연스럽지만, 사용자가 현재 작품을 떠나는 순간에는 그 비슷함이 오히려 나쁜 신호일 수 있다.
사용자가 이탈하는 이유가 작품 자체와의 mismatch라면, 맥락을 이어가는 것보다 장기 취향으로 돌아가는 편이 낫다.
따라서 팝업 추천에서 개인화가 이긴 이유는 모델이 더 고급이어서가 아니다.
팝업이라는 노출 시점이 “현재 작품을 계속 보고 싶은 상태”가 아니라 “현재 흐름을 끊고 나가는 상태”이기 때문이다.
같은 아이디어가 다른 추천면에서는 실패할 수 있다
발표가 좋은 이유는 여기서 끝내지 않는다는 점이다.
팀은 팝업 추천에서 개인화가 좋았다면, 작품 말미에 뜨는 뷰어 엔드 추천에도 개인화를 적용하면 좋지 않을까 생각했다.
뷰어 엔드도 사용자가 콘텐츠 소비를 마친 뒤 다음 작품을 추천받는다는 점에서 팝업과 비슷해 보인다.
하지만 결과는 반대였다.
뷰어 엔드에서는 개인화 추천의 전환율이 기존 연관 추천보다 31%가량 낮게 나왔다.
차이는 노출 맥락에 있다.
뷰어 엔드 추천은 사용자가 에피소드를 끝까지 읽은 뒤 노출된다.
이 경우 사용자는 방금 본 작품을 어느 정도 만족스럽게 소비했을 가능성이 높다.
따라서 같은 맥락의 유사 작품을 이어주는 연관 추천이 더 자연스럽게 작동한다.
반면 팝업 추천은 사용자가 에피소드를 끝까지 보지 않고 나갈 때도 뜬다.
이때는 “방금 보던 작품과 비슷한 것”이 아니라 “이 사용자가 원래 좋아할 만한 것”이 더 안전한 선택일 수 있다.
이 사례는 추천 정책을 추천면 단위로 검증해야 한다는 점을 잘 보여준다.
같은 유저, 같은 콘텐츠, 같은 matrix factorization을 써도, 노출 위치가 바뀌면 우세한 정책이 바뀔 수 있다.
노출 타이밍은 모델 성능만큼 중요하다
발표 후반부는 더 운영적이다.
모델이 고정되어 있어도, 언제 추천을 띄우느냐에 따라 전환이 달라진다는 이야기다.
첫 번째 실험은 에피소드 회차별 노출 시점이다.
처음에는 연관 추천의 경우 사용자가 작품을 어느 정도 읽은 뒤 비슷한 작품을 추천하는 편이 좋을 것이라고 가정했다.
그래서 전체 에피소드 중 20% 이상을 열람해야 팝업 추천이 발생하도록 설정했다.
하지만 데이터는 초반 회차에서 팝업을 띄울 때 전환율이 높다는 신호를 보였다.
그래서 더 이른 시점에 팝업이 발생하도록 바꿨고, 결과적으로 대조군 대비 실험군의 전환수가 약 5.89% 증가했다.
흥미로운 점은 여기서도 단순 법칙은 나오지 않았다는 것이다.
“빠를수록 무조건 좋다”는 식으로 끝까지 이어지지는 않았다.
다만 초반 전환율이 충분히 높고, 노출수도 늘릴 수 있었기 때문에 전체 전환수 관점에서 개선이 나온 것이다.
두 번째 실험은 시간대다.
발표의 평일 시간대별 그래프에서는 오전 7시, 정오, 밤 10시 무렵에 노출이 늘지만, 전환율은 오전 7시, 정오, 저녁 7시 부근에서 낮아지는 패턴이 보인다.
발표에서는 노출과 전환율 사이의 피어슨 상관계수를 약 -0.8로 언급한다.
발표팀은 이 현상을 픽코마의 “기다리면 무료” 사용 패턴으로 해석한다.
사용자는 아침이나 점심에 밀린 무료 회차를 빠르게 소진할 수 있다.
이때는 앱을 열고 콘텐츠를 보지만, 새로운 작품을 탐색할 여유는 작을 수 있다.
반대로 저녁이나 밤에는 더 적극적으로 새 작품을 볼 수 있다.
이를 확인하기 위해 발표는 “미싱팝”이라는 개념을 도입한다.
추천 노출 당시에는 전환하지 않았지만, 나중에 어떤 경로로든 추천된 아이템을 열람하는 경우다.
추천 자체가 틀렸다기보다, 그 순간 사용자가 새 작품을 볼 의도가 없었다는 신호로 해석할 수 있다.
실제로 전환율이 낮은 일부 시간대에서 미싱팝 비율이 높았다고 발표는 설명한다.
그래서 오전 7시대에 전환되지 않을 사용자를 예측해 1시간 동안 팝업에 노출하지 않는 실험을 했다.
결과는 양면적이었다.
차단된 실험군은 이후 12시간 내 전환율이 대조군보다 유의미하게 상승했다.
하지만 재방문하지 않은 유저도 많아 전환의 절대수는 감소했다.
이 결과는 실무적으로 냉정하다.
전환율을 높이는 정책이 항상 전환수를 늘리지는 않는다.
특히 12시간에 한 번이라는 노출 제약이 있으면, “낭비 노출을 아끼자”는 정책이 실제 총량 손실로 이어질 수 있다.
자동화의 가치는 운영 규모에서 나온다
발표의 마지막 메시지는 자동화다.
기존에는 운영자가 직접 누구에게 어떤 작품을 노출할지 수동으로 정해야 했다.
이 방식은 품이 많이 들고, 운영 규모를 키우기 어렵고, 사람의 주관이 들어갈 여지가 크다.
머신러닝 기반 팝업 추천은 이 병목을 줄인다.
발표에 따르면 자동화 이후 최초 실험에서는 더 적은 노출에도 전환수가 늘었고, 전환율은 두 배 이상 상승했다.
이후 연관 작품 또는 연관 유저의 범위를 넓히며 스케일업한 결과 최종적으로 전환이 112% 증가했다고 설명한다.
또한 발표는 픽코마 내 세 개 추천 구조를 비교했을 때, 팝업 추천이 에피소드 열람 측면에서는 최대 28% 우수했고 과금 측면에서는 최대 두 배 이상의 성과를 보였다고 말한다.
공개 영상만으로는 비교 설계나 표본 크기를 검증할 수 없지만, 최소한 팝업 추천이 단순 클릭 유도 장치가 아니라 실제 소비 지표와 연결됐다는 메시지는 분명하다.
실무 관점에서의 해석
이 사례의 핵심은 “matrix factorization으로 추천을 만들었다”가 아니다.
더 중요한 것은 추천 정책을 서비스 맥락 안에서 분해해 실험했다는 점이다.
첫째, 추천 목표는 모델 objective와 같지 않다.
픽코마의 목표는 단순히 유저가 좋아할 작품을 맞히는 것이 아니라, 전략적으로 밀고 싶은 작품을 사용자의 피로감을 해치지 않는 선에서 노출하고, 첫 열람을 만들고, 추천 루프에 편입시키는 것이었다.
둘째, “취향 vs 맥락”은 추상적 논쟁이 아니라 노출면의 성격에 따라 달라지는 정책 선택이다.
팝업처럼 이탈 순간에 뜨는 추천은 장기 취향이 더 강할 수 있다.
반면 콘텐츠를 끝까지 소비한 뒤 나오는 뷰어 엔드 추천은 현재 맥락을 잇는 편이 더 좋을 수 있다.
셋째, 전환율과 전환수는 다르다.
7시대 노출 차단 실험은 추천 타이밍을 조정하면 전환율을 높일 수 있음을 보여주지만, 동시에 총 전환수는 줄어들 수 있음을 보여준다.
운영 추천 시스템에서는 ratio metric과 volume metric을 함께 봐야 한다.
넷째, 추천 시스템은 모델과 정책의 결합이다. matrix factorization은 개인화와 연관 추천을 비교할 수 있는 표현 공간을 제공했다.
하지만 실제 성과를 만든 것은 노출 빈도 제한, 팝업 발생 시점, 시간대별 사용 의도, 운영 자동화까지 포함한 전체 정책 설계였다.
남는 질문
공개 영상만으로는 몇 가지가 남는다.
A/B 테스트의 트래픽 배분, 실험 기간, 유의성 검정 방식, 세그먼트별 편차는 자세히 공개되지 않는다.
2020년 당시의 matrix factorization 기반 설계가 현재의 딥러닝 추천 스택이나 LLM 기반 semantic representation과 어떻게 결합될지도 별도의 문제다.
그럼에도 이 발표는 여전히 유효한 교훈을 준다.
추천 시스템을 실제 서비스에 넣는다는 것은 “정답 아이템을 맞히는 모델”을 만드는 일이 아니라, 사용자가 어떤 상태에서 추천을 받는지까지 설계하는 일이다.
픽코마 팝업 추천 실험이 보여준 가장 큰 메시지는 이것이다.
추천에서 취향과 맥락은 둘 다 중요하지만, 어떤 것이 먼저인지는 추천이 뜨는 순간의 사용자 의도에 의해 결정된다.