본문 바로가기
AI Theory/Recsys

02) 나도 이해한 추천시스템 알고리즘 _ 컨텐츠 기반 모델

by climba 2022. 1. 27.
References
- [토크ON세미나] 추천시스템 분석 입문

0. 글 쓰기에 앞서

지난 포스팅에서는 추천시스템의 개요와 발전 과정에 대해 알아보았다.

 

01) 나도 이해한 추천시스템 알고리즘 _ 추천 시스템의 이해

References - [토크ON세미나] 추천시스템 분석 입문(https://www.youtube.com/watch?v=43gb7WK56Sk&t=138s) - https://rfriend.tistory.com/191 0. 글 쓰기에 앞서 데이콘 대회를 처음으로 참가하면서 추천시스템..

hyunsooworld.tistory.com

추천시스템은 크게 컨텐츠 기반 추천과 협업 필터링으로 구분 할 수 있는데, 이번 포스팅에서는 컨텐츠 기반 추천 모델에 대해 정리해보았다.

1. 컨텐츠 기반 모델

  • 정의 : 사용자가 이전에 구매한 상품중에서 좋아하는 상품들과 유사한 상품들을 추천하는 방법

컨텐츠 기반 모델의 기본 알고리즘은 Items를 벡터 형태로 표현하고 그 벡터들 간의 유사도를 계산해 사용자가 좋아할 만한 상품을 찾는다.

컨텐츠 기반 추천 모델 알고리즘

그렇다면 유사도는 어떻게 계산하는 것일까?

유사도를 계산하는 유사도 함수에는 크게 네 가지가 있다.

2. 유사도 함수

2-1. 유클리디안 유사도

유클리디안 유사도 = 1 / (유클리디안 거리 + 1e-05)

→ 유클리디안 거리의 역 (분모가 0이 되는걸 막아주려고 1e-05를 더해서 역수취함

유클리디안 거리

유클리디안 거리 공식

장점 : 계산하기 쉬움

단점 : (거리를 계산하는) p와 q의 분포가 다르거나 범위가 다른 경우 상관성을 놓침

2-2. 코사인 유사도

코사인 유사도 식

  • 장점 : 벡터의 크기가 중요하지 않은 경우 거리 측정 메트릭으로 사용 (방향이 중요)
  • 단점 : 벡터의 크기가 중요한 경우 잘 작동하지 않음

 

💡 유클리디안 유사도 vs 코사인 유사도

  • 유클리디안 유사도 → 거리 우선
  • 코사인 유사도 → 방향 우선

유클리디안 유사도(좌)와 코사인 유사도(우)

2-3. 피어슨 유사도

피어슨 유사도

→ 상관관계를 계산

2-4. 자카드 유사도

자카드 유사도

→ 집합 간 유사도를 계산

2-5. 기타 유사도

  • Dice 유사도
  • Divergence 유사도 (분포 유사도)
  • Sorensen 유사도
  • Soergel 유사도
  • Canberra 유사도
  • Topsoe 유사도
  • 등등

3. TF-IDF

TF : 단어의 빈도, DF : 문서의 빈도

TF-IDF의 정의 : 단어빈도 TF(특정 문서 내에 특정 단어가 얼마나 자주 등장하는 지)와 역문서 빈도 DF(전체 문서에서 특정 단어가 얼마나 자주 등장하는지)를 통해서 다른 문서에서는 등장하지 않지만 특정 문서에서만 자주 등장하는 단어”를 찾아 IDF(문서 내 단어의 가중치)를 계산하는 방법

→ 문서의 핵심어 추출, 문서들 사이 유사도 계산, 검색 결과의 중요도를 정하는 작업 등에 활용

  • 장점 : 해석이 직관적이다
  • 단점 : 대규모 말뭉치를 다룰 때 메모리상의 문제 발생 (차원이 매우 높고, 매우 sparse함) → Word2Vec의 등장

4. Word2Vec

4-1. 기존 통계기반 방법의 단점

  • 대규모 말뭉치를 다룰 때 메모리상의 문제 발생
    • 높은 차원을 가짐, 매우 sparse한 형태
    • ex) 100만개의 문서를 다루는 경우 문서당 단어가 10개면 1000만개의 말뭉치 형성 → 100만 x 1000만의 매트릭스 형성
  • 한번에 학습 데이터 전체를 진행함
    • 큰 작업을 처리하기 어려움
    • GPU와 같은 병렬처리를 기대하기 힘듦
  • 학습을 통해서 개선하기가 어려움

4-2. 추론기반의 방법 (Word2Vec)

  • Word2Vec은 단어간 유사도를 반영하여 단어를 벡터로 바꿔주는 임베딩 방법론
  • 원-핫벡터 형태의 sparse matrix이 가지는 단점을 해소하고자 저차원의 공간에 벡터로 매핑
  • “비슷한 위치에 등장하는 단어들은 비슷한 의미를 가진다”라는 가정을 통해 학습

4-3. CBOW와 Skip-Gram

CBOW : 주변에 있는 단어 → 중간에 있는 단어 예측

Skip-Gram : 중간에 있는 단어 → 주변에 있는 단어 예측

💡 Skip-Gram이 성능이 훨씬 좋다 (CBOW보다)

→ Skip-Gram이 더 어려운 예측 상황이므로 딥러닝이 학습을 통해 더 좋은 모델을 만든다.

4-3-1. CBOW 알고리즘

softmax 함수에서 ‘e’를 사용하는 이유 : 왜 softmax 함수에서는 'e'를 쓰는가?

4-3-2. Skip-Gram 알고리즘

💡 CBOW와 다르게 Skip-Gram에서는 ds1과 ds2 를 더해서 ds로 사용한다

5. 컨텐츠 기반 모델의 장단점

5-1. 장점

  • 자신만의 평점만을 가지고 추천시스템을 만들 수 있음
    • 협업 필터링은 다른 사용자들의 평점이 필요함
  • item의 feature를 통해서 추천을 하기에 추천이 된 이유를 설명하기 용이
  • 사용자가 평점을 매기지 않은 새로운 item이 들어올 경우(Cold Start)에도 추천이 가능

5-2. 단점

  • item의 feature을 추출해야 하고 이를 통해서 추천하기 때문에 제대로 feature을 추출하지 못하면 정확도가 낮음.
    • Domain Knowledge가 분석시 필요할 수 있음
  • 기존의 item과 유사한 item 위주로만 추천하기에 새로운 장르의 item을 추천하기 어려움
  • 새로운 사용자에 대해서 충분한 평점이 쌓이기 전까지는 추천하기 힘듦

6. 정리

이번 포스팅에서는 유사도 함수와 추천시스템 중에서 컨텐츠 기반 추천 모델인 TF-IDF, Word2Vec에 대해 알아보았다.

다음 포스팅에서는 협업기반필터링에 대해서 정리 할 것이다.

댓글