Programmers 인공지능 데브코스 - Week 12 - 추천 엔진, 협업 필터링, 오토인코더

donchanee·2021년 3월 9일
0

추천 엔진

  • 사용자가 관심있어 할만한 아이템을 제공해주는 자동화된 시스템
  • 비즈니스 장기적인 목표를 개선하기 위해 사용자에게 알맞은 아이템을 자동으로 보여주는 시스템

추천 엔진을 기반으로 이메일 마케팅, 신상품 마케팅, 관련 상품 추천 등의 개인화가 이루어짐

추천 엔진의 예시 : 아마존 관련 상품 추천, 넷플릭스 영화/드라마 추천, 구글 자동 검색어 완성, 플레이리스트 추천, 페이스북 친구 추천, 헬스케어 도메인의 위험 점수 계산(어느 환자가 더 위험한지 예측하여 치료시 우선순위를 주기 위함), 유데미 강좌 추천

격자 형태 UI를 보통 사용하고, 대세를 이룸

추천 알고리즘

  • 컨텐츠 기반(아이템 기반)
  • 협업 필터링(Collaborative Filtering)
    사용자 기반 아이템 기반
  • 사용자 행동 기반

컨텐츠 기반(아이템 기반)

아이템 간의 유사도를 측정하여 추천하며, NLP를 사용해서 텍스트 정보를 벡터 정보로 변환

일반적으로 아이템의 수가 사용자의 수보다 적어 구현이 상대적으로 간단함

사용자 기반 협업 필터링

나와 비슷한 평점 패턴을 보이는 사람들을 찾아서 그 사람들이 높게 평가한 아이템 추천

KNN 알고리즘을 사용, Cold start문제를 가지고 있음

아이템 기반 협업 필터링

아이템들간의 유사도를 비교하는 것, 사용자 기반 협업 필터링과 비교해 더 안정적이며 높은 성능을 보임

아이템의 수가 보통 사용자의 수보다 작기 때문에 사용자에 비해 평점의 수가 평균적으로 더 많고 계산량도 작다

유사도 측정 방법

코사인 유사도 혹은 피어슨 유사도를 사용해서 측정함

사용자 행동 기반

암시적 정보인 클릭, 구매, 소비 등을 기반하여 사용자에게 추천하는 방법

넷플릭스 프라이즈

2006년부터 3년간 넷플릭스에서 진행된 기념비적인 추천 엔진 경진 대회

캐글과 같은 머신러닝 경진대회 플랫폼이 이때문에 등장함

SVD를 활용한 SVD++를 사용했고 이는 이후 굉장히 많은 분야에서 활용됨

앙상블 방식의 모델들이 가장 좋은 성능을 보이지만 실제 프로덕션에서는 느려서 사용 못함

CountVectorizer/TFIdfVectorizer/코사인 유사도 실습

https://colab.research.google.com/drive/1WRd0uhPSwLVuQk998teEaziCHesMNawD?usp=sharing

TF-IDF를 이용한 컨텐츠 기반 추천과 실습

https://colab.research.google.com/drive/1xbFjBvzgiDpPwBwKiaMw0ByWos12EAiD?usp=sharing

SurpriseLib

협업 필터링과 관련한 다양한 기능을 제공하는 라이브러리이며 알고리즘의 성능 평가를 위한 방법 제공

KNNBasic 객체를 이용해서 사용자 기반, 아이템 기반 협업 필터링 구현함

협업 필터링의 문제점

  • 확장성(scalability)
  • 데이터 부족(sparse data)

해결하기 위하여 머신러닝 도입 -> 행렬분해, 딥러닝

행렬분해

협업 필터링 문제를 사용자-아이템 평점 행렬을 채우는 문제로 재정의, 사용자 또는 아이템을 적은 수의 차원으로 차원수를 축소하여 문제를 간단하게 만듬

PCA(Principal Component Analysis), SVD(Singular Vector Decomposition)가 많이 사용됨

오토인코더

대표적인 비지도학습을 위한 딥러닝 모델

입력으로 들어간 자료가 다시 출력이 되는 모델

오토인코더의 출력은 입력을 재구축한 것이다

오토인코더는 출력층의 노드 개수와 입력층의 노드 개수가 동일해야하고 은닉층의 노드 개수가 출력층/입력층의 노드 개수보다 작아야한다

케라스의 임베딩을 이용해서 간편하게 사용할 수 있다

개인정보 보호

https://takeout.google.com/?pli=1 여기 가면 구글이 가지고 있는 내 개인정보 알 수 있음

0개의 댓글