그래프와 추천시스템 68
추천시스템
- 추천의 대상은 다양하지만, 이번 강의에서는 상품을 대상으로하는 추천으로 가정하자
- 사용자와 상품은 이종 그래프(Bipartite graph)로 표현할 수 있다.
- 추천시스템의 핵심은 사용자별 구매를 예측하거나 선호를 추정하는 것
- 컨텐츠 기반 추천(Content based Recommendation)
사용자가 구매/만족했던 상품과 유사한 것을 추천하는 방법
- 크게 아래와 같은 4가지 단계로 구성가능
- 사용자가 사용했던 상품 프로필(Item Profile)을 수집
ex. 원핫벡터, 임베딩 벡터 등으로 표현 가능
- 상품프로필을 바탕으로 사용자 프로필(User Profile)
ex. 상품 프로필을 가중 평균 등을 이용해 사용자 프로필 구성 가능
- 사용자 프로필과 다른 상품들의 상품프로필을 매칭
ex. 코사인 유사도, 위의 예시의 경우 빨강색인 육각형과 초록원 순으로 사용자와 상품의 유사도가 크다.
- 사용자가 사용했던 상품 프로필(Item Profile)을 수집
- pros
다른 사용자의 구매기록이 필요하지 않음
독특한 취향의 사용자에게 추천 용이
새 상품에 대한 추천 가능
추천의 설명력
- cons
상품에 대한 정보가 없는 경우 → 상품 프로필 구성 불가능
cold start (구매기록이 없는 경우)
과적합(overfitting)으로 인한 협소한 추천 위험성(ex. 우연히 편향 선택을 했을 경우, 해당 편향에 대한 추천만 이루어짐)
- 크게 아래와 같은 4가지 단계로 구성가능
- 협업 필터링 추천(Collaborative Filtering Recommendation)
- 사용자-사용자 협업필터링
- 단계
사용자 x와 유사한 취향의 사용자를 찾는다.
유사한 취향의 사용자들이 선호한 상품을 찾는다
유사한 사용자들이 선호한 상품을 x에게 추천한다.
- 사용자의 취향의 유사성
아래와 같은 상관 계수를 활용해 계산 가능
- 평점 추정
추정하고자 한 상품을 사용한 사용자들 중, 추정하고자 한 사용자와의 유사도를 가중치로 놓은 가중평균을 사용해 평점 추정
- 추천
사용하지 않은 제품을 평점 추정해 추천할 수 있다.
- Pros : 상품에 대한 부가정보가 없는 경우에도 사용 가능
- Cons
충분한 수의 평점 데이터가 누적되어야 효과적
새 상품, 새로운 사용자에 대한 추천이 어려움
독특한 취향의 사용자의 추천이 어려움
- 단계
- 사용자-사용자 협업필터링
- 추천시스템의 평가
- 데이터 분리
- Metric: MSE, RMSE 활용
이외에, 추정한 평점으로 순위를 매긴 후, 실제 평점으로 매긴 순위와의 상관계수
추천 상품 중 실제 구매로 이루어진 것의 비율
추천의 순서, 다양성 고려한 지표 등이 있음
- 넷플릭스 첼린지
RMSE를 0.9514에서 0.8563까지 낮추면 100만불 상금
2700개 팀 참여, 추천시스템 성능 비약적 발전
- 성능
- 잠재 인수모형 (Latent Factor Model, UV decomposition, SVD)
- 사용자 영화 임베딩 예시
- 임베딩의 기준
사용자 임베딩 벡터와 상품의 임베딩 벡터의 내적이, 해당 사용자의 해당 상품의 선호도와 유사하도록 임베딩
- 손실함수 설정
이를 정규화항 없이 학습하는 경우, 잡음까지 학습하는 과적합 발생할 수 있음
정규화항은 극단적인 임베딩 값(절댓값이 너무 큰)을 줄여주는 역할을 한다.
- 임베딩의 기준
- 사용자 영화 임베딩 예시
- 고급 잠재 인수 모형
- 사용자와 상품의 편향을 고려한 잠재 인수 모형
- 사용자 편향: 전체 사용자&상품 평점 평균 - 각 사용자의 상품 평점 평균
- 상품 편향: 전체 사용자&상품 평점 평균 - 각 상품의 평점 평균
- 수식화
- 손실함수
- 넷플릭스 챌린지에서의 성능: 0.89
- 시간적 편향을 고려한 잠재 인수모형
넷플릭스의 평점의 경우, 시간에 따라 어느 순간 평균 평점이 올라가는 것을 확인할 수 있으며
출시 일 이후에 평점은 큰 폭으로 떨어지다가 서서히 증가하는 것을 볼 수 있다.
→ 초기 영화 시청자: 기대감이 높은 사람들
→ 후기 시청자: 추천을 받았거나 보고싶은 마음이 생긴 사용자. 좋아하게될 가능성이 생긴 사용자(감독, 배우 등을 좋아해짐)
- 수식화
- 넷플릭스 챌린지에서의 성능: 0.876
- 사용자와 상품의 편향을 고려한 잠재 인수 모형
- Further Reading: