# 추천 시스템의 기본 개념

## 추천 시스템 개요

### 추천 시스템의 정의

```{image} figs/image-1-1-1.jpeg
:width: 60%
:align: center
```

- 추천 시스템이란 사용자의 취향과 선호에 맞는 아이템을 자동으로 추천하는 시스템
- 온라인 쇼핑, 스트리밍 서비스 등에서 사용자 경험을 개인화하고 만족도를 높이는 데 중요

### 추천 시스템의 역할

```{image} figs/image-1-1-2.jpeg
:width: 60%
:align: center
```

- 사용자의 선택을 돕고, 정보 과부하 문제를 해결
- 사용자의 행동과 선호를 분석하여 관련 아이템 추천
- 비즈니스 측면에서 고객 유지와 매출 증대에 기여

### 다양한 추천 시스템

```{image} figs/image-1-1-3.jpeg
:width: 60%
:align: center
```

- 영화 추천: 넷플릭스의 사용자 취향 기반 영화 추천
- 상품 추천: 아마존의 구매 이력 기반 상품 추천
- 음악 추천: 스포티파이의 장르 및 가수 선호도에 따른 음악 추천

### 사용자 경험 향상을 위한 추천 시스템의 역할

```{image} figs/image-1-1-4.jpeg
:width: 60%
:align: center
```

- 사용자에게 맞춤형 컨텐츠 제공으로 만족도 향상
- 새로운 아이템 발견 촉진, 사용자 충성도 증가
- 사용자가 원하는 것을 빠르게 찾도록 도움

### 추천 시스템의 기본 원리

```{image} figs/image-1-1-5.jpeg
:width: 60%
:align: center
```

- 사용자 데이터 수집: 검색 기록, 구매 이력, 평가 등
- 데이터 분석: 사용자의 패턴과 선호 파악
- 아이템 필터링: 콘텐츠 기반, 협업 필터링 등의 방법 사용
- 개인화된 추천: 분석 결과를 바탕으로 개인에게 맞는 아이템 추천

## 콘텐츠 기반 추천 시스템

### 콘텐츠 기반 시스템의 정의와 작동 원리

```{image} figs/image-1-2-1.jpeg
:width: 60%
:align: center
```

- 콘텐츠 기반 추천 시스템은 사용자가 과거에 선호했던 아이템의 콘텐츠(내용)를 분석하여 유사한 아이템을 추천하는 시스템
- 이 시스템은 아이템의 특성(예: 영화의 장르, 감독, 배우)을 분석하여 사용자의 선호도와 매칭

### 사용자 프로필과 아이템의 특성 매칭

```{image} figs/image-1-2-2.jpeg
:width: 60%
:align: center
```

- 사용자 프로필은 사용자의 과거 행동과 선호도를 기반으로 생성
- 아이템 특성은 텍스트, 이미지, 메타데이터 등 다양한 형태로 분석될 수 있음
- 사용자 프로필과 아이템 특성이 매칭되어 사용자에게 적합한 아이템 추천

### 주요 알고리즘과 기술

```{image} figs/image-1-2-3.jpeg
:width: 60%
:align: center
```

- 키워드 매칭: 아이템 설명에서 키워드 추출 및 사용자 선호와 비교
- 콘텐츠 유사도 측정: 코사인 유사도, 자카드 유사도 등 다양한 방법 사용
- 기계학습 기반 접근: 분류 알고리즘을 사용하여 사용자의 선호 예측

### 콘텐츠 기반 추천 시스템의 장단점

```{image} figs/image-1-2-4.jpeg
:width: 60%
:align: center
```

- 장점: 사용자의 명확한 선호를 반영, 새로운 아이템에 대한 추천 가능
- 단점: 과거 선호에 국한된 추천, 다양성 부족, 콘텐츠 분석의 어려움

### 실제 사례

```{image} figs/image-1-2-5.jpeg
:width: 60%
:align: center
```

- 영화 추천: IMDB, 넷플릭스에서 콘텐츠 기반 추천 사례
- 뉴스 추천: 구글 뉴스의 사용자 관심사 기반 뉴스 추천
- 상품 추천: 아마존, 이베이의 상품 설명을 기반으로 한 추천

## 협업 필터링 추천 시스템

### 협업 필터링의 기본 개념

```{image} figs/image-1-3-1.jpeg
:width: 60%
:align: center
```

- 협업 필터링은 다수의 사용자가 아이템에 대해 남긴 피드백(평점, 구매 이력 등)을 기반으로 사용자의 선호를 예측하는 기술
- 이 방법은 사용자 간의 유사성 또는 아이템 간의 유사성을 찾아 추천을 수행
- 개인화된 추천을 통해 사용자 경험을 개선하고, 비즈니스 측면에서 고객 충성도를 높임

### 사용자 기반 협업 필터링과 아이템 기반 협업 필터링

```{image} figs/image-1-3-2.jpeg
:width: 60%
:align: center
```

- **사용자 기반 협업 필터링**: 사용자 간의 유사성을 분석하여 추천 수행. 유사한 취향의 사용자가 좋아하는 아이템 추천
- **아이템 기반 협업 필터링**: 아이템 간 유사성 분석을 통해 추천. 사용자가 과거에 선호한 아이템과 유사한 아이템을 추천

### 유사도 측정 방법

```{image} figs/image-1-3-3.jpeg
:width: 60%
:align: center
```

- 유사도 측정은 추천 시스템의 핵심 요소 중 하나
- **코사인 유사도**: 벡터 간 각도를 이용한 유사도 측정 방법
- **피어슨 상관계수**: 두 변수 간의 선형 관계를 측정하는 방법
- **자카드 유사도**: 두 집합 간의 공통 요소 비율을 측정하는 방법

### 협업 필터링의 도전 과제와 한계점

```{image} figs/image-1-3-4.jpeg
:width: 60%
:align: center
```

- **차원의 저주**: 매우 많은 특성을 가진 데이터셋에서의 성능 저하 문제
- **희소성 문제**: 대부분의 사용자가 소수의 아이템만을 평가하여 데이터가 희소해지는 문제
- **확장성 문제**: 대규모 사용자 및 아이템에 대한 처리 어려움
- **콜드 스타트 문제**: 새로운 사용자나 아이템에 대한 추천이 어려운 문제

### 실제 적용 사례

```{image} figs/image-1-3-5.jpeg
:width: 60%
:align: center
```

- **넷플릭스**: 사용자의 시청 기록을 분석하여 맞춤형 콘텐츠 추천
- **아마존**: 구매 이력 및 브라우징 행동을 기반으로 상품 추천
- **유튜브**: 시청 이력과 상호작용 데이터를 활용한 동영상 추천

## 행렬 인수분해 기반 추천 시스템

### 행렬 인수분해의 개념

```{image} figs/image-1-4-1.jpeg
:width: 60%
:align: center
```

- 행렬 인수분해(Matrix Factorization)는 큰 행렬을 여러 개의 작은 행렬로 분해하는 방법
- 목적은 사용자-아이템 상호작용을 표현하는 큰 행렬을 더 작고 의미 있는 특성 행렬로 변환
- 이러한 변환을 통해 사용자와 아이템 간의 잠재적인 관계를 발견할 수 있음

### 사용자-아이템 상호작용 행렬

```{image} figs/image-1-4-2.jpeg
:width: 60%
:align: center
```

- 사용자-아이템 상호작용 행렬은 사용자와 아이템 간의 관계를 수치로 표현한 행렬
- 예를 들어, 사용자가 아이템에 부여한 평점이나 구매 여부 등의 정보를 담음
- 이 행렬은 일반적으로 매우 크고 희소한(sparse) 특성을 가짐

### 행렬 인수분해 알고리즘

```{image} figs/image-1-4-3.jpeg
:width: 60%
:align: center
```

- 대표적인 알고리즘으로는 SVD(특이값 분해), ALS(교대 최소 제곱법) 등이 있음
- 이러한 알고리즘들은 원본 행렬을 더 작은 특성 행렬로 분해하여 잠재 요인을 찾아냄
- 구현 시, 행렬의 희소성과 계산 효율성을 고려해야 함

### 예측 정확도 향상 방법

```{image} figs/image-1-4-4.jpeg
:width: 60%
:align: center
```

- 정규화, 하이퍼파라미터 튜닝 등을 통한 오버피팅 방지
- 추가 데이터 소스 활용, 잠재 요인의 수 증가 등으로 모델의 복잡성 증가
- 교차 검증과 같은 기법을 사용하여 모델의 일반화 능력 강화

## 하이브리드 추천 시스템

### 하이브리드 추천 시스템의 정의

```{image} figs/image-1-5-1.jpeg
:width: 60%
:align: center
```

- 하이브리드 추천 시스템은 콘텐츠 기반 추천과 협업 필터링 추천 기법을 결합한 시스템
- 이 시스템은 두 방법의 장점을 통합하여 더 정확하고 개인화된 추천을 제공
- 사용자의 다양한 요구와 상황에 더 잘 대응할 수 있도록 설계됨

### 다양한 하이브리드 방식

```{image} figs/image-1-5-2.jpeg
:width: 60%
:align: center
```

- **가중 평균 방식**: 두 추천 기법의 결과에 가중치를 적용하여 결합
- **스위칭 방식**: 특정 조건에 따라 콘텐츠 기반 또는 협업 필터링 방식 선택
- **피쳐 조합 방식**: 두 기법의 피쳐를 결합하여 새로운 추천 모델 생성
- **메타 레벨 방식**: 한 추천 시스템의 출력을 다른 시스템의 입력으로 사용

### 콘텐츠 기반과 협업 필터링의 조합

```{image} figs/image-1-5-3.jpeg
:width: 60%
:align: center
```

- 콘텐츠 기반 추천의 개인화된 특성과 협업 필터링의 사회적 필터링 장점 결합
- 두 방법의 조합으로 추천의 정확도와 다양성을 동시에 향상
- 사용자의 명시적, 암시적 피드백을 모두 활용하는 효과적인 접근 방법

### 하이브리드 시스템의 장점 및 적용 분야

```{image} figs/image-1-5-4.jpeg
:width: 60%
:align: center
```

- **장점**: 콜드 스타트 문제 해결, 다양한 데이터 소스 활용, 추천의 정확도 향상
- **적용 분야**: 전자상거래, 온라인 미디어 스트리밍, 소셜 네트워킹 사이트 등
- 비즈니스 및 사용자 경험 개선을 위한 광범위한 적용 가능

### 실제 하이브리드 추천 시스템 사례

```{image} figs/image-1-5-5.jpeg
:width: 60%
:align: center
```

- **넷플릭스**: 콘텐츠 기반의 메타데이터와 사용자의 시청 패턴을 결합한 추천 시스템
- **아마존**: 사용자 구매 이력과 상품 정보를 통합하여 개인화된 상품 추천
- **유튜브**: 사용자 시청 행동과 콘텐츠 속성을 결합한 비디오 추천
