4.Recommender_System
4 minute read
추천 시스템의 정의
- 특정 시점에 특정 고객이 좋아할 만한 리스트를 찾아주는 것
추천 시스템이 고려해야 할 요소
- 고객
- 아이템
- 시스템의 업데이트
- 알고리즘적 성능
- 추천 모델의 계산량, 연산 속도
- 협업 필터링이나 딥러닝은 빅데이터 시스템이 안정적으로 구축되어 있지 않는 한, 좋은 알고리즘적 성능을 가진 모델은 아니라고 할 수 있음.
- 그래서 최신의 알고리즘보다 훨씬 쉽고 간단하고 연산량이 적으면서 고급 알고리즘들과 비슷한 성능을 낼 수 있는 Association Rule과 같은 알고리즘들이 e-commerce영역에서 여전히 널리 활용되고 있음.
- 넓은 의미로는 빅데이터를 처리할 수 있는 좋은 환경.
추천 시스템의 장애 요소
- Sparsity Problem
- 추천할 아이템과 고객은 계속해서 늘어나지만, 고객이 실제로 소비하게 되는 콘텐츠가 아이템의 비율은 현저하게 감소.
- 디지털 환경에서는 ‘추천’이라는 타이틀을 달고 리스트가 노출되는 영역이 한정적이기 때문에 아이템의 리스트를 추려내는 작업이 어려워짐
- Information Utilization Problem
- 영화, 맛집 추천 서비스가 아닌 대부분의 추천 서비스에서 나타나는 문제점.
- E-commerce를 예시로 들었을 때, 고객이 상품을 눌러보고, 살펴보고 장바구니에 넣거나 구매하는 정보를 암묵 점수라고 한다. 이때 고객들은 정확한 정보를 남기지 않는다. 구매를 했다고 해서 상품에 대한 호감을 나타내는 것이 아니기 때문.
- 이 모든 것을 고려하여 데이터를 활용하기 용이한 명시 점수(영화 평점 같은 평가 점수)처럼 데이터를 Utilization 하는 과정이 필요할 것.
- 대부분의 잘 정리된 명시 점수의 경우 Sparsity Problem을 심각하게 겪을 수 있으므로 명시 점수가 항상 좋은 데이터는 아님.
과거 추천 시스템의 동향
- 과거의 추천 시스템에서는 KDD라는 방법론을 기반으로 알고리즘 개발 착수.
- KDD(Knowledge Discover in Database): 데이터셋에서 유의미한 규칙을 찾아내는 것
- 대표적인 방법: Association Rule
- Association Rule
- 고객들의 상품 묶음 정보를 규칙으로 표현하는 가장 기본적인 알고리즘.
- 기초적인 확률론에 기반한 방법으로, 전체 상품중에 고객이 함께 주문한 내역을 살펴본 뒤 상품간의 연관성을 수치화하여 나타내는 알고리즘.
- 가장 직관적이고 구현도 쉽지만, 성능이 떨어지는 알고리즘은 아니고 현재도 가장 중요한 알고리즘으로 분류됨.
- 추천의 타입
- Personalized recommender(개인화 추천): 유저의 정보에 기반하여 자동으로 아이템 리스트를 추려냄.
- 매칭되는 알고리즘: CF(Collaborative Filtering)
- Non-personalized recommender: rating 기반의 인기 상품이나 현재 상품 기준 AR(Association Rule) 순위 상품을 추천함. Cold Start Problem(개인화 추천 모델링을 위한 유저정보 혹은 아이템 정보가 부족한 상황)이 발생하는 상황이나 개인화추천이 잘 적용되지 않는 추천 영역에서 사용.
- 매칭되는 알고리즘: AR(Association Rule)
- Attribute-based recommender: Contents 정보를 활용하여 추천하는 방법. Cold Start 문제를 해결하는 조금 더 세련된 방법.
- 매칭되는 알고리즘: content based approach
현재 추천 시스템의 동향
- 과거와 기본적으로 다르지 않지만, 딥 러닝을 위시한 부분적으로 더욱 고도화된 알고리즘들이 적용되고 있으며, 하둡으로 대표되는 빅데이터 처리 플랫폼이 매우 안정화됨.
- 통계 기반의 모델링:
- 상품에 대한 암묵 점수들의 분포를 통계적으로 살펴보는 것이 의미가 있을 수 있음.
- 가설에 기반하여 실제의 분포나 반응이 얼마나 다른지를 검정하는 통계 검정 기법으로 카이제곱 검정 등의 통계 기법을 사용할 수 있음.
- 원시적이지만 때때로 강력함.
- CF(Collaborative Filtering) 기반의 모델링:
- 가장 널리 알려져 있고, 대부분의 추천 시스템이 이 방법으로 구축.
- 이 모델링을 기본으로, 다양한 응용 알고리즘이 있고, 발전시키거나 다른 알고리즘과 접목하는 방향으로 옮겨감.
- 연관성이라는 측면때문에, 일부 논문 등의 자료에서는 AR도 CF 기반의 모델링으로 분류하기도 함.
- 딥 러닝 기반의 모델링:
- 비교적 최근의 연구결과를 바탕으로 부분적으로 적용되고 있는 방법.
- Content based 모델링 기법에서 이미지 등의 특별한 데이터를 다루기 위한 모델링을 하기도 하며, word2vec으로 대표되는 언어 처리 알고리즘을 키워드 분류 등에 사용하기도 함.
- 현재 가장 활발하게 연구 및 개발이 이루어지고 있는 분야.
- 절대적인 방법론은 없고, 추천 시스템을 구축하는 기술자 또는 사용하는 고객에 맞추어서 사용.
- 사용자와 비슷한 유저가 좋아 할 만한 아이템을 추천해줘야 하는 경우엔 CF모델링이 유용할 것이고, 이미지 추천과 같이 기계가 자동으로 정보를 추출해내 주어야 하는 경우에는 딥 러닝 모델링이 성능이 좋을 수 있음.
추천 시스템을 평가하는 방법
- B2C 추천 시스템에서 추천 결과를 평가하는 방법:
- 오프라인 모델: 알고리즘 성능 자체를 평가.
- 주어진 데이터셋만을 가지고 나누어 학습하여 평가하는 것.
- 온라인 모델: 알고리즘이 예측한 리스트와 실제 유저들이 좋아하는 리스트를 다양한 기준으로 비교해 보는 실전 테스트.
- 완성된 알고리즘을 유저들에게 배포했을 때 어떤 결과가 나오는지를 A/B 테스트 등으로 실험해 보는 것.
추천 시스템
- 네이버
- AiRS(AI Recommender System)
- 최근 7일 동안의 사용자 활동을 분석하여 추천하는 네이버 뉴스 자동 추천 시스템.
- CF(Collaborative Filtering) 기술과 RNN(Recurrent Neural Network) 기술을 바탕에 둠
- CF 기술로 사용자들의 콘텐츠 소비 패턴을 분석하고, 비슷한 관심사를 가진 사람들이 많이 본 콘텐츠를 먼저 선별해서 보여줌.
- RNN을 통해 사용자들이 콘텐츠를 보는 순서까지 정교하게 분석하고, 최신 콘텐츠까지 적합하게 추천할 수 있도록 스스로 학습.
- 지식iN 답변 추천
- 이용자 패턴 분석을 통해 질문에 가장 적합한 답변을 추천.
- 사용자 그룹별 상품 추천
- 사용자 성별과 나이를 조합해 그룹 내에서 인기있는 상품들을 추천.
- 사용자 그룹에서 많이 검색한 키워드, 많이 클릭한 상품을 기반으로 태그를 통한 상품 추천도 강화.
- 사용자 패턴 정보를 알고리즘으로 구축하는 쇼핑 트렌드 그래프와 사용자들의 쇼핑 검색 의도와 취향을 분석하는 사용자 선호 분석 등 쇼핑 검색 기술들을 적용.
- 음원 스트리밍 서비스
- 판도라.
- 콘텐츠 기반 필터링: 항목을 분석한 프로파일을 추출하여 유사성을 계산하는 알고리즘
- 신곡이 나오면 장르, 비트, 음색 등 400여 항목의 특성 추출.
- 사용자의 데이터를 바탕으로 선호도를 고려하여 추천
- 멜론
- 사용자의 선호 아티스트와 장르를 기준으로 음악을 추천하고 추천 근거도 같이 제공.
- 10일 이내에 발매된 곡만 추천되어 누적된 빅데이터가 동일한 곡을 추천하지 않게끔 하는 전략을 더함.
- 레진코믹스
- 머신러닝 기반으로 사용자의 만화 선호도를 세부 분석해 적절한 인기작을 뽑아주는 포유 서비스 시작.
- 넷플릭스
- 사용자가 선호하는 영화를 기반으로 추천
- 영화 선호도의 유사성 뿐만 아니라 영화를 선호하는 이류를 패턴 형식으로 풀어내 추천해주는 모델 기반 협력 필터링 기반 알고리즘 개발.
- 모델 기반 협력 필터링: 협업 필터링을 고도화 한 것으로 기존 항목 간 유사성을 단순하게 비교하는 것에서 벗어나 자료 안에 내재한 패턴을 이용하는 기법.