추천 시스템은 왜 필요한가?
추천의 원줄기는 검색으로부터 시작됐다. 만약 상품 수가 적을 때는 추천 시스템의 매력도는 없다고 볼 수 있다. 하지만 정보의 풍요로 정보를 찾는데 시간이 너무 오래 걸려 추천시스템의 중요도가 높아졌다. 과거에는 유저가 접할 수 있는 상품과 컨텐츠가 예를 들어 TV채널, 영화관, 백화점, 신문 등과 같이 제한적이었다. 하지만, 정보의 부족이 풍요로 바뀌게 되고, Few Popular items 들이 Long Tail Phenomenon으로 변화하게 됨에 따라 웹과 모바일 환경은 다양한 상품, 컨텐츠를 등장하게되었다. 이렇게 다양한 환경 속에서 사용자들은 정보를 찾는데 시간이 오래 걸린다. 어디에서 어떤 키워드로 원하는 정보를 어떻게 찾아야 하는지 모를 수 가 있기 때문이다.
Long-Tail 추천
해당 그래프를 보게 되면 반비례 함수로 볼 수 있다.
상품 수가 많아질수록, 즉 사이즈가 커질때는 우측면적이 좌측면적보다 넓다
상품 수가 적을수록, 즉 사이즈가 작을때는 좌측면적이 우측면적보다 넓다.
유튜브 동영상과 SNS 친구추천이 Long Tail 추천 케이스에 적용된다.
유튜브 동영상은 조회수가 급상승한 영상이 등장할 경우, 해당 영상과 관련이 있거나 해당 영상이 업로드 되어있는 채널의 영상을 추천받는다. SNS 친구추천 또한, 수천만 혹은 수십억명의 유저들 가운데 내가 알만한 사람들을 추천해준다.
어떤 정보를 사용하는가?
1. 유저 정보
- 유저 프로파일링: 추천 대상 유저에 관련된 정보를 구축하여, 개별 유저 혹은 유저 그룹별로 추천한다.
- 식별자: 유저id, 디바이스id, 브라우저 쿠키별로 추천한다.
- 데모그래픽 정보: 성별, 연령, 지역, 관심사별로 추천한다.
- 유저 행동 정보: 페이지 방문 기록, 아이템 평가, 구매등의 피드백 기록으로 추천한다.
2. 아이템 정보
- 추천 아이템의 종류
포탈: 뉴스, 블로그, 웹툰 등 컨텐츠 추천
광고/커머스: 광고 소재, 상품 추천
미디어: 영화, 음악, 동영상 추천
- 아이템 프로파일링
아이템의 고유정보
영화: 영화장르, 출연 배우 및 감독, 영화 소개글, 개봉연도
상품, 상품 카테고리, 브랜드, 출시일, 상품이미지
음악: 아티스트, 작곡가 장르, 음악 신호 그 자체
3. 유저 - 아이템 상호작용 정보
유저와 아이템의 상호작용 데이터
유저가 오프라인 혹은 온라인에서 아이템과 상호작용 할 때 로그로 남는다.
추천 시스템을 학습하는 데이터의 Feedback이 된다.
Explicit Feedback
유저에게 아이템에 대한 만족도를 직접 물어보는 경우이다.
예를 들어 유저의 영화에 대해서 1~5점 사이의 평점을 매기는 방식이 있다.
Implicit Feedback
대부분 회사들이 사용하는 Feedbackd으로, 유저가 아이템을 클릭하거나 구매한 경우이다.
예를 들어 쿠팡에서 유저가 상품을 구매하면 implicit feedvback = Y
결국 추천 시스템이 하는 것은 무엇인가?
특정 유저에게 적합한 아이템을 추천하거나 특점 아이템에게 적합한 유저를 추천한다.
그렇다면, 유저와 아이템에 대해서 score값이 필요하게 된다. score가 높은 순서대로 추천을 하기 위해 score는 어떻게 구해지고 사용되는지 알아보겠다.
1. 랭킹
유저에게 적합한 아이템 Top k 개를 추천하는 문제이다.
Top k개를 선정하기 위한 기준 혹은 스코어가 필요하지만, 유저(x)가 아이템 (y)에 가지는 정확한 선호도를 구할 필요는 없다.
2. 예측
유저(x)가 아이템(y)에 가질 선호도를 정확하게 예측하는 것이다. 예를 들어서 상품의 평점, 광고 정확한 CTR 예측, 상품의 클릭/구매확률이 있다.
Explicit Feedback: 철수가 아이언맨에게 대해 내릴 평점값을 예측
implicit Feedback:: 영희가 아이폰 12를 조회하거나 구매할 확률
즉 유저와 아이템 행렬을 채우는 문제이다. 평가지표로는 MAE, RMSE, AUC가 있다.
추천 알고리즘 종류
1. Simple Aggregate(Popular, Average score, Recent Uploads)
2. Association Analysis
3. Content-based Recommendation (=CB)
4. Collaborative-Filtering (= CF)
5. Deep Learning based Recommendation
Content-basedRecommendation = CB
유저가 선호하는 아이템를 해당 아이템과 유사한 아이템을 추천하는 방식이다.
Collaborative-Filtering= CF
유저 A와 비슷한 성향을 갖는 유저들이 선호하는 아이템을 추천하는 방식이다. 아이템이 가진 속성을 사용하지 않으면서도 높은 성능을 보이며, 사용자 id만 가지고만 있어도 바로 추천시스템을 만들수있다.
추천 시스템의 문제점
Cold Start
새로운 유저나 아이뎀 등장할경우 학습을 위한 데이터가 부족하며, 기본적인 추천 성능을 내는 협업 필터링 모델 구축도 어렵다.
Scalability
유저와 아이템이 크게 증가하는 경우 데이터의 크기가 기하급수적으로 커지며, 모델 학습 및 추천을 위한 추론에 걸리는 시간과 계산량도 많아진다.
Data Sparsity
유저 - 아이템 사이의 Feedback이 있는 경우보다 없는 경우가 압도적으로 많다.
특히, 유저와 아이템의 갯수가 많아질수록 두드러진다.
추천 시스템 서빙 아키텍쳐 예시
인기도 기반 추천
말 그대로 가장 인기있는 아이템을 추천한다.
인기도의 척도
조회수, 평균 평점, 리뷰 개수, 좋아요/싫어요 수
예시
네이버 쇼핑 랭킹순, 다음 뉴스, 댓글 추천, 래딧 HOT 추천
어떻게 스코어를 만들어야 할까?
1. 조회수가 가장 많은 아이템을 추천(Most Popular)
-> 뉴스 추천! 유저들은 다른 유저들도 많은 관심을 가지고 있는 핫한 이슈를 보고 싶어한다.
2. 평균 평점이 가장 높은 아이쳄을 추천(Highly Rated)
-> 맛집 추천! 평점이 높은 맛집일수록 맛있는 음식을 제공하는 레스토랑으로 기대된다.
Most Popular
Formula Overview
example)
1. 10pageviews, 6hours ago -> 10 - 6/4 = 8.5
2. 25pageviews, 24hours ago -> 25 - 24/4 = 21
pageview가 더 빠르게 늘어난다면?
-> 1~2년이 지나도 계속해서 같은 글이 Top Rank에 보일 것이다.
Hacker News Formula
시간이 지날수록 age가 점점 증가하므로 score는 작아진다.
시간에 따라 줄어드는 score를 조정하기 위해 gravity(1.8)라는 상수를 사용한다.
Raddit Formula
첫번째 term은 popularity, 두번째 term은 글이 포스팅이 게시된 절대시간이다.
나중에 게시된 포스팅일수록 더 높은 score를 가진다.
첫번째 vote에 대해서 가장 높은 가치를 부여하며, vote가 늘어날수록 score의 증가폭이 작아진다.
오래된 포스팅일수록 상대적으로 아주 많은 vote가 있어야 높은 score를 가진다.
Highly Rated
가장 높은 평점을 받은 영화 혹은 맛집을 추천
-> 신뢰할 수 있는 평점인가? 평가의 개수가 충분한가?
Steam Rating Formula
rating은 평균값을 사용하되, 전체 review 개수에 따라 rating을 보정한다.
review 개수가 너무 적을 경우
0.5 보다 score가 낮을 경우 조금 높게 보정한다.
0.5 보다 score가 높을 경우 조금 낮게 보정한다.
review의 개수가 아주 많을 경우 rating 은 평균값과 거의 유사해진다.
예를 들어 영화의 평점 같은 경우
영화 평점은 positive, negative가 아닌 1.0부터 5.0의 rating을 사용한다.
0.5대신에 영화 평점 1.0 - 5.0 사이의 중간값인 3.0을 사용한다.
마찬가지로 전체 review 개수가 많아질수록 rating은 평균 평점에 가까워진다.
연관규칙
인과관계를 의미하지는 않는다.
support
x,y는 서로 서로소인데 함께 포함되는 transaction의 비율
confidenxr lift 얼마나 성능이 좋은지 평가
x가 등장했는데 y도 등장하는 경우
lift 를 사용하는 경우
물을 예시로 하자
confidence는 그 아이템을 샀을때만!!
물은 항상 사니깐 높게 나완다.
하지만, lift
'빅데이터 관련 자료' 카테고리의 다른 글
데이터 웨어하우징, 비즈니스 인텔리전스 및 다차원 모델링 입문 - 1 (0) | 2021.12.28 |
---|---|
구글 애널리틱스 이해 - 디지털마케팅과 구글애널리틱스 (0) | 2021.10.12 |
랜딩페이지 UX/UI - A/B 테스트를 통한 최적화 실습 (0) | 2021.10.03 |
랜딩페이지 UX/UI - 사용자 경험 연구 (0) | 2021.10.02 |
랜딩페이지 UX/UI - 마케터는 왜 UX/UI를 알아야 할까? (0) | 2021.10.01 |