추천 엔진을 기반으로 이메일 마케팅, 신상품 마케팅, 관련 상품 추천 등의 개인화가 이루어짐
추천 엔진의 예시 : 아마존 관련 상품 추천, 넷플릭스 영화/드라마 추천, 구글 자동 검색어 완성, 플레이리스트 추천, 페이스북 친구 추천, 헬스케어 도메인의 위험 점수 계산(어느 환자가 더 위험한지 예측하여 치료시 우선순위를 주기 위함), 유데미 강좌 추천
격자 형태 UI를 보통 사용하고, 대세를 이룸
사용자 기반
아이템 기반
아이템 간의 유사도를 측정하여 추천하며, NLP를 사용해서 텍스트 정보를 벡터 정보로 변환
일반적으로 아이템의 수가 사용자의 수보다 적어 구현이 상대적으로 간단함
나와 비슷한 평점 패턴을 보이는 사람들을 찾아서 그 사람들이 높게 평가한 아이템 추천
KNN 알고리즘을 사용, Cold start문제를 가지고 있음
아이템들간의 유사도를 비교하는 것, 사용자 기반 협업 필터링과 비교해 더 안정적이며 높은 성능을 보임
아이템의 수가 보통 사용자의 수보다 작기 때문에 사용자에 비해 평점의 수가 평균적으로 더 많고 계산량도 작다
코사인 유사도 혹은 피어슨 유사도를 사용해서 측정함
암시적 정보인 클릭, 구매, 소비 등을 기반하여 사용자에게 추천하는 방법
2006년부터 3년간 넷플릭스에서 진행된 기념비적인 추천 엔진 경진 대회
캐글과 같은 머신러닝 경진대회 플랫폼이 이때문에 등장함
SVD를 활용한 SVD++를 사용했고 이는 이후 굉장히 많은 분야에서 활용됨
앙상블 방식의 모델들이 가장 좋은 성능을 보이지만 실제 프로덕션에서는 느려서 사용 못함
https://colab.research.google.com/drive/1WRd0uhPSwLVuQk998teEaziCHesMNawD?usp=sharing
https://colab.research.google.com/drive/1xbFjBvzgiDpPwBwKiaMw0ByWos12EAiD?usp=sharing
협업 필터링과 관련한 다양한 기능을 제공하는 라이브러리이며 알고리즘의 성능 평가를 위한 방법 제공
KNNBasic 객체를 이용해서 사용자 기반, 아이템 기반 협업 필터링 구현함
해결하기 위하여 머신러닝 도입 -> 행렬분해, 딥러닝
협업 필터링 문제를 사용자-아이템 평점 행렬을 채우는 문제로 재정의, 사용자 또는 아이템을 적은 수의 차원으로 차원수를 축소하여 문제를 간단하게 만듬
PCA(Principal Component Analysis), SVD(Singular Vector Decomposition)가 많이 사용됨
대표적인 비지도학습을 위한 딥러닝 모델
입력으로 들어간 자료가 다시 출력이 되는 모델
오토인코더의 출력은 입력을 재구축한 것이다
오토인코더는 출력층의 노드 개수와 입력층의 노드 개수가 동일해야하고 은닉층의 노드 개수가 출력층/입력층의 노드 개수보다 작아야한다
케라스의 임베딩을 이용해서 간편하게 사용할 수 있다
https://takeout.google.com/?pli=1 여기 가면 구글이 가지고 있는 내 개인정보 알 수 있음