Develope/AI 교육

[AI-역량강화] 추천 알고리즘 개념 및 종류 정리

고로이 2021. 5. 31. 15:04
반응형

1. 컨텐츠 기반 추천 알고리즘
■ 컨텐츠 기반 추천시스템 개요
 1) 개요
  - 컨텐츠가 비슷한 아이템을 추천한다.
  - 사용자가 과거에 경험했던 아이템 중 비슷한 아이템 추천
  - 유저 A 가 높은 평점을 추거나 큰 관심을 갖은 아이템 X와 유사한 아이템 Y를 추천한다.
 
 2) 중요점
  - 컨텐츠의 특징들이 어떻게 이루어져 있는지 파악
  - 특징들 간에 유사성을 파악
  - 컨텐츠 분석하는 아이템 분석 알고리즘이 중요
  - 선능을 높일 수 있는 적절한 컨텐츠를 사용

 3) 장/단점
  - 장점 : 
   다른 유저의 데이터가 필요하지 않다.
   추천할 수 있는 아이템의 범위가 넓다. (다른 유저와 관계없이 추천 가능하다.)
   추천의 이유가 명확하다.
  - 단점 :
   적절한 특징을 찾아야 성능이 올라간다.
   Cold Start, 새로운 유저를 위한 추천이 어렵다.
   유저 프로필 외에는 추천이 불가능해서, 선호하는 특성을 가진 항목을 반복 추천한다.

 4) 알고리즘 과정
  ① 데이터 습득
  ② 컨텐츠 분석(Contents Analyer)
   - 특징 추출
   - Vector Representation : 벡터 집합으로 변경
  ③ 유저 프로필 파악 (Profile Learner)
  ④ 유사 아이템 선택 (Filtering Component)
  
■ 컨텐츠 선정 방법 = Profiling
 1) Item 
  - Item Profile
  - Item을 특성들의 리스트(Set of feature)로 표현한다.
  - 특성 : Attribute, Features
  - Nomalization : Vector Representation
  - 보통 Text 처리를 통해 특성을 얻을 수 있다.
  - 유사도 기법 : 
  ① 코사인 유사도 (Cosine)
  ② 자카드 유사도 (Jacard)
  ③ 피어슨 유사도 (Pearson)


 2) User
  - 특성 가중치는 사용자가 가지고 있는 아이템 특성 가중치의 평균값
  - 설문조사 및 키워드 입력으로 프로필을 얻는다.
  - 분류(Classification) 문제 해결 : 주어진 user Profile에서 새로운 아이템을 유저가 평가한 Metric에서 선택

■ 비슷한 컨텐츠를 찾는 방법
 * 비슷한 아이템을 고르는 기준 : 객관적인 사실이 아닌 사용자의 데이터를 사용한다.

 1) 거리기반 계산식
 ** Euclidean Distance (유클리드 거리)
  - 두 점 사이의 거리를 계산할 때 쓰이는 수식
  - 여러 차원(feature)을 가지는 점과 점 사이의 거리 계산 가능
  - 거리 기반 유사도 측정 방법
  - 스케일이 비슷할 때 사용
  - 단순 점과 점 사이의 거리만 측정

 ** Mahalanobis Distance
  - 변수의 상관관계를 고려한 지표. 
  - 변수 내 분산과 변수 간 공분산 반영

 ** Manhattan Distance
  : 좌표축을 따라 이동한 거리(절대값)을 이용한 지표

 2) 유사도 계산식
 ** Cosine Similarity (코사인 유사도)
  - 벡터 A와 벡터 B의 각도로 계산된다.
  - -1 ~ 1 사이의 값을 가지며, -1은 반대, 0은 서로 독립, 1은 완정히 같은 경우이다.
  - 데이터 간에 스케일 차이가 날 경우 사용
  - 무게나 크기를 고려하지 않고 각도만으로 측정

 ** Jacard Similarity (자카드 유사도)
  - 집합의 개념을 이용한 유사도 계산
  - 집합 A와 B사이에 얼마나 많은 아이템이 겹치는지로 유사도 판단
  - 공통 아이템이 없으면 0, 모두 겹치면 1
  - 주로 여러 단어로 구성된 문서 또 는 문장이 유사한지를 판단.

 ** Pearson Similarity (피어슨 유사도)
  - Vector X,Y 사이의 상관관계를 계산(피어슨 상관계수)
  - 각 Vector의 표본평균으로 각 Vector를 정규화하고 코사인 유사도를 구한다.
  - 1은 양의 상관관계, -1는 음의 상관관계, 0은 관계 없음

 3) 근접이웃 추천 알고리즘 : KNN(K-Nearest Neighbor) 알고리즘
  - 데이터로부터 거리가 가까운 K 개의 다른 데이터를 선택하는 알고리즘
  - K 값을 설정하는 것이 가장 중요하다.
  : 홀수 선택(과반수 선택)
  : Overfitting과 underfitting 발생
  : 개별 데이터 모두를 반영하거나 과도한 정규화로 특성이 반영 안된 모델이 나올 수 있다.
  - 정규화 필수
  - 유클리드 거리 식 등 거리계산식 이용. 거리 측정의 효율화 필요
  - 회귀(Regression) : 객체의 특성 값이며 k개의 최근방 점들 값의 평균
  - 분류(Classification) : 소속된 항목을 출력하여 과반수로 분류
  - 장점 : 
  훈련이 없기에 빠르게 학습 가능하다.
  수치 기반 테이터(0과1로 이루어짐)에서 우수하다
  - 단점 : 
  명목 또는 더미데이터 처리가 어렵다(노미널 데이터)
  단순 특성인데 데이터로 바꾸면 0과 1이라는 거리가 되어 변수가 된다.(ex 성별)
  K를 적절하게 선택하기 어렵다.
  각 특징을 이해하는 것이 아니어서 관계 파악 및 설명이 되지 않는다.

■ 나이브베이즈 추천 알고리즘
 1) 개념
  - 베이즈 정리에 의한 통계기반 분류 알고리즘. 확률을 이용. 지도학습이다.
  - 구성 : 공식 , 사전확률, 사후 확률
 2) 특징
  - 아이템의 특징 끼리 서로 독립이다.
  - 서로 연관이 없는 특징이어야 한다.
  - Discrete Variable 에 더 잘 맞는다.
  - 데이터의 차원이 높아질수록 Class에 대해 0으로 수렴된다 : Laplace Smoothing 을 이용해서 0으로 가는 것을 방지

■ TF-IDF (Term Frequency-Inverse Document Frequency)
 1) 개요
   - 단어의 빈도수를 벡터로 나타내었다. 문서 i 에서 j의 중요도
 
 2) 구성
  - N : 전체 문서 수
  - TF(w, d) 
   : 단어 w가 문서 d에 등장한 빈도 수. 
: 해당 당어가 문서에 얼마나 자주 등장하는지 체크
: 문서 내 단어 w의 수 / 문서 내 모든 단어의 수
  - DF(w) : 단어 w 가 등장한 문서 d의 개수
  - IDF(w) 
   : log(전체 문서 수 / DF(w)). 
   : 해당 단어가 다른 문서에 비해 해당 문서에서 얼마나 특별한지 체크

 
 3) 특징 : 
   - 흔하게 등장하는 단어는 중요하지 않은 단어
   - 각 단어의 가중치를 부여
   - 특정 단어가 등장하는 것으로 각 문서의 관련도를 표현
   - 특정 단어가 모든 문서에 등장하면 그 단어는 정보력이 없다. (조사나 관사)
   - TF - IDF(w, d) = TF(w, d) X IDF(w)

 
2. 이웃 기반 협업 필터링
■  협업 필터링(Collaborative Filtering)이란?
 1) 개요
  - 많은 사람의 의견으로 더 나은 추천을 한다.
  - 개인이 아닌 단체, 다수의 의견을 따른다.
  - 나랑 같은 취향의 사람의 취향을 추천해 준다.

 2) 과정
  ① 유저 A와 비슷한 평가를 한 유저 B 선정
  ② B가 호감을 나타낸 다른 컨텐츠 선정
  ③ 그 중 A와 성향이 비슷한 컨텐츠 추천

 3) 종류
  - 이웃기반 협업 필터링
  : Item-based
  : User-based
  - 모델 기반 협업 필터링 
  : 딥러닝 협업 필터링
  -하이브리드 협업 필터링

■  협업 필터링
 1) User-based
  - 두 사용자가 얼마나 유사한 항목을 좋아했는지를 바탕으로 추천
  - 플래폼에서 유저가 많은 부분을 차지할 때 사용
  - SNS 등 사용자에 포커스 되어있는 서비스의 경우
  - 아이템이 많을 시 = User based
  - 특정 유저와 비슷한 유저로 분류된 실제 유저의 취향을 알 수 없다. 
  - 여러 유저의 데이터를 보았기 때문에 새로운 추천을 할 수 있다.

 2) Item-based
   - 아이템과 아이템 사이의 유사도 계산
  - 과거 아이템 선호도를 기반으로 선호 연관성이 높은 다른 아이템 추천
  - 컨텐츠 기반은 컨텐츠의 특성으로 추천, 협업 필터링은 과거의 선호도를 측정
  - 아이템의 수가 크게 변하지 않는다면 Item-based
  - 비슷한 아이템과 가중치로 함께 설명될 수 있다.
  - 과거 아이템에 의존하기 때문에 새로운 아이템을 추천하기 어렵다.

 3) 문제점
  - Cold Start 문제 : 충분한 데이터가 필요하다.
  - 계산 량
  : 데이터가 많아질수록 유사도 계산이 많아진다. 
  : 그러나 데이터가 많아야 추천 품질이 높아진다.
  - Long Tail Economy
  : 대부분의 사용자가 관심가지는 소수의 아이템으로 추천이 쏠릴 수 있다.
  : 관심이 부족한 아이템은 추천되지 못한다.


반응형