본문 바로가기

Tech Story

추천 시스템에서의 랭킹과 필터링 문제 (PR시리즈.7)

일곱번째 주제는 랭킹으로 정했습니다. 보통 추천 시스템은 Top N개의 아이템을 추천해줍니다. Top N을 결정하는 것은 일반적인 의미에서 랭킹 문제로 볼 수 있습니다. 그리고 추천 시스템을 검색엔진의 특수형/변형이라고 볼 수도 있습니다. 검색엔진은 사용자가 입력한 키워드 (쿼리)에 대해서 가장 적합한 (매칭률, 인기도, 최신성, 다양성 등 고려) 문서들을 제공하는 것이지만, 추천 시스템에서의 쿼리는 키워드가 아니라 유저 또는 아이템 그 자체입니다. 즉, 어떤 사용자를 쿼리해서 그/그녀에게 가장 적합한 아이템을 검색결과로 던져주거나 특정 아이템에 대해서 가장 연관성이 높은 것을 제시하는 것이 추천 시스템입니다. 입력의 형태만 키워드에서 유저 또는 아이템으로 바뀌었을 뿐, 기본 작동원리는 검색엔진의 그것과 동일합니다. 그래서 결국 추천에서도 랭킹이 중요한 이슈입니다.

보통 Top 5, Top 10 등의 다수의 아이템을 추천해주지만, 경우에 따라서 Top 1만을 제시하는 경우도 있습니다. 소수의 아이템을 추천해줄수록 랭킹이 더욱 중요한 역할을 합니다. 다수의 아이템을 추천해주는 경우에는 1, 2 위 자리에 적당한 아이템이 제시되지 않더라도 그 후순위의 것을 바로 확인이 가능하지만, 한두개만을 제시할 때는 그렇지 않기 때문입니다. 이전 글에서도 언급했는데, 다수의 아이템을 추천할 때는 의도적으로 다양성/우연성을 더 장려합니다.

이론적으로는 추천 시스템에서 명시점수를 사용하는 경우에는 예측된 레이팅 점수로, 암묵점수를 사용하는 경우에는 예측된 선호확률로 랭킹을 결정하면 됩니다. 그렇지만 실제 서비스에서는 예측값 이상의 랭킹 요소들이 필요합니다. 검색엔진에서도 쿼리와 문서와의 매칭률 (보통 BM25로 계산됨) 뿐만 아니라, 인기도 (클릭률, PageRank 등), 최신성, 출처의 신뢰성 등의 다양한 요소로 최종 랭킹을 정하듯이 추천 시스템에서도 예측치 외에 다양한 요소들이 필요합니다.

가장 우선시 되는 요소는 연관도입니다. 유저기반의 CF에서 A와의 유사도는 0.7이고, B와의 유사도는 0.4라면 A에 의해서 매핑되는 아이템이 더 나의 선호에 맞을 가능성이 높습니다. 아이템기반에서도 유사도/연관도가 높은 아이템을 우선 추천해주는 것이 합리적입니다. 연관도는 앞서 말했던 레이팅/확률 예측치와 같은 개념으로 봐도 무방할 것같습니다.

그외에는 이전 글에서 밝혔던 추천 시스템의 평가측도와 관련된 모든 요소들이 랭킹 요소로 활용될 수 있습니다. 가장 대표적으로 아이템의 인기도/선호도가 랭킹에 반영됩니다. a와 b 모두 연관도가 0.7로 동일할 때, 그들의 인기도 (유저들의 총 조회회수 등)가 각각 0.8과 0.3이라면 b보다 a를 우선 추천해주는 것이 맞습니다. 그리고 아이템의 최신성도 중요한 요소입니다. 유사한 아이템이라면 더 최신의 정보/상품을 추천하는 것이 전반적인 만족도를 높여줍니다. 물론, 검색에서 원본 문서에 가중치를 두듯이, 최신성이 절대적일 수는 없습니다. 그래도 뉴스와 같은 시간에 민감한 정보의 경우 최신 뉴스를 우선 보여주는 것이 맞습니다. 그리고 한 사용자가 a는 어제 조회했고, b는 오늘 조회했다면, 아이템 기반으로 추천해주는 경우 b와 연관된 것을 a의 그것들보다 우선순위에 놓는 것이 합리적입니다. 즉, 사용자의 최근 관심사를 랭킹에 반영하는 것입니다.

그리고 대부분의 실서비스에서는 중립적인 계산된 랭킹값에 더해서 비즈니스 로직 / 도메인 지식도 결합됩니다. 앞서 말했던 최신성도 일종의 비즈로직입니다. 예를들어, 뉴스 추천에서 정치 뉴스를 주로 소비하는 사용자에게 스포츠나 연예 뉴스를 생뚱맞게 추천해준다면 만족도가 떨어질 가능성이 높습니다. 이런 경우, 사용자가 선호하는 카테고리의 뉴스들에 가중치를 둔다거나 역으로 비선호 카테고리는 페널티를 줄 수도 있습니다. 경우에 따라서는 비선호 카테고리는 추천에서 배제한다는 필터링이 적용될 수도 있습니다. 유저기반의 개인화에서는 다양성의 측면에서 덜 하지만, 아이템 기반의 연관아이템을 추천해주는 경우에는 연관된 상품의 카테고리가 너무 상이하면 추천에 대한 신뢰도가 떨어질 수도 있습니다. 쇼핑에서 상품 추천의 경우 가격이 낮은 것을 추천해준다와 같은 룰도 적용이 가능합니다.

랭킹과 함께 고려되어야할 사항이 필터링 이슈입니다. 앞서 언급했듯이 같은 카테고리의 아이템만 연결한다 또는 가중치를 차등한다와 같은 소프트한 필터링도 존재하겠지만, 이미 유저가 소비했던 아이템을 추천 대상에서 제외하는 것과 같은 하드한 필터링은 꼭 필요합니다. 물론 쇼핑과 같은 경우에는 특정 제품의 구매욕구가 생겼을 때, 바로 구매하는 경우는 더뭅니다. 여러 상품을 조회해보고 며칠을 고민하다가 결국 하나를 선택하는 경우가 많습니다. 이런 경우에는 이미 조회했던 상품을 다시 보여주는 것도 의미가 있습니다. 그러나 같은 상품을 너무 자주 노출하면 그것 -- 특히 광고 -- 에 대한 피로도만 쌓입니다. 이렇게 이미 조회했던 아이템이나 빈번히 노출되었던 아이템을 추천에서 제외시킴으로써 새로운 아이템을 발견하는 기쁨을 제공해줄 수 있습니다.

또 중요한 랭킹 및 필터링 요소로 에디터/운영자의 운영점수도 있습니다. 각 언론사/포털의 편집자들이 그날의 주요/당위 이슈를 수작업으로 선정하기 때문에 그런 뉴스의 경우에는 중요할 뿐만 아니라 (운영자에 의해) 검증되었기 때문에 더 높은 가중치를 부여할 수도 있습니다. 역으로 특정 기사 (성인 컨텐츠나 지나친 상업성 기사, 또는 법에 의해서 정해진 블라인드 처리 기사 등)은 추천에서 배제하는 것도 가능합니다. 검색이나 추천 시스템이 기본적으로 자동화를 위한 방편이지만, 사람들의 intervention을 완전히 배제할 수는 없습니다.

필터링은 완전 배제이고, 랭킹은 조정이기 때문에 별도의 글로 작성하려 했으나 0/1과 (0, 1)의 차이일뿐, 개념적으로 둘이 동일하다고 판단해서 함께 적었습니다.

추천시스템 전체 목록

  1. 추천 시스템과의 조우 (PR시리즈.1)
  2. 추천 시스템을 위한 데이터 준비 (PR시리즈.2)
  3. 추천대상에 따른 추천 시스템의 분류 (PR시리즈.3)
  4. 알고리즘에 따른 추천 시스템의 분류 (PR시리즈.4)
  5. 추천 시스템을 위한 유사도 측정 방법 (PR시리즈.5)
  6. 추천 시스템의 성능 평가방법 및 고려사항 (PR시리즈.6)
  7. 추천 시스템에서의 랭킹과 필터링 문제 (PR시리즈.7)
  8. 추천 시스템의 쇼핑하우 적용예 (PR시리즈.8)
  9. 개인화 추천 시스템에 대하여 (PR시리즈.9)
  10. 추천 시스템의 부작용 - 필터버블 (PR시리즈.10)
  11. 추천 시스템의 레퍼런스 (PR시리즈.11)
  12. 추천 시스템에 대한 잡다한 생각들 (PR시리즈.12)
  13. 추천 시스템을 위한 하둡 마훗 사용하기 (PR시리즈.13)
  14. 추천 시스템에 대해서 여전히 남은 이야기들 (PR시리즈.14)

==

페이스북 페이지: https://www.facebook.com/unexperienced

반응형