추천 알고리즘(고전적)

햐얀하늘·2023년 9월 8일
0

1. 인구 통계 기반 필터링

  • 연령별, 성별, 직업, 위치 등 특성이 유사한 사용자는 선호도와 관심사가 비슷할 가능성이 큼
  • 단순함, cold start 문제 줄어듦
  • 개인화X, 고정관념 등 전문적이지 않을 수 있음 -> 논문을 인용하여 근거 강화

2. 인기도 기반 추천

  • 직관적, 상품의 인기도 기준으로 추천(멜론 순위)
  • 좋아요, 조회수, 클릭, 평점 등을 바탕으로
  • 단점: 개인화 X, long tail, cold start, 필터버블
  • 구현이 쉽고 확장성 뛰어남

필터 버블이란??

  • 개인화 알고리즘으로 사용제가 제한된 정보나 추천에 노출
  • 인기많은 제품에서만 계속 해서 추천되는 문제 발생
  • 유사한 컨테츠만 계속 추천 / 일부 사용률이 높은 사용자에 의해 추천 알고리즘 고착화 될 가능성이 있음

3. 연관규칙 추천

  • A를 사면 B를 샀다. -> B를 샀으면 A를 샀을 것이다(A추천)
    ex) e커머스
  • MBA라고도 불림
  • 단 A와 B에 속성값이 겹치면 안됨!!! 상호베타적

방법

1) 브루트 포스
2) A priori : 많이 등장하는 아이템 셋에서만 고려
3) Anti-monotone property : a의 지지도가 1일때 a가 포함된 부분집합의 지지도는 1을 넘을 수 없음

4. 협업필터링

개념 : 자기와 비슷한 애들이 좋아하는 물건 추천

나와 비슷한 사람들을 찾는 방법

1) 유저 선호패턴 수치화
2) 유저 유사도 계산

  1. 수치형태로 표현하기
사과바나나오렌지쿠키
0221
4030
3500
0254
  1. 코사인 유사도 계산 - 유사한 사람 찾기!!

협업 필터랑 구현 절차

1) 유저 - 아이템 상호작용

  • 유저를 행, 아이템 열로 행렬 만듦
  • 각 유저 아이템 평가/클릭/구매 등의 상호작용으로 값채움

2) 유사도 계산

  • 유저기반 협업 필터링일 시 평가한 아이템의 값이 속성
  • 아이템 기반 협업 필터링 시 각 아이템을 평가한 유저들의 값이 속성
  • 각 유저별/ 아이템별 유사도 계산하기

3) 이웃 설정

  • 추천 대상 스코어를 생성할 이웃 유저 및 아이템 설정
  • 이웃 수는 고정 or 자율화
  • 높은 유사도의 유저 n명 사용전략

4) 랭킹

  • 이웃들 상호작용 정보를 토대로 추천스코어 계산

협업필터링 장단점

장점 : 집단지성 개인화, 잠재적 특징활용, 데이터가 쌓이면 추천확률 높아짐
단점 : cold start, 낮은 확장성

5. 컨텐츠 기반 필터링

개념 : 아이템 A를 좋아했으면 A와 비슷한 B를 좋아할 것이다

유사한 아이템 찾는 법

1) 유사항 형태로 표현
1. 각 아이템의 특성을 feature로 나타냄
2. 변수의 종류에 따라 다른 처리 필요
i. 연속형변수
ii. 범주형 - one-hot가공방식

면 유무소스유무짠맛 유무가격
짜장면110700
스파게티1111000
볶음밥0011200

2) 유사도 계산
a. 코사인 유사도
b. 유클리드 거리
c. 피어슨 상관계수

컨텐츠 필터링 구현 절차

1) 피처 추출

  • 아이템 특성 추출과정 필요 (유사성계산에 이용)
  • 텍스트 경우 TF-IDF기법 사용가능
  • 일반적 아이템 경우 상품의 특징을 담은 tabular feature사용가능

2) 사용자 프로필 정보 생성

  • 유저가 상호작용한 아이템의 특징 집계해 생성
  • 유저 선호도 나타내는 역할

3) 유사도 계싼

  • 아이템과 사용자 프로필 벡터 사이의 유사도 계싼
  • 유사도 함수 사용 가능(주로 코사인)

4) 랭킹

  • 유사도스코어에 따라 순위 매겨 상위 아이템 사용자 추천
profile
나는 커서 개발자가 될거야!

0개의 댓글