추천시스템
01. 추천시스템?
사용자(user)와 아이템(item)으로 구성된 시스템으로, 특정 사용자가 좋아할 아이템 혹은 비슷한 상품을 좋아할 사용자를 추천해준다.
[정의] 사용자로부터 선호도(Preference) 여부를 데이터화 하는 것이다.
이를 위해 Explicit Feedback(평점), Implicit Feedback(행동 패턴)을 사용할 수 있으며 사용자의 선호도와 제한사항을 바탕으로 가장 적절한 아이템 점수를 계산하여 관련있는 순서대로 사용자에게 list 형태로 추천을 제시한다.
추천시스템은 내가 실제로 원하는 것을 결과로 보여주는 pull 방식의 검색 엔진과 다르게 내가 원할 것 같은 것을 추천해주는 push 방식이다.
추천시스템의 등장 배경
- 서비스의 성장과 정보의 다양화
- 인터넷 관련 비즈니스 활성화 → e-Business, e-Commerce 등
- 인터넷에서 찾을 수 있는 정보는 매우 많지만 원하는 정보를 찾는데 많은 시간 필요 → 사용자가 정보를 수집하고 찾는 시간을 줄여주기 위해 추천시스템을 사용한다.
추천시스템이 풀고자 하는 문제
- 랭킹 문제
→ 특정 아이템을 종아할만한 Top-K 사용자 / 특정 사용자가 좋아할만한 Top-K 아이템 선정 가능
→ 특정 사용자가 특정 아이템에 대한 평점을 정확하게 예측할 필요 없음 - 예측 문제
→ m(사용자) x n(아이템) 행렬이 있지만 비어있는 칸이 있다. 채워져있는 칸 train, 빈 칸으로 eval
→ 사용자-아이템 조합에서 평점을 정확히 예측하고 사용자-아이템의 평가 행렬을 채우는 문제
추천 시스템의 사용 이유
- 서비스 제공자의 입장에서 추천시스템을 사용하면 아래와 같은 이점이 있다.
- 더 많은 아이템을 판매할 수 있다.
- 더 다양한 아이템을 판매할 수 있다. (→ 사용자가 보지 못한 상품을 추천)
- 소비자 만족도가 증가한다.
- 충성도 높은 고객이 증가한다.
- 고객이 원하는 것이 무엇인지 알 수 있다. (→ 니즈 파악, 데이터를 쌓아 알고리즘 성능 향상)
- 넷플릭스에서 영상 추천, 인스타그램에서 팔로우 추천, 쿠팡에서 상품 추천 등 추천시스템 이용
02. User & Item
추천시스템에서는 사용자와 아이템 사이의 관계를 분석하고 연관관계를 찾아 해당 관계를 점수화한다. 이 때 사용하는 정보가 사용자와 아이템이다.

User Profile
사용자 또는 사용자 그룹을 분석 가능한 요소로 프로파일링한 것으로, 사용자를 구분할 수 있는 정보를 활용한다. 사용자 프로필을 활용해 추천이 가능하다.
- 사용자 ID: 나이, 성별, 지역, 학력 등 개인 신상정보
- 쿠키, 인터넷 주소, 웹 페이지 방문 기록, 클릭 패턴 등 사용자의 행동 정보
사용자의 정보를 수집하기 위한 방법은 크게 2가지로 나뉜다.
- Explicit : 직접적인 방법으로 설문조사, 평가, 피드백 등이 포함된다.
- Implicit : 간접적인 방법으로 웹페이지에 머무는 시간, 클릭 패턴, 검색 로그 등이 포함된다.
Item Profile
플랫폼마다 정의하는 아이템의 종류가 다르다. 다양한 종류의 아이템이 있지만 아직까지 모든 것을 추천해주는 플랫폼은 존재하지 않는다.
- 책, 전자제품, 옷 등 웹사이트 내 웹페이지
- SNS의 비슷한 게시글, 관심있을만한 사진
- 뉴스, 논문 등 문서
- 여행지, 음식점 등 장소
- 영화, 음악, 동영상, TV 프로그램 등 영상
아이템 프로필에 속하는 정보로는 아이템 ID, 아이템 고유 정보(크기, 색, 가격), 아이템을 구매한 사용자 정보 등이 포함된다.
사용자와 아이템에 대한 정보를 수집한 후, 해당 정보를 바탕으로 추천 점수를 계산한다. 사용자 또는 아이템 중 어떠한 정보를 사용할 지에 따라 추천 알고리즘을 결정한다. 추천 알고리즘의 목적은 점수화(Scoring)하는 것이고, 이 점수를 바탕으로 추천하게 된다.

03. 추천 알고리즘

Contents-based RS
컨텐츠기반 추천시스템은 사용자가 과거에 좋아했던 아이템을 파악해 그 아이템과 비슷한 아이템을 사용자에게 추천한다. (예) 스타워즈에 4.5점 평점을 부여한 사용자에게 스타트렉 추천
Collaborative Filtering(CF)
협업필터링은 비슷한 성향 혹은 취향을 가진 다른 사용자B가 좋아한 아이템을 사용자A에게 추천한다. 간단하지만 높은 성능을 보인다. (예) 사용자A는 스타트렉과 스타워즈를 좋아하고, 사용자B는 스타트렉만 좋아할 때 사용자 B에게 스타워즈 추천
Hybrid RS
컨텐츠기반과 협업필터링의 장단점을 상호보완한다. 새로운 아이템에 대한 추천이 부족한 CF에 컨텐츠기반 기법을 더해 단점을 보완할 수 있다.
다른 추천 알고리즘
- Context-based RS→ Contextual-aware Recommender System
→ 맥락기반 추천시스템으로, 사용자와 아이템에 맥락 정보까지 더해 추천한다.
→ Real-time or Time-Sensitive Recommender System (+시간 정보)
→ Location-based Recommender System (+장소 정보) - Community-based RS
→ SNS의 뉴스피드, SNS 네트워크 데이터 활용
→ 사용자의 친구 또는 사용자가 속한 커뮤니티의 선호도를 바탕으로 추천 - Knowledge-based RS
→ Case-based RS (사용자의 니즈와 해결책 중 적합한 것 추천)
→ Constraint-based RS (정해진 규칙을 바탕으로 사용자에게 추천)
→ 특정 도메인 지식을 바탕으로 아이템의 feature를 활용해 추천
04. 추천시스템의 한계
- Scalability
- 실제 서비스 상황에서는 다양한 종류의 데이터를 사용한다. 새로운 상황, 유행 등 학습이나 분석에 사용한 데이터와는 다를 수 있다.
- Proactivity Recommender System
- 특별한 요청이 없어도 사전에 먼저 제공하는 서비스로, 모바일 인터넷 등 어디서든 유저에게 끊임없이 좋은 정보를 추천할 수 있는 서비스
- Cold-Start Problem
- 추천을 위한 데이터가 부족해 기본적인 성능을 보장하는 CF model 구축이 쉽지 않다. 마찬가지로 Content-based 혹은 Knowledge-based도 서비스를 적용하기 어렵다.
- Privacy preserving Recommender System
- 사용자의 정보가 가장 중요하지만 개인정보를 직접적으로 사용하긴 어렵다.
- Mobile devices Usage Contexts
- 모바일 서비스와 위치기반서비스(LBS)가 많고, 개별 상황 또는 환경등에 따라 다른 context를 사용해야 한다.
- Long-term & Short-term user preference
- 개인 또는 그룹의 단기/장기 관심사항이 바뀔 수 있다. 추천받고자 하는 아이템이 현재 또는 과거 중 어느 시기와 관련이 있는지 파악하기 어렵다.
- Generic User models & Cross Domain Recommender System
- 하나의 모델을 여러가지 데이터에 적용하기 어려우며 비슷한 도메인의 데이터를 사용하더라도 동일한 성능의 추천시스템을 기대하긴 어렵다. (예) 영화 추천 서비스→한국영화, 미국영화
- Starvation & Diversity
- Starvation은 필요한 컴퓨터 자원을 끊임없이 가져오지 못하는 상황을 말하는데, 사용자와 아이템이 다양하고 각각에 더 많은 관심을 가지려면 컴퓨팅 리소스가 부족한 문제가 발생한다.
'추천시스템 > 패스트캠퍼스 추천시스템' 카테고리의 다른 글
[Part 1] Ch 02. 추천시스템 평가 (0) | 2021.08.27 |
---|---|
[Part 3] Ch 03. Contextual Filtering (0) | 2021.08.27 |
[Part 3] Ch 02. Context-Aware Recommender System (0) | 2021.08.27 |
[Part 3] Ch01. Hybrid Recommender System (0) | 2021.08.27 |