카카오가 공개한 뉴스 편집 알고리즘에 대한 의견.
카카오가 뉴스 추천 시스템, 루빅스의 알고리즘을 공개했다. 거칠게 생각을 정리해본다.
(논문 원문은 여기에서 내려 받을 수 있다. https://brunch.co.kr/@kakao-it/57)
루빅스의 기본 골격은 멀티 암드 밴딧(Multi armed Bandit) 알고리즘이다. 슬롯머신의 승률이 모두 다르기 때문에 여러 슬롯머신 가운데 가장 승률이 높은 슬롯머신을 찾아서 베팅을 집중하는 전략을 말한다. 다만 충분한 데이터가 확보되기 전까지는 승률을 예측하기가 쉽지 않기 때문에 몇 가지 로직이 추가된다.
승률을 반복해서 측정하는 입실론-그리디(Epsilon-Greedy) 방식과 승률이 높은 슬롯머신에 검증 기회를 집중하는 소프트맥스(Softmax) 방식, 승률이 낮은 것으로 판단돼 배제되는 슬롯머신에도 기회를 부여하는 UCB(Upper Confidence Bound) 방식을 결합한다. 담금질(Annealing)은 검증이 충분하다고 판단되면 검증을 줄이고 베팅에 집중하는 전략이다.
이걸 뉴스 편집에 적용하면 슬롯머신의 승률은 독자들의 클릭률과 체류시간이다. 잭팟 같은 건 존재하지 않지만 알고리즘이 정교해질수록 독자들의 반응을 극대화할 수 있다(그리고 돈이 된다).
카카오는 루빅스 알고리즘를 이용해 뉴스 풀(pool)을 만들고 독자들의 반응을 측정하면서 뉴스 화면을 편집한다. 슬롯머신과 다른 점이라면 일단 뉴스의 수가 굉장히 많고 계속해서 새로운 뉴스가 쏟아져 들어오는 데다 시간이 지날수록 뉴스로서의 가치가 급격히 떨어진다는 것이다. 실제로 이 논문에 따르면 소프트맥스나 UCB, 담금질 같은 방식이 별 효과가 없는 것으로 나타났다. 그만큼 유통 속도가 빠르고 독자들의 관심도 급격히 이동한다는 이야기다.
카카오는 대신 1. 이동평균 알고리즘(Moving Average)을 이용해 최신 뉴스에 가중치를 주고 2. 뉴스 위치에 따른 편향(Positional Bias)을 제거하고 3. 이용자 집단에 따라 뉴스를 클러스터링화하되 4. 다른 이용자들의 선택 결과를 반영해 가중치를 높이는 방식으로 효율(클릭률)을 높였다. 카카오는 알고리즘의 성능을 높이기 위해 샘플링한 이용자 그룹을 대상으로 버킷 테스트를 실시하면서 알고리즘을 끊임없이 업데이트한다.
그 결과 다음 모바일 뉴스 이용자수는 2015년 11월 1910만명에서 2016년 11월 2710만명으로 늘어났고 첫 화면 뉴스 노출도 3.5배 가량 늘어났다. 특히 국제 섹션과 문화 생활 섹션 뉴스는 5.1배와 5.5배 늘어났다. 그만큼 뉴스 다양성이 확대됐다는 이야기다. 2015년 6월이 변곡점으로 도입 전후 클릭 수가 2배 이상 늘어난 것으로 집계하고 있다. 자랑할 만하다.
카카오가 강조하고 있듯이 알고리즘의 대략적인 원리나마 공개한 것은 높이 평가할 일이다.
특히 뉴스 위치에 따른 바이어스를 알고리즘으로 해결한 것은 정말 혁신적이라고 할 만하다. A라는 기사가 첫번째 줄에 뜨느냐 일곱번째 줄에 뜨느냐에 따라 선택받을 확률이 달라진다. 그러나 모든 기사를 첫번째 줄에 올릴 수는 없는 일이고 경중을 판단해 어떤 기사는 아래에 처박힐 수밖에 없다. 그러나 카카오는 이 문제를 편집자의 판단에 맡기지 않고 알고리즘으로 해결했다. 누군가에게는 세번째 줄에 뜨는 기사가 다른 누군가에게는 다섯번째 줄에 뜨거나 아예 뜨지 않기도 한다. 루빅스는 각각의 경우 최적의 효율, 결국 가장 많은 클릭을 끌어내는 조합을 찾아내기 위해 계속해서 이용자들을 샘플링하고 테스트하면서 스스로 알고리즘을 업데이트한다.
우려스러운 부분은 이 알고리즘의 최대 목표가 가장 많은 클릭 그리고 체류시간(역시 클릭)에 맞춰져 있다는 것이다. 정말 중요한 뉴스와 꼭 읽어야 할 뉴스에 대한 판단 보다는 어떻게 뉴스를 보여줘야 가장 많이 클릭할 것인가에 무게를 둔다. 철저하게 상업적 고려에서 출발한 전략이다. 이용자 집단을 세분화하고 뉴스 카테고리를 나누는 것 역시 필터 버블을 키울 우려가 있다. 전체 뉴스 풀은 커진 것처럼 보이지만 결국 각각의 이용자들에게 노출되는 기사는 제한될 수밖에 없고 알고리즘이 나에게 보여주지 않는 기사가 무엇인지 그리고 특별히 내가 좋아할 거라고 판단해서 밀어주는 기사가 무엇인지에 대한 고민도 필요하다.
포털 뉴스는 늘 공정성과 중립성 논란에서 자유롭지 못했다. 인위적인 편집을 하지 않으니 루빅스 알고리즘은 공정하고 중립을 지키는 것일까. 물론 모든 사람들이 똑같은 뉴스 섹션을 들여다 보는 것과 각각의 관심과 선호에 따라 맞춤형 뉴스를 받아보는 것, 둘 중에 어느 쪽이 낫다고 단정하기는 어렵다. 아무리 좋은 뉴스라도 클릭하지 않으면 버려질 수밖에 없고 그나마 많이 읽게 만드는 게 뉴스 콘텐츠 유통의 목표 가운데 하나가 될 수 있다고 본다. 좀 더 보완한다면 수많은 이용자들의 집단지성을 반영해 좋은 뉴스를 발굴하는 알고리즘을 추가할 수도 있을 것이다.
다만 포털이 슬롯머신의 승률을 따지는 방식으로 뉴스 클릭률을 높이는 전략을 고민하고 있다는 건 섬뜩한 일이 아닐 수 없다. 클릭은 말그대로 클릭일 뿐 클릭 수로 사후적으로 뉴스의 가치를 측정하기는 쉽지 않다. 체류 시간이나 댓글 수를 반영한다고 해도 한계가 있을 수밖에 없다.
클릭률이 떨어지더라도 좋은 뉴스를 추천할 수 있는가?
좋은 뉴스는 클릭률을 높일 것인가?
이 논문은 적어도 이 두 가지 질문에 대한 답을 담고 있는 것 같지는 않다. 애초에 좋은 뉴스에 대한 아무런 가치 판단을 하지 않고 있고 그런 이유로 클릭률이 낮은(낮을 것으로 예상되는) 좋은 뉴스에 가중치를 둘 의지가 없는 것처럼 보인다. 좋은 뉴스(수많은 뉴스 중에 독자들에게 보여줘야 할 뉴스)를 많이 읽을 수는 있지만 많이 읽는 뉴스가 좋은 뉴스가 아니다. 그 간극에 대한 고민이 필요하다는 이야기다.