1 of 25

4. 추천 알고리즘 개요

KAIST 경영공학과 DFMBA

Chaesang Jung

2 of 25

Disclaimer

  • 영어와 한글이 어중간하게 섞여 있습니다.
  • 질문들은 여기로

  • 과목과 관련 적은 질문들은

3 of 25

Agenda

“여러 후보 가운데 가치 있는 것을 선정” 하는 것을 구현

  1. 추천 알고리즘 분류
  2. 내용 기반 필터링
  3. 협조 필터링
  4. 내용 기반 필터링과 협조 필터링 비교
  5. 추천 알고리즘 선택
  6. 기호 데이터의 특징
  7. 정리

4 of 25

1. 추천 알고리즘 분류

5 of 25

2. 내용 기반 필터링

1. 개요

Like 대신 사용자가 설정한 필드 이용 가능

https://www.iteratorshq.com/blog/collaborative-filtering-in-recommender-systems/

6 of 25

2. 내용 기반 필터링

2. 아이템 특징 획득

  • 아이템 자체의 메타 정보
    • 책 : 제목, 장르, 문자 수, 작가, 출판일
    • 음악 : 작곡자, 작곡 연도
    • 이미지 : 촬영 장소, 시간
  • 분석 후 정보
    • 음성 : 음의 높낮이, 음색, 음량
    • 이미지 : 분석 결과

7 of 25

2. 내용 기반 필터링

3. 사용자 프로필 획득

  • 간접 지정
    • 사용자가 선택한 것을 기반으로 아이템의 속성이 모임.
    • 구입 이력, 조회 이력 등으로 구분
  • 직접 지정
    • 온보딩 시 유용
    • 마이 페이지에서 업데이트 가능

8 of 25

3. 협조 필터링

1. 메모리 기반 방법 알고리즘 개요

  • User-user(user-based) vs item-item(item-based)
  • item의 속성은 사용하지 않음

https://medium.com/@cfpinela/recommender-systems-user-based-and-item-based-collaborative-filtering-5d5f375a127f

9 of 25

3. 협조 필터링

2. 기호 데이터 획득과 평갓값 행렬

  • 기호 : preference
    • Explicit : 별점, 사용자의 입력
    • Implicit : 구매, 조회 등의 관심
  • 평갓값 : rating
  • 평갓값 행렬 ( rating matrix ) : 사용자 x 아이템 행렬

10 of 25

3. 협조 필터링

3. 모델 기반 방법 알고리즘 개요

  • 이미 알고 있는 데이터의 규칙성을 학습한 모델을 미리 만들어 둠.
  • 모르는 평갓값을 예측하여 추천

  • 클러스터링
  • 회귀 문제
  • 토픽 모델
  • 행렬 분해
  • And more

11 of 25

3. 협조 필터링

4. 메모리 기반 방법과 모델 기반 방법의 협조 필터링 비교

  • 추천에 걸리는 시간
    • 메모리 기반 : 모든 데이터를 훑어야 하므로 시간이 많이 걸림

  • 운용성
    • 메모리 기반 : 항상 최신 데이터를 반영할 수 있음.
    • 모델 기반 : 모델 업데이트 시점, 재학습에 걸리는 계산 비용 등이 고려되어야 함

12 of 25

4. 내용 기반 필터링과 협조 필터링 비교

협조 필터링

내용 기반 필터링

다양성 향상

O

X

도메인 지식 취급 비용

O

X

콜드 스타트 문제에 대한 대응

X

사용자 수가 적은 서비스에서의 추천

X

O

커버리지 향상

X

O

아이템 특징 활용

X

O

예측 정확도

O

13 of 25

4. 내용 기반 필터링과 협조 필터링 비교

1. 다양성 향상

  • 협조 필터링 ( O )
    • 모르는 신인 작가의 책
    • 읽어 본 적 없는 장르

  • 내용 기반 필터링 ( X )
    • 모르는 정보에 유사도 구하기 힘듦

14 of 25

4. 내용 기반 필터링과 협조 필터링 비교

2. 도메인 지식 취급 비용

  • 협조 필터링 ( O )
    • 비용 낮음
    • 아이템이나 사용자 자체의 속성은 필요하지 않음.

  • 내용 기반 필터링 ( X )
    • 아이템의 필드를 설정하고 운영하는 비용
    • Broad 한 정보는 관심 없는 아이템을 추천할 수 있음
    • 예상되는 이득 없이 추가하기 어려움

15 of 25

4. 내용 기반 필터링과 협조 필터링 비교

3. 콜드 스타트 문제에 대한 대응

  • 협조 필터링 ( X )
    • 사용자의 과거 기호 데이터에 심각한 의존
    • 신규 아이템에 대한 부족한 정보

  • 내용 기반 필터링 ( )
    • 규 사용자의 기호 정보를 얻을 수 있는 경우 유용
    • 기존의 분류로 신규 아이템이 적용 가능한 경우 유용

16 of 25

4. 내용 기반 필터링과 협조 필터링 비교

4. 사용자 수가 적은 서비스에서의 추천

  • 협조 필터링 ( X )
    • 적은 수의 사용자 수로 좋은 추천 결과를 만들기 어려움

  • 내용 기반 필터링 ( O )
    • 사용자의 프로필과 아이템의 특징을 조합하는 것으로 시작 가능

17 of 25

4. 내용 기반 필터링과 협조 필터링 비교

5. 커버리지 향상

  • Coverage : 아이템 중 추천 되는 아이템의 비율
  • 협조 필터링 ( X )
    • 평가 받지 않은 아이템은 추천할 수 없음

  • 내용 기반 필터링 ( O )
    • 새로운 아이템을 추천하기 유리함

18 of 25

4. 내용 기반 필터링과 협조 필터링 비교

6. 아이템 특징 활용

  • 협조 필터링 ( X )
    • 사용자가 검은 색이라 마음에 안 들었다고 했어도 계속 추천 됨

  • 내용 기반 필터링 ( O )
    • 사용자의 explicit 한 선호도를 반영하기 유리함

19 of 25

4. 내용 기반 필터링과 협조 필터링 비교

7. 예측 정확도

  • 사용자가 많을 경우
  • 사용자의 이력이 오래 되어 데이터가 많을 경우
  • 아이템의 특징이 복잡한 경우

  • 협조 필터링 ( O )
    • 보이지 않는 복잡한 사용자의 기호가 반영됨

  • 내용 기반 필터링 ( )
    • 사용자 수에 상관 관계 적음

20 of 25

4. 내용 기반 필터링과 협조 필터링 비교 - 정리

협조 필터링

내용 기반 필터링

다양성 향상

O

X

도메인 지식 취급 비용

O

X

콜드 스타트 문제에 대한 대응

X

사용자 수가 적은 서비스에서의 추천

X

O

커버리지 향상

X

O

아이템 특징 활용

X

O

예측 정확도

O

21 of 25

5. 추천 알고리즘 선택

  • 여러 방법들 같이 씀.
  • 데이터가 적을 때

몇몇 사례들

  • 개요 추천 - 내용 기반 필터링
  • 알림 서비스 - 사용자-사용자 메모리 기반 협조 필터링
  • 알림 서비스 - 모델 베이스 ( 데이터가 축적되면 )
  • 전자상거래 검색 - 내용 기반 필터링
  • 전자상거래 홈페이지 - 구입 이력을 통한 추천

22 of 25

6. 기호 데이터의 특징

1. 명시적(explicit) 획득과 암묵적(implicit) 획득 비교

  • 데이터 양
    • 명시적 얻기 힘듦. 보상 구조 필요.

  • 데이터 정확성
    • 암묵적인 경우 후처리가 필요.

  • 평가하지 않음과 기대하지 않음의 구별
    • 명시적인 경우 구별 가능
    • 추천 받았지만 보지 않았다면 ??

  • 사용자 인지
    • 명시적인 경우 사용자의 신뢰를 얻기 수월함

23 of 25

6. 기호 데이터의 특징

2. 기호 데이터를 다룰 때의 주의점

  • 데이터의 희박함 (sparse)
    • 편향(bias)가 생김.
    • 음악은 영화보다 쉬움

  • 평갓값의 변동(variation)이나 편향
    • Popularity Bias
    • Product Segment Bias
    • Exposure Bias
    • Position Bias
    • Previous Model Bias

24 of 25

7. 정리

  • 완벽한 알고리즘은 없음.
  • 여러 sub-product 으로 구현 가능
  • 오프라인 - 온라인 검증 필요

  • 구현 시 너무 복잡하지 않은 방법을 선택하는 것도 중요함

25 of 25

Questions ?