다시 이음

추천 시스템 기초 본문

채우기/추천 시스템

추천 시스템 기초

Taeho(Damon) 2022. 7. 13. 12:11

 

안녕하세요.

 

추천 시스템에 대한 좋은 자료가 있어 영상을 시청하고 정리하려고 합니다.

 

추천 시스템 기초 내용을 담고 있는 영상 자료와 실습을 할 수 있는 페이지 링크를 남겨놓겠습니다.

 

https://aifactory.space/competition/detail/1977

 

INNOPOLIS AI SPACE-S 인공지능 세미나 - 추천시스템 입문하기

 

aifactory.space

 

추천 시스템이란?

 

어떤 사용자에게 어떤 아이템을 어떻게 추천할지

 

문제 설정

 

- Rating Prediction : User-Item Matrix Rating 에서 빈칸을 채우는 문제

- Top-k Recommendation Problem : Rating(평점) 예측이 중요한게 아니라 k개의 상품을 추천하는 것에 중점

 

Rating(평점)

 

- Explicit : 평점을 구체적으로 매기는 방법 ( 별점 1-5개, 점수 1-10, like-unlike )

- Implicit : 명백하게 좋다 싫다 정보가 없고 구매했는지 안했는지만 알 수 있는 정보

 

추천 시스템 모델

 

  • 협업 필터링(Collaborative Filtering)
    • 이웃기반 협업 필터링(Memory Based CF)
    • 모델 기반 접근(Model Based CF)
  • Side Information
    • 콘텐츠 기반(Content-Based)
    • 콘텐츠 기반 CF
  • Advanced Topics
    • Sequential
    • Graph

 

과거의 추천시스템

 

연관 분석(Association Analysis)

 

- 어떤 연관이 있는지 찾아내는 알고리즘

( 얼마나 같이 판매되는지, A아이템을 구매했을 때 B아이템도 구매하는지 )

 

- 규칙 : 가능한 모든 경우의 수를 탐색하여 지지도,신뢰도,향상도가 높은 규칙을 찾아내는 것

  • 지지도 : A의 구매확률
  • 신뢰도 : A를 구매했을 때 B를 같이 구입할 확률 = P(B|A) = P(B∩A) / P(A)
  • 향상도 : A의 구매와 B의 구매가 서로 독립사건일때, 두 사건이 동시에 얼마나 발생하는지 비교 = P(A∩B) = P(A)*P(B)

- 문제점

  • 아이템 증가에 따른 규칙의 수가 기하급수적으로 증가
  • 이를 개선한 Apriori 알고리즘

 

Apriori 알고리즘

 

아이템셋의 증가를 줄이기 위한 방법 입니다.

(상위 규칙이 별로라면 하위 규칙도 별로라고 가정하고 제외하는 방식)

 

예시 ) 아이템별 각각의 지지도 확인하고 사용자가 설정한 최소 지지도보다 낮으면 아이템 제외

다음 아이템을 2개씩 묶어서 지지도를 확인하고 똑같이 최소 지지도 보다 낮으면 아이템 제외

이를 순차적으로 진행하면 점점 선택지가 줄어든다.

 

- 장점

  • 원리가 간단하여 쉽게 이해가능하고 의미 파악이 용이하다.
  • 유의한 연관성을 구매 패턴을 찾을 수 있다.

- 단점

  • 데이터 클 경우(item이 많을경우) 속도가 느리고 연산량 많음
  • 실제에선 연관 상품이 많이 나타납니다.

 

컨텐츠 기반 추천 시스템

 

사용자가 이전에 구매한 상품 중에서 좋아하는 상품과 유사한 상품들을 추천하는 방법으로 사용자가 소비한 Text 혹은 Image와 유사한 벡터를 가지는 상품을 추천합니다.

 

(1) TF-IDF

 

TF(문서내에 단어가 등장하는 횟수)

DF(특정 단어 t가 등장한 문서의 수)

IDF(DF 반비례) = log( n(전체문서수) / 1+DF)

 

특정 단어t가 많이 등장할수록 IDF의 값은 작아집니다.

특정 단어t가 적게 등장할수록 IDF의 값은 커집니다.

이렇게 TF와 IDF를 내적하면 적게 등장하는 단어일수록 중요한 가치를 가진다하는 맥락에 맞는 벡터가 생성됩니다.

 

- 장점

  • 직관적인 해석이 가능합니다.

- 단점

  • 대규모 말뭉치를 다룰 때 메모리 문제가 생깁니다.
    • 높은 차원을 가졌기 때문에

 

(2) Word2Vec

 

단어간 유사도를 반영하여 단어를 벡터로 바꿔주는 임베딩 방법입니다.

비슷한 위치에 등장하는 단어들은 비슷한 의미를 가진다라는 가정을 통해 학습을 진행합니다.

 

Word2Vec은 CBOW, Skip-gram 방식으로 나뉘게 됩니다.

 

주변의 단어들을 통해서 중심단어를 예측하는 CBOW,

중심 단어를 사용하여 주변 단어를 예측하는 Skip-gram.

 

 

- 추천시스템에 적용하기

 

1) 아이템의 설명, 줄거리와 같은 Text를 사용하여 Word2Vec에 적용하여 한 아이템에 대한 평균 벡터를 추출하여 아이템간 유사도 비교를 통해 추천이 가능합니다.

 

2) 구매 이력과 같은 경우도 아래와 같이 활용가능합니다. (메타 정보가 없어도 가능)

 

협업 필터링 추천 시스템

 

사용자의 구매 패턴이나 평점을 가지고 다른 사람들의 구매패턴, 평점을 통해서 추천을 하는 방법입니다.

추가적인 개인정보나 아이템 정보가 없어도 추천할 수 있습니다.

 

(1) 최근접 이웃 기반(Neighborhood Collaborative Filtering)

 

  • User-based CF : 사용자의 구매 패턴(평점)유사한 사용자를 찾아서 추천 리스트 생성
  • Item-based CF : 특정 사용자가 준 점수 유사한 상품을 찾아서 추천 리스트 생성

Cosine, Pearson 유사도를 기반으로 유사도를 측정합니다.

 

- 장점

  • 직관적인 접근 방식
  • 추천하는 이유를 정당화 하기 쉽습니다.
  • 추천리스트에 새로운 item, user가 추가되어도 안정적입니다.

- 단점

  • User 기반 방법은 시간, 속도, 메모리 많이 필요합니다.
  • 희소성 문제 : 모든 사용자가 평점을 가지고 있는 것이 아니기 때문에 비슷한 군집 중에 어떠한 특정아이템에 대한 평가가 모두 결여된 경우 예측을 할 수가 없습니다.

 

(2) 잠재 요인 협업 필터링(Latent Factor Collaborative Filtering)

 

사용자의 잠재요인과 아이템의 잠재요인을 내적하여 평점 매트릭스의 빈공간을 계산하는 방법입니다.

 

간단한 예시로 사용자 4명과 아이템 4개의 평점을 알아내기 위해 4x1 , 1x4 행렬을 내적하여 4x4 매트릭스를 구하는 것입니다.