TITLE : (트랙1)우리 생활 속 추천 시스템. 어떻게 발전해왔고, 어떻게 발전해나가고 있는가?(카카오 김성진 팀장)
YOUTUBE LINK : https://youtu.be/jJfXHo7nNe8 PRESENTER : 데이터 비즈니스 채널 DURATION : 00:22:39 PUBLISHED : 2021-12-31
Table of contents
FULL SCRIPT
안녕하세요. 카카오 추천팀의 김성진입니다.
반갑습니다.
오늘 주제는 추천 시스템인데요.
여러분들이 알게 모르게 거의 매일 추천 시스템을 경험하실 텐데요.
오늘은 이 기술이 어떻게 발전해 왔고, 어떻게 발전해 나가고 있는지 좀 말씀을 드려볼게요.
추천 시스템이라는 것은 저 왼쪽에 있는 저런게 정보라고 했을 때 되게 많은 정보들이 있어요.
그래서 작으면 몇천개, 많으면 몇천만개, 몇백만개가 되는데 저런 것들을 사용자한테 선별해서 이 사람은 이걸 좋아할 것 같은데, 그러면 이렇게 딱 선별해서 전달해주는 시스템이라고 보면 되고, 저렇게 사람이 여러 명 있잖아요.
그러면 그 사람마다 개인화를 해서 너는 이걸 좋아할 것 같네 이렇게 주는 시스템이라고 보시면 될 것 같아요.
저희 추천팀에서도 되게 카카오의 여러 서비스에 추천 기술을 제공하고 있고, 제가 몇가지 따와봤는데요.
맨 왼쪽은 멜론인데 음악 추천을 해주는 거예요.
그리고 가운데는 카카오톡 선물하기에서 개인별 카테고리에 추천해주는 거고, 맨 오른쪽은 웹툰을 추천해주는 이런 거라고 볼 수 있습니다.
그래서 뭔가 정보가 많고 그 중에 몇개를 선별해서 보여줘야 된다?
그러면 추천 시스템이 그 뒤에 있을 가능성이 되게 높다고 보시면 될 것 같아요.
그래서 오늘 이야기는 이런 기술들이 어떻게 발전해 왔고, 이제 어디로 발전해 나가고 있는지 좀 말씀드려볼게요.
일단 추천 기술이 어떤 문제를 풀고 있는지 이해를 갖추시면 좋은데요.
오늘은 제가 실제로는 아니지만 아이스크림 가게를 운영한다고 설정을 해볼게요.
설정을 해보고 우리 가게에는 아이스크림 종류가 한 100개 정도 있어요.
이렇게 보면 이게 우리 고객님들의 이력인데요.
저희 가게는 만든지 한 4일 정도 됐다고 보시면 될 것 같고, 맨 오른쪽에 1월 10일이 오늘이에요.
그리고 고객은 한 4분 정도 있으세요.
아쉽지만 아직.
그 중에 첫 번째 고객님은 최근 3일간 맨날 오신 분이에요.
맨날 오셔서 3일 전에는 딸기, 어제랑 그저께는 초코 이런 걸 드신 분이고, 맨 아랫분은 아직 한 번도 안 오신 분이에요.
이렇게 개인별로 와서 어떤 거 드셨나 이런 건 다 다른데, 이런 분들이 저런 것들을 다 고려해서 오늘 오셨을 때 그러면 뭘 추천하면 제일 좋을까?
이걸 예측하는 게 추천 기술에서 푸는 문제라고 보시면 될 것 같아요.
자, 그럼 이제 뭔가 추천을 해야 되는데, 조금 막연하죠?
그런데 이제 그러면 한번 만들어 보면 조금 감이 오는데요.
제가 오늘 개념적으로 추천 시스템을 한번 만들어 볼게요.
만들어 보면 이제 저희가 함수라는 개념을 먼저 한번 잡고 넘어가야 되는데, 저 보니까 어?
하실 수 있지만, 이제 제가 함수를 가져온 이유는 저희가 인공지능 시스템이다 혹은 기계학습 시스템이라고 하는 것들이 사실은 다 추상적으로 보면 함수로 표현할 수가 있어요.
그래서 이제 이 개념을 이용하면 좀 더 쉽게 설명을 드릴 수 있을 것 같아서 가져왔고, 저 왼쪽은 이제 더하기 함수예요.
그래서 함수라는 건 뭐가 들어가서 뭐가 이렇게 해서 뭐가 나오는 애인데, 이제 왼쪽 거는 이제 3하고 6이 들어가면 9가 나오는, 두 개가 더해져서 그런 거고, 오른쪽은 들어갔으면 곱하기 2가 돼서 나오는 그런 거라고 보시면 되겠어요.
그러면 추천 시스템은 이제 뭐 추천할까 함수?
이렇게 이름을 제가 붙여봤는데요.
그러면 어떻게 생겼냐면 대충 저렇게 생겼어요.
그러면 이제 하나씩 보시면 입력이 두 가지예요.
두 가지가 들어가야 되는데, 첫 번째는 이제 사용자의 정보예요.
이 사람이 누군지, 누구한테 추천을 해야 되는지, 그리고 이분이 이제 오셔서 어떤 걸 좋아하셨었고, 어떤 걸 별로 안 좋아하셨었는지, 이제 그런 정보들이 들어가고요.
그리고 이제 두 번째 정보는 내가 추천할 수 있는 모든 아이템의 집합이 들어가요.
이제 저희 가게는, 저희 아이스크림 가게는 아이스크림이 100개밖에 없었으니까, 저 100개짜리 목록이라고 보시면 돼요.
그러면 추천 시스템 안에서는 저 100개의 아이스크림 중에서 이 사람이 가장 좋아할 만한 거를 이제 1등부터 쫙 뽑아서 그 리스트를 결과로 주는 그런 시스템이라고 보시면 될 것 같아요.
자, 그러면 그래, 내가 이제 뭐 추천할 수 있는 것 중에 각 사람이 좋아할 만한 것들을 이제 우선순위를 매겨서 예측을 해주는 애구나, 이렇게 생각하시면 되는데, 그럼 저 안에는 이제 뭐가 있을까요?
이제 뭐가 있을까 이렇게 생각하면 또 이제 막연한데, 그러면 이제 자료를 좀 찾아보면 되겠죠?
그러면 이제 이거는 위키피디아에 있는 추천 시스템에 대한 정의인데요.
여기서는 추천 시스템은 이제 아이템에 대한 사용자의 선호도를 예측하는 시스템이라고 이제 이야기를 하고 있어요.
그러면은 예를 들어서 내가 이제 아이템은 이제 우리 상황이면 아이스크림이에요.
그러면 내가 이 아이스크림은 한 10점 정도 좋아할 것 같아.
저거는 한 20점 정도 좋아할 것 같아.
그러면 얘는 이거보다는 저거를 더 선호하겠네, 이렇게 이제 예측하는 시스템이라고 보시면 되는데, 그러면 저 예측하는 시스템도 한번 만들어 볼게요.
저거는 이제 또 함수로 하고, 저것도 이제 제가 좋아할까 함수라고 이름을 붙여 봤어요.
그럼 좋아할까 함수에는 이제 아까랑 비슷해요.
첫 번째 입력은 이제 사용자 정보고, 두 번째는 이제 특정 아이스크림 정보 하나만 들어가요.
그래서 결과로 나오는 거는 저 사람이 저 아이스크림을 얼마나 좋아할지 그 예상 선호도가 나온다고 보시면 돼요.
근데 제가 저기에는 그냥 80 이렇게 좀 참고하시기 쉽게 써놨지만, 저 점수는 이제 저 좋아할까 함수를 어떤 추천 알고리즘으로 만드냐에 따라 달라져요.
그래서 1에서 100점 사이로 나올 수도 있지만, 실제로는 0.0에서 1.0 사이에 실수값이 나오는 경우가 대부분이긴 한데요.
그냥 오늘은 그냥 대충 1에서 100점 사이로 나온다, 이렇게 해볼게요.
그리고 참고로 위에 있는 저 아이스크림을 만약에 이성의 다른 사람으로 바꾸면, 이제 데이팅 앱 같은 거에서 이제 이 사람이랑 서로 좋아할 것 같은데 이렇게 예측해주는 그런 걸로 바뀐다고 보시면 될 것 같아요.
근데 이제 그러면 나 저 좋아할까 함수 안 해도 내가 만들어 보고 싶어 생각하시는 분도 있으실 텐데, 그러면 이거는 이제 오늘 주제는 아니에요.
근데 제가 이제 몇 가지 키워드를 이렇게 던져드리면, 이제 이 문제를 바라보는 시각에 따라 풀이 방법이 되게 다양한데요.
첫 번째는 뭐 전통적인 협업 필터링 알고리즘도 있고, 이제 두 번째는 이제 클릭률을 예측하는 문제로도 볼 수 있고,
세 번째는 이제 순차적으로 이거 이거 좋아하는 사람이 다음에 이거 좋아하더라 이런 문제로도 바라볼 수가 있고, 이거에 따라 접근 방법이 되게 다양해요.
그래서 이거는 참고하시면 될 것 같고, 그러면 이제 좋아할 감수는 만들었다고 치고요.
저걸 이제 이용해서 못 추천할 감수를 완성해 볼게요.
아까 이제 못 추천할 감수 다시 갖고 와보면 대충 저렇게 생겼는데요.
저기다가 이제 좋아할 감수를 안에 넣는 거예요.
그리고 그러면 이제 사용자 정보하고 우리 아이스크림 정보 쫙 들어오면은, 그 아이스크림 100개가 되는데, 그 100개 아이스크림에 대해서 이제 그 좋아할 감수를 다 돌리는 거예요.
사용자는 고정한 상태에서.
그러면은 100개 아이스크림에 대한 저 사람의 예상 선호도가 쫙 나오겠죠.
그러고 나서 그거를 정렬을 하는 거예요.
예를 들면 내림차순을 할 수 있겠죠.
그러면은 가장 위에 있는 게 이 사람이 가장 좋아하는 거다.
그 두 번째가 두 번째로 좋아하는 거다.
이렇게 추천할 수가 있겠습니다.
그러면 이제 우리 추천 시스템 대충 만들었어요.
저렇게 하면 동작하거든요.
그래서 이제 저거를 이제 손님한테 들고 가는 거예요.
그럼 저 선생님께 이제 추천을 해본다고 치면요.
이제 제가 아까 함수를 좀 박스 형태로 표현했는데, 이제 과로 형태로 저렇게 표현을 좀 편의상 바꿔봤어요.
그러면 이제 저 선생님은 이제 사용자 정보는 고정한 상태에서 이제 그 아이스크림만 돌아가면서 100번을 이제 좋아할 감수를 계산하는 거예요.
그러면 오른쪽에 이제 예상 선호도가 쫙 나오겠죠.
그러면은 정렬을 해서 지금은 뭐 하나만 추천한다 치면은 저기서 1등이 이제 뭐 아몬드 초코가 된다.
이렇게 보시면 될 것 같아요.
그럼 아몬드 초코가 1등이었으니까 저분한테는 그냥 저거 추천해 드리면 되는 거예요.
자 그럼 추천해 드렸다고 치고 이분도 좋아졌다고 해볼게요.
자 그러면은 이게 이제 좀 전통적인 그리고 전형적인 세팅, 추천 시스템 세팅이라고 보실 수 있고, 이렇게 하면은 적당히 잘 이제 성과를 낼 수 있는데요.
이제 제가 여기서 성과라고 얘기했는데, 저희 이제 이 엔지니어링 세계에서는 성과라고 하면은 측정이 무조건 가능해야 되는데, 그래야 얘는 성과가 10점이고, 이 추천 알고리즘 10점이고, 저 추천 알고리즘은 20점이야.
이런 거거든요.
2배 성과가 좋은 거니까.
이제 이렇게 측정 가능해야 되는데, 그럼 뭘로 하냐.
그러면은 단기적인 사용자 만족도를 많이 이용했었어요.
지금도 이용하고 있고 되게 중요한데, 저기 제가 왼쪽 위에 버전 1이라고 썼잖아요.
그 이유가 지금은 장기적인 만족도를 높이는데 더 포커싱하고 있어요.
그래서 예전에는 단기 만족도 위주로 봤다면, 지금은 장기적인 만족도에 더 이제 우선순위가 높아졌다.
하지만 단기적인 것도 중요하니까 이렇게 썼다고 보시면 될 것 같고요.
예로 들면은 체류 시간이나 인당 클릭 수, 하루에 사용자들이 얼마나 클릭하는지, 서비스의 하루에 얼마나 머무는지 이런 거라고 보시면 될 것 같아요.
그래서 어떤 추천 알고리즘은 체류 시간이 이제 뭐 한 30분 정도 나오고, 또 다른 거는 35분이 나오면 얘가 더 좋은 거죠.
오른쪽에.
그래서 그런 식으로 이제 추천 알고리즘과 우열 비교를 저희가 되게 자주 하면서, 계속해서 고도화를 해나가고 있다.
이렇게 생각하시면 될 것 같아요.
잠시만요.
네, 그러면 이제 지금까지가 1부였어요.
1부.
이제 전형적인 추천 상황에서의 이야기고, 이제 2부로 넘어가면 조금 더 현실적인 상황으로 가져와 볼게요.
아까는 제가 추천을 하나만 한다 그랬는데, 이제 추천을 여러 개 하는 거예요.
사실은 추천을 딱 하나만 하고, 그게 마음에 안 들 경우에, 이제 다른 거를 볼 여지를 안 주는 그런 거는 많지는 않아요.
대부분이 여러 개를 던져주고, 사용자가 마음에 안 들면 이렇게 스크롤을 하면서 찾을 수 있도록 해주는데요.
그래서 좀 더 현실적인 세팅으로 좀 왔다.
이렇게 보시면 될 것 같아요.
그러면 아까 1등은 아몬드 초코가 이제 여지가 없어요.
확실하죠.
근데 이제 2, 3등은 뭘로 추천할까요?
좀 고민되죠.
그러면 그냥 간단하게 생각해 보면, 아 몰라.
그냥 예측서 놓은 걸로 깔래.
그러면 쫙 되는데, 그러면 또 다른 초코로 이제 도배되는 게, 도배될 가능성이 되게 높아요.
그게 왜 그러냐면 실제로도 이분이 초코를 좋아할 가능성이 되게 높거든요.
그래서 저게 저렇게 싹 깔리는데요.
이게 그러면 엄청난 문제냐?
그럼 엄청난 문제까지는 아니에요.
왜냐하면 저희가 경험을 해보면, 정말 특정 분야 좋아하시는 분들은, 예를 들어서 유머 컨텐츠 좋아하시는 분들 중에는, 저희 추천풀에 있는 모든 유머 컨텐츠를 다 보시는 분들까지 있어요.
그래서 계속 해드려도 되지만, 그래도 저거보다 더 잘할 방법이 있지 않을까?
그런 생각을 좀 해보게 되는데요.
이제 실제로 이거는 스포티파이에서 작년에 나왔던 논문인데, 사용자가 다양하게 소비를 할수록, 이제 이탈율이, 서비스 이탈율이 좀 낮은 경향이 있다.
라는
분석 결과인데요.
이제 스포티파이 같은 경우는 멜론처럼 매달 돈을 내고, 이제 음악을 듣는 서비스인데, 거기서 이탈을 했다는 건 뭐냐면, 다음 달에 돈을 안 내고 이제 빠이 빠이 했다는 거예요.
그럼 이제 되게 아프잖아요.
서비스 입장에서.
그래서 이탈율이 높으면 안 좋은 건데요.
저 차트에서 Y축이 이탈율이에요.
그래서 올라갈수록 이탈율이 높은 거라고 보시면 되고, X축은 이제 다양하게 얼마나 소비하는지 여부인데, 오른쪽에 1.0에 가까워질수록, 이제 다양하게 소비하는 거라고 보시면 되고요.
왼쪽에 가까워질수록, 죄송해요.
잘못 말씀드렸는데, 1.0에 가까워질수록 특정, 내가 예를 들면 록만 듣는다.
그러면 이제 1.0에 가까워지는 거고, 록도 듣고 인디도 듣고 피아노도 듣고 그러면, 0.0에 가까워진다고 보시면 될 것 같아요.
색깔별로 여러 개가 있는데, 그건 이제 활동성 별로 유저 그룹을 좀 나눈 건데요.
아무튼 보시면 전반적으로 X축에서 오른쪽으로 갈수록, 그러니까 내가 록만 듣거나, 재즈만 듣거나 이렇게 하나만 들을수록, 이제 이탈율이 좀 높아지는 경향이 있습니다.
그래서 저희가 이거는 저희 카카오 내부 서비스에서도, 실험을 해봤고 분석을 해봤는데, 대부분처럼 비슷한 패턴이 나와요.
그래서 이제 좀 소비를 다양하게 하시도록 만드는 게, 되게 중요하겠구나.
그런 생각을 이제 많이 하게 되고요.
이제 아까 좀 도배되는 이슈 있었잖아요.
이거는 이제 넷플릭스에서 2018년에 나왔던 논문에 있는 내용인데, 예를 들어서 제가 넷플릭스에서 한 70%는 로맨스 영화를 봤고, 30%는 액션 영화를 봤다고 해볼게요.
그러면 이제 다른 데이터 없이, 이제 내가 이거 봤다, 저거 봤다, 그런 걸로만 학습을 해서 추천하면, 100% 로맨스로 깔리게 됩니다.
그러면 이거 추천 시스템 잘못하고 있는 거 아니야?
이런 생각 드실 수는 있는데, 사실은 저거 역시 추천 시스템 입장에서 되게 자연스러운 거예요.
왜 자연스럽냐면, 추천 시스템은 이제 저렇게 여러 개를 해주고, 하나라도 유저가 반응을 해주면 잘한 거예요.
그러니까 이제 어설프게 액션을 끼느니, 대부분 로맨스 영화가 이제 선호도 예측값이 높을 거거든요.
그러면 그냥 그걸로 깔아버리는 거예요.
그렇게 되는데, 그러면 단기적으로는 사용자도 좋아할 수 있어요, 실제로.
근데 그러면 이제 사용자는 액션도 가끔 보는 사람이었는데, 액션을 소비할 방법이 점점 없어지죠.
그러면은 장기적으로 안 좋을 것 같은데, 이런 생각이 들 거고, 그래서 이제 논문 저자는 이제 캘리브레이션을 이용해서, 사용자가 추천 결과에서 카테고리 분포를, 사용자 이력에 맞춰주면 좋을 것 같다.
이런 식으로 그 방법을 제안을 한 것도 있습니다.
그리고 이제 캘리브레이션 말고, 다이브스피케이션이라고 해서 이제 다양화 알고리즘도 써볼 수가 있는데요.
예를 들면 왼쪽이 보면 다양하게 추천이 된 것 같은데, 이렇게 비슷한 것끼리 묶여 있으면, 사용자 입장에서 위에서부터 보니까, 어?
나 좀 비슷한데?
이렇게 생각할 수 있는데요.
그래서 저거를 카드 섞듯이 섞는 거예요.
그래서 뭐 로맨스 1등, 액션 1등, 뭐 이런 식으로, 그렇게 이제 섞는 건데, 저거는 참고로 제가 엄청 단순하게 말씀드린 거고, 모든 다양한 알고리즘이 저렇게 동작하진 않아요.
근데 이제 다양한 알고리즘 중에서는, 각 컨텐츠가 갖고 있는 그냥 속성만 이용해서 다이버시파일을, 다양화를 하는 그런 것도 있고, 그 성과까지 고려해서 하는 저 밑에 있는 DPP 같은 건, 그런 알고리즘도 있습니다.
저것도 이제 참고하시면 좋을 것 같고요.
자, 그러면은 이제 만약에 추천 시스템 좀 해보신 분이면, 이 질문을 하실 수 있어요.
어, 근데 다양화 적용하면 클릭률 떨어지지 않나요?
이런 질문을 하실 수 있는데, 어, 저건 맞는 말이에요.
정말로 그렇고, 저희도 사실은 되게 오랫동안, 다양화를 하는 거랑 클릭, 그러니까 성과, 이거랑 좀 베타적인 관계니까, 하나가 올라가면 하나 내려가고, 다른 하나 올라가면 다른 하나 내려가는, 그런 관계라고 생각했어요.
근데 이게, 이것도 자연스러운 게, 모델이 아까 막 도배한다고 했잖아요.
로맨스로 싹 깔면, 그게 걔가 못해서 그런 게 아니고, 실제로 그게 사용자가 클릭할 확률이 높아서, 그걸로 쫙 깔리는 건데요.
거기서 다양화를 한다는 건, 거기서 이제 예측률이 높은 애를 하나를 빼고, 걔보다 선호도가 좀 낮은 애를 억지로 넣는 거다 보니까, 이제 클릭률에선 떨어지기는 해요.
근데 이제 이게, 서비스 UI의 화면 형태에 따라 좀 달라지는데요.
만약에 저기서, 제가 좀 그림이 이상하지만, 큰 네모가 스마트폰이에요.
작은 네모가 이제 컨텐츠인데, 저런 형태를 이제 피드 형태라고 하는데, 이제 저기서 막 여러 개가 있고, 사용자가 마음에 안 들면, 막 스크롤을 할 수 있는 상황이라고 해요.
그러면 저런 피드 형태에서는, 아이템별 클릭률은 바로 떨어지는데요.
다양화를 하면.
하지만 사용자가, 어?
재밌는 게, 신기한 게 계속, 이거저거 나오네 해서, 스크롤 수가 그 이상으로 올라가요.
그래서 결국에는 인당 클릭 수라든가, 세션당 클릭을 얼마나 하냐, 이런 거에서는 오히려 더 올라갑니다.
그래서 다양화를 한다고 해서, 꼭 성과에서 반드시 떨어지는 건 아니다.
이런 것도 참고하시면 좋을 것 같아요.
자, 그러면은 다양화를 이용해서, 아까 그 뭐 추천할까 함수를 좀 개선을 해보면, 저 뒤에 붙여 볼 수 있을 것 같아요.
그래서 요새 저런 스타일로 이제 나가는 추천 시스템도 많고, 저희도 저렇게 실험 저런 세팅으로, 이제 나가고 있는 이제 구자도 있습니다.
자, 그럼 여기까지가 이제 2부의 이야기고요.
이번엔 이제 3부인데, 3부에서는 이분이 이제 내일 또 오신 거예요.
자, 그러면 이제 얘기가 또 살짝 달라지는데요.
이제 오늘은 1월 10일이었다고 치고, 오늘 아몬드 초코를 드려서, 이분이 마음에 들었어요.
오, 여기 괜찮은데?
생각하고, 내일 또 오신 거예요.
근데, 그럼 내일 뭐 드려야 되지?
이제 이 고민을 하는 거예요.
그러면 이때도 에라 모르겠다 하고, 예상선호도 높은 걸 딱 드리면 또 초코예요.
그러면은 이게 문제인가?
그럼 이것도 문제는 아니에요.
왜냐하면은 실제로 좋아하실 가능성이 되게 높아요.
그러면 근데 만약에 이분이 정말 또 마음에 들었어요.
그래서 오, 완전 내 스타일인데?
그래서 내일 오셨는데 또 초코예요.
그러면 이것도 또 좋아하실 수는 있는데, 어, 이분 이제 초코에 너무 갇히는 거 아닌가?
이런 생각이 좀 들죠.
그래서 이거 역시 어떻게 더 잘해볼 수 있을까?
이런 고민이 좀 들 텐데요.
이런 현상은 이제 피드백 루프가 있어서 생기는 현상인데요.
추천 시스템은 피드백 루프를 가지고 있어요.
그래서 피드백 루프를 가지고 있다라는 거는, 어떤 시스템이 내가 이제 결과물을 이렇게 막 냈어요.
추천 시스템 입장에서는 추천 결과죠.
그걸 냈는데 그 중에 일부나 그 전부가, 이제 다시 내 학습 데이터로 쓰이는 거예요.
계속 이렇게.
이런 게 이제 존재하면 피드백 루프가 존재한다는 건데, 예를 추천 시스템으로 들어보면, 내가 예를 들어서 그 사람한테는 초코만 계속 추천하잖아요.
그러면 좋다는 피드백이든 싫다는 피드백이든 간에, 다 초코 관련된 것밖에 안 나와요.
그래서 나중에 바나나를 추천하려고 해도, 아, 이게 정확히 불확실성이 너무 높고, 이렇게 되는 상황이라고 보실 수 있습니다.
그래서 저 피드백 루프로 인해서 발생할 수 있는 이슈 중에, 유명한 게 필터버블 이슈가 있죠.
이거는 이제 유저가 아까처럼 계속 고립이 되는 거예요.
특정 컨텐츠나 특정 유형의 그런 거에 고립되는 거고, 이제 고립이 되면 아까 스포티파이 논문에서 나왔듯이, 이러면 안 돼요.
이러면 이제 활동성이 점점 떨어지다가 빠이빠이 하신단 말이에요.
그러니까 그 전에 이제 밖으로 나가실 수 있게 계속 길을 열어드려야 돼요.
그래서 다양성이 이제 정말 중요하다.
이렇게 보시면 될 것 같아요.
그래서 정리를 좀 해보면, 단기적으로 이제 사용자들이 좀 만족을 하더라도, 그 소비 다양성이 줄어들면 나가게 되는 거예요.
그러니까 이제 소비 다양성을 잘 잡아야겠다.
이렇게 볼 수 있고, 이건 이제 오늘 이야기의 결론인데요.
이제 어디로 발전에 나가고 있냐.
이걸 본다면 가장 중요한 건 이제 장기적인 서비스 만족도를 높이는 방향으로, 발전에 나가고 있다.
이렇게 보시면 될 것 같고, 그렇게 하는 중요한 전략 중에 하나로, 이제 소비 다양성을 높이고 있다.
그런 방법을 좀 많이 고민하고 있다고 보시면 될 것 같아요.
이거는 뭐 저희만 그런 건 아니고요.
이제 다른 빅테크 기업들도 그런데요.
이거는 이제 구글에서 올해 나왔던 페이퍼인데, 추천 플랫폼의 장기적인 목표는, 미래에 그들이 더 자주 추천 플랫폼에 방문하도록 만드는 것이다.
라고 이제 이야기가 있는 것처럼, 이렇게 보실 수 있을 것 같고, 페이스북에서도 비슷하게 이제 보고 있어요.
마지막으로 이거 얘기만 하고 끝낼게요.
유저 익스플로레이션이라고 이제 다양성을 높이는 방법에, 캘리브레이션이나 이제 다이버시피케이션, 아까 다양한 이런 게 있는데, 그거 말고도 이제 사용자가, 사용자에 대해서 탐색하는 게 있어요.
저건 사용자를 탐색한다는 건 아니고, 사용자의 취향을 탐색하는 건데, 사용자가 특히 추천 시스템한테 알려주지 않는 취향을 탐색하는 거예요.
아까 같은 경우에는 이제, 이 사람이 내가 샤베트 좋아해 이런 거 안 알려줬잖아요.
그게 그런 걸 찾아내는 건데, 예를 들어서 협업 필터링 같은 거를 이제 예를 들면, 이걸로 아까 못 추천할 감수를 만들 수 있는데, 거기서는 왼쪽 밑에 저 머리스타일 멋진 사람이 나라고 치면, 나랑 서비스에서 같은 거를 많이 보는 사람이 있으면, 그 사람은 이제 나랑 취향이 비슷하다고 보고, 그 사람은 봤는데 나는 안 본 게 있으면 추천해 주는 이런 방식인데요.
이 세계를 좀 넓혀보면, 내 근처에는 나랑 비슷한 사람들이 이렇게 존재하게 돼요.
이 사람들이 봤던 것들 위주로 추천해 나가고요.
그래서 저 약간 선을 그어보면, 저 영역에 있는 것들은 내 예상선호도가 높은 애들이고, 컨텐츠가.
저 밖에 있는 것들은 예상선호도가 낮아요.
근데 이게 밖에 있는 게, 내가 저거에 대해서 추천 시스템한테, 내가 이거 좋아해 이런 걸 보여줄 기회가 없었던 것들도 있어요.
그래서 유저 익스플로레이션에서 하려고 하는 건, 저기에 있는 걸 찾아내자 이거예요.
그럼 만약에 저 바깥에 있는 걸 찾아내면, 사용자가 어?
이런 게 있었어?
이렇게 생각하고, 저기에서 이제 또 소비를 하게 되면, 내 관심사 영역이 여기도 있고, 저기도 있게 되죠.
그러면 이제 더 오랫동안 더 만족하고, 사용할 수 있는 거라고 보시면 되겠습니다.
그래서 유저 익스플로레이션은 이제, 제가 참고자료 좀 넣었는데요.
저기서 이제 세렌디피티를 좀 중요하게 보고 있고, 그거에 대한 정의는 저 밑에 논문에 나와 있는데, 참고해 보시면 좋을 것 같고, 이런 계열은 이제 미탐사 지역을 가는 거기 때문에, 강화학습 쪽 알고리즘들이 많이 활용되고 있습니다.
참고하시면 좋을 것 같고요.
자, 이제 오늘 이야기 정리해 보면요.
추천기술의 이제 방향성은, 단기적인 만족도를 올리는 거에서, 장기적인 만족도를 올리는 쪽으로 발전하고 있다.
그렇게 생각하시면 되겠고, 그런 목표를 달성하기 위한 작전으로는, 이제 소비 다양성을 높이기, 그리고 사용자의 새로운 관심사를 꾸준히 찾아내기.
근데 새로운 관심사가 그냥 새로운 게 아니고, 이제 알려지지 않은 새로운 관심사를 찾아내는 거다.
이렇게 보시면 되겠습니다.
오늘 이야기는 여기까지고요.
감사합니다.
Summary
카카오 추천팀의 김성진이 추천 시스템에 대해 이야기합니다.
추천 시스템은 많은 정보 중 사용자가 좋아할 것 같은 것들을 선별해 전달해주는 기술입니다.
카카오는 멜론, 카카오톡 선물하기, 웹툰 등 다양한 서비스에 추천 기술을 제공하고 있습니다.
이 기술은 문제를 풀기 위해 사용되는데, 예를 들어 아이스크림 가게를 운영한다고 가정해보면 고객들의 이력을 바탕으로 사용자가 좋아할 것 같은 한 100개의 아이스크림 종류를 선별해 전달해주는 것입니다.
사람들이 매일 다른 음식을 주문하는 가게에서, 추천 기술을 사용하면 오늘 주문할 것을 예측할 수 있다.
이를 위해 함수를 사용하여 사용자의 정보와 추천 가능한 아이템 집합을 입력하면, 이를 바탕으로 추천할 수 있다.
이를 개념적으로 이해하면 함수로 표현할 수 있으며, 두 개의 입력이 있어 사용자의 정보와 추천 가능한 아이템 집합을 입력해야 한다.
이를 통해 오늘 사람들이 주문할 것을 예측할 수 있다.
저희 가게는 아이스크림 100개만 있었습니다.
추천 시스템은 각 사람이 좋아할 만한 아이템의 우선순위를 예측합니다.
이를 위해 사용자의 정보와 특정 아이템 정보가 함수인 “좋아할까 함수”로 입력되어 사용자가 해당 아이템을 얼마나 좋아할지 예측됩니다.
결과값은 1에서 100 사이의 점수로 나타나기도 하지만, 대부분 0.0에서 1.0 사이의 실수값으로 나타납니다.
우리는 오늘 좋아할 감수를 만들기 위해 1에서 100점 사이로 나오는 점수를 이용하여 감수를 만들었습니다.
전통적인 협업 필터링 알고리즘과 클릭률 예측, 좋아할 감수 예측 등의 다양한 방법을 통해 사용자의 정보와 아이스크림 정보를 바탕으로 좋아할 감수를 만들고, 내림차순 정렬하여 가장 좋아하는 아이스크림을 찾을 수 있게 되었습니다.
사용자 정보를 고정한 상태로 아이스크림의 좋아할 감수를 계산하여 예상 선호도를 정렬해 추천하는 전통적인 추천 시스템을 사용합니다.
측정하기 위해 단기적인 사용자 만족도와 장기적인 만족도를 높이기 위해 체류 시간, 인당 클릭 수, 하루 사용자 클릭 수, 서비스 하루 체류 시간 등을 측정합니다.
이를 통해 어떤 추천 알고리즘이 더 좋은지 판단할 수 있습니다.
우리는 추천 알고리즘과 우열 비교를 자주 하면서 계속해서 고도화를 해나가고 있다.
이제 전형적인 추천 상황에서는 하나의 추천만 하지만, 사용자가 마음에 들지 않는 경우 다른 추천을 스크롤하여 찾을 수 있도록 하고 있다.
이렇게 되면 도배될 가능성이 높아지는데, 그렇게 되면 사용자가 특정 분야를 좋아하는 경우 모든 콘텐츠를 보게 된다.
스포티파이 논문에 따르면 사용자가 다양하게 소비할수록 서비스 이탈율이 낮아지는 것을 발견하였다.
스포티파이 같은 음악 서비스에서 이탈이 높으면 좋지 않은 것이며, 이에 대한 분석은 Y축이 이탈율, X축이 소비 다양성이라고 할 수 있습니다.
X축에서 오른쪽으로 갈수록 이탈율이 높아지는 경향이 있으며, 다양한 소비를 하도록 만드는 것이 중요합니다.
넷플릭스의 경우 역시 로맨스 장르만 봤을 경우, 오직 로맨스로만 추천하게 되는 문제가 있습니다.
하지만 추천 시스템 입장에서는 이것이 자연스러운 것이며, 여러 장르를 소비하는 것이 중요합니다.
로맨스 영화가 인기가 높아지면서 대부분 액션 영화는 소비 방법이 점점 없어지고 있다.
캘리브레이션과 다이브스피케이션을 이용해 사용자가 추천 결과에서 카테고리 분포를 사용자 이력에 맞춰주는 방법을 제안하고 있다.
다이브스피케이션을 이용해 카드 섞듯이 다양한 추천이 되는 것이 좋고, 성과 고려해서 하는 DPP 알고리즘도 있다.
다양화를 적용하면 클릭률이 떨어질 수 있다는 질문에 대해서는 다양화와 성과는 오랫동안 베타적인 관계가 있다고 답할 수 있다.
모델이 도배한다고 했으며, 그것이 사용자가 클릭할 확률이 높아서 다양화를 하는 것이다.
그러나 사용자가 재밌는 것, 신기한 것을 계속 보면 스크롤 수가 이상으로 올라가기 때문에, 인당 클릭 수나 세션당 클릭 수가 더 올라간다.
따라서 다양화를 한다고 해서 꼭 성과에서 떨어지는 건 아니라는 것을 참고하면 좋다.
오늘 아몬드 초코를 드렸는데, 내일 뭐 드려야 될까?
이 고민을 하는 것이다.
초코를 좋아하는 사람에게 초코만 추천하는 것은 좋지 않은 것으로, 이러한 현상은 피드백 루프라는 개념을 통해 발생합니다.
사용자가 초코만 추천받게 되면 고립되어 활동이 점점 떨어지게 되는 필터버블 이슈가 발생하기 때문에 다양한 컨텐츠를 추천하고 길을 열어야 합니다.
이제 사용자들이 단기적으로 만족하는 것보다 장기적인 목표로 소비 다양성을 높이는 것이 중요하다.
사용자를 탐색하고 사용자의 취향을 분석하는 것도 중요하며, 구글과 페이스북 등 빅테크 기업들도 이를 위해 사용자 익스플로레이션, 캘리브레이션, 다이버시피케이션과 같은 방법을 많이 고민하고 있다.
추천기술의 방향성은 단기적인 만족도를 올리는 것에서 장기적인 만족도를 올리는 것으로 발전하고 있다.
이를 위해 소비 다양성을 높이고 사용자의 새로운 관심사를 찾아내는 것이 중요하다.
이는 알려지지 않은 새로운 관심사를 찾아내는 것이다.
이를 통해 사용자는 더 오랫동안 만족할 수 있고, 관심사 영역이 여기도 있고 저기도 있게 된다.