추천 시스템이란?
추천 시스템은 사용자가 관심을 가질 만한 정보(상품, 서비스 등)를 필터링해서 제공하는 기법
-> 사용자의 선호도 및 과거 행동을 기반으로 함
=> 사용자의 만족감을 높이고 매출 증대의 효과 기대
- 정보 과부하 문제 해결 : 수많은 옵션 중 가장 관련도 높은 항목 선택
- 맞춤형 경험 : 사용자의 충성도와 만족도 증가
- 비즈니스 가치 : 사용자 증가
추천 시스템의 기본 원리
- 콘텐츠 기반 필터링
"내가 좋아했던 것을 기반으로 추천"
- 협업 필터링
"나랑 비슷한 사람이 좋아하는 것 추천"
- 하이브리드 추천 시스템
: 콘텐츠 기반 필터링과 협업 필터링의 장점 결합
-> 사용자 개인과 사용자 그룹 패턴을 분석해 맞춤형 추천
추천 시스템 활용 사례
유튜브 영상 추천
: 사용자가 관심을 가질만한 영상 추천
콘텐츠 기반 필터링 -> 내가 보는 영상, 선호도, 상호작용을 기반으로 영상 추천
협업 필터링 -> 내가 보는 영상을 좋아하는 다른 그룹이 보는 영상 추천
==> 인기 콘텐츠, 최신 트렌드 확인 / 사용자 참여 향상, 매출 증대
맞춤형 건강 검진 항목 추천
: 사용자 개인의 건강 상태와 위험 요소를 고려하여 필요한 건강 검진 항목 맞춤 추천
콘텐츠 기반 필터링 -> 건강 이력, 이전 질병, 생활 습관을 기반으로 건강 검진 항목 추천
협업 필터링 -> 나이, 성별, 직업 등 그룹에 따른 건강 검진 항목 추천
음식 배달 서비스 추천
: 사용자에게 취향과 선호도에 맞는 음식 및 식당 추천
콘텐츠 기반 필터링 -> 과거 주문 음식, 검색 히스토리 등 활용
협업 필터링 -> 나이, 위치, 주문 이력 등 다른 사용자들이 선호하는 식당, 메뉴 추천
추천 시스템 알고리즘
콘텐츠 기반 필터링
콘텐츠 기반 필터링의 주요 단계 (4)
1. 아이템 프로파일 구성
프로파일 : 아이템을 설명하는 특성의 모음집(집합)
ex. 영화 A = [감독, 장르, 배우, 등등]
- 특성은 서로 다른 이종 데이터의 집합도 가능함. 풀어야하는 문제에 따라 다르게 설정(text, image, 등)
2. 각 특성 당 정보 추출
: 프로파일을 구성하는 특성을 숫자의 형태로 변경
-> 각 특성에 따른 embedding 진행
ex. 텍스트 -> NLP / 이미지 -> 이미지 처리
3. 아이템들의 프로파일 생성
: 사용자의 아이템, 추천에 사용될 아이템등의 프로파일 생성
=> 모든 아이템들에 동일한 embedding 진행
4. 유사도 계산 및 추천
: 사용자 프로파일과 아이템 프로파일 간의 유사도를 계산하여 상위 N개를 추천에 활용
(코사인 유사도, 유클리드 거리, 피어슨 상관계수 등 사용)
사용자가 갖고 있는 아이템(어벤져스, 스파이더맨, 토르)을 종합하여 사용자의 최종 임베딩 값을 도출하고,
유사도 값을 기반으로 임베딩 값이 가장 가까운 것을 추천함
협업 필터링
사용자들 사이의 상호작용 데이터 혹은 선호도 패턴 데이터를 기반으로 추천 수행
(나와 비슷한 사람들이 좋아하는 것을 나에게 추천)
사용자 기반 (User-based)
: 사용자들의 아이템 선호 데이터를 보고 추천
-> 비슷한 선호도 또는 행동 패턴을 보이는 사용자의 선호 추천
1. 상호 작용 데이터 준비
: 사용자로부터 얻은 데이터 (평점, 클릭 등)
2. 사용자(행) - 아이템(열) 상호 작용 테이블 생성
3. 사용자 간 유사도 추출
: 사용자들이 아이템에 대해 얼마나 비슷한 반응을 보였는지 (코사인 유사도, 피어슨 상관계수 등)
4. 유사도 기반 아이템 추천
: 유사도를 기반으로 "이웃" 선정
: 이웃이 높게 평가한 아이템 추천
=> a 사용자와 유사한 이웃 선정 -> 그 이웃이 높게 평가한 영화 추천
아이템 기반 (Item-based)
: 사용자들이 아이템을 평가한 데이터를 활용
-> 특정 사용자가 사용한 아이템의 평가와 비슷한 아이템 추천
1. 상호 작용 데이터 준비
2. 아이템 간 유사도 계산
3. 추천 점수 계산
: 아이템 유사도와 사용자 상호 작용 데이터를 조합해 추천 점수 계산
: 사용자가 평가한 아이템과 유사한 아이템들의 대해 가중 평균
4. 최종 아이템 추천
: 추천 점수를 기반으로 추천 진행
=> 사용자 a가 안본 영화는 D, E
사용자 a를 기준으로 영화 D의 추천점수는
영화 A의 평점 * A와 D의 유사도 + 영화 B의 평점 * B와 D의 유사도 + 영화 C의 평점 * C와 D의 유사도
= 4 * 0.0507 + ... + .. = 0.0504
==> 이를 바탕으로 영화 D, E의 추천 점수를 계산하여 더 높은 것을 반환
'STUDY > DevCourse' 카테고리의 다른 글
[데브코스][데이터 분석] A/B 테스트 과정 (0) | 2024.05.21 |
---|---|
[데브코스][데이터 분석] 애자일 A/B 테스트 (0) | 2024.05.20 |
[데브코스][데이터 분석] 데이터 마이닝 실습 (0) | 2024.05.16 |
[데브코스][데이터 분석] 데이터 마이닝 (0) | 2024.05.16 |
[데브코스][데이터 분석] 딥러닝 모델을 활용한 문장 분류 실습 (1) | 2024.05.15 |