1. 강의 소개(생략)
2. 추천시스템 소개
추천시스템이란
"유저와 아이템의 주변 정보와 상호작용 기록을 바탕으로 유저가 선호할 아이템을 예측하여 유저의 의사결정을 돕는 인공지능 서비스"
*상호작용(interaction/log) : 서비스 내에서 유저가 남기는 일련의 행동 기록
추천시스템의 필요성
- Information Overload
- FOMO(Fear of Missing Out)
추천시스템에서는 주로 입력을 user, item, interaction으로 받는다. + 컨텍스트(맥락정보. 시간, 날씨, 위치, 디바이스 종류 등)도 받음
검색 시스템과 추천 시스템의 차이
검색 시스템 | 추천 시스템 | |
작동 방식 | Push | Pull |
쿼리 입력 | O | X |
작동 시점 | 사용자 요청 후 | 사용자 요청 전 |
의도의 명시성 | 명시적 | 암묵적 |
3. 비즈니스 적용 사례
1) E-commerce
- 유저 기록 기반 상품 추천
- 매출 향상 + 서비스에 Lock-in 효과
- 구매 프로세스(마우스를 사면 손목보호대도 사더라, 휴지 떨어질 때가 되었다 이런거)도 적용해서 구매의도가 없었는데도 구매하게 되는 추천함 / 함께 본 = 대체재, 함께 산 = 보완재
2) Content Rec
- 영상/음악/웹툰/소설/뉴스 등 다양
- 컨텐츠와 서비스 특성에 따라 활용하는 데이터와 추천 접근법이 달라짐
3) POI Rec
- POI(Point-Of-Interest) : 다음에 방문할 만한 장소
- 위치적 요소, 시간적 요소 고려
4. 추천시스템의 어려움들
1) 확장가능성 (Scalability)
- 특성 상 운영 중인 서비스의 한 파이프라인으로 적용되는데, 서비스의 특성과 자원에 따라 제약이 있음. 따라서 정확도를 위해 복잡한 모델만을 사용할 수는 없음.
2) 도메인 종속성
- 서비스 도메인에 따라 추천 대상이 달라짐(데이터타입/아이템과유저관계)
3) 비즈니스 목표의 다양성
- 여러 비즈니스 목표가 충돌하는 경우가 발생 (CTR vs CVR / CTR vs Diversity)
4) Cold-Start Problem (feat.Sparsity)
- 신규 유저 혹은 아이템에 인터랙션이 없어서 발생하는 고질적 문제 (Sparsity, Long Tail)
5) No Clear Ground Truth
- 유저의 선호도는 주관적이고 동적이고, 스스로도 불분명하게 인지함
- Bias = "보여주니까 본다" = 모델의 판단이 고객의 행동에 영향을 줌
5. 추천시스템 파이프라인
후보 생성 (Candidate Generation) -> 순위 매기기 (Ranking) -> 재정렬 (Reranking)
코사인 유사도와 유클리드 거리의 가장 큰 차이점은 노멀라이제이션, 벡터의 크기의 영향을 받냐 안받냐임.
6. 고전적 추천 알고리즘
= 단순한 직관에서 유래
1) 인구 통계 기반 필터링 (Demographic Filtering)
- 연령, 직업과 같은 정보로 추천 제공(인구통계학적 특성이 유사하면 선호도 비슷할 가능성이 높다고 가정)
- 장점 : 단순, 콜드스타트에 대응, 직관적 해석 가능
- 단점 : 개인화 x, 고정관념에 기반, 민감정보
2) 인기도 기반 추천 (Popularity Based Filtering)
- 가장 직관적인 방법, 상품의 인기도 기준 추천
- 장점 : 구현이 쉽고 확장성 좋음
- 단점 : 개인화 x, 필터 버블/에코챔버, 아이템 콜드스타트
3) 지식 기반 추천 (Knowledge Based Filtering)
4) 규칙 기반 추천 (Rule-based Filterling)
7. 연관 규칙 분석
연관규칙 추천 (Association Fule Mining)
= 장바구니 분석
= Market Basket Analysis, Affinity Analysis
- 'A를 사면(조건절 Antecedent) B도 사더라(결과절 Consequent)'는 규칙을 찾는 것 (기저귀 산 사람이 맥주도 사더라고?)
- 조건절에 들어간 상품과 결과절에 들어간 상품은 상호배반적(mutually exclusive, disjoint)이어야 함
- 빈번하게 등장하는 아이템셋에 대해서만 고려하는 Apriori 알고리즘을 적용 가능
- 특정 도메인에서는 복잡한 모델의 성능을 뛰어 넘는 단순하지만 강력한 알고리즘
- 적은 아이템 수로도 수백개의 규칙 가능
- 입력 데이터의 경우 장바구니 번호, 구매상품 컬럼 형태로 구성
- 규칙 성능 지표 : 지지도(A,B가 동시에 등장할 확률), 신뢰도(A가 장바구니에 있을 때 B가 동시에 등장할 확률), 향상도(둘이 등장할 확률이 독립이라고 할 때보다 얼마나 더 같이 잘 등장하는지), 레버리지(이 규칙에서 등장하는 상품들이 얼마나 유의미하게 같이 등장하는지)
- 규칙 생성 알고리즘 : (1) Brute Force(무차별 탐색)(연산적으로 거의 불가능) (2) Apriori(Anti-monotone property 활용)
8. 컨텐츠 필터링과 협업 필터링
1. 컨텐츠 기반 필터링
"너 그거 좋아했으니, 그거랑 비슷한 이것도 좋아할 거야"
= 유저가 구매한 상품과 유사한 특징을 갖는 상품 추천
- 유사도('비슷한') : 코사인 유사도, 유클리드 거리, 피어슨 상관계수 등
- 구현 절차 : 피처 추출(벡터화, 텍스트의 경우 TF-IDF 등) -> 사용자 프로필 정보 생성(유저가 상호작용한 아이템의 특징을 집계하여 생성) -> 유사도 계산 -> (유사도 스코어 기반) 랭킹
- 장점 : 적은 인터랙션 데이터에도 사용 가능, 아이템 콜드스타트에 강함, 추천 해석 가능(피처)
- 단점 : 아이템 피처 품질에 큰 영향, 신규 유저 콜드스타트
2. 협업 필터링
"너가 좋아했던 그거, 그거 찾던 애들은 이것도 찾던데?"
= 유저와 비슷한 소비패턴을 갖는 유저들의 선호도를 기반으로 추천
- 구현 절차 : 유저-아이템 상호작용 행렬 생성 -> 유사도 계산(유저별,아이템별) -> 이웃 지정 (이웃 수는 고정 or 그때그때 적용) -> (이웃들의 상호작용 정보를 기반으로)랭킹
- 장점 : 집단지성 활용한 개인화 추천, 잠재적 특징 활용, 데이터 쌓일수록 성능 증가
- 단점 : 아이템 콜드스타트, 유저 콜드스타트, 낮은 확장가능성(연산량)
3. 하이브리드 필터링
= 여러 기법을 적절히 조합하여 더 나은 추천을 제공하는 앙상블 기법
1) 단순 가중 앙상블 (Weighted Ensemble)
- 가장 단순한 접근, 여러 모델의 결과값을 평균 내어 사용
- 좀 더 개선해서, 모델 성능 기준으로 가중치 줄 수도 있음
2) 스위칭 (Switching)
- 부스팅처럼 상황에 따라 적절한 모델로 스위치하는 것 (콜드 유저 상대로는 아이템 기반 추천을, 활동 기록이 쌓이면 협업 필터링을)
3) 피처 조합 방식
- 앞선 모델(보통은 협업 필터링)의 추천 결과를 뒤 모델의 피처로 사용
- 장점 : 성능 향상, 추천 범위와 다양성 증가(콜드스타트 개선)
- 단점 : 복잡도 증가(설계 및 관리 필요)
출처 : [패스트캠퍼스] 30개 프로젝트로 끝내는 추천시스템 구현 초격차 패키지
'DATA SCIENCE_ 💻' 카테고리의 다른 글
05 콜드스타트 문제 해결하기 (0) | 2023.10.14 |
---|---|
04 GNN 기반 추천 알고리즘 (1) | 2023.10.07 |
03 딥러닝 기반 추천시스템 (1) | 2023.09.24 |
02 머신러닝 기반 추천시스템 (1) | 2023.09.16 |
[인프런 수강후기] Python을 이용한 개인화 추천시스템 | 추천알고리즘 | 추천인공지능 (1) | 2023.04.16 |