Recommendation System Basic
1. 개요
추천 시스템의 정의
- 정보 필터링(IF) 기술의 일종으로 특정 사용자가 관심을 가질 만한 정보를 추천하는 것
- 사용자의 행동 데이터와 아이템 데이터를 분석하여 가장 적절한 아이템을 추천하는 시스템
추천시스템이 필요한 이유
- 더 많은 아이템을 판매
- 더 다양한 아이템을 판매
- 소비자 만족도 증가
- 충성도 높은 고객 증가
- 고객의 니즈 파악
- 비용 절감
Pull and Push
search(의도를 갖고 상품을 찾는 행위)
-
사용자의 의도가 담긴 query라는 keyword가 사용됨 (ex 고양이, 노트북)
-
검색을통해 아이템을 소비하는 방식은 pull 방식(아이템을 당겨오듯이)
recommendation
-
추천은 push 방식
-
상품을 유저에게 노출 / 사용자의 흥미나 의도를 고려하여 추천
검색 서비스 | 추천 서비스 |
---|---|
Pull Information | Push Information |
사용자가 요구한 후에 작동 | 사용자가 요구하기 전에 작동 |
사용자가 스스로 원하는 바를 알고 있음 | 사용자가 스스로 원하는 바를 정확히 알지 못함 |
추천시스템은 왜 더 중요해졌을까?
- 과거에는 유저가 접할 수 있는 상품, 컨텐츠가 제한적
- TV 채널, 영화관, 백화점, 신문 등
- 웹/모바일 환경은 다양한 상품, 컨텐츠를 등장하게 함
- 과거에는 정보가 부족 but 현재는 정보가 흘러넘침
- Few Popular Items & Long Tail Phenomenon
- 인기있는 소수의 아이템만 많이 소비되고 다수의 아이템은 적게 소비되는 형태
- 유저가 정보를 찾는데 시간이 오래 걸리게 됨
- 유저가 원하는 것을 어떤 키워드로 찾아야 하는지 모를 수 있다
- 좋은 추천엔진은 유저자신보다 더 잘 추천해줄 수 있음
Long-Tail Recommendation : 추천시스템이 풀고있는 문제의 본질가운데 하나
추천시스템 사례
- 유튜브 동영상 추천
- 조회수가 급상승한 영상이 등장할 경우
- 해당 영상과 관련이 있거나 해당 영상이 업로드 되어있는 채널의 영상을 추천(조회수가 적은 경우에도)
- SNS 친구 추천(인스타그램)
- 수천만 혹은 수십억 명의 유저들 가운데 내가 알만한 사람들을 추천
- 유명한 연예인이나 셀럽대신 나의 친구의 친구 등을 추천
2. 사용 데이터
추천 시스템에서 사용하는 정보
-
유저 관련 정보
-
유저 프로파일
- 유저와 관련된 정보를 생성하는 작업
- 추천 대상 유저에 관련된 정보를 구축하여, 개별 유저 혹은 유저 그룹별로 추천함
-
식별자(Identifier)
- 서비스에서 발급하는 USER ID
- DEVICE ID(광고 추천의 경우)
- 브라우저 쿠키(로그인 하지 않고 이용하는 경우)
-
데모그래픽 정보
- 성별, 연령, 지역, 관심사 등
- 개인정보법이 강화됨에 따라 추정을 통해 생성하기도 함
-
유저 행동 정보
- 쿠키, 페이지 방문 기록, 클릭 패턴, 아이템 평가, 구매 등의 피드백 기록
- 유저의 과거 행동 정보
- 사용자의 로그 분석에 이용(행동 패턴 등)
-
-
아이템 관련 정보
- 추천 아이템의 종류
- 포털: 뉴스, 블로그, 웹툰 등 컨텐츠 추천
- 광고/커머스: 광고 소재, 상품 추천
- 미디어: 영화, 음악, 동영상 추천
- 아이템 프로파일링
- 아이템 ID
- 아이템의 고유 정보(아이템의 META DATA)
- 영화: 영화 장르, 출연 배우 및 감독, 개봉 년도 등
- 상품: 상품 카테고리, 브랜드, 출시일, 상품 이미지
- 음악: 아티스트, 작곡가, 장르, 음악 신호 그 자체
- 아이템 관련 정보는 아이템 ID외에는 추천 아이템별로 크게 다르기 때문에 추천시스템에서는 공통적으로 아이템ID를 사용
- 추천 아이템의 종류
-
유저 - 아이템 상호작용 정보
- 유저와 아이템의 상호작용 데이터
- 유저가 오프라인 혹은 온라인에서 아이템과 상호작용 할 때 로그로 남음
- 추천 시스템을 학습하는 데이터의 FEEDBACK이 됨
- Explicit Feedback
- 유저에게 아이템에 대한 만족도를 직접 물어본 경우
- 영화에 대한 평점, 어떤 상품에 대한 좋아요, 피드백 등
- Implicit Feedback
- 유저가 아이템을 클릭하거나 구매한 경우
- 어떤 상품을 보는 시간, 클릭 패턴, 검색 로그 등
- Implicit Feedback이 훨씬 많다!!
- 유저와 아이템의 상호작용 데이터
3. 문제 정의
추천 시스템의 목적
특정 유저에게 적합한 아이템을 추천한다. (특정 아이템에게 적합한 유저를 추천한다)
-
유저 - 아이템 상호작용을 평가할 score 값이 필요함
-
추천을 위한 score는 어떻게 구해지고 사용될까?
랭킹(Ranking): 유저에게 적합한 아이템 Top-K개를 추천하는 문제
-
Top K개를 선정하기 위한 기준 혹은 스코어가 필요하지만. 유저(X)가 아이템(Y)에 가지는 정확한 선호도를 구할 필요는 없다
-
평가지표: Precision@K, Recall@K, MAP@K, nDCG@K
예측(Prediction): 유저가 아이템을 가질 선호도를 정확하게 예측(평점 or 클릭/구매 확률)
-
Expliict Feedback: 평점 값을 예측
-
Implicit Feedback: 상품을 조회하거나 구매할 확률 값을 예측
- 유저 - 아이템 행렬을 채우는 문제
- 관측값(Observed value)은 모델 학습에 사용
- 결측값(Missing value)는 모델 평가에 사용
- 평가지표: MAE, RMSE, AUC
4. 추천 알고리즘
추천 시스템
- 관련있는 아이템을 유저에게 추천해주는 서비스 전체
추천 알고리즘
아이템 pool에서 후보군을 만들고(Generate Candidates), 후보군을 바탕으로 Intention 또는 Filtering을 수행한 후에 랭킹 또는 예측을 통해 해당 후보군이 적절한지 판단하는 과정
- Contents-based Recommender System
- 사용자가 과거에 좋아했던 아이템을 파악하고 그 아이템과 비슷한 아이템을 추천
- Collaborative Filtering
- 비슷한 성향을 갖는 다른 유저가 좋아한 아이템을 현재 유저에게 추천
- 간단하면서 높은 정확도를 나타냄
- Hybrid Recommender System
- Content-based 와 Collbarative Filtering의 장단점을 상호 보완
- Collaborative Filtering의 경우 새로운 아이템에 대한 추천 부족
- Content-based 기법을 같이 사용하여 cold-start 문제를 해결 가능
- Context-based Recommendation
- Context-aware Reommendation System
- Location-based Reommendation System
- Real-time or Time-Sensitive Reommendation System
- Community-based Recommendation
- 사용자의 친구 또는 사용자가 속한 커뮤니티의 선호도를 바탕으로 추천
- SNS 등의 뉴스피드 또는 SNS 네트워크 데이터 등을 활용
- Knowledge-based Recommendation
- 특정 도메인 지식을 바탕으로 아이템의 features를 활용한 추천
- Case-based Recommendation
- 사용자의 니즈와 해결책 중 가장 적합한 것을 골라서 추천
- 특정 상황에 맞게 추천
- Constraint-based Recommendation
- 사용자에게 추천할 때, 정해진 규칙을 바탕으로 추천
5. 추천 시스템의 한계
- Scalability
- 실제 서비스 상황은 다양한 종류의 데이터가 존재
- 학습 또는 분석에 사용한 데이터와는 전혀 다른 실전 데이터
- Proactive Recommender System
- 특별한 요청이 없어도 사전에 먼저 제공하는 추천서비스(Push Information)
- 모바일, 인터넷 등 어디서든 유저에게 끊임없이 좋은 정보를 추천할 수 있는 서비스를 제공 가능한지
- Cold-Start Problem
- 추천서비스를 위한 데이터 부족
- 기본적인 성능을 보장하는 협업필터링 모델 구축이 쉽지 않은 것이 일반적
- 컨텐츠 기반 또는 지식 기반의 방법 역시 서비스로 적용하기 어려움
- Privacy preseving Recommender System
- 개인 정보(나이, 거주지) 등은 직접적으로 사용하기에 어려움이 있음
- Mobile devices and Usage Contexts
- Personal Computing, Location-based Service(LBS)
- 개별 상황 또는 환경 등에 따라 다른 컨텍스트를 사용
- Long-term and Short-term user preference
- 개인 또는 그룹의 단기 / 장기 관심사항
- 추천받고 싶은 아이템이 현재 또는 과거 중 어느 시기와 관련 있는지 파악하기 어려움
- Generic User models and Cross Domain Recommender System
- 하나의 모델을 여러가지 데이터에 적용하기 어려움
- 비슷한 도메인의 데이터를 활용해도 동일한 성능의 추천시스템을 기대하기 어려움
- Starvation & Diversity
- Starvation: 필요한 컴퓨터 자원을 끊임없이 가져오지 못하는 상황
- 유저와 아이템이 너무나도 다양함 / 모든 상황을 커버하기는 힘듦
추천 시스템에는 정답이 없다..!!
6. 좋은 추천시스템을 만들기 위해 고려해야할 항목
- 성능 좋고, 빠르고, 설명 가능한 추천 알고리즘
- 적절한 아이템을 빠르게 찾고, 해당 아이템을 추천하는 이유를 설명 가능
- 추천시스템에 필요한 적절한 데이터(User or Item Profiling)
- 추천 알고리즘을 만들기 위한 좋은 데이터 확보
- 적절한 추천을 위한 후보군 설정
- 추천시스템의 목적
- 추천시스템을 통해 비즈니스 역량 확대, 매출 증대, CTR 증가 등 다양한 목적
- 플랫폼 내에서 추천시스템의 역할
- 추천시스템이 주요 기능이고 필수인지 또는 옵션인지 정의
- 플랫폼 사용자
- 사용자에게 어떤 정보를 받는지, 사용자는 어떤 환경에서, 어떻게 서비스를 이용하는지 확인
- 좋은 아이템을 추천하는 것만이 꼭 좋은 해결책은 아니다
- 사용자는 추천된 리스트에서조차 결정하기 어려울 수 있음
- 사용자 스스로 정보 또는 지식이 부족해서 추천된 아이템에서 선택이 불가능 할 수 있음
- 사용자와 플랫폼 간의 소통이 필요
- 사용자 스스로 추천된 아이템 중에서 선택할 수 있도록 소통해야함
- Interactive 한 process를 통해 사용자가 플랫폼에 더 오래 머물 수 있도록 유도해야함
- 정보 검색(Information Retrieval)과 정보 추천(Recommender System) 차이의 극대화
- 검색은 일반적인 아이템과 정보 제공
- 추천은 개인화된(personalized) 아이템과 흥미롭고 유용한 정보를 제공해야함
7. 필터버블(Filter Bubble)
- 사용자가 전체 정보를 볼 기회를 박탈당함
- 추천시스템이 고도화될 수록 사용자 취향에 가까운 정보만 제공받고 나머지 정보는 알 수 없는 상황이 발생
- 정보의 비대칭성, 편향성이 생기게됨
- 사용자간의 양극화 현상 등 사회적 문제로 이어질 수도 있음
댓글남기기