Recommendation Squad
Zerry (이준영) X Airdish (김상범)
Q. 하이퍼커넥트가 만들고 있는 추천 시스템엔 어떤 것들이 있나요?
Zerry 하이퍼커넥트®는 사람과 사람을 서로 연결하는 서비스를 만들고 있어요. 저희 추천(Recommendation) 스쿼드는 이런 서비스에 들어가는 추천 시스템을 연구하고 개발합니다. 현재 하이퍼커넥트®는 1:1 글로벌 영상 메신저인 ‘아자르(Azar)’와 소셜 라이브 스트리밍 ‘하쿠나 라이브(Hakuna Live)’를 운영 중이며, 추천 스쿼드에서는 이 2가지 서비스에 들어가는 추천 알고리즘을 만들고 있습니다.
Q. 시중에는 이미 API 형태로 사용할 수 있는 추천 시스템이 꽤 많은 것으로 알고 있는데요. 하이퍼커넥트가 추천 시스템을 자체적으로 연구하고, 시스템을 구축하는 이유가 있을까요?
Zerry 맞아요. 말씀하신 대로 시중에는 이미 API 형태로 사용할 수 있는 추천 시스템이 꽤 많이 나와있습니다. 하지만, 시중에서 활용할 수 있는 기성 시스템들은 아쉽게도 저희의 사용 예와는 잘 맞지 않았어요. 대부분 쇼핑몰 추천 예시에 특화된 솔루션이라 저희와는 맞지 않았기 때문에 자체적으로 추천 시스템을 구축했습니다.
Zerry 저희가 만들어야 하는 추천 시스템과 쇼핑몰에서의 상품 추천 시스템은 크게 두 가지 측면에서 차이가 있어요. 첫 번째로 가장 큰 차이점은 저희의 추천 시스템은 사람과 사람을 연결해야 한다는 점이에요. 한 사람이 다른 사람을 선호한다고 해도 그 사람이 상대방을 선호하지 않는다면, 추천을 해준다고 해도 그 관계는 오래 지속되지 못할 거예요. 따라서, 사람과 사람을 연결하는 서비스에서는 서비스 내 여러 사용자들이 모두 만족할 수 있는 추천 시스템을 만들어야 합니다. 학계에서는 이를 상호 추천 문제(reciprocal recommendation)라고 부르는데, 저희의 추천 문제는 기본적으로 여기에서 출발해요. 안타깝게도 현재 API 형태로 사용할 수 있는 시중 추천 솔루션에서는 이 시나리오를 지원하지 않는 경우가 많습니다.
Zerry 두 번째로 큰 차이점은 저희 추천 시스템은 실시간성이 중요하단 점이에요. 하이퍼커넥트®에서 운영하는 아자르와 하쿠나 라이브 모두 주요 추천 시스템에서 추천의 대상이 실시간으로 접속해 있는 사용자들입니다. 그렇기에 추천 후보군이 실시간 변경될 수밖에 없고요. 예를 들어, 쇼핑몰의 상품 추천이라고 한다면, 상품은 그렇게 빠르게 바뀌지는 않을 거예요. 상품에 대한 특성들을 미리 계산해둘 수도 있겠죠. 하지만, 저희가 만드는 추천 시스템은 사람과 사람을 “실시간으로” 연결하고 있기 때문에 추천 후보군에 대한 정보를 미리 계산해 두기가 어렵습니다. 이러한 차이점 때문에 저희는 기성 솔루션을 사용하기 어려웠고, 추천 시스템을 자체적으로 구현해 운영 중입니다.
Q. 추천 시스템이 달성하고자 하는 목표를 공유해주실 수 있을까요?
Zerry 사용자에게 좋은 경험을 주는 것이 저희 추천 시스템 운영의 가장 큰 목표입니다. 추천 시스템이 사용자에게 긍정적인 경험을 주면 사용자들은 자연스레 서비스에 더 오래 잔존하게 돼요. 이렇게 잔존하는 사용자가 쌓이면 결국 서비스가 성장할 수밖에 없고요. 이에 따라 리텐션을 KPI로 설정해 사용자들이 느끼는 만족감을 측정하고, 항상 사용자들에게 더 큰 만족감을 주려고 노력하고 있습니다.
Zerry 그 중에서도 저희가 중요하게 생각하는 건 신규 사용자에게 좋은 경험을 만들어 주는 것이에요. 물론 기존 사용자도 중요하지만, 추천 시스템을 통해 기존 사용자보다 신규 사용자를 잔존시킬 수 있는 여지가 더 많습니다. 신규 사용자는 서비스에 대한 경험이 아주 짧기 때문에, 처음 경험하는 추천 시스템의 품질이 서비스를 계속 사용할지 중단할지 결정하는 데 영향을 크게 미치기 마련이에요. 이와 같은 이유로 저희는 신규 사용자의 경험을 개선하는 추천 시스템을 만드는 데 많은 노력을 기울입니다.
Q. 어떻게 신규 사용자에게 좋은 경험을 주고 계신가요?
Airdish 신규 사용자에게 좋은 경험을 줘야 활성 사용자를 높일 수 있다는 것은 이미 잘 알려진 사실이고, 이미 많은 회사에서 풀고 있는 문제에요. 관련 연구도 다양하게 나와있고요. 저희는 세션 기반 추천(session-based recommendation) 방식을 활용하고 있습니다. 이 방식은 사용자의 연속적인 행동, 즉 세션을 기반으로 추천을 제공함으로써, 과거 행동 데이터가 없거나 적은 사용자에게도 좋은 경험을 제공할 수 있어요.
Airdish 세션 기반 추천에 관한 많은 연구들이 존재하지만, 공개된 연구 결과물을 저희 시스템에 그대로 적용하기는 어려워요. 저희가 추천해야 하는 대상이 실시간으로 변화하기 때문입니다. 추천 후보군이 실시간으로 변경되는 상황에서의 세션 기반 추천에 대한 연구는 아직 제한적이에요. 그래서 저희는 독자적인 세션 기반 추천 시스템을 구축했고, 실시간으로 변하는 추천 후보군에 대한 제약 조건을 모델링과 엔지니어링 모두를 활용하여 해결하고 있습니다.
Q. 추천 시스템을 다루면서 겪는 어려움에는 어떤 것들이 있는지 궁금해요
Zerry 추천 모델의 출력 레이블을 무엇으로 잡을지 어렵다는 점을 꼽아봅니다. 우리가 어떤 레이블을 정확하게 맞추는 회귀 모델을 만들고, 이 모델을 추천 시스템에 배포한다고 해볼게요. 그럼 회귀 모델 성능을 올린다고 사용자 경험이 좋아질까요? 사용자 경험이 좋아지면서 자연스럽게 추천 시스템이 서비스의 리텐션을 향상시킬 수 있을까요? 단순히 모델의 회귀 모델 성능(오프라인 성능)을 올리는 것이 사용자의 경험 개선으로 이어지지는 않는다는 것이 저희를 포함한 산업계의 전반적인 결론인 것 같습니다.
Zerry 학계와 산업계에서는 이미 이 문제를 해결하기 위한 다양한 시도를 하고 있어요. 회귀 문제를 푸는 것이 아니라 랭킹 문제를 푼다거나, 강화학습으로 문제를 재정의한다던가 하는 등 다양한 시도를 제안하고 있어요. 하지만 업계에서 통용되는 표준은 아직 존재하지 않는 것 같습니다. 저희도 하나씩 A/B 테스트하면서 배워나가고 있어요.
Airdish Zerry가 오프라인 모델을 최적화하는 것과 온라인 모델의 성능을 최적화하는 것은 차이가 있을 수 있다고 강조했는데요. 이에 대해서 저는 첨언하고 싶은 게 있어요. 추천 모델을 학습하고 배포하다 보면, 학습 때 사용했던 입력 데이터와 추론 때 사용하는 입력 데이터가 달라지는 경우가 매우 자주 발생해요. 이런 문제를 해결하기 위해서 피쳐 스토어를 저희 내부적으로 구축하고 운영하고 있어요. 물론, 이 시스템으로 모든 문제가 해결되지는 않기 때문에 이와 관련된 프랙티스도 더 쌓아나가고 있고요. (🔗참고: 머신러닝 어플리케이션을 위한 데이터 저장소 기술, July 2022)
Airdish 제가 하이퍼커넥트®에서 추천 시스템을 다루면서 겪었던 어려운 상황들의 원인은 대부분 추천 시스템에서는 단순히 모델만 분리하고서는 생각할 수 없기 때문이었어요. 다른 머신러닝 분야들과는 달리 추천에서만 유독 '시스템'이라는 말을 강조하는 이유가 있다고 생각해요. 학습과 추론 과정에서 사용되는 입력이 달라질 가능성이 크고, 사용자 및 사용자의 행동 변화도 고려해야 하기에 모델 외에도 엔지니어링을 포함한 시스템 전반적인 고민이 필요하고요.
Airdish 이러한 여러가지 어려움을 극복하고 사용자들에게 만족스러운 추천 시스템을 구축하기 위해 저희 추천 스쿼드는 끊임없는 시도를 반복하고 실험하고 있어요. 특히 실험 과정을 최대한 빠르게 진행할 수 있는 인프라를 구축하기 위해 관련 조직과 협업하고 있고요. 이렇게 반복하다 보면 결국 사용자들에게 최적화된 추천 시스템을 제공할 수 있겠죠!
Q. 요즘 AI 분야에서는 영상과 자연어를 같이 다루는 등 다양한 모달리티를 다루는 모델이 떠오르는 것 같은데요. 추천 스쿼드에서도 멀티 모달리티를 다루나요?
Airdish 저희도 다양한 모달리티를 고려하는 연구 결과물들을 재밌게 보고 있어요. 저희가 다양한 모달리티를 고려하는 이유는 간단해요. 추천 모델을 만들 때 피쳐를 추가하면 추가할수록 성능이 개선되는 경험을 많이 했기 때문이에요. 추천에 사용되는 대부분의 데이터는 표 형태로 되어있는데, 여기에 표 형태로는 표현하기 힘든 영상 정보나, 음성 정보를 추가적으로 활용하면 성능이 올라갈 가능성이 크겠죠. 기존에 표 형태로 표현하기 어려운 정보가 영상이나 음성에는 녹아있을 테니까요!
Airdish 실제로 라이브 스트리밍에서 멀티 모달리티를 고려한 모델을 운영하고 있어요. 방송을 하는 호스트가 자리를 비웠다든가 혹은 음성이 나오고 있지 않는다든가 하면, 신규 시청자들이 그런 방송에 들어가 좋은 경험을 하기 어려울 거예요. 그래서 저희는 실시간으로 변화하는 방송 콘텐츠를 이해하는 모델을 만들고, 이 모델의 결과들이 최종 추천 모델에서 반영될 수 있게 만들고 있어요.
Q. 실제로 추천 시스템이 어떤 비즈니스 임팩트를 내고 있나요?
Zerry 앞서 말씀드렸던 것처럼 저희는 사용자에게 좋은 경험을 주는 것을 목표로 하고, 리텐션을 중요한 지표로 보고 있어요. 저희는 운영하고 있는 여러 컴포넌트들에서 리텐션의 상승을 경험하고 있습니다. 특히, 휴리스틱 기반의 추천 알고리즘을 머신러닝 모델로 교체할 때마다 리텐션 혹은 사용자 경험 관련 지표에서 큰 폭의 향상을 확인할 수 있었어요.
Zerry 흥미로운 점은 리텐션이 올라가면 다른 지표들도 같이 올라간단 거예요. 사용자들이 서비스에 만족하고 리텐션이 올라가면서 사용자 수가 많아지고 결국 매출도 같이 늘더라고요. 최근 Match Group이 실적 발표를 통해 아자르 매출이 큰 폭으로 증가했다고 공개하며 해당 사례는 AI 추천이 견인했다고 언급한 바 있는데요. 저희의 추천 시스템이 실질적인 비즈니스 임팩트를 창출하고 있다는 것을 확인할 수 있었던 유의미한 사례였습니다.
Zerry 아직 추천 시스템에서 리텐션을 향상시키기 위해 수행해야 할 작업들이 많이 남아있지만, 고무적인 중간 결과를 얻어 기쁩니다. 리텐션을 지속적으로 상승시키고 있고, 앞으로도 이러한 긍정적 변화를 유지하며 더 큰 비즈니스 임팩트를 창출하기 위해 끊임없이 노력할 것입니다.
Q. 추천 시스템을 만드시면서 기억에 남는 순간이 있나요?
Airdish 아자르에서 머신러닝 기반의 추천 시스템을 활용해 대화가 잘 통하는 상대와 매칭할 수 있는 ‘슈퍼 매치’ 기능을 런칭한 것이 기억에 남아요. 대화가 잘 통하는 상대방과 매칭할 수 있는 기능을 런칭한 것이니, 당연히 저희 추천 시스템을 활용했고요. ‘슈퍼 매치’는 유료 기능인데, 리텐션이 꽤 높게 유지되면서 아자르의 매출 향상에 기여하기도 했습니다. 이전까지 추천 시스템에서는 주로 사용자 경험 향상을 위해서 노력해왔는데, 다른 부수적인 결과로 매출에도 기여했던 업무라서 기억에 많이 남는 것 같아요.
Zerry 머신러닝 모델을 배포하고 주기적으로 모델을 재학습하는 Continuous Training 파이프라인을 구축하니, 다른 작업을 하지 않아도 리텐션이 지속적으로 올라갔어요. 사실 파이프라인 자체는 다른 이유 때문에 구축했었어요. 추천 시스템에는 한 번 학습된 모델의 성능이 시간이 지나면서 떨어지게 되는 “Staleness Problem”이 있기 때문이에요. 서비스를 주로 이용하는 사용자 군이 변화한다던가, 사용자의 행동 패턴이 변화하게 되면 학습된 모델이 잘 동작하지 않게 되는 경우가 많아요. 이런 현상을 막아 안정적인 성능을 유지하기 위해 지속적 학습 파이프라인을 구축했었는데요. 사용자 경험을 측정하는 지표나 리텐션이 안정적으로 유지되는 것을 넘어, 지속적으로 증가하는 것을 보니 신기했어요. 다양한 추천 시스템에서 같은 현상을 확인하기도 했고요.
Zerry 요즘 AI 업계에서는 AI 플라이휠 이야기를 많이 하는데요. 머신러닝 모델을 구축하고, 머신러닝 모델이 사용자들에게 좋은 경험을 주면 사용자가 늘어나고, 데이터가 더 많이 쌓이고, 더 좋은 모델을 만들 수 있어, 다시 사용자들에게 더 좋은 경험을 주는 선순환을 만들 수 있다는 게 AI 플라이휠의 핵심이에요. 저는 여러 추천 시스템에서 이런 선순환을 확인했다고 보고 있어요. 개념적으로만 알고 있는 이론이었는데, 실제로 직접 확인하게 되어 많이 놀랐던 기억이 납니다.
Q. 요즘 추천 시스템에서 어떤 걸 고민하고 계시나요?
Airdish 다양한 종류의 편향을 제거하는 데 관심이 많아요. 추천 시스템에서는 노출 편향, 위치 편향이 대표적인 편향의 발생 예시인 것 같아요. 저희가 새로운 모델을 배포하면, 새로운 모델에 의해 사용자의 행동 패턴은 변화할 수밖에 없어요. 이런 변화는 전체 서비스에 영향을 미치고 저희가 사용하는 학습 데이터의 패턴 역시 변화하게 돼요. 이런 편향을 제거할 수 있는 근본적인 방법들에 대해서 생각해보고, 이를 위해 인과 관계에 대해서 다양한 접근을 하고 있습니다. 더 나아가서는 AI fairness에 대해 고민하고 있으며, 그 결과들을 추천 시스템에 녹여내고 있어요. AI fairness는 각 사용자에게 공정하게 서비스를 제공하여 차별 없는 사용 경험을 보장하려고 하는 장치예요. 다양한 종류의 편향을 추천 시스템에서 제거함으로써 많은 사용자들에게 공정하고 개선된 추천 경험을 제공하기 위해 노력하고 있습니다.
Zerry 사용자의 개인 정보와 프라이버시를 지금보다 더 철저히 보호하기 위해 어떤 방법을 적용할 수 있을지 고민하고 있어요. 유저들의 개인 정보나 프라이버시에 문제가 될만한 부분을 추천 모델에 사용하지 않는 건 너무 명백한 조치라고 생각해요. 저희가 고민하고 있는 것은 이를 넘어서, 개인 정보와 프라이버시를 선제적으로 보호하는 방법입니다. 사람과 사람을 연결하는 서비스를 제공하고 있기 때문에 개인 정보 및 프라이버시 보호는 중요도가 매우 높은 가치이고, 그렇기 때문에 이에 대해서 더 깊게 고민하고 있어요.
Q. 추천 시스템에 대해서 잘 모르는 사람들이 들어와도 그 일을 할 수 있나요? 만약 그렇다면 어떠한 역량이 있으면 좋을까요?
Airdish 추천 시스템에 대해 잘 모르더라도 충분히 업무를 할 수 있어요. 실제로 저는 하이퍼커넥트®에 와서 추천 시스템을 처음 접한 케이스인데요. 기존에 추천 시스템을 다루던 동료들의 온보딩을 받아 추천 시스템을 다룰 수 있게 되었습니다.
Airdish 제가 했던 업무를 돌아보면, 데이터 분석을 통해 어떤 피쳐가 모델에 도움이 되는지 판단하고 모델에 반영할 줄 아는 역량이 가장 중요한 것 같아요. 모델 성능을 향상시킬 수 있는데, 아직 저희가 사용하지 않는 피쳐가 꽤 많을 수 있거든요. 실제로 모델 구조는 변화시키지 않고 모델에 도움이 되는 좋은 피쳐만 추가해서 모델의 성능을 크게 높인 경험도 있고요. 해당 역량을 갖추기 위해서는 데이터 분석도 물론 중요하지만, 직접 서비스를 사용해보는 것이 무척 중요하다고 느낄 때도 많습니다.
Airdish 추가로, Python과 머신러닝 프레임워크를 이용한 프로그래밍 역량이 탄탄한 분이라면 유리하다고 생각해요. 모델을 우리가 원하는 목표 대로 정확하고 빠르게 구현해서 배포할 수 있는 분이라면, 머신러닝 모델을 직접 배포하고 유관 부서와 협업하면서 빠르게 이터레이션을 돌 수 있어요. 빠른 이터레이션을 통한 많은 시도는 결국 모델의 높은 성과로 이어지는 걸 자주 봤고요.
Zerry Airdish가 이야기해 주신 대로, 추천 시스템을 잘 모르더라도 충분히 업무하실 수 있습니다. 저는 하이퍼커넥트®에 합류하기 전에도 꽤 오랜 시간 추천 시스템을 연구하고 개발하는 일을 해온 케이스지만, 저희 스쿼드에서 저를 제외한 분들은 모두 추천 시스템에 대한 경험이 없으셨던 분들이에요. 경험이 없으신 분들도 추천 분야에 적응하고 같이 성과를 내고 계신 것을 보면 추천 시스템에 대한 경험 유무가 중요한 것 같지는 않더라고요. 적어도 하나의 AI 분야에 대한 전문성과 소프트웨어 엔지니어링 기초가 탄탄하신 분이라면 추천 시스템 관련 업무에 빠르게 적응하실 수 있다고 생각합니다. 추천 업무를 해본 적이 있으시다면 빠르게 적응할 수 있어 좋겠지만 없으셔도 상관없고, 오히려 머신러닝과 소프트웨어 엔지니어링 역량이 더 중요한 것 같아요! 많은 분들의 지원 부탁드릴게요. 🙂
더 알아보기