공부 내용
1. 추천 시스템이란
1.1 개요
Search vs Recommendation
- Search
- 의도를 가지고 상품을 찾는 행위
-> 사용자의 의도가 담긴 query가 사용됨
- 검색을 통해 아이템을 소비하는 방식을 pull 방식이라고 함
-> 사용자가 의도를 가지고 아이템을 검색해서 당겨 옴
- Recommendation :
- Search와 반대인 push 방식
-> 사용자가 의도를 가진 키워드를 제공하지 않아도 상품을 노출
- 사용자의 흥미나 의도를 고려해서 취향에 맞는 아이템 추천

추천 시스템의 필요성
-
과거에는 상품, 컨텐츠가 제한적
-> 유저가 거의 모든 아이템을 다 알고 있고 소비 가능
-
웹/모바일 환경의 등장으로 다양한 상품, 컨텐츠 등장
- 현재는 상품이나 컨텐츠가 너무 많아짐
- Few Popular Items -> Long Tail Phenomenon
- 몇 개의 인기있는 아이템이 아닌 많은 아이템이 Long Tail 형태로 분포
- 몇 개의 인기있는 아이템이 많이 소비되고
그 외 다수의 아이템은 적게 소비되는 문제
- 아이템이 많을 수록 꼬리는 길어짐
-
유저가 원하는 정보를 찾는데 시간이 오래 걸림
- Search도 유저가 원하는 정보를 효율적으로 찾기 위해 등장
- 유저가 의도가 없어도 서비스 이용이나 상품 소비를 원할 수 있음
-> 그 때 추천이 유용
- 유저가 원하는 것을 어떤 키워드를 활용해서 찾아야 할지 모를 수 있음
-> 추천 시스템이 유저가 원하는 것을 더 잘 파악할 수 있음
Long Tail Recommendation
인기있는 소수의 아이템을 추천해 주는 데서 시작해서 개인화의 영역으로 발전
-> 몇 개의 소수의 아이템이 많이 소비되는 면적(좌측 면적)보다
다수의 아이템이 적게 소비되는 면적(우측 면적)이 더 커짐

추천 사례
-
유튜브 동영상 추천
- 조회수가 급상승한 영상이 등장한 경우
해당 영상과 관련이 있거나 해당 영상이 업로드 되어있는 채널 영상 추천
-> 추천된 영상이 조회수가 적어도 상관없다(Long tail 부분 추천)
- 사용자가 보고 있는 영상이나 봤던 영상의 패턴 참고
-> 조회수는 적지만 사용자가 좋아할 영상 추천
-
SNS 친구 추천
- 수십억 명의 유저 중 인기가 많은 연예인과 같은 유저들이 아닌
내가 알만한 사람들이나 가까운 사람들을 추천
1.2 사용 데이터
추천 시스템에서 사용하는 정보
-
user 관련 정보(왼쪽)
-> 성별, 나이 등
-
item 관련 정보(오른쪽)
-> 출신 년도, category
-
user-item interaction 정보(가운데)
-> user의 item 소비 여부, 평점 등

user 관련 정보
유저 프로파일링을 통해 추천을 위해 유저에 관련된 정보 생성
-> 추천 시스템이 아닌 서비스의 다양한 분야에서 응용되어 활용
-
식별자(identifier)
- 유저 ID
- 디바이스 ID -> 모바일 디바이스 번호
- 브라우저 쿠키 -> 로그인하지 않고 사용할 경우 유저 ID 대신 활용
-
데모그래픽 정보
- 성별, 연령, 지역, 관심사 등
- 보통 유저로부터 직접 수집함
- 개인정보 보호로 인해 수집 난이도 증가
-> 수집이 아닌 추정을 통해 생성하여 추천에 활용하기도 함
-
유저 행동 정보
- 아이템 소비 기록, 페이지 방문 기록, 아이템 평가, 구매 등의 피드백 기록
- 다양한 딥러닝 모델의 등장으로 유저 행동 정보를 활용해서 정교한 추천 가능해짐
item 관련 정보
-
아이템 ID
- 가장 중요한 관련 정보
- 추천을 제공하는 서비스에서 발급
- ID 없이는 추천이 불가능함
-
아이템의 고유 정보(메타데이터)
- 추천 아이템의 종류에 따라서 사용할 수 있는 정보 달라짐
보통 추천시스템에서는 공통적으로 아이템 ID를 사용하고
그 외 정보들은 서비스의 종류에 따라 크게 달라지게 됨
Content base recommendation : 아이템의 고유 정보만 활용해서 추천
user-item interaction 정보
- user가 item을 소비한 정보
- user가 오프라인 혹은 온라인에서 아이템을 소비하면 로그가 남음
- 추천 시스템 학습에서 Feedback이 됨
- Explicit Feedback(명시적 피드백)
- user에게 item 만족도를 직접 물어본 경우
-> ex) 좋아요, 싫어요, rating
- Implicit Feedback(암시적 피드백)
- user가 item을 직접적으로 평가하지 않음
- user가 item을 클릭하거나 구매한 경우
-> ex) user가 item을 구매하거나 클릭하면 True
- user가 동영상을 재생한 시간
Implicit Feedback 데이터가 압도적으로 많음
-> Implicit Feedback 데이터를 잘 모델링 해야 함
1.3 문제 정의
추천 시스템의 목적
- 특정 유저에게 적합한 아이템을 추천하거나 특정 아이템에게 적합한 유저 추천
- user-item interaction을 평가할 score 값이 필요
- score가 곧 추천 모델을 통해 생성되는 output
추천 문제 : 랭킹 또는 예측
1.4 적용 사례
- 넷플릭스
- 다양한 추천 리스트를 한번에 제공(현재 인기, 개인화 추천)
- 쿠팡
- 내가 좋아할 top k 상품 추천
- 특정 상품과 비슷한 상품 추천
- Google Ads
- 광고 추천을 통해 수익 창출
- 사용자가 좋아할만한 광고를 추천
-> 클릭 확률 향상 및 구매로 이어지고 광고 매출 상승