본문 바로가기
DATA SCIENCE_ 💻

01 고전적 추천시스템

by thisissilverline 2023. 9. 9.

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. 추천시스템 파이프라인

 

출처 : https://dl.acm.org/doi/10.1145/2959100.2959190

 

후보 생성 (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개 프로젝트로 끝내는 추천시스템 구현 초격차 패키지