On Ranking: Run to King
우리 일상의 많은 것이 랭킹과 관련 있다. 어쩌면 삶의 모든 것이 랭킹이다. 왕좌를 향해 달려가듯이 피라미드의 가장 높은 곳으로 올라가는 경쟁이 한편으론 우리를 각성케 한다. 속되게 말해서 줄세우기와 줄타기가 결국 랭킹이다. 비교나 연결도 랭킹으로 해결할 수 있다. 얼마나 가까운가 또는 먼가를 측정하고 붙일 것인가 뗄 것인가를 고민하는 것이 랭킹인 거다. 특히 데이터 분석이나 인공지능에선 업무의 대부분이 랭킹이고, 더 좋은 랭킹 알고리즘을 찾으면 레벨업하는 거다.
운 좋게도 Daum의 검색 본부로 입사해서 검색 랭킹의 극히 일부를 담당하기도 했었고 이후 추천 서비스들을 만들 때도 많은 아이템들을 줄 세운 후에 Top N개를 골라내는 일을 했고, 광고 분야로 옮긴 후는 Top 1을 선택하는데 기여했다. 신규 채용을 위한 여러 인터뷰에 들어갔는데 이도 결국은 지원자들의 역량이나 성향으로 줄 세우는 랭킹 작업을 한 셈이다. 그 전의 학교 생활도 결국 줄세우기의 범주에 크게 벗어나지 않으니 평생을 랭킹을 갖고 고민하며 살아온 셈이다.
그만큼 랭킹이 우리 삶에 편재하지만 그렇기 때문에 어려운 문제다. 랭킹의 A-Z를 모두 설명할 수는 없고, 웬만한 서비스에는 적용될 수 있는 아주 개념적으로 랭킹을 모델링한 것을 설명한다. 국내의 카카오나 네이버의 서비스들이든 국외의 구글이나 페이스북 등의 서비스든 디테일의 차이는 조금 있을 수 있으나 아래의 식에서 크게 벗어나지 않는다고 본다.
랭킹이 뭐냐? 또는 어떤 요소로 어떻게 줄 세우면 되냐?를 고민될 땐 그냥 OPQR만 떠올리면 된다. 위의 그림에 적었듯이 랭킹은 관련도, 인기도, 그리고 품질지수를 적당히 조합해서 정열 하면 된다. ST까지 확장하면 OPQRST가 랭킹인데, S는 Situation이고 T는 Time이다. 이 글을 적기 직전에 R을 Relevance & Recency로 우기려다가 급하게 ST를 추가했다. 서비스에 따라서 PQRST 이외의 요소가 추가될 수도 있다. 대표적으로 쇼핑몰이라면 ‘가격순’ 정열이 있듯이 Price가 추가될 수 있다.
PageRank가 등장하기 전까진 대부분의 검색 서비스는 BM25로 랭킹 했는데 이는 쿼리 단어와 문서 간의 쿼리 매칭 정도를 수치화한, 즉 R을 담당한다. BM25 수치가 비슷한 여러 문서들이 있을 때 사용자들이 더 많이 클릭해본 문서들이 쿼리와 더 연관된 경우가 많았다. 더 많은 클릭 (또는 더 높은 CTR)은 사용자들의 선택, 즉 P다. 이후 페이지랭크와 아류 알고리즘들이 등장했는데 이는 문서들 간의 Voting, 즉 P의 정교화다. 페이지랭크에 대한 신화 비슷한 것이 있지만 실제 가장 효과가 좋은 랭킹 요소는 — 단 커버리지는 매우 낮음 — 앵커 텍스트인데, 앵커 텍스트는 R 영역에 속한다. 여기에 더해서 각 문서들이 갖는 품질이란 게 존재한다. 출처의 신뢰도나 글쓴이의 명성뿐만 아니라, 문서 자체의 우수성을 여러 측면에서 분석해서 문서의 품질, 즉 Quality를 측정해서 검색 랭킹에 반영한다. 최신성도 중요하지만 때론 Originality가 더 중요한데 이는 T영역으로 볼 수 있다. 상황이나 의도에 맞는 문서만을 필터링한다면 적당히 S도 우길 수 있다.
추천의 랭킹도 크게 다르지 않다. 데이터나 알고리즘에 전문성이 없더라도 추천 영역을 만든다면 사람들이 가장 많이 조회한, 또는 가장 많이 구매한 상품을 보여줄 거다. 보통 Most Popular (MP)라고 말하는데, 초기에는 P 위주의 추천이었고, 요즘도 — 특히 Cold Start에서 — MP 기능이 없는 서비스는 없다. 추천에서의 R은 보통 유사도 (Similarity 또는 distance)로 측정하다. 사용자의 프로파일 (또는 임베딩)과 유사한 아이템을 추천하거나 현재 보고 있는 아이템 (임베딩)과 유사한 아이템을 추천한다. 이미지 썸네일이 보이는 경우 물론 선정성이 클릭에 큰 영향을 주겠지만 이미지가 더 깨끗하고 선명하면 보통 더 많은 클릭을 얻는다. 음식을 추천한다면 더 먹음직스럽게 찍은 사진의 메뉴가 선택될 가능성이 높다. 어떤 측면에서 아이템 제공자의 명성이 곧 품질인 경우도 흔하다. 쇼핑몰에서 TV를 구매하는데 다른 조건이 비슷하다면 대기업 제품이 더 안전한 선택이다. 여러 형태로 운영자가 콘텐츠의 품질을 검수해서 마킹해두는 경우도 존재한다. 때론 중계자가 자사의 제품/서비스를 우선 노출시키는데 어떤 측면에서는 불공정 행위이기도 하지만 다른 한편으론 품질이 검수된 제품을 우선 보여주는 것이기에 판단하기가 조금 모호한 감이 있다.
광고에서는 보통 eCPM을 기준으로 랭킹 하는데, 간단히 설명해서 광고주가 지불할 의향이 있는 금액 BA와 사용자가 그 광고를 선택할 가능성 pCTR의 곱으로 구한 값이 eCPM이다. 단순히 생각하면 pCTR이 관련도 R처럼 보인다. 그런데 조금 더 깊이 고민해보면 BA가 오히려 더 관련도를 나타내는 지표다. 광고주가 사전에 자신의 광고 또는 제품에 가장 적합한 audience를 좁혀서 타게팅해놨고 그들에게 기꺼이 지불한 광고비를 책정한 것이므로 광고주/광고/제품과 사용자 (오디언스)와의 관련도가 타게팅 1/0으로 설정된 걸로 볼 수 있다 (자동 타게팅인 LookALike도 포함). CTR의 경우 사용자가 해당 광고를 더 많이 클릭하면 CTR이 증가하기 때문에 얼핏 관련도처럼 보이지만, CTR은 결국 노출 횟수 대비 클릭 횟수를 계산한 것인데, 예를 들어, 1,000번을 노출해서 100번 클릭받은 A와 500번을 노출해서 80번 클릭받은 B가 있으면 CTR 이 각각 10%, 16%가 된다. 여기서 만약 분모 ( = 노출 횟수)가 같다면 높은 CTR은 더 많은 클릭을 받은, 즉 인기가 더 많은 광고 (또는 콘텐츠)가 어느 것인가를 보여주는 지표인 셈이다. 이 글에서 자세히 다룰 순 없지만 기본 eCPM 식에 광고 소재의 품질, 광고주의 평판 등의 여러 품질 요소를 접목해서 최종 노출 광고를 결정한다.
인터뷰로 지원자를 뽑을 때도 전공이나 경력 사항의 연관성 (R), 학위/자격증 유무나 포트폴리오의 우수성 (Q), 그리고 … 인기도 (P)는…?
이외에도 다른 서비스들의 랭킹도 PQR에서 크게 벗어나지 않는다. 마지막으로 랭킹은 때론 Context를 따른다. Context란 결국 시간, 장소, 관계 등을 나타내는 현재 상황, 즉 Situation과 Time이다. 현재 상황에 맞는 다양한 필터링 조건들, 어떤 측면에서 상황과의 관련도라 말할 수도 있다. 콘텐츠나 제품의 출시일 date도 랭킹에서 중요하다. 뉴스 같은 콘텐츠를 추천할 때 ‘최신순’ 보기가 필요하다. 서비스 성격과 상황에 따라 다양한 랭킹 전략을 취할 순 있지만 큰 틀에서 OPQR을 벗어나지 않는다.