Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Challenges in Real-world Recommender Systems

Challenges in Real-world Recommender Systems

추천 시스템의 현실적인 어려움에 대해서 KCC 2022 Workshop (Kakao Tech Workshop)에서 발표한 내용입니다.

B2237facfb53f154429c1046fcd7b6d3?s=128

Chiwan Park

June 30, 2022
Tweet

More Decks by Chiwan Park

Other Decks in Technology

Transcript

  1. Challenges in Real - world 
 Recommender Systems 박치완 bell.park

    카카오 추천팀 kakao tech Copyright 2022. Kakao Corp. All rights reserved. Redistribution or public display is not permitted without written permission from Kakao.
  2. 카카오 추천팀 - 여러가지 카카오 서비스에 추천 시스템을 제공하고 추천

    로직을 지속적으로 개선하는 조직 - 추천 시스템과 머신 러닝 기술을 통해 카카오 서비스의 성공을 견인하는 것이 목표 - 멜론, 카카오웹툰, 픽코마, 미디어다음 뉴스, 브런치, 선물하기 등 다양한 서비스의 추천 시스템 제공 - 콘텐츠 부터 커머스 까지 넓은 도메인을 다룸 - 실제 서비스에 추천 시스템을 적용하기 위한 다양한 업무를 수행 - 대규모 데이터 처리를 위한 파이프라인 구축 - 서비스 데이터 분석 및 목표 지표 디자인 - 추천 모델 연구 - 실시간 서빙을 위한 추천 API 개발
  3. - 실제 서비스에 추천 시스템을 적용할 때 마주하는 여러 가지

    문제 상황에 대해 공유합니다. - Cold - start Problem - Diversity - Response Time - 문제 상황에 대응하는 카카오의 접근법을 공유합니다. - Exploration - Exploitation - Diversi fi cation - Approximate K - NN and Optimization 이 발표에서는
  4. 1. Cold - start 2. Diversity 3. Response Time Summary

  5. 1. Cold - start 2. Diversity 3. Response Time 마무리

  6. - 사용자 또는 아이템에 대한 정보가 없어 협업 필터링(Collaborative Filtering)을

    하기 어려운 상황 - Item cold - start - 새로 추가된 아이템이라 아이템의 소비 이력이 없음 - User cold - start - 서비스에 처음 접속하는 (또는 다른 디바이스로 접속하는) 사용자 - 실제 추천 환경에서 매우 빈번하게 발생함 - 1시간 동안 발행되는 뉴스 기사 수는 1000개 이상 - 대부분의 뉴스 기사는 4-6시간이 지나면 사용자가 소비하지 않음 - 전면 풀 교체가 일어나는 경우도 존재함 Cold - start Problem
  7. - Item cold - start 문제를 해소하기 위해 카카오는 Exploration

    - Exploitation 전략을 사용 - 신규 아이템에 대해서 추천을 수행해보면서 목표 메트릭을 수집 (Exploration) - 수집된 메트릭을 바탕으로 메트릭을 높일 수 있는 방향으로 추천 (Exploitation) Methods for Item Cold - start Problem Cold Item Warm Item
  8. - Exploration - Exploitation 전략을 통해 실시간으로 아이템의 성능을 학습하는

    과정을 반복적으로 수행 - Multi - armed Bandit / Contextual Bandit 문제를 풀 수 있는 여러 가지 알고리즘을 사용 - Thompson Sampling - UCB (Upper Con fi dence Bound) - LinUCB (Linear Upper Con fi dence Bound) - 간단한 확률 모델링을 넘어서 더 복잡한 모델을 적용하는 연구를 진행 중 - Neural Bandits - DQN-based Recommender Systems Methods for Item Cold - start Problem
  9. - User cold - start 문제를 위해서 카카오는 여러가지 방법을

    종합적으로 사용 - 인기순 추천(Most Popular) 목록을 항상 유지하고, User cold - start 케이스에 활용 - 다른 서비스의 사용자 행동 로그로 부터 관심사, 성/연령 정보를 추정해 추천에 활용 - 다른 추천 모델이 생성한 추천 결과를 추정 관심사, 성/연령 정보를 통해서 모사 - 관심사 추정 정보를 고도화 하는 실험을 준비 중 - 카카오 서비스 사이의 Cross - domain recommendation 문제 - 추천을 위한 유저 임베딩 생성 후 각 추천 영역에 전이 학습(Transfer Learning) 적용 Methods for User Cold - start Problem
  10. 1. Cold - start 2. Diversity 3. Response Time 마무리

  11. - 추천 품질 측면에서 다양성은 중요한 요소 - 소비할 것

    같은 아이템만 추천하면 점점 좁은 영역으로 소비 영역 수렴이 발생하게 됨 (feedback loop) - 카카오 뷰 -> 사용자들이 다른 영역에서 콘텐츠(보드)를 소비할 수 없기 때문에 추천에 의한 영향이 큼 - 전반적으로 인기가 높은 아이템이 사용자의 소비 이력에 추가될 확률이 점점 높아짐 - 외부 요인이 없다면, 시간이 지날 수록 추천 결과가 수렴하는 현상이 발생 - 추천 품질 측면이 아니더라도 다양성이 필요한 경우가 있음 - 선물하기 -> 기프티콘 이외의 다른 상품들도 선물이 이뤄질 수 있도록 해야함 - 양면 시장(Two - sided market)인 서비스의 경우 이 부분이 부각됨 - 아이템 생산자 역시, 자신의 아이템이 소비가 많이 되어야 이후 새로운 아이템을 생성할 동인이 생김 Diversity
  12. - Diversity를 높이기 위해 추천 결과의 후처리 작업을 주로 사용

    - 인접한 순위의 아이템들끼리 비교해 비슷한 아이템일 경우 순위 재조정 - Diversity의 기준을 어떤 것으로 잡아야 하는지는 서비스와 추천 영역에 따라 다름 - 카카오 뷰 -> 추천하는 보드의 카테고리가 다양해지도록 튜닝 - 멜론 -> 추천하는 음악의 아티스트, 장르가 다양해지도록 튜닝 - Diversity를 늘리는 것이 서비스의 성장에 도움이 되는지 데이터를 통해 검증하는 중 - 다양한 아이템을 소비하는 사용자가 그렇지 않은 사용자보다 서비스를 더 길게 사용하나? - 다양하게 아이템을 노출 시켜주면 실제로 다양하게 아이템을 소비하는가? Diversity
  13. 1. Cold - start 2. Diversity 3. Response Time 마무리

  14. - 추천 요청이 들어왔을 때 해야하는 일이 많음 - A/B

    테스트를 위한 실험 버킷 설정 - 추천 모델의 결과 계산 - 아이템 필터링 - 기존에 소비한 아이템 제거 - 서비스 요구사항에 부합하지 않는 아이템 제거 - 더 이상 서비스 되지 않는 아이템, 연령에 따른 필터링 등 - 메타 데이터 결합 - 후처리 로직 Response Time
  15. - 카카오 추천 서버 통계 - 하루에 1.7B+ 추천 요청

    처리 - 99.6%의 추천 요청이 100ms 이내에 처리됨 Response Time
  16. - 추천 영역 이외에도 서비스의 많은 부분이 있어 추천 영역의

    요구 응답 시간 기준은 높은 편 - 어떤 서비스의 경우, 추천 결과가 30ms 내에 나와야 함 - 응답 시간 제약으로 인해 추천 모델 선택에 제약이 있음 - 복잡한 랭킹 모델(Deep learning based ranking)의 적용의 어려움 - 대부분은 내적(dot product)으로 계산할 수 있는 랭킹을 적용함 - 아이템 개수가 매우 많은 경우 단순한 모델 조차도 계산 시간이 부담됨 - 멜론 - 매 요청마다 50만개 이상의 아이템을 정렬 해야 함 Response Time
  17. - Candidate generation + Ranking의 2-stage 추천 모델 (Covington et.

    al., RecSys 2016) - Candidate generation 단계에서는 랭킹 모델의 부담을 줄이기 위해 가벼운 모델로 1차 필터링 - 단순 아이템 인기도로 필터링 하는 경우도 있음 - Ranking 단계에서 현재 상황과 사용자에게 맞는 아이템을 
 2차적으로 필터링해서 추천에 적용 Response Time
  18. - Approximate K - NN Search - 랭킹 모델에서 병목이

    되는 주요 부분은 아이템별 스코어를 
 계산하는 마지막 레이어(Output) - 데이터 입력하는 부분은 대부분 0이므로 빠르게 연산 가능 - 마지막 레이어의 행렬을 미리 Approx. K - NN 알고리즘으로 
 인덱스를 만들어 추천 요청시 빠르게 처리 - Kakao N2 (https:/ /github.com/kakao/n2) Response Time
  19. 1. Cold - start 2. Diversity 3. Response Time 마무리

  20. - 카카오의 여러 서비스에 추천 시스템을 안정적으로 제공하기 위해 통합된

    추천 시스템 구축 - 추천 시스템을 실제 서비스에 적용하는 데는 여러가지 도전적인 어려움이 있음 - Cold - start Problem -> Bandits (Exploration - Exploitation), Cross - domain approach - Diversity -> Diversi fi cation - Response Time -> 2-stage 추천 모델, Approx. K - NN 마무리
  21. Q&A 카카오 추천팀이 더 궁금하다면? https:/ /github.com/kakao/recoteam