클릭 분석과 편향 문제

by SL

검색 결과 페이지에서 사용자가 어떤 문서를 클릭했는지의 정보는 검색 품질에 대한 가장 직접적인 피드백이다. 사람들이 알아서 자기가 원하는 문서를 클릭할 것이므로, 검색엔진은 적당히 랭킹해서 문서를 노출해보고 일정 시간이 흐른 뒤에 CTR(Click-Through Rate, 노출 대비 클릭률)이 높은 순으로 재정렬하면 그만이라고 생각할 수도 있다. 만약 그랬다면, 검색엔진의 성능은 결국 얼마나 많은 문서를 보유하고, 얼마나 많은 사용자가 방문하는지만으로 결정났을 것이다. (뭐 딱히 틀린 말만은 아니라고 생각하지만…)

클릭 분석에서 반드시 고려해야 하는 요소 중 하나로, 노출 편향(Presentation Bias) 또는 위치 편향(Position Bias)이라는 문제가 있다. 상위에 노출되는 문서가 대체로 더 많이 노출되고 그 결과로 더 많이 클릭되는 것이다. 검색엔진이 가장 좋은 문서를 제일 위에 보여주려고 노력하기는 하지만, 1위와 2위 문서의 품질 차이가 미미하더라도 클릭률은 크게 차이가 난다. 보통 위에서부터 아래로 문서를 훑어보기 때문에 당연한 결과이다. 하지만, 클릭은 그 문서의 매력에 대한 지표가 될 수 있을지는 몰라도, 그 문서의 만족도를 말해주지는 않는다. 막상 방문해보니 생각했던 것과 다른 내용이라 실망한 경험 다들 있지 않은가.

이렇게 편향되고 혼란스러운 클릭의 소용돌이 속에서 의미있는 문서를 찾아내기 위해 연구자들은 사람들의 클릭 행위를 모델링하기 시작했다. 이른바 클릭 모델(Click Model)이라는 것인데, 사람들이 검색 결과 페이지에서 어떻게 행동할 것이라는 가정을 세우고, 실제 관찰된 데이터를 바탕으로 각 문서의 점수를 추정하는 방법이다. (처음에는 광고의 노출 순서에 따른 CTR을 예측하려는 목적으로 시작된 듯한데 ((Predicting clicks: estimating the click-through rate for new ads)), 이제는 검색 랭킹에서 빠질 수 없는 요소가 되었다.)

그 가정이라는 것이 대단히 거창한 내용은 아니고 그냥 상식적인 것이다. 사람들은 검색 결과를 위에서부터 아래로 훑는다는 것, 문서 써머리를 본 뒤에 괜찮아 보이면 클릭한다는 것, 그 문서에 만족하지 못했으면 아래 문서를 계속 찾아본다는 것, 필요하면 쿼리를 바꿔서 계속 검색한다는 것, 뭐 이런 내용들이다. 이 가정과 파라미터 추정 방법에 따라 다양한 클릭 모델이 제안되었고, 이들은 관습적으로 3글자짜리 영문 이니셜 이름으로 불린다. (ex. UBM, BBM, DBN, SUM, GCM, DCM, TCM, WPC 등)

간단한 상황을 가정해보자. 쿼리 q를 입력하면 위에서부터 차례대로 d1, d2, d3, d4 문서가 노출된다. 100명이 q를 검색했고, 100명 모두 d1을 클릭했다. 그중 일부(A)는 더이상 다른 문서를 클릭하지 않고 떠났고, 또 다른 일부(B)는 d3를 클릭했다. (편의상 d2와 d4는 아무도 클릭하지 않았다고 하자.)

이 100명 중에서 검색 결과 페이지에서 d1의 써머리를 “본”(examine) 사람은 몇 명일까? 당연히 100명이다. 그럼 d3의 써머리를 본 사람은 몇 명일까? 간단히 대답할 수 없는 문제다. 잘 알려진 모델인 UBM에서는 특정 문서를 사용자가 볼 확률을 알기 위해서 상단에서 클릭된 문서의 순위와 그 문서와의 거리를 이용한다. d1을 클릭한 사람이 d2 ~ d4를 볼 확률이 다 다르고, d2를 클릭한 사람이 d3, d4를 볼 확률도 다 제각각이라는 얘기다.
 
반면, 또 다른 유명한 모델인 DBN에서는 특정 문서를 볼 확률은 그 위에 노출된 문서의 매력도와 만족도에 영향을 받는다고 본다. 위에 예로 든 상황에서 d2가 있는데도 그아래의 d3가 클릭되었다는 것은 d2가 별로 매력적이지 않았다는 뜻 아닐까? 또, d1을 보고난 후에 d3를 다시 클릭한 사용자는 d1에 만족하지 못한 것이 아닐까?

가볍게 한 번 생각해보자. A와 B의 비율이 (80:20)이면, 즉 d1을 읽은 사용자의 80%는 그대로 떠났고, 20%는 또 다른 문서를 클릭했다면 d1은 얼마나 좋은 문서일까? d1과 d3중 어떤 문서가 더 좋을까?

모르긴 몰라도 80%가 더 이상 다른 문서를 클릭하지 않았다면 d1은 퍽 만족스러운 문서가 아니었을까? 20%가 d3를 클릭했다고는 해도 그 이유가 d1에 정보가 부족해서인지 확신하기는 쉽지 않다.

만약 A:B의 비율이 (50:50)이라면? 이제는 d1의 품질에 약간은 의심을 가져도 될 것 같다. 더군다나 d2가 버티고 있는데도 굳이 d3를 선택한 사람이 50%라는 것은 d3로의 클릭 쏠림이 단순한 우연이 아니라는 생각이 든다.

비율이 (20:80) 정도가 되면 이제는 d1에게 1등이라는 자리가 과분한 게 아닐까라는 고민이 깊어진다. d3를 상위에 보여주는 걸 심각하게 고려해볼 때가 되었다. 이 경우에도 d1과 d3의 CTR은 각기 100%, 80%이지만, d1의 클릭이 많은 것은 단순히 위에 노출되었기 때문이래도 무방해 보인다.

CTR이라는 단순명료한 지표가 있음에도 복잡하게 클릭 모델링을 하는 데에는, 이렇듯 열악한 노출 조건 하에서도 선전하는 좋은 문서를 찾아내고, 반대로 유리한 조건에 그냥 묻어가는 꽃가루 문서를 걸러내고자 하는 의도가 있다. 문제는 균형점을 찾는 것이다. 아래쪽 문서의 클릭에 과도한 가중치를 주면, 검색 결과의 안정성이 떨어지고 어뷰징 행위에도 허약해진다. 따라서 어느 정도는 보수적으로 접근할 수밖에 없을 것이다. 아래쪽 문서가 더 좋다는 신호가 충분히 나올 때까지는 쉽사리 1등을 흔들지 않는 것이다.

어느 해산물 부페에 가서, 현재 거기에 생선 공급하는 업체보다 우리가 더 신선한 고기를 싸게 줄 테니까 우리랑 거래합시다 라고 하면, 아 네 좋습니다 할까? 어느 정도 만족하면서 서비스 잘 쓰고 있는 사용자들한테 가서, 우리는 이런저런 새 기능이 있고 좀더 빠르니까 이제부터 우리 서비스 써주세요 하면 아이고 잘됐네요 하면서 옮겨와 줄까?

아래쪽 문서의 클릭이 좀 많다고 그걸 1등에 올릴 수 없듯이, 현재 어느 정도 잘 쓰고 있는 것보다 좀더 나은 것이 나왔다고 쉽게 갈아탈 수 없다. 지금 그다지 만족스럽지는 않지만 그마저도 잃을까 불안하고, 새것에 대한 신뢰가 부족하기 때문이다. 이럴 때 중요한 전략은 레퍼런스 사례를 최대한 많이 만들어서 불안감을 씻고, 가끔씩 오는 기회를 놓치지 않고 만족감을 주어서 신뢰감을 높이는 것이다.

가끔 1등 아래에 있는 문서들을 클릭해보았을 때, 만족을 넘어선 감동을 주고, 그런 경험이 충분히 누적되면 마음놓고 1등으로 올려줄 수 있을 것이다. 그러기 위해서는 일단 검색 결과 첫 페이지에라도 나오는 것이 중요하다. 사람들이 2등, 3등 문서를 덜 본다고는 하지만, 2페이지 이후의 문서와는 아예 비교가 되지 않는다. 품질 좋은 문서를 적어놓으면 사람들이 알아서 찾아 읽을 것이라며 기다리는 것이 잘못은 아니지만, 기왕이면 쉽게 눈에 띄는 곳에 갖다 놓아서 노출수를 높이고, 그렇게 얻은 기회를 잘 활용해서 신뢰도를 높여가는 전략, 꼭 SEO(Search Engine Optimization, 검색엔진 최적화)에만 해당하는 얘기는 아닐 것이다.

PS. 클릭 모델에 대해 관심이 있으면 마이크로소프트 쪽에서 2009년 CIKM 튜토리얼을 한 자료가 도움이 될 것이다.