카카오의 AI 토로스, 어떻게 뉴스-음악 추천하나

여러 알고리즘-모델 조합, 최적의 방법 찾아내

인터넷입력 :2017/06/29 17:18

손경호 기자

카카오가 제공하는 거의 모든 서비스는 수많은 콘텐츠들 중 사용자가 더 좋아할만한 것들을 추천해주는 기능이 녹아있다.

다음뉴스를 비롯해 1boon, 브런치, 다음웹툰, 다음카페, 카카오TV, 카카오뮤직, 카카오페이지, 카카오메이커스, 카카오헤어샵에 이르기까지 예외 없이 적용된다.

대중적인 서비스에서 많이 본 콘텐츠 순위를 보여주는 건 어렵지 않다. 하지만 사용자가 진짜로 보고 싶어하는 맞춤형 콘텐츠를 제시하려면 상당히 복잡하고 만만치 않은 과정을 거쳐야만 한다. 그만큼 연구자들의 노력이 녹아있는 것이다.

카카오는 어떤 원리로 사용자 마다 서로 다른 콘텐츠를 보여줄 수 있을까?

29일 카카오 관계자에 따르면 다음뉴스 메인화면에는 '루빅스(RUBICS)'라는 추천 알고리즘이 적용됐다. 이와 달리 다음뉴스 내 사용자가 좋아할만한 뉴스를 추천하거나 다른 주요 서비스의 추천 기술에는 '토로스(TOROS)' 알고리즘이 활용된다.

이 관계자는 "루빅스와 토로스는 사용자가 선호할만한 콘텐츠를 제시하기 위해 여러가지 알고리즘 조합을 사용한다는 점에서 본질적으로 다르지 않다"고 설명한다.

용도에 따라 알고리즘을 다른 방식으로 조합해 더 나은 성과를 내는 모델을 찾아내는 과정을 거친다는 뜻이다.

루빅스가 다음뉴스 메인화면과 카카오톡 채널탭 등에 보다 특화돼 있다면 2014년 다음TV팟(현재 카카오TV)에서 동영상 추천 서비스를 운영하기 위해 개발된 토로스는 보다 광범위한 콘텐츠 추천에 쓰인다.

글-사진-음악 등 다양한 영역 추천에 활용

최근 발간된 카카오AI리포트 Vol. 4(관련링크)에서는 '내 손안의 AI 비서, 추천 알고리듬'이라는 글을 통해 토로스가 어떤 방식으로 작동하는지를 다뤘다.

토로스는 글, 사진, 음악, 뉴스 등 다양한 영역에서 추천에 쓰인다. 여기에는 협업필터링(CF), 콘텐츠 기반 필터링(CB)에 더해 앙상블 기법, 멀티암드밴딧(MAB), A/B테스트 등이 조합된다.

카카오 외에도 다른 인터넷서비스들이 추천을 위해 사용하는 가장 기본적인 기술은 CF다. 쉽게 말하면 콘텐츠 사용 패턴이 비슷한 사람들이 비슷한 선호도를 갖고 있다고 가정하고 추천을 해주는 방식이다. 사용자가 어떤 콘텐츠를 클릭했는지, 여기에 좋아요 혹은 싫어요를 표시했는지, 어떤 점수를 매겼는지 등을 반영한다. 예를 들어 1이라는 콘텐츠에 대해 A가 좋아요를 눌렀고, B도 좋아요를 눌렀으면 그 뒤에 A가 본 2라는 콘텐츠를 B에게도 추천해주는 식이다.

다만 해당 사용자가 콘텐츠를 소비한 이력이 없을 경우 엉뚱한 콘텐츠를 추천해줄 수 있고, 인기 콘텐츠만 추천 결과에 올라오는 한계가 발생한다.

이를 보완해 줄 수 있는 방법 중 하나가 콘텐츠의 내용 자체를 분석해 사용자가 선호하는 콘텐츠를 찾아내는 CB다.

이를테면 라디오헤드 음악을 좋아하는 사람에게는 이 그룹과 분위기가 비슷한 콜드플레이 음악을 추천해 준다고 카카오AI리포트는 설명했다. 추천할 콘텐츠가 글, 사진, 음악인지 등에 따라 음악의 파형을 분석하거나 컨볼루션 신경망(CNN)을 통해 이미지를 분석하고, 글을 분석하기 위해 자연어 처리(NLP)를 활용하는 등 방법이 그렇다.

토로스는 여러가지 CF, CB, 통계모델, 기계학습모델 등을 적어도 3개에서 많게는 5개 이상 조합한다.

추천 상황에 따라 서로 다른 모델들을 잘 조합해내는 것이 앙상블 방법이다. 모델별로 서로 다른 가중치를 두어 분야별로 더 추천을 잘 해 줄 수 있는 최적의 모델 조합을 찾아내는 것이다.

(자료=카카오AI리포트 Vol. 4)

MAB, A/B 테스트 등 다양한 방법 동원

MAB는 사용자 반응에 둔감한 앙상블 방법의 단점을 또 다시 보완해준다.

카카오AI리포트에 따르면 MAB는 서로 다른 승률을 가진 여러 슬롯머신 중 정해진 횟수만큼 슬롯머신을 돌렸을 때 어떤 순서대로 슬롯머신을 돌려야 가장 돈을 많이 따낼 수 있는지를 찾는 머신러닝의 한 방법이다.

슬롯머신을 돌리는 것을 콘텐츠 추천에 대입하면 보상은 해당 콘텐츠에 대한 클릭수, 승률은 반응률로 바꿀 수 있다.

최대한 많은 보상(클릭수)을 얻어 가장 높은 승률(반응률)을 낼 수 있는 방법으로 콘텐츠를 추천하는 식이다.

여기서도 한계는 있다. 콘텐츠 수명이나 트렌드가 시간이 지나면서 바뀐다는 점이다. 한번 승률이 높다고 해서 시간이 지난 뒤에도 승률이 높다고 보장하기가 힘들다.

이런 어려움을 해결하기 위해 A/B테스트가 쓰인다. 토로스 개발팀에 따르면 새로운 로직(추천 알고리즘과 모델의 조합)은 카카오 서비스 내에서 5%~10% 확률로 여기에 따른 콘텐츠를 노출시킨다. 그 뒤 이전 로직과 비교해 얼마나 클릭률이 올라갔는지를 비교한다.

관련기사

일종의 최종 테스트를 반복하면서 더 나은 로직을 적용하는 방법을 탐색해 나간다.

이렇게 보면 AI가 인간의 손을 거치지 않고도 뭔가 새로운 것을 만들어 낼 정도로 개선되려면 한참 시간이 필요할 것으로 전망된다.